------- Comment #27 from dberlin at gcc dot gnu dot org 2007-08-30 14:56 ------- (In reply to comment #23) > I don't think the patch fixes anything.
Uh, sure it does. Before we were ignoring the pointer results from calls. They should point to anything. > Can you elaborate on > > "D.8892_26 is a non-pointer variable, eliminating edges." > This really means that it was never used. The only variables that are unused must come from things are not really pointers (IE don't point to anything). I can change the wording :) > but D.8892 _is_ a pointer. Or is it just that D.8892_26 is ultimately copied > from a pointer that doesn't have a constraint? Right. > (because it is initialized > from a call, this is what the patch would "fix" - it creates a lot more NMTs > and (by luck?) sees that now, even if with and without the patch D.8895_29 > and __tmp_27 point to anything, they may point to the same thing) For sure the patch is the right thing to do. Whether it fixes this bug, is the real cause of this bug, etc, i can't say. I can only say that we should be assigning &ANYTHING to the LHS of a call in !in_ipa_mode, and not doing so was a dumb oversight on my part when i fixed the call handling for !in_ipa_mode. I actually thought we were already doing this, which is why i approved this so quickly. > -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33199