1 // RUN: %clang_cc1 %s -emit-llvm -o -
2 
3 union u_tag {
4   int a;
5   float b;
6 } u;
7 
8 void f() {
9   u.b = 11;
10 }
11 
12 float get_b(union u_tag *my_u) {
13   return my_u->b;
14 }
15 
16 int f2( float __x ) {
17   union{
18     float __f;
19     unsigned int __u;
20   }__u;
21   return (int)(__u.__u >> 31);
22 }
23 
24 typedef union { int i; int *j; } value;
25 
26 int f3(value v) {
27   return *v.j;
28 }
29 
30 enum E9 { one, two };
31 union S65 { enum E9 a; } ; union S65 s65;
32 void fS65() { enum E9 e = s65.a; }
33 
34 typedef union{
35   unsigned char x[65536];
36 } q;
37 int qfunc() {q buf; unsigned char* x = buf.x;}
38 
39 union RR {_Bool a : 1;} RRU;
40 int RRF(void) {return RRU.a;}
41 
42 // PR6164
43 typedef union T0 { unsigned int : 0; } T0;
44 T0 t0;
45 
46 union { int large_bitfield: 31; char c } u2;
47