The following invalid code snippets are accepted on mainline: ======================== struct A { A(...) = default; }; ========================
======================== struct A { A(const A&, ...) = default; }; ======================== Apparently defaultable_fn_p in cp/class.c doesn't handle the ellipsis correctly. This makes me wonder whether type_has_user_nondefault_constructor which contains similar code has the same problem. This bug can be exploited to trigger an ICE: ======================== struct A { A(...) = default; A(const A&); }; void foo() { A a; } ======================== bug.cc: In constructor 'A::A(...)': bug.cc:3: internal compiler error: Segmentation fault Please submit a full bug report, [etc.] This makes the bug a regression as the second code snippet didn't crash previous compilers. -- Summary: [4.4 regression] Trouble with defaulted constructors Product: gcc Version: 4.4.0 Status: UNCONFIRMED Keywords: ice-on-invalid-code, accepts-invalid, 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=38649