// RUN: %clang_cc1 -fobjc-runtime=gcc -frecovery-ast -verify %s @interface Ivar { int Foo : foo(); // expected-error {{use of undeclared identifier}} }; @end struct X { int Y: foo(); }; // expected-error {{use of undeclared identifier}} constexpr int s = sizeof(Ivar); constexpr int ss = sizeof(X); auto func() { return undef(); // expected-error {{use of undeclared identifier}} } struct Y { int X : func(); }; constexpr int sss = sizeof(Y); bool Foo(int *); // expected-note {{candidate function not viable}} template struct Base {}; template auto func() { // error-bit should be propagated from TemplateArgument to NestNameSpecifier. class Base::type C; // expected-error {{no matching function for call to 'Foo'}} return C; } struct Z { int X : func(); // expected-note {{in instantiation of function template}} }; constexpr int ssss = sizeof(Z); struct Z2 { int X : sizeof(_BitInt(invalid())); // expected-error {{use of undeclared identifier}} }; constexpr int sssss = sizeof(Z2);