1 // RUN: %clang -target arm-none-gnueabi -munaligned-access -### %s 2> %t 2 // RUN: FileCheck --check-prefix=CHECK-UNALIGNED-ARM < %t %s 3 4 // RUN: %clang -target arm-none-gnueabi -mstrict-align -munaligned-access -### %s 2> %t 5 // RUN: FileCheck --check-prefix=CHECK-UNALIGNED-ARM < %t %s 6 7 // RUN: %clang -target arm-none-gnueabi -mno-unaligned-access -munaligned-access -### %s 2> %t 8 // RUN: FileCheck --check-prefix=CHECK-UNALIGNED-ARM < %t %s 9 10 // RUN: %clang -target aarch64-none-gnueabi -munaligned-access -### %s 2> %t 11 // RUN: FileCheck --check-prefix=CHECK-UNALIGNED-AARCH64 < %t %s 12 13 // RUN: %clang -target aarch64-none-gnueabi -mstrict-align -munaligned-access -### %s 2> %t 14 // RUN: FileCheck --check-prefix=CHECK-UNALIGNED-AARCH64 < %t %s 15 16 // RUN: %clang -target aarch64-none-gnueabi -mno-unaligned-access -munaligned-access -### %s 2> %t 17 // RUN: FileCheck --check-prefix=CHECK-UNALIGNED-AARCH64 < %t %s 18 19 // CHECK-UNALIGNED-ARM: "-backend-option" "-arm-no-strict-align" 20 // CHECK-UNALIGNED-AARCH64: "-backend-option" "-aarch64-no-strict-align" 21 22 23 // RUN: %clang -target arm-none-gnueabi -mno-unaligned-access -### %s 2> %t 24 // RUN: FileCheck --check-prefix=CHECK-ALIGNED-ARM < %t %s 25 26 // RUN: %clang -target arm-none-gnueabi -mstrict-align -### %s 2> %t 27 // RUN: FileCheck --check-prefix=CHECK-ALIGNED-ARM < %t %s 28 29 // RUN: %clang -target arm-none-gnueabi -munaligned-access -mno-unaligned-access -### %s 2> %t 30 // RUN: FileCheck --check-prefix=CHECK-ALIGNED-ARM < %t %s 31 32 // RUN: %clang -target arm-none-gnueabi -munaligned-access -mstrict-align -### %s 2> %t 33 // RUN: FileCheck --check-prefix=CHECK-ALIGNED-ARM < %t %s 34 35 // RUN: %clang -target aarch64-none-gnueabi -mno-unaligned-access -### %s 2> %t 36 // RUN: FileCheck --check-prefix=CHECK-ALIGNED-AARCH64 < %t %s 37 38 // RUN: %clang -target aarch64-none-gnueabi -mstrict-align -### %s 2> %t 39 // RUN: FileCheck --check-prefix=CHECK-ALIGNED-AARCH64 < %t %s 40 41 // RUN: %clang -target aarch64-none-gnueabi -munaligned-access -mno-unaligned-access -### %s 2> %t 42 // RUN: FileCheck --check-prefix=CHECK-ALIGNED-AARCH64 < %t %s 43 44 // RUN: %clang -target aarch64-none-gnueabi -munaligned-access -mstrict-align -### %s 2> %t 45 // RUN: FileCheck --check-prefix=CHECK-ALIGNED-AARCH64 < %t %s 46 47 // RUN: %clang -target aarch64-none-gnueabi -mkernel -mno-unaligned-access -### %s 2> %t 48 // RUN: FileCheck --check-prefix=CHECK-ALIGNED-AARCH64 < %t %s 49 50 // CHECK-ALIGNED-ARM: "-backend-option" "-arm-strict-align" 51 // CHECK-ALIGNED-AARCH64: "-backend-option" "-aarch64-strict-align" 52 53 // Make sure that v6M cores always trigger the unsupported aligned accesses error 54 // for all supported architecture triples. 55 // RUN: not %clang -c -target thumbv6m-none-gnueabi -mcpu=cortex-m0 -munaligned-access %s 2>&1 | \ 56 // RUN: FileCheck --check-prefix CHECK-UNALIGN-NOT-SUPPORTED %s 57 // RUN: not %clang -c -target thumb-none-gnueabi -mcpu=cortex-m0 -munaligned-access %s 2>&1 | \ 58 // RUN: FileCheck --check-prefix CHECK-UNALIGN-NOT-SUPPORTED %s 59 60 // CHECK-UNALIGN-NOT-SUPPORTED: error: the v6m sub-architecture does not support unaligned accesses 61