[llvm-branch-commits] [compiler-rt] dde44f4 - [test] Fix asan/TestCases/Posix/lto-constmerge-odr.cpp when 'binutils_lto' is avaiable
Fangrui Song via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Sun Dec 6 10:35:56 PST 2020
Author: Fangrui Song
Date: 2020-12-06T10:31:40-08:00
New Revision: dde44f488c454b71d77ac022642b8711a8c340ca
URL: https://github.com/llvm/llvm-project/commit/dde44f488c454b71d77ac022642b8711a8c340ca
DIFF: https://github.com/llvm/llvm-project/commit/dde44f488c454b71d77ac022642b8711a8c340ca.diff
LOG: [test] Fix asan/TestCases/Posix/lto-constmerge-odr.cpp when 'binutils_lto' is avaiable
If COMPILER_RT_TEST_USE_LLD is not set, config.use_lld will be False.
However, if feature 'binutils_lto' is available, lto_supported can still be True,
but config.target_cflags will not get -fuse-ld=lld from config.lto_flags
As a result, we may use clang -flto with system 'ld' which may not support the bitcode file, e.g.
ld: error: /tmp/lto-constmerge-odr-44a1ee.o: Unknown attribute kind (70) (Producer: 'LLVM12.0.0git' Reader: 'LLVM 12.0.0git')
// The system ld+LLVMgold.so do not support ATTR_KIND_MUSTPROGRESS (70).
Just require lld-available and add -fuse-ld=lld.
Added:
Modified:
compiler-rt/test/asan/TestCases/Posix/lto-constmerge-odr.cpp
Removed:
################################################################################
diff --git a/compiler-rt/test/asan/TestCases/Posix/lto-constmerge-odr.cpp b/compiler-rt/test/asan/TestCases/Posix/lto-constmerge-odr.cpp
index 9dc1397f6f0e..1370b5a8b136 100644
--- a/compiler-rt/test/asan/TestCases/Posix/lto-constmerge-odr.cpp
+++ b/compiler-rt/test/asan/TestCases/Posix/lto-constmerge-odr.cpp
@@ -1,7 +1,9 @@
-// RUN: %clangxx_asan -O3 -flto %s -o %t
+/// Instrumented globals are added to llvm.compiler.used, so LTO will not const
+/// merge them (which will cause spurious ODR violation).
+// RUN: %clangxx_asan -O3 -fuse-ld=lld -flto %s -o %t
// RUN: %run %t 2>&1
-// REQUIRES: lto
+// REQUIRES: lld-available, lto
int main(int argc, const char * argv[]) {
struct { long width, height; } a = {16, 16};
More information about the llvm-branch-commits
mailing list