From: Martin Sebor Date: Tue, 11 Feb 2020 23:53:13 +0000 (-0700) Subject: PR tree-optimization/93683 - ICE on calloc with unused return value in ao_ref_init_fr... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9a5338e57db1cda13fa788b0e0debbcf99a475d6;p=gcc.git PR tree-optimization/93683 - ICE on calloc with unused return value in ao_ref_init_from_ptr_and_size gcc/testsuite/ChangeLog: PR tree-optimization/93683 * gcc.dg/tree-ssa/ssa-dse-39.c: New test. gcc/ChangeLog: PR tree-optimization/93683 * tree-ssa-alias.c (stmt_kills_ref_p): Avoid using LHS when not set. --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a124ed5de35..2f6dbdc13ba 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2020-02-11 Martin Sebor + + PR tree-optimization/93683 + * tree-ssa-alias.c (stmt_kills_ref_p): Avoid using LHS when not set. + 2020-02-11 Michael Meissner * config/rs6000/predicates.md (cint34_operand): Rename the diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 8120020e315..d2a005b4af6 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2020-02-11 Martin Sebor + + PR tree-optimization/93683 + * gcc.dg/tree-ssa/ssa-dse-39.c: New test. + 2020-02-11 Will Schmidt * lib/target-supports.exp (check_effective_target_ppc_ieee128_ok): New. diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-39.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-39.c new file mode 100644 index 00000000000..bd663f1a14c --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-39.c @@ -0,0 +1,18 @@ +/* PR tree-optimization/93683 - ICE on calloc with unused return value + in ao_ref_init_from_ptr_and_size + { dg-do compile } + { dg-options "-O2 -Wall -Wno-unused-result -fdump-tree-cddce1" } */ + +void f0 (int *a) +{ + *a = 0; + __builtin_calloc (1, 1); +} + +void f1 (int *a, unsigned n) +{ + *a = n; + __builtin_calloc (n, n); +} + +/* { dg-final { scan-tree-dump-not "calloc" "cddce1" } } */ diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c index c7e6679f990..fd781050668 100644 --- a/gcc/tree-ssa-alias.c +++ b/gcc/tree-ssa-alias.c @@ -3265,6 +3265,8 @@ stmt_kills_ref_p (gimple *stmt, ao_ref *ref) return false; dest = gimple_call_lhs (stmt); + if (!dest) + return false; len = fold_build2 (MULT_EXPR, TREE_TYPE (arg0), arg0, arg1); } else