Fix MRI mode testsuite failures
Alan Modra
amodra@gmail.com
Mon Mar 18 12:13:00 GMT 2019
These fails were introduced by git commit 2469b3c584 with the
inroduction of "input_from_string":
m68k-linux FAIL: MRI structured for
m68k-linux FAIL: MRI structured if
m68k-linux FAIL: MRI structured repeat
m68k-linux FAIL: MRI structured while
Since the m68k parser called expression() without setting
input_from_string, get_symbol_name rejected FAKE_LABEL_CHAR in names.
* config/m68k-parse.y (yylex): Use temp_ilp and restore_ilp.
diff --git a/gas/config/m68k-parse.y b/gas/config/m68k-parse.y
index f771f09cd1..8bc96d13d1 100644
--- a/gas/config/m68k-parse.y
+++ b/gas/config/m68k-parse.y
@@ -754,7 +754,6 @@ yylex (void)
int parens;
int c = 0;
int tail = 0;
- char *hold;
if (*str == ' ')
++str;
@@ -913,11 +912,10 @@ yylex (void)
++s;
- hold = input_line_pointer;
- input_line_pointer = s;
+ temp_ilp (s);
expression (&scale);
s = input_line_pointer;
- input_line_pointer = hold;
+ restore_ilp ();
if (scale.X_op != O_constant)
yyerror (_("scale specification must resolve to a number"));
@@ -1071,11 +1069,10 @@ yylex (void)
s[-tail] = 0;
}
- hold = input_line_pointer;
- input_line_pointer = str;
+ temp_ilp (str);
expression (&yylval.exp.exp);
str = input_line_pointer;
- input_line_pointer = hold;
+ restore_ilp ();
if (tail != 0)
{
--
Alan Modra
Australia Development Lab, IBM
More information about the Binutils
mailing list