PR gas/5895

* read.c (s_mexit): Warn if attempting to exit a macro when not
   inside a macro definition.

   * gas/macros/exit.s: New test case.
   * gas/macros/macros.exp: Run the new test, expect it to produce an
   error result.
This commit is contained in:
Nick Clifton 2008-03-13 10:51:33 +00:00
parent 72de500931
commit 5808f4a685
5 changed files with 33 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2008-03-13 Evandro Menezes <evandro@yahoo.com>
PR gas/5895
* read.c (s_mexit): Warn if attempting to exit a macro when not
inside a macro definition.
2008-03-13 Alan Modra <amodra@bigpond.net.au>
* Makefile.am: Run "make dep-am".

View File

@ -2554,8 +2554,13 @@ s_macro (int ignore ATTRIBUTE_UNUSED)
void
s_mexit (int ignore ATTRIBUTE_UNUSED)
{
cond_exit_macro (macro_nest);
buffer_limit = input_scrub_next_buffer (&input_line_pointer);
if (macro_nest)
{
cond_exit_macro (macro_nest);
buffer_limit = input_scrub_next_buffer (&input_line_pointer);
}
else
as_warn (_("ignoring macro exit outside a macro definition."));
}
/* Switch in and out of MRI mode. */

View File

@ -1,3 +1,10 @@
2008-03-13 Nick Clifton <nickc@redhat.com>
PR gas/5895
* gas/macros/exit.s: New test case.
* gas/macros/macros.exp: Run the new test, expect it to produce an
error result.
2008-03-09 Paul Brook <paul@codesourcery.com>
* gas/arm/vfpv3-d16-bad.d: New test.

View File

@ -0,0 +1,8 @@
.macro MAC
BAD_OP
.endm
.exitm
MAC

View File

@ -77,3 +77,8 @@ run_list_test redef ""
if [string match "" [lindex [gas_run ../all/excl.s "-o /dev/null" ""] 0]] {
run_dump_test paren
}
# PR 58925: A .exitm pseudo-op outside of a macro definition
# prevented the assembler from parsing the rest of the file,
# and hence catching an erroroneous instruction.
gas_test_error "exit.s" "" ".exitm outside of a macro"