summaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
authorreichelt <reichelt@138bc75d-0d04-0410-961f-82ee72b054a4>2006-04-19 18:07:19 +0000
committerreichelt <reichelt@138bc75d-0d04-0410-961f-82ee72b054a4>2006-04-19 18:07:19 +0000
commit7ec3a70cdea4f8e154514f82c0202e5aae708878 (patch)
tree3ebacbeadc17d9edc289f351c2c75786f58723b8 /gcc/cp
parentef3fc7d7fbfe2b44ea427d99950b3123e72ca548 (diff)
downloadgcc-7ec3a70cdea4f8e154514f82c0202e5aae708878.tar.gz
PR c++/26739
* pt.c (tsubst_friend_function): Return early if pushdecl_namespace_level fails. * g++.old-deja/g++.pt/friend36.C: Adjust error markers. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@113090 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp')
-rw-r--r--gcc/cp/ChangeLog4
-rw-r--r--gcc/cp/pt.c3
2 files changed, 7 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index aa5b60ec0d5..c3df66dcb32 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,9 @@
2006-04-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+ PR c++/26739
+ * pt.c (tsubst_friend_function): Return early if
+ pushdecl_namespace_level fails.
+
PR c++/26036
* typeck.c (convert_arguments): Return error_mark_node instead of
error_mark_list.
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 83bfd125924..fbe01dbfb41 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -5230,6 +5230,9 @@ tsubst_friend_function (tree decl, tree args)
old_decl = pushdecl_namespace_level (new_friend, /*is_friend=*/true);
pop_nested_namespace (ns);
+ if (old_decl == error_mark_node)
+ return error_mark_node;
+
if (old_decl != new_friend)
{
/* This new friend declaration matched an existing