* parser.c (cp_parser_pseudo_destructor_name): Commit to parse
after we see the ~.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@174385
138bc75d-0d04-0410-961f-
82ee72b054a4
2011-05-27 Jason Merrill <jason@redhat.com>
+ PR c++/47277
+ * parser.c (cp_parser_pseudo_destructor_name): Commit to parse
+ after we see the ~.
+
* mangle.c (mangle_decl_string): Make sure we don't try to mangle
templates.
/* Look for the `~'. */
cp_parser_require (parser, CPP_COMPL, RT_COMPL);
+
+ /* Once we see the ~, this has to be a pseudo-destructor. */
+ if (!processing_template_decl && !cp_parser_error_occurred (parser))
+ cp_parser_commit_to_tentative_parse (parser);
+
/* Look for the type-name again. We are not responsible for
checking that it matches the first type-name. */
*type = cp_parser_nonclass_name (parser);
2011-05-27 Jason Merrill <jason@redhat.com>
+ * g++.dg/cpp0x/enum18.C: Adjust.
+
* g++.dg/cpp0x/lambda/lambda-template2.C: New.
2011-05-27 Tobias Burnus <burnus@net-b.de>
// { dg-options -std=c++0x }
int main(void) {
- enum e {};
- e ev;
- ev.e::~e_u(); // { dg-error "" }
+ enum e {};
+ e ev;
+ ev.e::~e_u(); // { dg-error "e_u. has not been declared" }
}