summaryrefslogtreecommitdiff
path: root/compiler-rt/test/ubsan_minimal/TestCases/test-darwin-interface.c
blob: 849401ef78741f4ca393526134d5d0f719ae6003 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Check that the ubsan and ubsan-minimal runtimes have the same symbols,
// making exceptions as necessary.
//
// REQUIRES: x86_64-darwin

// RUN: %clangxx_min_runtime -fsanitize-minimal-runtime -fsanitize=undefined %s -o %t '-###' 2>&1 | \
// RUN: grep "libclang_rt.ubsan_minimal_osx_dynamic.dylib" | \
// RUN: sed -e 's/.*"\(.*libclang_rt.ubsan_minimal_osx_dynamic.dylib\)".*/\1/' | \
// RUN: tr -d '\n' > %t.dylib_path1
// RUN: nm -jgU %{readfile:%t.dylib_path1} | grep "^___ubsan_handle" \
// RUN:  | sed 's/_minimal//g' \
// RUN:  > %t.minimal.symlist
//
// RUN: %clangxx_min_runtime -fno-sanitize-minimal-runtime -fsanitize=undefined %s -o %t '-###' 2>&1 | \
// RUN: grep "libclang_rt.ubsan_osx_dynamic.dylib" | \
// RUN: sed -e 's/.*"\(.*libclang_rt.ubsan_osx_dynamic.dylib\)".*/\1/' | \
// RUN: tr -d '\n' > %t.dylib_path2
// RUN: nm -jgU %{readfile:%t.dylib_path2} | 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