[test] Fix asan/TestCases/Linux/globals-gc-sections-lld.cpp with -fsanitize-address...
authorFangrui Song <i@maskray.me>
Sun, 6 Dec 2020 19:11:15 +0000 (11:11 -0800)
committerFangrui Song <i@maskray.me>
Sun, 6 Dec 2020 19:11:15 +0000 (11:11 -0800)
r302591 dropped -fsanitize-address-globals-dead-stripping for ELF platforms
(to work around a gold<2.27 bug: https://sourceware.org/bugzilla/show_bug.cgi?id=19002)

Upgrade REQUIRES: from lto (COMPILER_RT_TEST_USE_LLD (set by Android, but rarely used elsewhere)) to lto-available.

compiler-rt/test/asan/TestCases/Linux/globals-gc-sections-lld.cpp

index f6edc70..24dd1ae 100644 (file)
@@ -1,10 +1,11 @@
-// RUN: %clangxx_asan %s -o %t -Wl,--gc-sections -fuse-ld=lld -ffunction-sections -fdata-sections -mllvm -asan-globals=0
-// RUN: %clangxx_asan %s -o %t -Wl,--gc-sections -fuse-ld=lld -ffunction-sections -fdata-sections -mllvm -asan-globals=1
+/// Without instrumenting globals, --gc-sections drops the undefined symbol.
+// RUN: %clangxx_asan %s -o /dev/null -Wl,--gc-sections -fuse-ld=lld -ffunction-sections -fdata-sections -mllvm -asan-globals=0
+/// With -fsanitize-address-globals-dead-stripping and -fdata-sections, a garbage
+/// collectable custom metadata section is used for instrumented globals.
+// RUN: %clangxx_asan %s -o /dev/null -Wl,--gc-sections -fuse-ld=lld -ffunction-sections -fdata-sections -fsanitize-address-globals-dead-stripping
 
-// https://code.google.com/p/address-sanitizer/issues/detail?id=260
-// REQUIRES: lld
-// FIXME: This may pass on Android, with non-emulated-tls.
-// XFAIL: android
+// https://github.com/google/sanitizers/issues/260
+// REQUIRES: lld-available
 int undefined();
 
 // On i386 clang adds --export-dynamic when linking with ASan, which adds all