aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2004-07-02 21:59:42 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2004-07-02 21:59:42 +0000
commit717733d4539b2cac3a6a41c4a63eda56864c7364 (patch)
tree77a90207a7436944b80880b919d1be2d7ad004a1 /gcc/cp
parentbdef9659324910f7f1f33d47b8ee57475fdf54ce (diff)
downloadgcc-717733d4539b2cac3a6a41c4a63eda56864c7364.zip
gcc-717733d4539b2cac3a6a41c4a63eda56864c7364.tar.gz
gcc-717733d4539b2cac3a6a41c4a63eda56864c7364.tar.bz2
re PR c++/16270 (ICE on inner member template)
PR c++/16270 * decl.c (grokdeclarator): Robustify. From-SVN: r84029
Diffstat (limited to 'gcc/cp')
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/decl.c2
2 files changed, 7 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 7ebda95..dc5fa28 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2004-07-02 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/16270
+ * decl.c (grokdeclarator): Robustify.
+
2004-07-01 Richard Henderson <rth@redhat.com>
* class.c (fixed_type_or_null): Don't handle RTL_EXPR.
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index ee7d76f..e591a25 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -6379,6 +6379,8 @@ grokdeclarator (const cp_declarator *declarator,
}
if (TREE_CODE (decl) == BASELINK)
decl = BASELINK_FUNCTIONS (decl);
+ if (decl == error_mark_node)
+ return error_mark_node;
switch (TREE_CODE (decl))
{
case BIT_NOT_EXPR: