summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFangrui Song <maskray@google.com>2019-09-06 16:30:22 +0000
committerFangrui Song <maskray@google.com>2019-09-06 16:30:22 +0000
commit2682bc3c9d1ec7da324bedfa46fce537797b5a49 (patch)
tree82b94ce1edc55c4e68ebbc4c256805baa88416ca
parent52614dfc7fd09d3de608068415eaa632c21c661d (diff)
downloadbcm5719-llvm-2682bc3c9d1ec7da324bedfa46fce537797b5a49.tar.gz
bcm5719-llvm-2682bc3c9d1ec7da324bedfa46fce537797b5a49.zip
[ELF] Replace error() with errorOrWarn() for the ASSERT command
Summary: ld.bfd produces an output with --noinhibit-exec when an ASSERT fails. Use errorOrWarn() so that we can produce an output as well. An interesting case is that symbol assignments may execute multiple times, so we probably want to suppress errors for non-final runs. Reviewed By: peter.smith Differential Revision: https://reviews.llvm.org/D67285 llvm-svn: 371225
-rw-r--r--lld/ELF/ScriptParser.cpp2
-rw-r--r--lld/test/ELF/linkerscript/assert.s4
2 files changed, 3 insertions, 3 deletions
diff --git a/lld/ELF/ScriptParser.cpp b/lld/ELF/ScriptParser.cpp
index 40c993df550..9ada28ca13e 100644
--- a/lld/ELF/ScriptParser.cpp
+++ b/lld/ELF/ScriptParser.cpp
@@ -720,7 +720,7 @@ Expr ScriptParser::readAssert() {
return [=] {
if (!e().getValue())
- error(msg);
+ errorOrWarn(msg);
return script->getDot();
};
}
diff --git a/lld/test/ELF/linkerscript/assert.s b/lld/test/ELF/linkerscript/assert.s
index f7113e5b25f..b1ca86e848c 100644
--- a/lld/test/ELF/linkerscript/assert.s
+++ b/lld/test/ELF/linkerscript/assert.s
@@ -6,8 +6,8 @@
# RUN: llvm-readobj %t1 > /dev/null
# RUN: echo "SECTIONS { ASSERT(0, fail) }" > %t3.script
-# RUN: not ld.lld -shared -o /dev/null --script %t3.script %t1.o > %t.log 2>&1
-# RUN: FileCheck %s -check-prefix=FAIL < %t.log
+# RUN: not ld.lld -o /dev/null -T %t3.script %t1.o 2>&1 | FileCheck --check-prefix=FAIL %s
+# RUN: ld.lld -o /dev/null -T %t3.script %t1.o --noinhibit-exec 2>&1 | FileCheck --check-prefix=FAIL %s
# FAIL: fail
# RUN: echo "SECTIONS { . = ASSERT(0x1000, fail); }" > %t4.script
OpenPOWER on IntegriCloud