gcc 4.7.0 20111210 (experimental) rejects the following program by producing an ICE: //-------- struct S { int i; constexpr S(int i) : i(i) {} constexpr S() : S(42) {} }; constexpr S s{}; //-------- " main.cpp||In constructor 'constexpr S::S()':| main.cpp|4|internal compiler error: in build_data_member_initialization, at cp/semantics.c:5777 " The code should be accepted, it seems that S::S() satisfies the criteria for a constexpr constructor as of 7.1.5.
Author: jason Date: Mon Dec 19 21:06:44 2011 New Revision: 182499 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=182499 Log: PR c++/51526 * semantics.c (build_data_member_initialization): Handle delegating constructor. (build_constexpr_constructor_member_initializers): Likewise. Added: trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-delegating.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/semantics.c trunk/gcc/testsuite/ChangeLog
Fixed.