// 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 }