------- Additional Comments From pinskia at gcc dot gnu dot org 2004-10-30 20:03 ------- Hmm the problem is that ADDR_EXPR of the function is not declared as invariant so we creating a temprary variable for it. This also caused us to produce much worse code for the following than 3.3 and 3.4.0: int f (int i) { int h (int j) { return i; } int g (void) { return h (i); } return g (); }
Mine, I am posting a patch for it right now. -- What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at gcc dot gnu |pinskia at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18231