blob: 616cf56ece849e52dfe67bdf41907bd73ba520d5 [file] [log] [blame]
Devang Patelabad06c2007-10-26 19:42:18 +00001// RUN: clang %s -emit-llvm
2
Devang Patelfe2419a2007-12-11 21:33:16 +00003union u_tag {
Devang Patelabad06c2007-10-26 19:42:18 +00004 int a;
5 float b;
6} u;
7
8void f() {
9 u.b = 11;
10}
11
Devang Patelfe2419a2007-12-11 21:33:16 +000012float get_b(union u_tag *my_u) {
13 return my_u->b;
14}
15
Devang Patelabad06c2007-10-26 19:42:18 +000016int f2( float __x ) {
17 union{
18 float __f;
19 unsigned int __u;
20 }__u;
21 return (int)(__u.__u >> 31);
22}
Seo Sanghyeon2de3b3a2007-12-02 16:57:27 +000023
24typedef union { int i; int *j; } value;
25
26int f3(value v) {
27 return *v.j;
28}
Devang Patel5cada6b2008-05-07 22:28:29 +000029
30enum E9 { one, two };
31union S65 { enum E9 a:62; } ; union S65 s65;
32void fS65() { enum E9 e = s65.a; }
33
Eli Friedman0ac59572008-05-21 13:21:01 +000034typedef union{
35 unsigned char x[65536];
36} q;
37int qfunc() {q buf; unsigned char* x = buf.x;}
38
Eli Friedman1e86b342008-05-29 11:33:25 +000039union RR {_Bool a : 1;} RRU;
40int RRF(void) {return RRU.a;}
41