aboutsummaryrefslogtreecommitdiff
path: root/gcc/ubsan.c
diff options
context:
space:
mode:
authorMarek Polacek <polacek@redhat.com>2014-12-01 15:29:11 +0000
committerMarek Polacek <mpolacek@gcc.gnu.org>2014-12-01 15:29:11 +0000
commit0b274c179f478df449d66bd0707cb9aa05dcafed (patch)
treeab16ac18207414d807131a6cc0d31d9904341699 /gcc/ubsan.c
parente42c407c8ad2b2bf30fdfab1f7cb6948f1949f38 (diff)
downloadgcc-0b274c179f478df449d66bd0707cb9aa05dcafed.zip
gcc-0b274c179f478df449d66bd0707cb9aa05dcafed.tar.gz
gcc-0b274c179f478df449d66bd0707cb9aa05dcafed.tar.bz2
re PR sanitizer/63956 ([UBSAN] ICE segfault in cxx_eval_call_expression ../../gcc/cp/constexpr.c)
PR sanitizer/63956 * ubsan.c (is_ubsan_builtin_p): Check also built-in class. cp/ * constexpr.c: Include ubsan.h. (cxx_eval_call_expression): Bail out for IFN_UBSAN_{NULL,BOUNDS} internal functions and for ubsan builtins. * error.c: Include internal-fn.h. (dump_expr): Add printing of internal functions. testsuite/ * c-c++-common/ubsan/shift-5.c: Add xfails. * g++.dg/ubsan/div-by-zero-1.C: Don't use -w. Add xfail. * g++.dg/ubsan/pr63956.C: New test. From-SVN: r218221
Diffstat (limited to 'gcc/ubsan.c')
-rw-r--r--gcc/ubsan.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/ubsan.c b/gcc/ubsan.c
index 6d3caee..cff0982 100644
--- a/gcc/ubsan.c
+++ b/gcc/ubsan.c
@@ -653,6 +653,7 @@ bool
is_ubsan_builtin_p (tree t)
{
return TREE_CODE (t) == FUNCTION_DECL
+ && DECL_BUILT_IN_CLASS (t) == BUILT_IN_NORMAL
&& strncmp (IDENTIFIER_POINTER (DECL_NAME (t)),
"__builtin___ubsan_", 18) == 0;
}