[compiler-rt] f8da95c - [compiler-rt] Add shared_cxxabi requirement to some tests
Leonard Chan via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 24 11:53:02 PDT 2021
Author: Leonard Chan
Date: 2021-09-24T11:51:26-07:00
New Revision: f8da95cd7e68ea66010843ef44adbe8d2807170c
URL: https://github.com/llvm/llvm-project/commit/f8da95cd7e68ea66010843ef44adbe8d2807170c
DIFF: https://github.com/llvm/llvm-project/commit/f8da95cd7e68ea66010843ef44adbe8d2807170c.diff
LOG: [compiler-rt] Add shared_cxxabi requirement to some tests
This adds REQUIRES: shared_cxxabi to a bunch of tests that would fail if this
weak reference in sanitizer common was undefined. This is necessary in cases
where libc++abi.a is statically linked in. Because there is no strong reference
to __cxa_demangle in compiler-rt, then if libc++abi is linked in via a static
archive, then the linker will not extract the archive member that would define
that weak symbol. This causes a handful of tests to fail because this leads to
the symbolizer printing mangled symbols where tests expect them demangled.
Technically, this feature is WAI since sanitizer runtimes shouldn't fail if
this symbol isn't resolved, and linking statically means you wouldn't need to
link in all of libc++abi. As a workaround, we can simply make it a requirement
that these tests use shared libc++abis.
Differential Revision: https://reviews.llvm.org/D109639
Added:
Modified:
compiler-rt/test/asan/TestCases/Linux/odr-vtable.cpp
compiler-rt/test/ubsan/TestCases/TypeCheck/vptr-virtual-base.cpp
Removed:
################################################################################
diff --git a/compiler-rt/test/asan/TestCases/Linux/odr-vtable.cpp b/compiler-rt/test/asan/TestCases/Linux/odr-vtable.cpp
index 56f71b79288f9..aabecf29cc810 100644
--- a/compiler-rt/test/asan/TestCases/Linux/odr-vtable.cpp
+++ b/compiler-rt/test/asan/TestCases/Linux/odr-vtable.cpp
@@ -1,6 +1,8 @@
// Fails with debug checks: https://bugs.llvm.org/show_bug.cgi?id=46862
// XFAIL: !compiler-rt-optimized && !riscv64
+// REQUIRES: shared_cxxabi
+
/// Not using private alias or enabling ODR indicator can detect ODR issues.
// RUN: %clangxx_asan -fno-rtti -DBUILD_SO1 -fPIC -shared -mllvm -asan-use-private-alias=0 %s -o %dynamiclib1
// RUN: %clangxx_asan -fno-rtti -DBUILD_SO2 -fPIC -shared -mllvm -asan-use-private-alias=0 %s -o %dynamiclib2
diff --git a/compiler-rt/test/ubsan/TestCases/TypeCheck/vptr-virtual-base.cpp b/compiler-rt/test/ubsan/TestCases/TypeCheck/vptr-virtual-base.cpp
index 925373bdee1f6..fa0c6a73881b6 100644
--- a/compiler-rt/test/ubsan/TestCases/TypeCheck/vptr-virtual-base.cpp
+++ b/compiler-rt/test/ubsan/TestCases/TypeCheck/vptr-virtual-base.cpp
@@ -1,6 +1,7 @@
// RUN: %clangxx -frtti -fsanitize=null,vptr -fno-sanitize-recover=vptr -g %s -O3 -o %t
// RUN: not %run %t 2>&1 | FileCheck %s
+// REQUIRES: shared_cxxabi
// REQUIRES: cxxabi
// UNSUPPORTED: windows-msvc
// Nested crash reported
More information about the llvm-commits
mailing list