]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/sanopt.c
re PR sanitizer/63839 (ICE: tree check: expected ssa_name, have var_decl in simplify_...
authorMarek Polacek <polacek@redhat.com>
Fri, 14 Nov 2014 11:22:12 +0000 (11:22 +0000)
committerMarek Polacek <mpolacek@gcc.gnu.org>
Fri, 14 Nov 2014 11:22:12 +0000 (11:22 +0000)
commit4088b790cc40b0fbcf12bafd1e3ef822c976a702
treef5208d057eaf4ec81d4adff4f52bce7cd091e6de
parentba067536a7c03b18bb8dcb5bdf3126d2997dafda
re PR sanitizer/63839 (ICE: tree check: expected ssa_name, have var_decl in simplify_builtin_call, at tree-ssa-forwprop.c:1441 with -fsanitize=unreachable)

PR sanitizer/63839
* asan.c (ATTR_CONST_NORETURN_NOTHROW_LEAF_LIST,
ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST): Define.
* builtin-attrs.def (ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST):
Define.
* builtins.c (fold_builtin_0): Don't include ubsan.h.  Don't
instrument BUILT_IN_UNREACHABLE here.
* sanitizer.def (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Make
const.
* sanopt.c (pass_sanopt::execute): Instrument BUILT_IN_UNREACHABLE.
* tree-ssa-ccp.c (optimize_unreachable): Bail out if
SANITIZE_UNREACHABLE.
* ubsan.c (ubsan_instrument_unreachable): Rewrite for GIMPLE.
* ubsan.h (ubsan_instrument_unreachable): Adjust declaration.
testsuite/
* c-c++-common/ubsan/pr63839.c: New test.
* c-c++-common/ubsan/unreachable-2.c: New test.

From-SVN: r217553
12 files changed:
gcc/ChangeLog
gcc/asan.c
gcc/builtin-attrs.def
gcc/builtins.c
gcc/sanitizer.def
gcc/sanopt.c
gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/ubsan/pr63839.c [new file with mode: 0644]
gcc/testsuite/c-c++-common/ubsan/unreachable-2.c [new file with mode: 0644]
gcc/tree-ssa-ccp.c
gcc/ubsan.c
gcc/ubsan.h