blob: a433e2df07cb45a86a2607fbd3de5907eac87a9f [file] [log] [blame]
Jonathan Roelofs901c7762017-05-25 15:42:13 +00001// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
2// RUN: -target armv6m-none-eabi \
3// RUN: -T semihosted.lds \
4// RUN: -L some/directory/user/asked/for \
5// RUN: --sysroot=%S/Inputs/baremetal_arm \
6// RUN: | FileCheck --check-prefix=CHECK-V6M-C %s
Richard Trieud3bc3e02017-05-25 23:25:36 +00007// CHECK-V6M-C: "[[PREFIX_DIR:.*]]{{[/\\]+}}{{[^/^\\]+}}{{[/\\]+}}clang{{.*}}" "-cc1" "-triple" "thumbv6m-none--eabi"
Michal Gorny997f7762017-06-05 14:13:37 +00008// CHECK-V6M-C-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
Jonathan Roelofs901c7762017-05-25 15:42:13 +00009// CHECK-V6M-C-SAME: "-isysroot" "[[SYSROOT:[^"]*]]"
Hans Wennborgca7a3942017-05-25 20:39:52 +000010// CHECK-V6M-C-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1"
11// CHECk-V6M-C-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}include"
Jonathan Roelofs901c7762017-05-25 15:42:13 +000012// CHECK-V6M-C-SAME: "-x" "c++" "{{.*}}baremetal.cpp"
Paul Robinsonfd658952017-10-06 17:12:28 +000013// CHECK-V6M-C-NEXT: "{{[^"]*}}ld.lld{{(\.exe)?}}" "{{.*}}.o" "-Bstatic"
Michal Gorny997f7762017-06-05 14:13:37 +000014// CHECK-V6M-C-SAME: "-L[[RESOURCE_DIR:[^"]+]]{{[/\\]+}}lib{{[/\\]+}}baremetal"
Hans Wennborgca7a3942017-05-25 20:39:52 +000015// CHECK-V6M-C-SAME: "-T" "semihosted.lds" "-Lsome{{[/\\]+}}directory{{[/\\]+}}user{{[/\\]+}}asked{{[/\\]+}}for"
Jonathan Roelofs901c7762017-05-25 15:42:13 +000016// CHECK-V6M-C-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m.a"
17// CHECK-V6M-C-SAME: "-o" "{{.*}}.o"
18
19// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
20// RUN: -target armv6m-none-eabi \
21// RUN: -nostdlibinc -nobuiltininc \
22// RUN: --sysroot=%S/Inputs/baremetal_arm \
23// RUN: | FileCheck --check-prefix=CHECK-V6M-LIBINC %s
24// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
25// RUN: -target armv6m-none-eabi \
26// RUN: -nostdinc \
27// RUN: --sysroot=%S/Inputs/baremetal_arm \
28// RUN: | FileCheck --check-prefix=CHECK-V6M-LIBINC %s
29// CHECK-V6M-LIBINC-NOT: "-internal-isystem"
30
31// RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \
32// RUN: -target armv6m-none-eabi \
33// RUN: --sysroot=%S/Inputs/baremetal_arm \
34// RUN: | FileCheck --check-prefix=CHECK-V6M-DEFAULTCXX %s
Paul Robinsonfd658952017-10-06 17:12:28 +000035// CHECK-V6M-DEFAULTCXX: "{{[^"]*}}ld.lld{{(\.exe)?}}" "{{.*}}.o" "-Bstatic"
Ismail Donmezfd934c22017-05-28 06:15:42 +000036// CHECK-V6M-DEFAULTCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}lib{{(64)?}}{{[/\\]+}}clang{{[/\\]+}}{{.*}}{{[/\\]+}}lib{{[/\\]+}}baremetal"
Jonathan Roelofs901c7762017-05-25 15:42:13 +000037// CHECK-V6M-DEFAULTCXX-SAME: "-lc++" "-lc++abi" "-lunwind"
38// CHECK-V6M-DEFAULTCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m.a"
39// CHECK-V6M-DEFAULTCXX-SAME: "-o" "{{.*}}.o"
40
41// RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \
42// RUN: -target armv6m-none-eabi \
43// RUN: --sysroot=%S/Inputs/baremetal_arm \
44// RUN: -stdlib=libc++ \
45// RUN: | FileCheck --check-prefix=CHECK-V6M-LIBCXX %s
Hans Wennborgca7a3942017-05-25 20:39:52 +000046// CHECK-V6M-LIBCXX-NOT: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}{{[^v].*}}"
47// CHECK-V6M-LIBCXX: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1"
Paul Robinsonfd658952017-10-06 17:12:28 +000048// CHECK-V6M-LIBCXX: "{{[^"]*}}ld.lld{{(\.exe)?}}" "{{.*}}.o" "-Bstatic"
Ismail Donmezfd934c22017-05-28 06:15:42 +000049// CHECK-V6M-LIBCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}lib{{(64)?}}{{[/\\]+}}clang{{[/\\]+}}{{.*}}{{[/\\]+}}lib{{[/\\]+}}baremetal"
Jonathan Roelofs901c7762017-05-25 15:42:13 +000050// CHECK-V6M-LIBCXX-SAME: "-lc++" "-lc++abi" "-lunwind"
51// CHECK-V6M-LIBCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m.a"
52// CHECK-V6M-LIBCXX-SAME: "-o" "{{.*}}.o"
53
54// RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \
55// RUN: -target armv6m-none-eabi \
56// RUN: --sysroot=%S/Inputs/baremetal_arm \
57// RUN: -stdlib=libstdc++ \
58// RUN: | FileCheck --check-prefix=CHECK-V6M-LIBSTDCXX %s
Hans Wennborgca7a3942017-05-25 20:39:52 +000059// CHECK-V6M-LIBSTDCXX-NOT: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1"
60// CHECK-V6M-LIBSTDCXX: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}6.0.0"
Paul Robinsonfd658952017-10-06 17:12:28 +000061// CHECK-V6M-LIBSTDCXX: "{{[^"]*}}ld.lld{{(\.exe)?}}" "{{.*}}.o" "-Bstatic"
Ismail Donmezfd934c22017-05-28 06:15:42 +000062// CHECK-V6M-LIBSTDCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}lib{{(64)?}}{{[/\\]+}}clang{{[/\\]+}}{{.*}}{{[/\\]+}}lib{{[/\\]+}}baremetal"
Jonathan Roelofs901c7762017-05-25 15:42:13 +000063// CHECK-V6M-LIBSTDCXX-SAME: "-lstdc++" "-lsupc++" "-lunwind"
64// CHECK-V6M-LIBSTDCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m.a"
65// CHECK-V6M-LIBSTDCXX-SAME: "-o" "{{.*}}.o"
66
67// RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \
68// RUN: -target armv6m-none-eabi \
69// RUN: --sysroot=%S/Inputs/baremetal_arm \
70// RUN: -nodefaultlibs \
71// RUN: | FileCheck --check-prefix=CHECK-V6M-NDL %s
Paul Robinsonfd658952017-10-06 17:12:28 +000072// CHECK-V6M-NDL: "{{[^"]*}}ld.lld{{(\.exe)?}}" "{{.*}}.o" "-Bstatic"
Ismail Donmezfd934c22017-05-28 06:15:42 +000073// CHECK-V6M-NDL-SAME: "-L{{[^"]*}}{{[/\\]+}}lib{{(64)?}}{{[/\\]+}}clang{{[/\\]+}}{{.*}}{{[/\\]+}}lib{{[/\\]+}}baremetal" "-o" "{{.*}}.o"
Jonathan Roelofs901c7762017-05-25 15:42:13 +000074
75// RUN: %clangxx -target arm-none-eabi -v 2>&1 \
76// RUN: | FileCheck %s --check-prefix=CHECK-THREAD-MODEL
Jonathan Roelofsb780c8a2017-09-06 17:09:25 +000077// CHECK-THREAD-MODEL: Thread model: posix
78
79// RUN: %clangxx -target arm-none-eabi -mthread-model single -v 2>&1 \
80// RUN: | FileCheck %s --check-prefix=CHECK-THREAD-MODEL-SINGLE
81// CHECK-THREAD-MODEL-SINGLE: Thread model: single
82
83// RUN: %clangxx -target arm-none-eabi -mthread-model posix -v 2>&1 \
84// RUN: | FileCheck %s --check-prefix=CHECK-THREAD-MODEL-POSIX
85// CHECK-THREAD-MODEL-POSIX: Thread model: posix