diff options
author | Richard Biener <rguenther@suse.de> | 2018-03-12 12:32:28 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2018-03-12 12:32:28 +0000 |
commit | 8f1a73b2bb0d399fa6784a2f365fa8dd3ae007f5 (patch) | |
tree | 015fba0e40c3335857cbad4936a92ccef81dd21c /gcc/tree-if-conv.c | |
parent | b270a5215a4ed5a99efa93ed34a98eab75fe13c7 (diff) | |
download | gcc-8f1a73b2bb0d399fa6784a2f365fa8dd3ae007f5.zip gcc-8f1a73b2bb0d399fa6784a2f365fa8dd3ae007f5.tar.gz gcc-8f1a73b2bb0d399fa6784a2f365fa8dd3ae007f5.tar.bz2 |
re PR tree-optimization/84803 (ICE from ifcvt_memrefs_wont_trap with -O3)
2018-03-12 Richard Biener <rguenther@suse.de>
PR tree-optimization/84803
* tree-if-conv.c (ifcvt_memrefs_wont_trap): Don't do anything
for refs DR analysis didn't process.
* gcc.dg/torture/pr84803.c: New testcase.
From-SVN: r258446
Diffstat (limited to 'gcc/tree-if-conv.c')
-rw-r--r-- | gcc/tree-if-conv.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c index c68a0c7..71dac4f 100644 --- a/gcc/tree-if-conv.c +++ b/gcc/tree-if-conv.c @@ -864,6 +864,11 @@ base_object_writable (tree ref) static bool ifcvt_memrefs_wont_trap (gimple *stmt, vec<data_reference_p> drs) { + /* If DR didn't see a reference here we can't use it to tell + whether the ref traps or not. */ + if (gimple_uid (stmt) == 0) + return false; + data_reference_p *master_dr, *base_master_dr; data_reference_p a = drs[gimple_uid (stmt) - 1]; |