Devang Patel | abad06c | 2007-10-26 19:42:18 +0000 | [diff] [blame] | 1 | // RUN: clang %s -emit-llvm |
2 | |||||
Devang Patel | fe2419a | 2007-12-11 21:33:16 +0000 | [diff] [blame^] | 3 | union u_tag { |
Devang Patel | abad06c | 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 | fe2419a | 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 | abad06c | 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 | 2de3b3a | 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 | } |