diff options
author | Jakub Jelinek <jakub@redhat.com> | 2015-01-05 22:47:51 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2015-01-05 22:47:51 +0100 |
commit | fca4adf2095dfcd453ab32250984d85ff66bbd32 (patch) | |
tree | 71684c10bc82a08750e567f3a2526c6817160a6b /gcc/internal-fn.c | |
parent | e534110031564716a1e495a38bf8d893b23a5993 (diff) | |
download | gcc-fca4adf2095dfcd453ab32250984d85ff66bbd32.zip gcc-fca4adf2095dfcd453ab32250984d85ff66bbd32.tar.gz gcc-fca4adf2095dfcd453ab32250984d85ff66bbd32.tar.bz2 |
re PR sanitizer/64265 (r217669 broke tsan)
PR sanitizer/64265
* gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
call as cleanup of the whole body.
* internal-fn.def (TSAN_FUNC_EXIT): New internal call.
* tsan.c (replace_func_exit): New function.
(instrument_func_exit): Moved earlier.
(instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
been found.
(tsan_pass): Don't call instrument_func_exit.
* internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
* tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
inlining.
From-SVN: r219202
Diffstat (limited to 'gcc/internal-fn.c')
-rw-r--r-- | gcc/internal-fn.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/internal-fn.c b/gcc/internal-fn.c index 50f5694..50e3c51 100644 --- a/gcc/internal-fn.c +++ b/gcc/internal-fn.c @@ -208,6 +208,14 @@ expand_ASAN_CHECK (gcall *stmt ATTRIBUTE_UNUSED) gcc_unreachable (); } +/* This should get expanded in the tsan pass. */ + +static void +expand_TSAN_FUNC_EXIT (gcall *) +{ + gcc_unreachable (); +} + /* Helper function for expand_addsub_overflow. Return 1 if ARG interpreted as signed in its precision is known to be always positive or 2 if ARG is known to be always negative, or 3 if ARG may |