diff options
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 8 | ||||
-rw-r--r-- | gas/read.c | 15 | ||||
-rw-r--r-- | gas/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gas/testsuite/gas/all/cond.l | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/all/cond.s | 11 |
5 files changed, 36 insertions, 7 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 60a0a6a..4f923ed 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,13 @@ 2014-10-21 Jan Beulich <jbeulich@suse.com> + * read.c (HANDLE_CONDITIONAL_ASSEMBLY): New parameter "num_read". + (read_a_source_file): Adjust HANDLE_CONDITIONAL_ASSEMBLY + invocations. + (_find_end_of_line): Don't issue "stray '\\'" warning when in + false branch of conditional. + +2014-10-21 Jan Beulich <jbeulich@suse.com> + * config/tc-aarch64.c (output_operand_error_record): Move down assertion of idx being non-negative. Use local variables when available. @@ -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; } diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index d504c4f..a79cd1c 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,5 +1,11 @@ 2014-10-21 Jan Beulich <jbeulich@suse.com> + * gas/gas/all/cond.s: Also test processing of leading double + quote and trailing backslash in false branch of conditional. + * gas/gas/all/cond.l: Adjust accordingly. + +2014-10-21 Jan Beulich <jbeulich@suse.com> + * gas/ppc/power8.s: Test msgclr and msgsnd. * gas/ppc/power8.d: Adjust accordingly. diff --git a/gas/testsuite/gas/all/cond.l b/gas/testsuite/gas/all/cond.l index 36f0066..af80a10 100644 --- a/gas/testsuite/gas/all/cond.l +++ b/gas/testsuite/gas/all/cond.l @@ -67,5 +67,8 @@ [ ]*[1-9][0-9]*[ ]+[0-9a-f]+[048c] 0[0C] ?00 ?00 ?0[0C][ ]+m[ ]+12,[ ]*13[ ]* [ ]*[1-9][0-9]*[ ]+0[0D] ?00 ?00 ?0[0D][ ]* [ ]*[1-9][0-9]*[ ]+ +[ ]*[1-9][0-9]*[ ]+\.if[ ]+0[ ]* +[ ]*[1-9][0-9]*[ ]+\.endif[ ]* +[ ]*[1-9][0-9]*[ ]+ [ ]*[1-9][0-9]*[ ]+.*\.p2align 5,0 #pass diff --git a/gas/testsuite/gas/all/cond.s b/gas/testsuite/gas/all/cond.s index 164e055..f0bf67a 100644 --- a/gas/testsuite/gas/all/cond.s +++ b/gas/testsuite/gas/all/cond.s @@ -89,4 +89,15 @@ m 11, m 12, 13 + .if 0 +#define x "m" \ + (x) +#define y \ + "m" \ + (y) +#define z \ + ((z) \ + + 1) + .endif + .p2align 5,0 |