1*67e74705SXin Li // RUN: %clang_cc1 -emit-llvm %s -o /dev/null 2*67e74705SXin Li extern "C" { 3*67e74705SXin Li 4*67e74705SXin Li #pragma pack(push, 2) 5*67e74705SXin Li typedef struct ABC* abc; 6*67e74705SXin Li 7*67e74705SXin Li struct ABCS { 8*67e74705SXin Li float red; 9*67e74705SXin Li float green; 10*67e74705SXin Li float blue; 11*67e74705SXin Li float alpha; 12*67e74705SXin Li }; 13*67e74705SXin Li 14*67e74705SXin Li typedef void (*XYZ)(); 15*67e74705SXin Li #pragma pack(pop) 16*67e74705SXin Li } 17*67e74705SXin Li 18*67e74705SXin Li 19*67e74705SXin Li union ABCU { 20*67e74705SXin Li ABCS color; 21*67e74705SXin Li XYZ bg; 22*67e74705SXin Li }; 23*67e74705SXin Li 24*67e74705SXin Li struct AData { 25*67e74705SXin Li ABCU data; 26*67e74705SXin Li }; 27*67e74705SXin Li 28*67e74705SXin Li class L { 29*67e74705SXin Li public: L()30*67e74705SXin Li L() {} 31*67e74705SXin Li L(const L& other); 32*67e74705SXin Li 33*67e74705SXin Li private: 34*67e74705SXin Li AData fdata; 35*67e74705SXin Li }; 36*67e74705SXin Li 37*67e74705SXin Li L(const L & other)38*67e74705SXin LiL::L(const L& other) 39*67e74705SXin Li { 40*67e74705SXin Li fdata = other.fdata; 41*67e74705SXin Li } 42