[PATCH] Eat newlines in INPUT statements
H.J. Lu
hjl.tools@gmail.com
Tue Apr 28 19:31:00 GMT 2015
On Tue, Apr 28, 2015 at 12:30 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Tue, Apr 28, 2015 at 12:29 PM, Andreas Schwab <schwab@linux-m68k.org> wrote:
>> The ld-script lexer didn't have a rule for newlines inside INPUT
>> statements, so it fell through to the default action which is to print
>> the current input to stdout.
>>
>> Andreas.
>>
>> PR ld/18344
>> * ldlex.l (INPUTLIST): Increment lineno on newline.
>> ---
>> ld/ldlex.l | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/ld/ldlex.l b/ld/ldlex.l
>> index a19c5d6..d9ef830 100644
>> --- a/ld/ldlex.l
>> +++ b/ld/ldlex.l
>> @@ -450,7 +450,7 @@ V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)*
>> return *yytext;
>> }
>>
>> -<VERS_START,VERS_NODE,VERS_SCRIPT>[\n] { lineno++; }
>> +<VERS_START,VERS_NODE,VERS_SCRIPT,INPUTLIST>[\n] { lineno++; }
>>
>> <VERS_START,VERS_NODE,VERS_SCRIPT>#.* { /* Eat up comments */ }
>>
>> --
>> 2.3.7
>
> Looks good to me. I think it counts as obvious.
>
> Thanks.
FWIW, I have
diff --git a/ld/ldlex.l b/ld/ldlex.l
index a19c5d6..e94cdb0 100644
--- a/ld/ldlex.l
+++ b/ld/ldlex.l
@@ -420,7 +420,7 @@ V_IDENTIFIER
[*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)*
yylval.name[yyleng - 2] = 0;
return NAME;
}
-<BOTH,SCRIPT,EXPRESSION>"\n" { lineno++;}
+<BOTH,SCRIPT,EXPRESSION,INPUTLIST>"\n" { lineno++;}
<MRI,BOTH,SCRIPT,EXPRESSION>[ \t\r]+ { }
<VERS_NODE,VERS_SCRIPT>[:,;] { return *yytext; }
They are equivalent.
--
H.J.
More information about the Binutils
mailing list