| // RUN: %llvmgxx %s -S -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: sext | |
| // CHECK: sext | |
| x = (p.y > x ? x : p.y); | |
| return x; | |
| // CHECK: return | |
| } |