| Devang Patel | ed93c3c | 2007-10-26 19:42:18 +0000 | [diff] [blame] | 1 | // RUN: clang %s -emit-llvm | 
| 2 | |||||
| Devang Patel | b37b12d | 2007-12-11 21:33:16 +0000 | [diff] [blame] | 3 | union u_tag { | 
| Devang Patel | ed93c3c | 2007-10-26 19:42:18 +0000 | [diff] [blame] | 4 | int a; | 
| 5 | float b; | ||||
| 6 | } u; | ||||
| 7 | |||||
| 8 | void f() { | ||||
| 9 | u.b = 11; | ||||
| 10 | } | ||||
| 11 | |||||
| Devang Patel | b37b12d | 2007-12-11 21:33:16 +0000 | [diff] [blame] | 12 | float get_b(union u_tag *my_u) { | 
| 13 | return my_u->b; | ||||
| 14 | } | ||||
| 15 | |||||
| Devang Patel | ed93c3c | 2007-10-26 19:42:18 +0000 | [diff] [blame] | 16 | int f2( float __x ) { | 
| 17 | union{ | ||||
| 18 | float __f; | ||||
| 19 | unsigned int __u; | ||||
| 20 | }__u; | ||||
| 21 | return (int)(__u.__u >> 31); | ||||
| 22 | } | ||||
| Seo Sanghyeon | 828429f | 2007-12-02 16:57:27 +0000 | [diff] [blame] | 23 | |
| 24 | typedef union { int i; int *j; } value; | ||||
| 25 | |||||
| 26 | int f3(value v) { | ||||
| 27 | return *v.j; | ||||
| 28 | } | ||||