blob: 21caf83edb21576c0329187af9f0628a7ad4ac79 [file] [log] [blame]
Renato Golin47aeab52013-09-02 14:11:33 +00001// RUN: %clang -target arm-none-gnueabi -munaligned-access -### %s 2> %t
Kevin Qine5cee2602014-05-06 09:51:32 +00002// RUN: FileCheck --check-prefix=CHECK-UNALIGNED-ARM < %t %s
Renato Golin171b6b12013-08-25 13:01:50 +00003
Renato Golin47aeab52013-09-02 14:11:33 +00004// RUN: %clang -target arm-none-gnueabi -mstrict-align -munaligned-access -### %s 2> %t
Kevin Qine5cee2602014-05-06 09:51:32 +00005// RUN: FileCheck --check-prefix=CHECK-UNALIGNED-ARM < %t %s
Renato Golin8d5f3142013-08-28 23:56:07 +00006
Renato Golin47aeab52013-09-02 14:11:33 +00007// RUN: %clang -target arm-none-gnueabi -mno-unaligned-access -munaligned-access -### %s 2> %t
Kevin Qine5cee2602014-05-06 09:51:32 +00008// RUN: FileCheck --check-prefix=CHECK-UNALIGNED-ARM < %t %s
Renato Golin8d5f3142013-08-28 23:56:07 +00009
Akira Hatanaka7651dd82015-07-28 22:26:45 +000010// RUN: %clang -target armv6-apple-darwin -### %s 2> %t
11// RUN: FileCheck --check-prefix=CHECK-UNALIGNED-ARM < %t %s
12
13// RUN: %clang -target armv6-netbsd-eabi -### %s 2> %t
14// RUN: FileCheck --check-prefix=CHECK-UNALIGNED-ARM < %t %s
15
16// RUN: %clang -target armv7-unknown-linux -### %s 2> %t
17// RUN: FileCheck --check-prefix=CHECK-UNALIGNED-ARM < %t %s
18
19// RUN: %clang -target armv7-unknown-nacl-gnueabihf -### %s 2> %t
20// RUN: FileCheck --check-prefix=CHECK-UNALIGNED-ARM < %t %s
21
Tim Northover573cbee2014-05-24 12:52:07 +000022// RUN: %clang -target aarch64-none-gnueabi -munaligned-access -### %s 2> %t
23// RUN: FileCheck --check-prefix=CHECK-UNALIGNED-AARCH64 < %t %s
Kevin Qine5cee2602014-05-06 09:51:32 +000024
Tim Northover573cbee2014-05-24 12:52:07 +000025// RUN: %clang -target aarch64-none-gnueabi -mstrict-align -munaligned-access -### %s 2> %t
26// RUN: FileCheck --check-prefix=CHECK-UNALIGNED-AARCH64 < %t %s
Kevin Qine5cee2602014-05-06 09:51:32 +000027
Tim Northover573cbee2014-05-24 12:52:07 +000028// RUN: %clang -target aarch64-none-gnueabi -mno-unaligned-access -munaligned-access -### %s 2> %t
29// RUN: FileCheck --check-prefix=CHECK-UNALIGNED-AARCH64 < %t %s
Kevin Qine5cee2602014-05-06 09:51:32 +000030
Akira Hatanaka7651dd82015-07-28 22:26:45 +000031// CHECK-UNALIGNED-ARM-NOT: "-target-feature" "+strict-align"
Tim Northover573cbee2014-05-24 12:52:07 +000032// CHECK-UNALIGNED-AARCH64: "-backend-option" "-aarch64-no-strict-align"
Renato Golin171b6b12013-08-25 13:01:50 +000033
Renato Golin8d5f3142013-08-28 23:56:07 +000034
Renato Golin47aeab52013-09-02 14:11:33 +000035// RUN: %clang -target arm-none-gnueabi -mno-unaligned-access -### %s 2> %t
Kevin Qine5cee2602014-05-06 09:51:32 +000036// RUN: FileCheck --check-prefix=CHECK-ALIGNED-ARM < %t %s
Renato Golin171b6b12013-08-25 13:01:50 +000037
Renato Golin47aeab52013-09-02 14:11:33 +000038// RUN: %clang -target arm-none-gnueabi -mstrict-align -### %s 2> %t
Kevin Qine5cee2602014-05-06 09:51:32 +000039// RUN: FileCheck --check-prefix=CHECK-ALIGNED-ARM < %t %s
Renato Golin8d5f3142013-08-28 23:56:07 +000040
41// RUN: %clang -target arm-none-gnueabi -munaligned-access -mno-unaligned-access -### %s 2> %t
Kevin Qine5cee2602014-05-06 09:51:32 +000042// RUN: FileCheck --check-prefix=CHECK-ALIGNED-ARM < %t %s
Renato Golin8d5f3142013-08-28 23:56:07 +000043
44// RUN: %clang -target arm-none-gnueabi -munaligned-access -mstrict-align -### %s 2> %t
Kevin Qine5cee2602014-05-06 09:51:32 +000045// RUN: FileCheck --check-prefix=CHECK-ALIGNED-ARM < %t %s
Renato Golin8d5f3142013-08-28 23:56:07 +000046
Akira Hatanaka7651dd82015-07-28 22:26:45 +000047// RUN: %clang -target arm-none-gnueabi -### %s 2> %t
48// RUN: FileCheck --check-prefix=CHECK-ALIGNED-ARM < %t %s
49
50// RUN: %clang -target armv5-apple-darwin -### %s 2> %t
51// RUN: FileCheck --check-prefix=CHECK-ALIGNED-ARM < %t %s
52
53// RUN: %clang -target armv5t-netbsd-eabi -### %s 2> %t
54// RUN: FileCheck --check-prefix=CHECK-ALIGNED-ARM < %t %s
55
56// RUN: %clang -target armv6-unknown-linux -### %s 2> %t
57// RUN: FileCheck --check-prefix=CHECK-ALIGNED-ARM < %t %s
58
59// RUN: %clang -target armv6-unknown-nacl-gnueabihf -### %s 2> %t
60// RUN: FileCheck --check-prefix=CHECK-ALIGNED-ARM < %t %s
61
Tim Northover573cbee2014-05-24 12:52:07 +000062// RUN: %clang -target aarch64-none-gnueabi -mno-unaligned-access -### %s 2> %t
63// RUN: FileCheck --check-prefix=CHECK-ALIGNED-AARCH64 < %t %s
Kevin Qine5cee2602014-05-06 09:51:32 +000064
Tim Northover573cbee2014-05-24 12:52:07 +000065// RUN: %clang -target aarch64-none-gnueabi -mstrict-align -### %s 2> %t
66// RUN: FileCheck --check-prefix=CHECK-ALIGNED-AARCH64 < %t %s
Kevin Qine5cee2602014-05-06 09:51:32 +000067
Tim Northover573cbee2014-05-24 12:52:07 +000068// RUN: %clang -target aarch64-none-gnueabi -munaligned-access -mno-unaligned-access -### %s 2> %t
69// RUN: FileCheck --check-prefix=CHECK-ALIGNED-AARCH64 < %t %s
Kevin Qine5cee2602014-05-06 09:51:32 +000070
Tim Northover573cbee2014-05-24 12:52:07 +000071// RUN: %clang -target aarch64-none-gnueabi -munaligned-access -mstrict-align -### %s 2> %t
72// RUN: FileCheck --check-prefix=CHECK-ALIGNED-AARCH64 < %t %s
Kevin Qine5cee2602014-05-06 09:51:32 +000073
Bob Wilson0874e532014-07-29 00:23:18 +000074// RUN: %clang -target aarch64-none-gnueabi -mkernel -mno-unaligned-access -### %s 2> %t
75// RUN: FileCheck --check-prefix=CHECK-ALIGNED-AARCH64 < %t %s
76
Akira Hatanaka7651dd82015-07-28 22:26:45 +000077// CHECK-ALIGNED-ARM: "-target-feature" "+strict-align"
Tim Northover573cbee2014-05-24 12:52:07 +000078// CHECK-ALIGNED-AARCH64: "-backend-option" "-aarch64-strict-align"
Jonathan Roelofs2b00d542014-10-07 15:11:32 +000079
80// Make sure that v6M cores always trigger the unsupported aligned accesses error
81// for all supported architecture triples.
82// RUN: not %clang -c -target thumbv6m-none-gnueabi -mcpu=cortex-m0 -munaligned-access %s 2>&1 | \
83// RUN: FileCheck --check-prefix CHECK-UNALIGN-NOT-SUPPORTED %s
84// RUN: not %clang -c -target thumb-none-gnueabi -mcpu=cortex-m0 -munaligned-access %s 2>&1 | \
85// RUN: FileCheck --check-prefix CHECK-UNALIGN-NOT-SUPPORTED %s
86
87// CHECK-UNALIGN-NOT-SUPPORTED: error: the v6m sub-architecture does not support unaligned accesses