Patch by Remi Gacogne
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150144
91177308-0d34-0410-b5e6-
96231b3b80d8
IdentifierInfo *FieldName) {
assert(AnonField->isAnonymousStructOrUnion());
Decl *NextDecl = AnonField->getNextDeclInContext();
- while (IndirectFieldDecl *IF = dyn_cast<IndirectFieldDecl>(NextDecl)) {
+ IndirectFieldDecl *IF = NULL;
+ while (NextDecl && (IF = dyn_cast<IndirectFieldDecl>(NextDecl))) {
if (FieldName && FieldName == IF->getAnonField()->getIdentifier())
return IF;
NextDecl = NextDecl->getNextDeclInContext();
void *g = &x;
int *h = &x;
+struct union_crash\r
+{\r
+ union\r
+ {\r
+ };\r
+};\r
+
int test() {
-int a[10];
-int b[10] = a; // expected-error {{array initializer must be an initializer list}}
-int +; // expected-error {{expected identifier or '('}}
+ int a[10];
+ int b[10] = a; // expected-error {{array initializer must be an initializer list}}
+ int +; // expected-error {{expected identifier or '('}}
+
+ struct union_crash u = { .d = 1 }; // expected-error {{field designator 'd' does not refer to any field in type 'struct union_crash'}}
}