On Sun, Apr 3, 2011 at 3:14 AM, Michael Matz <m...@suse.de> wrote: > Hi, > > On Thu, 31 Mar 2011, Richard Guenther wrote: > >> > In the meanwhile, is the below version okay? >> >> If it bootstraps & tests ok then yes. The java parts look obvious. > > So, we indeed can't remove the other calls to > canonicalize_constructor_val, because of local ctors. And fortran has a > similar problem with java. Instead of fixing up all these places of > resetting cfun (where otherwise the frontends don't deal at all with it, > it's mostly just set from the various cgraph routines), I decided to > simply clear this at the appropriate place in > cgraph_finalize_compilation_unit. > > Regstrapping in progress again. Still okay if that works? > > > Ciao, > Michael. > -- > * cgraphbuild.c (record_reference): Canonicalize constructor > values.
> > Index: cgraphbuild.c > =================================================================== > --- cgraphbuild.c.orig 2011-04-03 11:28:45.000000000 +0200 > +++ cgraphbuild.c 2011-04-03 11:31:21.000000000 +0200 > @@ -53,6 +53,12 @@ record_reference (tree *tp, int *walk_su > tree decl; > struct record_reference_ctx *ctx = (struct record_reference_ctx *)data; > > + t = canonicalize_constructor_val (t); > + if (!t) > + t = *tp; > + else if (t != *tp) > + *tp = t; > + > switch (TREE_CODE (t)) > { > case VAR_DECL: This change caused: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48440 -- H.J.