diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2017-10-09 04:17:10 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2017-10-09 04:17:24 -0700 |
commit | 76f361eb4934dcda0626517c311b34fbc92d09b9 (patch) | |
tree | d143cd18021208ec0d2365bf8c3b4134ead314fc /ld/ldlex.l | |
parent | 5d3b558acd329de9dcbd63d9bb04242b31fad490 (diff) | |
download | gdb-76f361eb4934dcda0626517c311b34fbc92d09b9.zip gdb-76f361eb4934dcda0626517c311b34fbc92d09b9.tar.gz gdb-76f361eb4934dcda0626517c311b34fbc92d09b9.tar.bz2 |
ld: Don't allow '~' as the first char in symbol name
Don't allow '~' as the first character in symbol name in linker script.
PR ld/22267
* ldlex.l (SYMBOLNAMECHAR1) New.
(DEFSYMEXP): Replace FILENAMECHAR1 with SYMBOLNAMECHAR1.
(EXPRESSION): Likewise.
* testsuite/ld-scripts/expr.exp: Run pr22267.
* testsuite/ld-scripts/pr22267.d: New file.
* testsuite/ld-scripts/pr22267.s: Likewise.
* testsuite/ld-scripts/pr22267.t: Likewise.
Diffstat (limited to 'ld/ldlex.l')
-rw-r--r-- | ld/ldlex.l | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -94,6 +94,7 @@ static void lex_warn_invalid (char *where, char *what); CMDFILENAMECHAR [_a-zA-Z0-9\/\.\\_\+\$\:\[\]\\\,\=\&\!\<\>\-\~] CMDFILENAMECHAR1 [_a-zA-Z0-9\/\.\\_\+\$\:\[\]\\\,\=\&\!\<\>\~] FILENAMECHAR1 [_a-zA-Z\/\.\\\$\_\~] +SYMBOLNAMECHAR1 [_a-zA-Z\/\.\\\$\_] SYMBOLCHARN [_a-zA-Z\/\.\\\$\_\~0-9] FILENAMECHAR [_a-zA-Z0-9\/\.\-\_\+\=\$\:\[\]\\\,\~] WILDCHAR [_a-zA-Z0-9\/\.\-\_\+\=\$\:\[\]\\\,\~\?\*\^\!] @@ -136,7 +137,7 @@ V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)* <DEFSYMEXP>"-" { RTOKEN('-');} <DEFSYMEXP>"+" { RTOKEN('+');} -<DEFSYMEXP>{FILENAMECHAR1}{SYMBOLCHARN}* { yylval.name = xstrdup (yytext); return NAME; } +<DEFSYMEXP>{SYMBOLNAMECHAR1}{SYMBOLCHARN}* { yylval.name = xstrdup (yytext); return NAME; } <DEFSYMEXP>"=" { RTOKEN('='); } <MRI,EXPRESSION>"$"([0-9A-Fa-f])+ { @@ -390,7 +391,7 @@ V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)* yylval.name = xstrdup (yytext + 2); return LNAME; } -<EXPRESSION>{FILENAMECHAR1}{NOCFILENAMECHAR}* { +<EXPRESSION>{SYMBOLNAMECHAR1}{NOCFILENAMECHAR}* { yylval.name = xstrdup (yytext); return NAME; } |