18a8d6d829b84e2321e5f68392401e0cdf1942feeEric Christopher// RUN: %clang_cc1 %s -emit-llvm -o - | FileCheck %s 28a8d6d829b84e2321e5f68392401e0cdf1942feeEric Christopher// The store of p.y into the temporary was not 38a8d6d829b84e2321e5f68392401e0cdf1942feeEric Christopher// getting extended to 32 bits, so uninitialized 48a8d6d829b84e2321e5f68392401e0cdf1942feeEric Christopher// bits of the temporary were used. 7366161. 58a8d6d829b84e2321e5f68392401e0cdf1942feeEric Christopherstruct foo { 68a8d6d829b84e2321e5f68392401e0cdf1942feeEric Christopher char x:8; 78a8d6d829b84e2321e5f68392401e0cdf1942feeEric Christopher signed int y:24; 88a8d6d829b84e2321e5f68392401e0cdf1942feeEric Christopher}; 98a8d6d829b84e2321e5f68392401e0cdf1942feeEric Christopherint bar(struct foo p, int x) { 108a8d6d829b84e2321e5f68392401e0cdf1942feeEric Christopher// CHECK: bar 118a8d6d829b84e2321e5f68392401e0cdf1942feeEric Christopher// CHECK: and {{.*}} 16777215 128a8d6d829b84e2321e5f68392401e0cdf1942feeEric Christopher// CHECK: and {{.*}} 16777215 138a8d6d829b84e2321e5f68392401e0cdf1942feeEric Christopher x = (p.y > x ? x : p.y); 148a8d6d829b84e2321e5f68392401e0cdf1942feeEric Christopher return x; 158a8d6d829b84e2321e5f68392401e0cdf1942feeEric Christopher// CHECK: ret 168a8d6d829b84e2321e5f68392401e0cdf1942feeEric Christopher} 17