[compiler-rt] r313615 - [ubsan-minimal] Test exported symbol set against RTUBsan
Vedant Kumar via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 18 23:46:36 PDT 2017
Author: vedantk
Date: Mon Sep 18 23:46:36 2017
New Revision: 313615
URL: http://llvm.org/viewvc/llvm-project?rev=313615&view=rev
Log:
[ubsan-minimal] Test exported symbol set against RTUBsan
Check that the symbol sets exported by the minimal runtime and the full
runtime match (making exceptions for special cases as needed).
This test uses some possibly non-standard nm options, and needs to
inspect the symbols in runtime dylibs. I haven't found a portable way to
do this, so it's limited to x86-64/Darwin for now.
Added:
compiler-rt/trunk/test/ubsan_minimal/TestCases/test-darwin-interface.c
Added: compiler-rt/trunk/test/ubsan_minimal/TestCases/test-darwin-interface.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/ubsan_minimal/TestCases/test-darwin-interface.c?rev=313615&view=auto
==============================================================================
--- compiler-rt/trunk/test/ubsan_minimal/TestCases/test-darwin-interface.c (added)
+++ compiler-rt/trunk/test/ubsan_minimal/TestCases/test-darwin-interface.c Mon Sep 18 23:46:36 2017
@@ -0,0 +1,16 @@
+// Check that the ubsan and ubsan-minimal runtimes have the same symbols,
+// making exceptions as necessary.
+//
+// REQUIRES: x86_64-darwin
+
+// RUN: nm -jgU `%clangxx -fsanitize-minimal-runtime -fsanitize=undefined %s -o %t '-###' 2>&1 | grep "libclang_rt.ubsan_minimal_osx_dynamic.dylib" | sed -e 's/.*"\(.*libclang_rt.ubsan_minimal_osx_dynamic.dylib\)".*/\1/'` | grep "^___ubsan_handle" \
+// RUN: | sed 's/_minimal//g' \
+// RUN: > %t.minimal.symlist
+//
+// RUN: nm -jgU `%clangxx -fno-sanitize-minimal-runtime -fsanitize=undefined %s -o %t '-###' 2>&1 | grep "libclang_rt.ubsan_osx_dynamic.dylib" | sed -e 's/.*"\(.*libclang_rt.ubsan_osx_dynamic.dylib\)".*/\1/'` | grep "^___ubsan_handle" \
+// RUN: | grep -vE "^___ubsan_handle_dynamic_type_cache_miss" \
+// RUN: | grep -vE "^___ubsan_handle_cfi_bad_type" \
+// RUN: | sed 's/_v1//g' \
+// RUN: > %t.full.symlist
+//
+// RUN: diff %t.minimal.symlist %t.full.symlist
More information about the llvm-commits
mailing list