Handle deferred parsing of NSDMIs.
authorJason Merrill <jason@redhat.com>
Sun, 25 Sep 2011 02:26:01 +0000 (22:26 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Sun, 25 Sep 2011 02:26:01 +0000 (22:26 -0400)
commiteb02633818a908b78e8fc0939be2e4774ed840c6
tree4ed25f3377c184a6d3a1db8397675121388b3ccc
parent0e5f8a598de1c8dc44fb59c6d0ea0dcd557f695a
Handle deferred parsing of NSDMIs.

* parser.h (cp_unparsed_functions_entry): Add nsdmis field.
* parser.c (unparsed_nsdmis, cp_parser_save_nsdmi): New.
(cp_parser_late_parse_one_default_arg): Split out from
cp_parser_late_parsing_default_args.
(cp_parser_late_parsing_nsdmi): New.
(push_unparsed_function_queues): Set it.
(cp_parser_parameter_declaration): Save the '=' token.
(cp_parser_template_parameter): Likewise.
(cp_parser_default_argument): Call cp_parser_initializer
rather than cp_parser_initializer_clause.
(cp_parser_class_specifier_1): Parse unparsed_nsdmis.
(cp_parser_member_declaration): Handle nsdmis.
* decl2.c (grokfield): Handle DEFAULT_ARG for a function.

From-SVN: r179156
gcc/cp/ChangeLog
gcc/cp/decl.c
gcc/cp/decl2.c
gcc/cp/parser.c
gcc/cp/parser.h
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/cpp0x/nsdmi-defer1.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp0x/nsdmi-defer2.C [new file with mode: 0644]
gcc/testsuite/g++.dg/other/pr39060.C
gcc/testsuite/g++.dg/parse/crash56.C