[lld] 4cb05dc - [ELF] Support quoted name in the TARGET command

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Sat Jun 25 12:31:25 PDT 2022


Author: Fangrui Song
Date: 2022-06-25T12:31:20-07:00
New Revision: 4cb05dc3cbf39b1729f06dd9251012665fad00d0

URL: https://github.com/llvm/llvm-project/commit/4cb05dc3cbf39b1729f06dd9251012665fad00d0
DIFF: https://github.com/llvm/llvm-project/commit/4cb05dc3cbf39b1729f06dd9251012665fad00d0.diff

LOG: [ELF] Support quoted name in the TARGET command

Added: 
    

Modified: 
    lld/ELF/ScriptParser.cpp
    lld/test/ELF/linkerscript/target.s

Removed: 
    


################################################################################
diff  --git a/lld/ELF/ScriptParser.cpp b/lld/ELF/ScriptParser.cpp
index 93988542d3bc8..00a2841ac6810 100644
--- a/lld/ELF/ScriptParser.cpp
+++ b/lld/ELF/ScriptParser.cpp
@@ -623,7 +623,7 @@ void ScriptParser::readTarget() {
   // for --format. We recognize only /^elf/ and "binary" in the linker
   // script as well.
   expect("(");
-  StringRef tok = next();
+  StringRef tok = unquote(next());
   expect(")");
 
   if (tok.startswith("elf"))

diff  --git a/lld/test/ELF/linkerscript/target.s b/lld/test/ELF/linkerscript/target.s
index 783bb8f90e701..6ffb561703a48 100644
--- a/lld/test/ELF/linkerscript/target.s
+++ b/lld/test/ELF/linkerscript/target.s
@@ -4,9 +4,12 @@
 # RUN: echo "TARGET(binary) INPUT(\"%t.o\") TARGET(elf64-x86-64) INPUT(\"%t.o\")" > %t.script
 # RUN: ld.lld --script %t.script -o %t.exe
 # RUN: llvm-readelf -s %t.exe | FileCheck %s
+# RUN: echo 'TARGET("elf64-x86-64") INPUT("%t.o") TARGET("binary") INPUT("%t.o")' > %t.script
+# RUN: ld.lld -T %t.script -o %t
+# RUN: llvm-readelf -s %t | FileCheck %s
 
-# CHECK: _binary_
-# CHECK: foobar
+# CHECK-DAG: [[#]] _binary_
+# CHECK-DAG: [[#]] foobar
 
 # RUN: echo "TARGET(foo)" > %t2.script
 # RUN: not ld.lld --script %t2.script -o /dev/null 2>&1 | FileCheck -check-prefix=ERR %s


        


More information about the llvm-commits mailing list