1 | // RUN: %clang -O3 -emit-llvm -S -o - %s | FileCheck %s |
2 | |
3 | long long f0(void) { |
4 | struct { unsigned f0 : 32; } x = { 18 }; |
5 | return (long long) (x.f0 - (int) 22); |
6 | } |
7 | // CHECK: @f0() |
8 | // CHECK: ret i64 4294967292 |
9 | |
10 | long long f1(void) { |
11 | struct { unsigned f0 : 31; } x = { 18 }; |
12 | return (long long) (x.f0 - (int) 22); |
13 | } |
14 | // CHECK: @f1() |
15 | // CHECK: ret i64 -4 |
16 | |
17 | long long f2(void) { |
18 | struct { unsigned f0 ; } x = { 18 }; |
19 | return (long long) (x.f0 - (int) 22); |
20 | } |
21 | // CHECK: @f2() |
22 | // CHECK: ret i64 4294967292 |
23 | |