diff options
author | Alan Modra <amodra@bigpond.net.au> | 2005-11-07 01:47:54 +0000 |
---|---|---|
committer | Alan Modra <amodra@bigpond.net.au> | 2005-11-07 01:47:54 +0000 |
commit | c266c88237a738fb91ea169be6cefb25ab042757 (patch) | |
tree | 3e7282174092f2669a532086eb5796ff97a9f6cf /gas/macro.c | |
parent | 7bcbef46e5279bcfde66c1aac2d9b47252db223c (diff) | |
download | binutils-redhat-c266c88237a738fb91ea169be6cefb25ab042757.tar.gz |
* macro.c (buffer_and_nest): Skip labels regardless of
NO_PSEUDO_DOT and flag_m68k_mri.
Diffstat (limited to 'gas/macro.c')
-rw-r--r-- | gas/macro.c | 69 |
1 files changed, 33 insertions, 36 deletions
diff --git a/gas/macro.c b/gas/macro.c index eab3e66bbe..23156a1242 100644 --- a/gas/macro.c +++ b/gas/macro.c @@ -180,49 +180,46 @@ buffer_and_nest (const char *from, const char *to, sb *ptr, while (more) { - /* Try and find the first pseudo op on the line. */ + /* Try to find the first pseudo op on the line. */ int i = line_start; - if (! NO_PSEUDO_DOT && ! flag_m68k_mri) - { - /* With normal syntax we can suck what we want till we get - to the dot. With the alternate, labels have to start in - the first column, since we can't tell what's a label and - whats a pseudoop. */ + /* With normal syntax we can suck what we want till we get + to the dot. With the alternate, labels have to start in + the first column, since we can't tell what's a label and + what's a pseudoop. */ - if (! LABELS_WITHOUT_COLONS) - { - /* Skip leading whitespace. */ - while (i < ptr->len && ISWHITE (ptr->ptr[i])) - i++; - } + if (! LABELS_WITHOUT_COLONS) + { + /* Skip leading whitespace. */ + while (i < ptr->len && ISWHITE (ptr->ptr[i])) + i++; + } - for (;;) + for (;;) + { + /* Skip over a label, if any. */ + if (i >= ptr->len || ! is_name_beginner (ptr->ptr[i])) + break; + i++; + while (i < ptr->len && is_part_of_name (ptr->ptr[i])) + i++; + if (i < ptr->len && is_name_ender (ptr->ptr[i])) + i++; + if (LABELS_WITHOUT_COLONS) + break; + /* Skip whitespace. */ + while (i < ptr->len && ISWHITE (ptr->ptr[i])) + i++; + /* Check for the colon. */ + if (i >= ptr->len || ptr->ptr[i] != ':') { - /* Skip over a label, if any. */ - if (i >= ptr->len || ! is_name_beginner (ptr->ptr[i])) - break; - i++; - while (i < ptr->len && is_part_of_name (ptr->ptr[i])) - i++; - if (i < ptr->len && is_name_ender (ptr->ptr[i])) - i++; - if (LABELS_WITHOUT_COLONS) - break; - /* Skip whitespace. */ - while (i < ptr->len && ISWHITE (ptr->ptr[i])) - i++; - /* Check for the colon. */ - if (i >= ptr->len || ptr->ptr[i] != ':') - { - i = line_start; - break; - } - i++; - line_start = i; + i = line_start; + break; } - + i++; + line_start = i; } + /* Skip trailing whitespace. */ while (i < ptr->len && ISWHITE (ptr->ptr[i])) i++; |