1// RUN: %clang_cc1 %s -emit-llvm -o - | FileCheck %s
2// The store of p.y into the temporary was not
3// getting extended to 32 bits, so uninitialized
4// bits of the temporary were used.  7366161.
5struct foo {
6  char x:8;
7  signed int y:24;
8};
9int bar(struct foo p, int x) {
10// CHECK: bar
11// CHECK: and {{.*}} 16777215
12// CHECK: and {{.*}} 16777215
13  x = (p.y > x ? x : p.y);
14  return x;
15// CHECK: ret
16}
17