summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2014-03-11 15:32:27 +0000
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2014-03-11 15:32:27 +0000
commit84822e3d5e732abfec6c25b8ed3088ea32c4d3db (patch)
treef4ac1c996b050838e54964bc39ecaac2862b700a
parente7a71ff849749f19d5b738f90a06d2f2dd78581e (diff)
downloadppe42-gcc-84822e3d5e732abfec6c25b8ed3088ea32c4d3db.tar.gz
ppe42-gcc-84822e3d5e732abfec6c25b8ed3088ea32c4d3db.zip
2014-03-11 Richard Biener <rguenther@suse.de>
* tree-ssa-structalias.c (get_constraint_for_ptr_offset): Add asserts to guard possible wrong-code bugs. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@208485 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/tree-ssa-structalias.c10
2 files changed, 13 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a38241587b6..92df4717c35 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2014-03-11 Richard Biener <rguenther@suse.de>
+ * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
+ Add asserts to guard possible wrong-code bugs.
+
+2014-03-11 Richard Biener <rguenther@suse.de>
+
PR tree-optimization/60429
PR tree-optimization/60485
* tree-ssa-structalias.c (set_union_with_increment): Properly
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c
index e1e1147e993..8201cb423c1 100644
--- a/gcc/tree-ssa-structalias.c
+++ b/gcc/tree-ssa-structalias.c
@@ -3095,7 +3095,7 @@ get_constraint_for_ptr_offset (tree ptr, tree offset,
if (c.type == ADDRESSOF
/* If this varinfo represents a full variable just use it. */
&& curr->is_full_var)
- c.offset = 0;
+ ;
else if (c.type == ADDRESSOF
/* If we do not know the offset add all subfields. */
&& rhsoffset == UNKNOWN_OFFSET)
@@ -3143,8 +3143,14 @@ get_constraint_for_ptr_offset (tree ptr, tree offset,
temp = vi_next (temp);
}
}
+ else if (c.type == SCALAR)
+ {
+ gcc_assert (c.offset == 0);
+ c.offset = rhsoffset;
+ }
else
- c.offset = rhsoffset;
+ /* We shouldn't get any DEREFs here. */
+ gcc_unreachable ();
(*results)[j] = c;
}
OpenPOWER on IntegriCloud