1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
// RUN: %clang_cc1 -xc -O2 -triple thumbv7a-unknown-windows-eabi -fms-extensions -emit-llvm < %s | FileCheck %s
// RUN: %clang_cc1 -xc++ -O2 -triple thumbv7a-unknown-windows-eabi -fms-extensions -emit-llvm < %s | FileCheck %s
// RUN: %clang_cc1 -xc -O2 -triple x86_64-unknown-linux-gnu -fms-extensions -emit-llvm < %s | FileCheck %s
// RUN: %clang_cc1 -xc++ -O2 -triple x86_64-unknown-linux-gnu -fms-extensions -emit-llvm < %s | FileCheck %s
struct S1 {
unsigned long x;
};
// CHECK: define
// CHECK-SAME: void
// CHECK-SAME: test1
void test1(__unaligned struct S1 *out) {
// CHECK: store
// CHECK-SAME: align 1
out->x = 5;
// CHECK: ret void
}
// CHECK: define
// CHECK-SAME: void
// CHECK-SAME: test2
void test2(__unaligned struct S1 *out, __unaligned struct S1 *in) {
// CHECK: load
// CHECK-SAME: align 1
// CHECK: store
// CHECK-SAME: align 1
*out = *in;
// CHECK: ret void
}
|