|  | // RUN: %clang_cc1 %s -include %s | 
|  | // RUN: %clang_cc1 %s -emit-pch -o %t.pch | 
|  | // RUN: %clang_cc1 %s -include-pch %t.pch | 
|  |  | 
|  | // rdar://12239321 Make sure we don't emit a bogus | 
|  | //     error: field designator 'e' does not refer to a non-static data member | 
|  |  | 
|  | #ifndef HEADER | 
|  | #define HEADER | 
|  | //===----------------------------------------------------------------------===// | 
|  |  | 
|  | struct U { | 
|  | union { | 
|  | struct { | 
|  | int e; | 
|  | int f; | 
|  | }; | 
|  |  | 
|  | int a; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | //===----------------------------------------------------------------------===// | 
|  | #else | 
|  | #if !defined(HEADER) | 
|  | # error Header inclusion order messed up | 
|  | #endif | 
|  | //===----------------------------------------------------------------------===// | 
|  |  | 
|  | void bar() { | 
|  | static const struct U plan = { .e = 1 }; | 
|  | } | 
|  |  | 
|  | //===----------------------------------------------------------------------===// | 
|  | #endif |