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 '/'.
	(<EXPRESSION>"/DISCARD/"): New.
This commit is contained in:
Alan Modra 2019-04-03 11:21:36 +10:30
parent 092da96ac4
commit 1c6aafe894
2 changed files with 11 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2019-04-03 Alan Modra <amodra@gmail.com>
PR 24411
ldlex.l (SYMBOLNAMECHAR1): Don't match '/'.
(<EXPRESSION>"/DISCARD/"): New.
2019-04-03 Alan Modra <amodra@gmail.com>
* ldlex.l: Formatting.

View File

@ -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;
}
<EXPRESSION>"/DISCARD/" {
yylval.name = xstrdup (yytext);
return NAME;
}
<EXPRESSION>"-l"{NOCFILENAMECHAR}+ {
yylval.name = xstrdup (yytext + 2);
return LNAME;