aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2019-10-31 11:04:47 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2019-10-31 11:04:47 +0100
commit6773658a809fbebcdb68483cb929207150ac7e5f (patch)
treec9817b2d821102662da597e911e8cc2ab92d9092 /gcc/tree.c
parent1297712fb4af6c6bfd827e0f0a9695b14669f87d (diff)
downloadgcc-6773658a809fbebcdb68483cb929207150ac7e5f.zip
gcc-6773658a809fbebcdb68483cb929207150ac7e5f.tar.gz
gcc-6773658a809fbebcdb68483cb929207150ac7e5f.tar.bz2
re PR middle-end/92231 (ICE in gimple_fold_stmt_to_constant_1)
PR middle-end/92231 * tree.h (fndecl_built_in_p): Use fndecl_built_in_p instead of DECL_BUILT_IN in comment. Remove redundant ()s around return argument. * tree.c (free_lang_data_in_decl): Check if var is FUNCTION_DECL before calling fndecl_built_in_p. * gimple-fold.c (gimple_fold_stmt_to_constant_1): Check if TREE_OPERAND (fn, 0) is a FUNCTION_DECL before calling fndecl_built_in_p on it. lto/ * lto-lang.c (handle_const_attribute): Don't call fndecl_built_in_p on *node that is not FUNCTION_DECL. testsuite/ * gcc.c-torture/compile/pr92231.c: New test. From-SVN: r277660
Diffstat (limited to 'gcc/tree.c')
-rw-r--r--gcc/tree.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree.c b/gcc/tree.c
index 3866804..741f7a2 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -5805,7 +5805,8 @@ free_lang_data_in_decl (tree decl, class free_lang_data_d *fld)
while (*nextp)
{
tree var = *nextp;
- if (fndecl_built_in_p (var))
+ if (TREE_CODE (var) == FUNCTION_DECL
+ && fndecl_built_in_p (var))
*nextp = TREE_CHAIN (var);
else
nextp = &TREE_CHAIN (var);