summaryrefslogtreecommitdiff
path: root/contrib/clang
diff options
context:
space:
mode:
authorteor <teor2345@gmail.com>2015-06-11 00:59:04 +1000
committerteor <teor2345@gmail.com>2015-06-11 00:59:04 +1000
commit3879c1016270ce319eb001732b72dc7d2144b74c (patch)
treee4f9dd0e0fb884c6874bdb9288bfbc7b4c032167 /contrib/clang
parent7f3b15a8ec119f696f666dc2d98e25d71c69e19c (diff)
downloadtor-3879c1016270ce319eb001732b72dc7d2144b74c.tar.gz
tor-3879c1016270ce319eb001732b72dc7d2144b74c.zip
Tweak clang sanitizer blacklist for out-of-tree builds, make, ccache
Avoid using file names and file paths for compatibility with out-of-tree builds. Note make and ccache don't track blacklist dependencies, add workarounds.
Diffstat (limited to 'contrib/clang')
-rw-r--r--contrib/clang/sanitize_blacklist.txt21
1 files changed, 12 insertions, 9 deletions
diff --git a/contrib/clang/sanitize_blacklist.txt b/contrib/clang/sanitize_blacklist.txt
index d4f6cf6298..03d1e70f31 100644
--- a/contrib/clang/sanitize_blacklist.txt
+++ b/contrib/clang/sanitize_blacklist.txt
@@ -29,6 +29,9 @@
# It has not been tested with ThreadSanitizer or MemorySanitizer
# Success report and patches for other sanitizers or OSs are welcome
+# ccache and make don't account for the sanitizer blacklist as a dependency
+# you might need to set CCACHE_DISABLE=1 and/or use make clean to workaround
+
# Configuration Flags:
# -fno-sanitize-recover=all
# causes clang to crash on undefined behavior, rather than printing
@@ -67,23 +70,23 @@
# Blacklist Entries:
+# test-memwipe.c checks if a freed buffer was properly wiped
+fun:vmemeq
+fun:check_a_buffer
+
# we need to allow the tor bt handler to catch SIGSEGV
# otherwise address sanitizer munges the expected output and the test fails
# we can do this by setting an environmental variable
# See https://code.google.com/p/address-sanitizer/wiki/Flags
# ASAN_OPTIONS=allow_user_segv_handler=1
-# test-memwipe.c checks if a freed buffer was properly wiped
-fun:vmemeq
-fun:check_a_buffer
-
# test_bt_cl.c stores to a NULL pointer to trigger a crash
fun:crash
# curve25519-donna.c left-shifts 1 bits into and past the sign bit of signed
-# integers. Until #13538 is resolved, we can exempt the entire file from all
-# analysis under clang's undefined behavior sanitizer.
-# This may be overkill, but it works, and is easier than listing every
-# function in the file.
+# integers. Until #13538 is resolved, we exempt functions that do left shifts.
# Note that x86_64 uses curve25519-donna-c64.c instead of curve25519-donna.c
-src:src/ext/curve25519_donna/curve25519-donna.c
+fun:freduce_coefficients
+fun:freduce_degree
+fun:s32_eq
+fun:fcontract