The following invalid code snippet triggers an ICE since GCC 4.3.4
(so we have a regression on the 4.3 branch):
==============================
struct A {};
template<typename> void foo()
{
A().~int();
}
==============================
bug.cc: In function 'void foo()':
bug.cc:5: error: expected identifier before 'int'
bug.cc:5: internal compiler error: Segmentation fault
Please submit a full bug report, [etc.]
Jason, this is fallout from your patch:
2009-01-19 Jason Merrill <[email protected]>
PR c++/23287
* parser.c (cp_parser_unqualified_id): In a template,
accept ~identifier.
* typeck.c (lookup_destructor): Handle IDENTIFIER_NODE.
Would you mind having a look?
--
Summary: [4.3/4.4 regression] ICE with invalid pseudo-dtor in
template
Product: gcc
Version: 4.4.0
Status: UNCONFIRMED
Keywords: ice-on-invalid-code, error-recovery, monitored
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: reichelt at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39054