On Wed, Oct 10, 2012 at 10:42:10AM +0200, Richard Biener wrote: > Yeah, I meant we can negate all constants by doing > > tem = - CONSTANT;
Yeah, that is what I meant. tem = - INT_MIN; is undefined overflow. > > right? Or wait ... even if we have > > red = x - y; > > if y is INT_MIN then the code we just created may have introduced > undefined overflow (of course you could argue that with x - y it > is very likely that undefined overflow already happened) ... Not for negative x. x = -3; y = -__INT_MAX__ - 1; red = x - y; is IMHO fine. > > > The ICE simply means > > > we should have used make_temp_ssa_name (TREE_TYPE (rhs), NULL, NULL) > > > instead of copy_ssa_name. > > > > Is make_temp_ssa_name (TREE_TYPE (rhs), NULL, NULL) preferrable over just > > make_ssa_name (TREE_TYPE (rhs), NULL); ? > > Ah, no, make_ssa_name (TREE_TYPE (rhs), NULL) is even better. On > the 4.7 branch you need to create a new temp var ... Sure. Jakub