aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple-fold.c
diff options
context:
space:
mode:
authorMarek Polacek <polacek@redhat.com>2016-05-27 12:08:03 +0000
committerMarek Polacek <mpolacek@gcc.gnu.org>2016-05-27 12:08:03 +0000
commit3cee7e4e2badde2374fc77bb8f3a072e1698d1fe (patch)
treec24dc36f07c388a6b4104094fe4e3af8ce613c44 /gcc/gimple-fold.c
parent3168e073cbed6698c035fd16abd2fc8d59e4bec8 (diff)
downloadgcc-3cee7e4e2badde2374fc77bb8f3a072e1698d1fe.zip
gcc-3cee7e4e2badde2374fc77bb8f3a072e1698d1fe.tar.gz
gcc-3cee7e4e2badde2374fc77bb8f3a072e1698d1fe.tar.bz2
re PR middle-end/71308 (ICE (segfault) in in gimple_fold_call gimple-fold.c:3060)
PR middle-end/71308 * gimple-fold.c (gimple_fold_call): Check that LHS is not null. * g++.dg/torture/pr71308.C: New test. From-SVN: r236815
Diffstat (limited to 'gcc/gimple-fold.c')
-rw-r--r--gcc/gimple-fold.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/gimple-fold.c b/gcc/gimple-fold.c
index d6657e9..600aa72 100644
--- a/gcc/gimple-fold.c
+++ b/gcc/gimple-fold.c
@@ -3053,7 +3053,8 @@ gimple_fold_call (gimple_stmt_iterator *gsi, bool inplace)
== void_type_node))
gimple_call_set_fntype (stmt, TREE_TYPE (fndecl));
/* If the call becomes noreturn, remove the lhs. */
- if (gimple_call_noreturn_p (stmt)
+ if (lhs
+ && gimple_call_noreturn_p (stmt)
&& (VOID_TYPE_P (TREE_TYPE (gimple_call_fntype (stmt)))
|| should_remove_lhs_p (lhs)))
{