2009-12-16 04:14:24 +08:00
|
|
|
// RUN: %clang_cc1 -triple i386-unknown-unknown -O3 -emit-llvm -o - %s | FileCheck %s
|
2008-08-06 00:15:29 +08:00
|
|
|
// PR2001
|
|
|
|
|
|
|
|
/* Test that the result of the assignment properly uses the value *in
|
|
|
|
the bitfield* as opposed to the RHS. */
|
|
|
|
static int foo(int i) {
|
|
|
|
struct {
|
|
|
|
int f0 : 2;
|
|
|
|
} x;
|
|
|
|
return (x.f0 = i);
|
|
|
|
}
|
|
|
|
|
|
|
|
int bar() {
|
2009-11-23 02:56:40 +08:00
|
|
|
// CHECK: ret i32 1
|
2008-08-06 00:15:29 +08:00
|
|
|
return foo(-5) == -1;
|
|
|
|
}
|