aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@codesourcery.com>2005-06-07 08:45:32 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2005-06-07 08:45:32 +0000
commitefb169b09d08c84445a5705d7895a32180445bc8 (patch)
treeb15a9faf8af416f8ab53ef4edf00dc62e6c7e4f4 /gcc/cp
parentf8ed6473e7e3670eb4f568ab7a822013391c8bbb (diff)
downloadgcc-efb169b09d08c84445a5705d7895a32180445bc8.zip
gcc-efb169b09d08c84445a5705d7895a32180445bc8.tar.gz
gcc-efb169b09d08c84445a5705d7895a32180445bc8.tar.bz2
parser.c (cp_parser_late_parsing_default_args): Fix overeager assert in previous patch.
cp: * parser.c (cp_parser_late_parsing_default_args): Fix overeager assert in previous patch. testsuite: * g++.dg/parse/defarg10.C: New. From-SVN: r100702
Diffstat (limited to 'gcc/cp')
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/parser.c5
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index cbfe764..9979978 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2005-06-07 Nathan Sidwell <nathan@codesourcery.com>
+
+ * parser.c (cp_parser_late_parsing_default_args): Fix overeager
+ assert in previous patch.
+
2005-06-06 Jakub Jelinek <jakub@redhat.com>
* error.c (locate_error): Use gmsgid instead of msgid for argument
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
index c0059d0..23c1621 100644
--- a/gcc/cp/parser.c
+++ b/gcc/cp/parser.c
@@ -15599,7 +15599,10 @@ cp_parser_late_parsing_default_args (cp_parser *parser, tree fn)
if (!default_arg)
continue;
- gcc_assert (TREE_CODE (default_arg) == DEFAULT_ARG);
+ if (TREE_CODE (default_arg) != DEFAULT_ARG)
+ /* This can happen for a friend declaration for a function
+ already declared with default arguments. */
+ continue;
/* Push the saved tokens for the default argument onto the parser's
lexer stack. */