diff options
author | Steve Ellcey <sje@cup.hp.com> | 2006-06-23 21:58:25 +0000 |
---|---|---|
committer | Steve Ellcey <sje@gcc.gnu.org> | 2006-06-23 21:58:25 +0000 |
commit | c5f8391c77ffbce87b0a3e0ad436ab36a5913dd9 (patch) | |
tree | bfde7e62a03936c593debbb2972d0e73c0812816 | |
parent | e135a63713a7354959fc77958c3fb5f56ddbf3e6 (diff) | |
download | gcc-c5f8391c77ffbce87b0a3e0ad436ab36a5913dd9.zip gcc-c5f8391c77ffbce87b0a3e0ad436ab36a5913dd9.tar.gz gcc-c5f8391c77ffbce87b0a3e0ad436ab36a5913dd9.tar.bz2 |
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: r114953
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/name-lookup.c | 6 |
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 178b0af..5a3ac21 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,10 @@ 2006-06-23 Steve Ellcey <sje@cup.hp.com> + PR c++/28114 + * name-lookup.c (pushtag): Return if we have error_mark_node. + +2006-06-23 Steve Ellcey <sje@cup.hp.com> + PR c++/27019 * typeck2.c (process_init_constructor_array): Set ce->value on errors. diff --git a/gcc/cp/name-lookup.c b/gcc/cp/name-lookup.c index 3de9999..0d195f9 100644 --- a/gcc/cp/name-lookup.c +++ b/gcc/cp/name-lookup.c @@ -4872,7 +4872,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, /*is_friend=*/false); + { + decl = pushdecl_with_scope (decl, b, /*is_friend=*/false); + if (decl == error_mark_node) + POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, decl); + } TYPE_CONTEXT (type) = DECL_CONTEXT (decl); |