https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64715
--- Comment #16 from Richard Biener <rguenth at gcc dot gnu.org> --- Ok, so disabling the forwprop breaks testcases like gcc.dg/tree-ssa/alias-21.c: <bb 2>: *r_2(D) = 0; _4 = r_2(D) + 4; *_4 = 1; _6 = *r_2(D); return _6; SCCVN isn't able to disambiguate *r_2(D) against *_4 because the alias machinery doesn't look at SSA defintions. forwprop also handles things like forwarding p + 4 into p->x.y.z or &p->x.y.z which we don't want to disable either. We do have both the address we propagate (with a suggested interface change to handle &xxx + CST without building a &MEM[]) and the tree we propagate to. So we should be able to reject / recover a pointer-plus in forward_propagate_addr_expr_1 as needed.