This adds two asserts that guards possible wrong-code issues in get_constraint_for_ptr_offset.
Bootstrapped and tested on x86_64-unknown-linux-gnu, applied to trunk. Richard. 2014-03-11 Richard Biener <rguent...@suse.de> * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Add asserts to guard possible wrong-code bugs. Index: gcc/tree-ssa-structalias.c =================================================================== --- gcc/tree-ssa-structalias.c (revision 208479) +++ gcc/tree-ssa-structalias.c (working copy) @@ -3095,7 +3095,7 @@ get_constraint_for_ptr_offset (tree ptr, 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, 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; }