[PATCH] D91620: [compiler-rt][test] Heed COMPILER_RT_DEBUG when compiling unittests

Rainer Orth via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 18 06:04:02 PST 2020


ro added inline comments.


================
Comment at: compiler-rt/lib/asan/tests/CMakeLists.txt:43
+if(COMPILER_RT_TEST_COMPILER_ID MATCHES "Clang" AND NOT COMPILER_RT_DEBUG)
   list(APPEND ASAN_UNITTEST_COMMON_CFLAGS -gline-tables-only)
+elseif(COMPILER_RT_DEBUG)
----------------
vitalybuka wrote:
> why do we need this after list(APPEND COMPILER_RT_TEST_COMPILER_CFLAGS -gline-tables-only) above
AFAICS `COMPILER_RT_TEST_COMPILER_CFLAGS` is only used in `compiler-rt/test/*` (via `get_test_cc_for_arch`) whereas `ASAN_UNITTEST_COMMON_CFLAGS` is used in `compiler-rt/lib/asan/test`.  Pretty confusing IMO ;-)


================
Comment at: compiler-rt/lib/sanitizer_common/tests/sanitizer_stacktrace_test.cpp:71
 
+void BufferedStackTrace::UnwindImpl(uptr, uptr, void *, bool, u32) {
+}
----------------
vitalybuka wrote:
> why it's here?
Without it, e.g. `Sanitizer-sparc-Test` fails to link at `g3 -O0`:
```
Undefined			first referenced
 symbol  			    in file
_ZN11__sanitizer18BufferedStackTrace10UnwindImplEmmPvbj SANITIZER_TEST_OBJECTS.sanitizer_stacktrace_test.cpp.sparc.o
```
Every user of `BufferedStackStrace::Unwind` needs to provide its own implementation of `UnwindImpl`, e.g. in `asan_stack.cpp`.  However, that's not appropriate in `sanitizer_common`, thus I chose to place it in the test case that triggers the use.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D91620/new/

https://reviews.llvm.org/D91620



More information about the llvm-commits mailing list