mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-19 17:18:24 +08:00
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.
This commit is contained in:
11
ld/ChangeLog
11
ld/ChangeLog
@ -1,3 +1,14 @@
|
|||||||
|
2017-10-09 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
2017-10-07 H.J. Lu <hongjiu.lu@intel.com>
|
2017-10-07 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
* testsuite/ld-elf/merge.d: Don't expect to fail for sparc.
|
* testsuite/ld-elf/merge.d: Don't expect to fail for sparc.
|
||||||
|
@ -94,6 +94,7 @@ static void lex_warn_invalid (char *where, char *what);
|
|||||||
CMDFILENAMECHAR [_a-zA-Z0-9\/\.\\_\+\$\:\[\]\\\,\=\&\!\<\>\-\~]
|
CMDFILENAMECHAR [_a-zA-Z0-9\/\.\\_\+\$\:\[\]\\\,\=\&\!\<\>\-\~]
|
||||||
CMDFILENAMECHAR1 [_a-zA-Z0-9\/\.\\_\+\$\:\[\]\\\,\=\&\!\<\>\~]
|
CMDFILENAMECHAR1 [_a-zA-Z0-9\/\.\\_\+\$\:\[\]\\\,\=\&\!\<\>\~]
|
||||||
FILENAMECHAR1 [_a-zA-Z\/\.\\\$\_\~]
|
FILENAMECHAR1 [_a-zA-Z\/\.\\\$\_\~]
|
||||||
|
SYMBOLNAMECHAR1 [_a-zA-Z\/\.\\\$\_]
|
||||||
SYMBOLCHARN [_a-zA-Z\/\.\\\$\_\~0-9]
|
SYMBOLCHARN [_a-zA-Z\/\.\\\$\_\~0-9]
|
||||||
FILENAMECHAR [_a-zA-Z0-9\/\.\-\_\+\=\$\:\[\]\\\,\~]
|
FILENAMECHAR [_a-zA-Z0-9\/\.\-\_\+\=\$\:\[\]\\\,\~]
|
||||||
WILDCHAR [_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>"+" { RTOKEN('+');}
|
<DEFSYMEXP>"+" { RTOKEN('+');}
|
||||||
<DEFSYMEXP>{FILENAMECHAR1}{SYMBOLCHARN}* { yylval.name = xstrdup (yytext); return NAME; }
|
<DEFSYMEXP>{SYMBOLNAMECHAR1}{SYMBOLCHARN}* { yylval.name = xstrdup (yytext); return NAME; }
|
||||||
<DEFSYMEXP>"=" { RTOKEN('='); }
|
<DEFSYMEXP>"=" { RTOKEN('='); }
|
||||||
|
|
||||||
<MRI,EXPRESSION>"$"([0-9A-Fa-f])+ {
|
<MRI,EXPRESSION>"$"([0-9A-Fa-f])+ {
|
||||||
@ -390,7 +391,7 @@ V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)*
|
|||||||
yylval.name = xstrdup (yytext + 2);
|
yylval.name = xstrdup (yytext + 2);
|
||||||
return LNAME;
|
return LNAME;
|
||||||
}
|
}
|
||||||
<EXPRESSION>{FILENAMECHAR1}{NOCFILENAMECHAR}* {
|
<EXPRESSION>{SYMBOLNAMECHAR1}{NOCFILENAMECHAR}* {
|
||||||
yylval.name = xstrdup (yytext);
|
yylval.name = xstrdup (yytext);
|
||||||
return NAME;
|
return NAME;
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,7 @@ run_dump_test sane1
|
|||||||
run_dump_test assign-loc
|
run_dump_test assign-loc
|
||||||
run_dump_test pr14962
|
run_dump_test pr14962
|
||||||
run_dump_test pr14962-2
|
run_dump_test pr14962-2
|
||||||
|
run_dump_test pr22267
|
||||||
|
|
||||||
set old_ldflags $LDFLAGS
|
set old_ldflags $LDFLAGS
|
||||||
if { [istarget spu*-*-*] } {
|
if { [istarget spu*-*-*] } {
|
||||||
|
7
ld/testsuite/ld-scripts/pr22267.d
Normal file
7
ld/testsuite/ld-scripts/pr22267.d
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#ld: -T pr22267.t
|
||||||
|
#nm: -n
|
||||||
|
|
||||||
|
# Some targets may zero-extend 32-bit address to 64 bits.
|
||||||
|
#...
|
||||||
|
0*f+00 A foo
|
||||||
|
#pass
|
10
ld/testsuite/ld-scripts/pr22267.s
Normal file
10
ld/testsuite/ld-scripts/pr22267.s
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
.globl main
|
||||||
|
.globl start
|
||||||
|
.globl _start
|
||||||
|
.globl __start
|
||||||
|
.text
|
||||||
|
main:
|
||||||
|
start:
|
||||||
|
_start:
|
||||||
|
__start:
|
||||||
|
.dc.a foo
|
4
ld/testsuite/ld-scripts/pr22267.t
Normal file
4
ld/testsuite/ld-scripts/pr22267.t
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
SECTIONS
|
||||||
|
{
|
||||||
|
foo = ~0xFF;
|
||||||
|
}
|
Reference in New Issue
Block a user