From 9a5338e57db1cda13fa788b0e0debbcf99a475d6 Mon Sep 17 00:00:00 2001 From: Martin Sebor Date: Tue, 11 Feb 2020 16:53:13 -0700 Subject: [PATCH] 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. --- gcc/ChangeLog | 5 +++++ gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-39.c | 18 ++++++++++++++++++ gcc/tree-ssa-alias.c | 2 ++ 4 files changed, 30 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-39.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a124ed5..2f6dbdc 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 8120020..d2a005b 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 0000000..bd663f1 --- /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 c7e6679..fd78105 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 -- 2.7.4