aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-data-ref.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2016-07-14 20:30:38 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2016-07-14 20:30:38 +0200
commita241f8ca212b7f27a986e495c15d6890d0dbb44e (patch)
tree70c8b241e003ffacf8da6bef436a08f5cde8f461 /gcc/tree-data-ref.c
parentd62b809c11f21a96648cc15a8f3d922cc15137c4 (diff)
downloadgcc-a241f8ca212b7f27a986e495c15d6890d0dbb44e.zip
gcc-a241f8ca212b7f27a986e495c15d6890d0dbb44e.tar.gz
gcc-a241f8ca212b7f27a986e495c15d6890d0dbb44e.tar.bz2
re PR tree-optimization/71872 (ICE in inchash::add_expr, at tree.c:7782 - OEP_ADDRESS_OF asserted for ADDR_EXPR applied to constant)
PR tree-optimization/71872 * tree-data-ref.c (get_references_in_stmt): Ignore references with is_gimple_constant get_base_address. * gcc.c-torture/compile/pr71872.c: New test. From-SVN: r238351
Diffstat (limited to 'gcc/tree-data-ref.c')
-rw-r--r--gcc/tree-data-ref.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-data-ref.c b/gcc/tree-data-ref.c
index 337d278..081ee603 100644
--- a/gcc/tree-data-ref.c
+++ b/gcc/tree-data-ref.c
@@ -3868,7 +3868,8 @@ get_references_in_stmt (gimple *stmt, vec<data_ref_loc, va_heap> *references)
if (DECL_P (op1)
|| (REFERENCE_CLASS_P (op1)
&& (base = get_base_address (op1))
- && TREE_CODE (base) != SSA_NAME))
+ && TREE_CODE (base) != SSA_NAME
+ && !is_gimple_min_invariant (base)))
{
ref.ref = op1;
ref.is_read = true;