xref: /llvm-project/clang/test/CodeGen/PR2001-bitfield-reload.c (revision 1ea584377e7897f7df5302ed9cd378d17be14fbf)
1 // RUN: %clang_cc1 -triple i386-unknown-unknown -O3 -emit-llvm -o - %s | FileCheck %s
2 // PR2001
3 
4 /* Test that the result of the assignment properly uses the value *in
5    the bitfield* as opposed to the RHS. */
foo(int i)6 static int foo(int i) {
7   struct {
8     int f0 : 2;
9   } x;
10   return (x.f0 = i);
11 }
12 
bar(void)13 int bar(void) {
14   // CHECK: ret i32 1
15   return foo(-5) == -1;
16 }
17