1ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// RUN: %clang -O3 -emit-llvm -S -o %t %s 2ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// RUN: grep 'ret i64 4294967292' %t | count 2 3ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// RUN: grep 'ret i64 -4' %t | count 1 4ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 5ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaolong long f0(void) { 6ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao struct { unsigned f0 : 32; } x = { 18 }; 7ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao return (long long) (x.f0 - (int) 22); 8ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao} 9ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 10ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaolong long f1(void) { 11ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao struct { unsigned f0 : 31; } x = { 18 }; 12ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao return (long long) (x.f0 - (int) 22); 13ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao} 14ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 15ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaolong long f2(void) { 16ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao struct { unsigned f0 ; } x = { 18 }; 17ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao return (long long) (x.f0 - (int) 22); 18ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao} 19