[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