mirror of
https://github.com/intel/llvm.git
synced 2026-01-30 05:55:35 +08:00
[ELF] Support symbol names with space in linker script expressions
Fix PR51961 Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D110490
This commit is contained in:
@@ -1429,8 +1429,9 @@ Expr ScriptParser::readPrimary() {
|
||||
return [=] { return *val; };
|
||||
|
||||
// Tok is a symbol name.
|
||||
tok = unquote(tok);
|
||||
if (!isValidSymbolName(tok))
|
||||
if (tok.startswith("\""))
|
||||
tok = unquote(tok);
|
||||
else if (!isValidSymbolName(tok))
|
||||
setError("malformed number: " + tok);
|
||||
script->referencedSymbols.push_back(tok);
|
||||
return [=] { return script->getSymbolValue(tok, location); };
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# REQUIRES: x86
|
||||
## Test that ., $ and " can be used by symbol names in expressions.
|
||||
## Test that ., $, space and " can be used by symbol names in expressions.
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=x86_64 /dev/null -o %t.o
|
||||
# RUN: ld.lld -T %s %t.o -o %t
|
||||
@@ -8,8 +8,10 @@
|
||||
# CHECK: Value Size Type Bind Vis Ndx Name
|
||||
# CHECK-DAG: 0000000000000000 0 NOTYPE GLOBAL DEFAULT ABS a1
|
||||
# CHECK-DAG: 0000000000000000 0 NOTYPE GLOBAL DEFAULT ABS a0
|
||||
# CHECK-DAG: 0000000000000003 0 NOTYPE GLOBAL DEFAULT ABS a2
|
||||
# CHECK-DAG: 0000000000000003 0 NOTYPE GLOBAL DEFAULT ABS a 2
|
||||
# CHECK-DAG: 0000000000000004 0 NOTYPE GLOBAL DEFAULT ABS a 3
|
||||
|
||||
a0 = DEFINED(.TOC.) ? .TOC. : 0;
|
||||
"a1" = DEFINED(__global_pointer$) ? __global_pointer$ : 0;
|
||||
"a2" = DEFINED("a1") ? "a1" + 3 : 0;
|
||||
"a 2" = DEFINED("a1") ? "a1" + 3 : 0;
|
||||
"a 3" = "a 2" + 1;
|
||||
|
||||
Reference in New Issue
Block a user