// RUN: %clang_cc1 -frecovery-ast -verify %s struct X { int Y; constexpr X() : Y(foo()) {} // expected-error {{use of undeclared identifier 'foo'}} }; // no crash on evaluating the constexpr ctor. constexpr int Z = X().Y; // expected-error {{constexpr variable 'Z' must be initialized by a constant expression}} struct X2 { int Y = foo(); // expected-error {{use of undeclared identifier 'foo'}} constexpr X2() {} }; struct X3 { int Y; constexpr X3() : Y(({foo();})) {} // expected-error {{use of undeclared identifier 'foo'}} }; struct CycleDelegate { int Y; CycleDelegate(int) : Y(foo()) {} // expected-error {{use of undeclared identifier 'foo'}} // no bogus "delegation cycle" diagnostic CycleDelegate(float) : CycleDelegate(1) {} }; struct X4 { int* p = new int(invalid()); // expected-error {{use of undeclared identifier}} }; // no crash on evaluating the CXXDefaultInitExpr. constexpr int* s = X4().p; // expected-error {{must be initialized by}}