diff options
author | Nathan Sidwell <nathan@codesourcery.com> | 2005-06-07 08:45:32 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2005-06-07 08:45:32 +0000 |
commit | efb169b09d08c84445a5705d7895a32180445bc8 (patch) | |
tree | b15a9faf8af416f8ab53ef4edf00dc62e6c7e4f4 /gcc | |
parent | f8ed6473e7e3670eb4f568ab7a822013391c8bbb (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/parser.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/parse/defarg10.C | 11 |
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); +}; |