re PR c++/39054 (ICE with invalid pseudo-dtor in template)
PR c++/39054 * parser.c (cp_parser_unqualified_id): Don't wrap error_mark_node in BIT_NOT_EXPR. From-SVN: r143876
This commit is contained in:
parent
e007946898
commit
ce6b9ebbe2
@ -1,3 +1,9 @@
|
||||
2009-02-02 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/39054
|
||||
* parser.c (cp_parser_unqualified_id): Don't wrap error_mark_node
|
||||
in BIT_NOT_EXPR.
|
||||
|
||||
2009-02-01 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
PR c++/39053
|
||||
|
@ -3896,7 +3896,9 @@ cp_parser_unqualified_id (cp_parser* parser,
|
||||
/* We couldn't find a type with this name, so just accept
|
||||
it and check for a match at instantiation time. */
|
||||
type_decl = cp_parser_identifier (parser);
|
||||
return build_nt (BIT_NOT_EXPR, type_decl);
|
||||
if (type_decl != error_mark_node)
|
||||
type_decl = build_nt (BIT_NOT_EXPR, type_decl);
|
||||
return type_decl;
|
||||
}
|
||||
}
|
||||
/* If an error occurred, assume that the name of the
|
||||
|
@ -1,3 +1,8 @@
|
||||
2009-02-02 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/39054
|
||||
* g++.dg/parse/dtor14.C: New test.
|
||||
|
||||
2009-02-02 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* lib/target-supports.exp
|
||||
|
8
gcc/testsuite/g++.dg/parse/dtor14.C
Normal file
8
gcc/testsuite/g++.dg/parse/dtor14.C
Normal file
@ -0,0 +1,8 @@
|
||||
// PR c++/39054
|
||||
|
||||
struct A {};
|
||||
|
||||
template<typename> void foo()
|
||||
{
|
||||
A().~int(); // { dg-error "expected" }
|
||||
}
|
Loading…
Reference in New Issue
Block a user