// RUN: %clang_cc1 -frecovery-ast -verify %s struct X { int Y; constexpr X() // expected-error {{constexpr constructor never produces}} : 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'}} \ // expected-note {{subexpression not valid in a constant expression}} constexpr X2() {} // expected-error {{constexpr constructor never produces a constant expression}} }; struct X3 { int Y; constexpr X3() // expected-error {{constexpr constructor never produces}} : 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) {} };