brintos

brintos / llvm-project-archived public Read only

0
0
Text · 637 B · d1af8f9 Raw
21 lines · cpp
1// RUN: %clang_cc1 %s -triple x86_64-unknown-unknown -emit-llvm -o - | FileCheck %s2// The store of p.y into the temporary was not3// getting extended to 32 bits, so uninitialized4// 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: bar11// CHECK: %[[val:.*]] = load i32, ptr {{.*}}12// CHECK-NEXT:          ashr i32 %[[val]]13// CHECK:             = load i32, ptr {{.*}}14// CHECK:             = load i32, ptr {{.*}}15// CHECK: %[[val:.*]] = load i32, ptr {{.*}}16// CHECK-NEXT:          ashr i32 %[[val]]17  x = (p.y > x ? x : p.y);18  return x;19// CHECK: ret20}21