// RUN: %clang_cc1 %s -emit-llvm -o - | FileCheck %s | |
// The store of p.y into the temporary was not | |
// getting extended to 32 bits, so uninitialized | |
// bits of the temporary were used. 7366161. | |
struct foo { | |
char x:8; | |
signed int y:24; | |
}; | |
int bar(struct foo p, int x) { | |
// CHECK: bar | |
// CHECK: and {{.*}} 16777215 | |
// CHECK: and {{.*}} 16777215 | |
x = (p.y > x ? x : p.y); | |
return x; | |
// CHECK: ret | |
} |