NAKAMURA Takumi | c449703 | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 1 | // RUN: %clang -O3 -emit-llvm -S -o - %s | FileCheck %s |
Douglas Gregor | fc24e44 | 2009-05-01 20:41:21 +0000 | [diff] [blame] | 2 | |
| 3 | long long f0(void) { |
| 4 | struct { unsigned f0 : 32; } x = { 18 }; |
| 5 | return (long long) (x.f0 - (int) 22); |
| 6 | } |
NAKAMURA Takumi | 36db2d8 | 2012-11-02 09:59:06 +0000 | [diff] [blame] | 7 | // CHECK: @f0() |
| 8 | // CHECK: ret i64 4294967292 |
Douglas Gregor | fc24e44 | 2009-05-01 20:41:21 +0000 | [diff] [blame] | 9 | |
| 10 | long long f1(void) { |
| 11 | struct { unsigned f0 : 31; } x = { 18 }; |
| 12 | return (long long) (x.f0 - (int) 22); |
| 13 | } |
NAKAMURA Takumi | 36db2d8 | 2012-11-02 09:59:06 +0000 | [diff] [blame] | 14 | // CHECK: @f1() |
| 15 | // CHECK: ret i64 -4 |
Douglas Gregor | fc24e44 | 2009-05-01 20:41:21 +0000 | [diff] [blame] | 16 | |
| 17 | long long f2(void) { |
| 18 | struct { unsigned f0 ; } x = { 18 }; |
| 19 | return (long long) (x.f0 - (int) 22); |
| 20 | } |
NAKAMURA Takumi | 36db2d8 | 2012-11-02 09:59:06 +0000 | [diff] [blame] | 21 | // CHECK: @f2() |
| 22 | // CHECK: ret i64 4294967292 |