aboutsummaryrefslogtreecommitdiff
path: root/gcc
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
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')
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/parser.c5
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/g++.dg/parse/defarg10.C11
4 files changed, 24 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. */
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 65f2435..a6edac7 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2005-06-07 Nathan Sidwell <nathan@codesourcery.com>
+
+ * g++.dg/parse/defarg10.C: New.
+
2005-06-06 Jakub Jelinek <jakub@redhat.com>
PR regression/21897
diff --git a/gcc/testsuite/g++.dg/parse/defarg10.C b/gcc/testsuite/g++.dg/parse/defarg10.C
new file mode 100644
index 0000000..ca228ac
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/defarg10.C
@@ -0,0 +1,11 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 7 Jun 2005 <nathan@codesourcery.com>
+
+// From java library.
+
+void Foo (int = 0);
+
+class Class
+{
+ friend void Foo (int);
+};