33 lines
912 B
C
33 lines
912 B
C
|
// 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
|
||
|
}
|