------- Comment #8 from reichelt at igpm dot rwth-aachen dot de 2006-07-11
09:15 -------
Subject: Re: [4.0/4.1 regression] ICE with struct definition in
argument of template function
On 10 Jul, sje at cup dot hp dot com wrote:
>
>
> ------- Comment #7 from sje at cup dot hp dot com 2006-07-10 20:46 -------
> I have checked in a patch for ToT and on the 4.1 branch. My inclination is to
> not fix this on the 4.0 branch because the patch doesn't apply automatically.
> The same change is probably needed somewhere else for 4.0, but I don't think
> it
> is worth the trouble to find out where.
Well, with some trivial changes (whitespace, different number of
parameters for pushdecl_with_scope) the patch applies to the 4.0 branch:
===================================================================
--- gcc/gcc/cp/name-lookup.c (revision 115324)
+++ gcc/gcc/cp/name-lookup.c (working copy)
@@ -4666,7 +4666,11 @@ pushtag (tree name, tree type, tag_scope
pushdecl_class_level (decl);
}
else if (b->kind != sk_template_parms)
- decl = pushdecl_with_scope (decl, b);
+ {
+ decl = pushdecl_with_scope (decl, b);
+ if (decl == error_mark_node)
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, decl);
+ }
/* FIXME what if it gets a name from typedef? */
if (ANON_AGGRNAME_P (name))
===================================================================
Would you mind testing this on the 4.0 branch? Or should I do that?
> Should I close this out as fixed in 4.1.2?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28114