From 1c6aafe894645ca1da5c0dd0661bca19caf37ad0 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Wed, 3 Apr 2019 11:21:36 +1030 Subject: 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/ldlex.l | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'ld/ldlex.l') 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; -- cgit v1.1