diff options
author | Jan Beulich <jbeulich@novell.com> | 2014-10-21 09:57:41 +0200 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2014-10-21 09:57:41 +0200 |
commit | e74211b660791d29be21e11766c5b375f5df59b1 (patch) | |
tree | 2348e36d7e97c3601d9df062fcd971f066113cdf /gas/read.c | |
parent | 12e87fac5c760b04eed4f5a5948c2dfd6ec8f6d8 (diff) | |
download | gdb-e74211b660791d29be21e11766c5b375f5df59b1.zip gdb-e74211b660791d29be21e11766c5b375f5df59b1.tar.gz gdb-e74211b660791d29be21e11766c5b375f5df59b1.tar.bz2 |
gas: avoid bogus warnings in false branches of conditional
The construct being added to the cond.s test case otherwise triggered
both the "missing closing ..." and the "stray ..." (twice) warnings in
_find_end_of_line(). As that code fragments suggests, this is needed to
support (include) files that can be used for both assembler .include
and compiler #include directives.
Diffstat (limited to 'gas/read.c')
-rw-r--r-- | gas/read.c | 15 |
1 files changed, 8 insertions, 7 deletions
@@ -557,10 +557,11 @@ pobegin (void) cfi_pop_insert (); } -#define HANDLE_CONDITIONAL_ASSEMBLY() \ +#define HANDLE_CONDITIONAL_ASSEMBLY(num_read) \ if (ignore_input ()) \ { \ - char *eol = find_end_of_line (input_line_pointer, flag_m68k_mri); \ + char *eol = find_end_of_line (input_line_pointer - (num_read), \ + flag_m68k_mri); \ input_line_pointer = (input_line_pointer <= buffer_limit \ && eol >= buffer_limit) \ ? buffer_limit \ @@ -834,7 +835,7 @@ read_a_source_file (char *name) char *line_start = input_line_pointer; int mri_line_macro; - HANDLE_CONDITIONAL_ASSEMBLY (); + HANDLE_CONDITIONAL_ASSEMBLY (0); c = get_symbol_end (); @@ -905,7 +906,7 @@ read_a_source_file (char *name) if (is_name_beginner (c)) { /* Want user-defined label or pseudo/opcode. */ - HANDLE_CONDITIONAL_ASSEMBLY (); + HANDLE_CONDITIONAL_ASSEMBLY (1); s = --input_line_pointer; c = get_symbol_end (); /* name's delimiter. */ @@ -1119,7 +1120,7 @@ read_a_source_file (char *name) /* local label ("4:") */ char *backup = input_line_pointer; - HANDLE_CONDITIONAL_ASSEMBLY (); + HANDLE_CONDITIONAL_ASSEMBLY (1); temp = c - '0'; @@ -1266,7 +1267,7 @@ read_a_source_file (char *name) continue; } - HANDLE_CONDITIONAL_ASSEMBLY (); + HANDLE_CONDITIONAL_ASSEMBLY (1); #ifdef tc_unrecognized_line if (tc_unrecognized_line (c)) @@ -6138,7 +6139,7 @@ _find_end_of_line (char *s, int mri_string, int insn ATTRIBUTE_UNUSED, } if (inquote) as_warn (_("missing closing `%c'"), inquote); - if (inescape) + if (inescape && !ignore_input ()) as_warn (_("stray `\\'")); return s; } |