1*67e74705SXin Li // RUN: %clang_cc1 %s -include %s 2*67e74705SXin Li // RUN: %clang_cc1 %s -emit-pch -o %t.pch 3*67e74705SXin Li // RUN: %clang_cc1 %s -include-pch %t.pch 4*67e74705SXin Li 5*67e74705SXin Li // rdar://12239321 Make sure we don't emit a bogus 6*67e74705SXin Li // error: field designator 'e' does not refer to a non-static data member 7*67e74705SXin Li 8*67e74705SXin Li #ifndef HEADER 9*67e74705SXin Li #define HEADER 10*67e74705SXin Li //===----------------------------------------------------------------------===// 11*67e74705SXin Li 12*67e74705SXin Li struct U { 13*67e74705SXin Li union { 14*67e74705SXin Li struct { 15*67e74705SXin Li int e; 16*67e74705SXin Li int f; 17*67e74705SXin Li }; 18*67e74705SXin Li 19*67e74705SXin Li int a; 20*67e74705SXin Li }; 21*67e74705SXin Li }; 22*67e74705SXin Li 23*67e74705SXin Li //===----------------------------------------------------------------------===// 24*67e74705SXin Li #else 25*67e74705SXin Li #if !defined(HEADER) 26*67e74705SXin Li # error Header inclusion order messed up 27*67e74705SXin Li #endif 28*67e74705SXin Li //===----------------------------------------------------------------------===// 29*67e74705SXin Li bar()30*67e74705SXin Livoid bar() { 31*67e74705SXin Li static const struct U plan = { .e = 1 }; 32*67e74705SXin Li } 33*67e74705SXin Li 34*67e74705SXin Li //===----------------------------------------------------------------------===// 35*67e74705SXin Li #endif 36