On Wed, Apr 13, 2011 at 10:17:25AM -0400, Jason Merrill wrote: > On 04/13/2011 09:40 AM, Dodji Seketeli wrote: > >+ if (type_dependent_expression_p (DECL_INITIAL (instance))) > >+ { > >+ /* The initializer is type dependent so we cannot > >+ determine the dynamic type of this reference. */ > >+ if (nonnull) > >+ *nonnull = 0; > >+ return NULL_TREE; > >+ } > > *nonnull should still be true in this case; even if we don't know > what the reference refers to, we can still assume that it refers to > something. Otherwise OK.
Then --- gcc/cp/class.c.jj 2011-04-12 19:43:49.000000000 +0200 +++ gcc/cp/class.c 2011-04-13 15:23:07.463670993 +0200 @@ -5939,6 +5939,7 @@ fixed_type_or_null (tree instance, int * itself. */ if (TREE_CODE (instance) == VAR_DECL && DECL_INITIAL (instance) + && !type_dependent_expression_p (DECL_INITIAL (instance)) && !htab_find (ht, instance)) { tree type; would be shorter, after that if it returns NULL_TREE. Jakub