33 lines · c
1// RUN: %clang_cc1 -xc -O2 -triple thumbv7a-unknown-windows-eabi -fms-extensions -emit-llvm < %s | FileCheck %s2// RUN: %clang_cc1 -xc++ -O2 -triple thumbv7a-unknown-windows-eabi -fms-extensions -emit-llvm < %s | FileCheck %s3// RUN: %clang_cc1 -xc -O2 -triple x86_64-unknown-linux-gnu -fms-extensions -emit-llvm < %s | FileCheck %s4// RUN: %clang_cc1 -xc++ -O2 -triple x86_64-unknown-linux-gnu -fms-extensions -emit-llvm < %s | FileCheck %s5 6struct S1 {7 unsigned long x;8};9 10// CHECK: define11// CHECK-SAME: void12// CHECK-SAME: test113 14void test1(__unaligned struct S1 *out) {15 // CHECK: store16 // CHECK-SAME: align 117 out->x = 5;18 // CHECK: ret void19}20 21// CHECK: define22// CHECK-SAME: void23// CHECK-SAME: test224 25void test2(__unaligned struct S1 *out, __unaligned struct S1 *in) {26 // CHECK: load27 // CHECK-SAME: align 128 // CHECK: store29 // CHECK-SAME: align 130 *out = *in;31 // CHECK: ret void32}33