From bcc413d66cc53594370662616d2d37803e296d15 Mon Sep 17 00:00:00 2001 From: Steve Ellcey Date: Wed, 12 Jul 2006 21:46:43 +0000 Subject: [PATCH] re PR c++/28114 (ICE with struct definition in argument of template function) PR c++/28114 * name-lookup.c (pushtag): Return if we have error_mark_node. From-SVN: r115397 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/name-lookup.c | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index b841f4ab118d..5dd905fbdf9b 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2006-07-12 Steve Ellcey + + PR c++/28114 + * name-lookup.c (pushtag): Return if we have error_mark_node. + 2006-07-11 Lee Millward PR c++/28051 diff --git a/gcc/cp/name-lookup.c b/gcc/cp/name-lookup.c index fb527e2b0fc4..2f1d39ec5c09 100644 --- a/gcc/cp/name-lookup.c +++ b/gcc/cp/name-lookup.c @@ -4672,7 +4672,11 @@ pushtag (tree name, tree type, tag_scope 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)) -- 2.47.2