[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