xref: /aosp_15_r20/external/clang/test/CodeGenCXX/2009-10-27-crash.cpp (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 -emit-llvm %s -o /dev/null
2*67e74705SXin Li // Radar 7328944
3*67e74705SXin Li 
4*67e74705SXin Li typedef struct
5*67e74705SXin Li {
6*67e74705SXin Li 	unsigned short a : 1;
7*67e74705SXin Li 	unsigned short b : 2;
8*67e74705SXin Li 	unsigned short c : 1;
9*67e74705SXin Li 	unsigned short d : 1;
10*67e74705SXin Li 	unsigned short e : 1;
11*67e74705SXin Li 	unsigned short f : 1;
12*67e74705SXin Li 	unsigned short g : 2;
13*67e74705SXin Li 	unsigned short : 7;
14*67e74705SXin Li 	union
15*67e74705SXin Li 	{
16*67e74705SXin Li 		struct
17*67e74705SXin Li 		{
18*67e74705SXin Li 			unsigned char h : 1;
19*67e74705SXin Li 			unsigned char i : 1;
20*67e74705SXin Li 			unsigned char j : 1;
21*67e74705SXin Li 			unsigned char : 5;
22*67e74705SXin Li 		};
23*67e74705SXin Li 		struct
24*67e74705SXin Li 		{
25*67e74705SXin Li 			unsigned char k : 3;
26*67e74705SXin Li 			unsigned char : 5;
27*67e74705SXin Li 		};
28*67e74705SXin Li 	};
29*67e74705SXin Li 	unsigned char : 8;
30*67e74705SXin Li } tt;
31*67e74705SXin Li 
32*67e74705SXin Li typedef struct
33*67e74705SXin Li {
34*67e74705SXin Li  unsigned char s;
35*67e74705SXin Li  tt t;
36*67e74705SXin Li  unsigned int u;
37*67e74705SXin Li } ttt;
38*67e74705SXin Li 
39*67e74705SXin Li ttt X = {
40*67e74705SXin Li     4,
41*67e74705SXin Li        { 0 },
42*67e74705SXin Li 	55,
43*67e74705SXin Li };
44