1*67e74705SXin Li // RUN: %clang_cc1 %s -emit-llvm -o - 2*67e74705SXin Li 3*67e74705SXin Li #pragma pack(push, 2) 4*67e74705SXin Li struct H { 5*67e74705SXin Li unsigned long f1; 6*67e74705SXin Li unsigned long f2; 7*67e74705SXin Li union { 8*67e74705SXin Li struct opaque1 *f3; 9*67e74705SXin Li struct opaque2 *f4; 10*67e74705SXin Li struct { 11*67e74705SXin Li struct opaque3 *f5; 12*67e74705SXin Li unsigned short f6; 13*67e74705SXin Li } f7; 14*67e74705SXin Li } f8; 15*67e74705SXin Li }; 16*67e74705SXin Li #pragma pack(pop) 17*67e74705SXin Li 18*67e74705SXin Li struct E { 19*67e74705SXin Li unsigned long f1; 20*67e74705SXin Li unsigned long f2; 21*67e74705SXin Li }; 22*67e74705SXin Li 23*67e74705SXin Li typedef long (*FuncPtr) (); 24*67e74705SXin Li 25*67e74705SXin Li extern long bork(FuncPtr handler, const struct E *list); 26*67e74705SXin Li hndlr()27*67e74705SXin Listatic long hndlr() 28*67e74705SXin Li { 29*67e74705SXin Li struct H cmd = { 4, 412 }; 30*67e74705SXin Li struct H cmd2 = { 4, 412, 0 }; 31*67e74705SXin Li return 0; 32*67e74705SXin Li } foo(void * inWindow)33*67e74705SXin Livoid foo(void *inWindow) { 34*67e74705SXin Li static const struct E events[] = { 35*67e74705SXin Li { 123124, 1 } 36*67e74705SXin Li }; 37*67e74705SXin Li bork(hndlr, events); 38*67e74705SXin Li } 39