From 1c6aafe894645ca1da5c0dd0661bca19caf37ad0 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Wed, 3 Apr 2019 11:21:36 +1030 Subject: [PATCH] PR24411, Division is not accepted in MEMORY length expression Let's hope no one has section names starting with '/' in scripts. If they do, this change to fix parsing of '/' in expressiongs will break their project. PR 24411 ldlex.l (SYMBOLNAMECHAR1): Don't match '/'. ("/DISCARD/"): New. --- ld/ChangeLog | 6 ++++++ ld/ldlex.l | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index 851bffb..bc35b34 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,5 +1,11 @@ 2019-04-03 Alan Modra + PR 24411 + ldlex.l (SYMBOLNAMECHAR1): Don't match '/'. + ("/DISCARD/"): New. + +2019-04-03 Alan Modra + * ldlex.l: Formatting. (CMDFILENAMECHAR, CMDFILENAMECHAR1): Delete. (FILENAMECHAR1, SYMBOLNAMECHAR1, FILENAMECHAR, WILDCHAR), diff --git a/ld/ldlex.l b/ld/ldlex.l index 6e73a7f..c2abc59 100644 --- a/ld/ldlex.l +++ b/ld/ldlex.l @@ -96,7 +96,7 @@ FILENAMECHAR [_a-zA-Z0-9\/\.\\\$\~\-\+\:\[\]\,\=] NOCFILENAMECHAR [_a-zA-Z0-9\/\.\\\$\~\-\+\:\[\]] SYMBOLNAMECHAR [_a-zA-Z0-9\/\.\\\$\~] FILENAMECHAR1 [_a-zA-Z\/\.\\\$\~] -SYMBOLNAMECHAR1 [_a-zA-Z\/\.\\\$] +SYMBOLNAMECHAR1 [_a-zA-Z\.\\\$] WHITE [ \t\n\r]+ V_TAG [.$_a-zA-Z][._a-zA-Z0-9]* @@ -388,6 +388,10 @@ V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)* yylval.name = xstrdup (yytext); return NAME; } +"/DISCARD/" { + yylval.name = xstrdup (yytext); + return NAME; + } "-l"{NOCFILENAMECHAR}+ { yylval.name = xstrdup (yytext + 2); return LNAME; -- 2.7.4