[lld] dbd65a0 - [ELF] OUTPUT_ARCH: report unclosed error

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Sat Jul 27 16:52:52 PDT 2024


Author: Fangrui Song
Date: 2024-07-27T16:52:47-07:00
New Revision: dbd65a07f212c6e85059b12ae3359942fcaee292

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

LOG: [ELF] OUTPUT_ARCH: report unclosed error

Added: 
    

Modified: 
    lld/ELF/ScriptParser.cpp
    lld/test/ELF/linkerscript/outputarch.test

Removed: 
    


################################################################################
diff  --git a/lld/ELF/ScriptParser.cpp b/lld/ELF/ScriptParser.cpp
index bdde862db819e..1b218fc95e6ae 100644
--- a/lld/ELF/ScriptParser.cpp
+++ b/lld/ELF/ScriptParser.cpp
@@ -444,7 +444,7 @@ void ScriptParser::readOutput() {
 void ScriptParser::readOutputArch() {
   // OUTPUT_ARCH is ignored for now.
   expect("(");
-  while (next() != ")" && !atEOF())
+  while (till(")"))
     ;
 }
 

diff  --git a/lld/test/ELF/linkerscript/outputarch.test b/lld/test/ELF/linkerscript/outputarch.test
index 4819a983cfce8..982e55ac3b2ff 100644
--- a/lld/test/ELF/linkerscript/outputarch.test
+++ b/lld/test/ELF/linkerscript/outputarch.test
@@ -1,5 +1,13 @@
 # REQUIRES: x86
-# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-freebsd /dev/null -o %t1
-# RUN: ld.lld -shared -o %t2 %t1 %s
+# RUN: rm -rf %t && split-file %s %t && cd %t
+# RUN: llvm-mc -filetype=obj -triple=x86_64 /dev/null -o a.o
+# RUN: ld.lld -shared -T 1.lds a.o
 
+#--- 1.lds
 OUTPUT_ARCH(All data written here is ignored)
+
+#--- unclosed.lds
+OUTPUT_ARCH(All
+
+# RUN: not ld.lld -shared -T unclosed.lds a.o 2>&1 | FileCheck %s --check-prefix=UNCLOSED
+# UNCLOSED: error: unclosed.lds:1: unexpected EOF


        


More information about the llvm-commits mailing list