blob: 17c57a3ed3452b9d2aed911fa37a04f4bc5aac7a [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"
Hans Wennborgca7a3942017-05-25 20:39:52 +00008// CHECK-V6M-C-SAME: "-resource-dir" "[[PREFIX_DIR]]{{[/\\]+}}lib{{[/\\]+}}clang{{[/\\]+}}[[VERSION:[^"]*]]"
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"
Jonathan Roelofs8d765ef2017-05-25 16:20:51 +000013// CHECK-V6M-C-NEXT: "{{[^"]*}}ld.lld" "{{.*}}.o" "-Bstatic"
Hans Wennborgca7a3942017-05-25 20:39:52 +000014// CHECK-V6M-C-SAME: "-L[[PREFIX_DIR]]{{[/\\]+}}lib{{[/\\]+}}clang{{[/\\]+}}[[VERSION]]{{[/\\]+}}lib{{[/\\]+}}baremetal"
15// 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
Jonathan Roelofs8d765ef2017-05-25 16:20:51 +000035// CHECK-V6M-DEFAULTCXX: "{{[^"]*}}ld.lld" "{{.*}}.o" "-Bstatic"
Hans Wennborgca7a3942017-05-25 20:39:52 +000036// CHECK-V6M-DEFAULTCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}lib{{[/\\]+}}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"
Jonathan Roelofs8d765ef2017-05-25 16:20:51 +000048// CHECK-V6M-LIBCXX: "{{[^"]*}}ld.lld" "{{.*}}.o" "-Bstatic"
Hans Wennborgca7a3942017-05-25 20:39:52 +000049// CHECK-V6M-LIBCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}lib{{[/\\]+}}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"
Jonathan Roelofs8d765ef2017-05-25 16:20:51 +000061// CHECK-V6M-LIBSTDCXX: "{{[^"]*}}ld.lld" "{{.*}}.o" "-Bstatic"
Hans Wennborgca7a3942017-05-25 20:39:52 +000062// CHECK-V6M-LIBSTDCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}lib{{[/\\]+}}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
Jonathan Roelofs8d765ef2017-05-25 16:20:51 +000072// CHECK-V6M-NDL: "{{[^"]*}}ld.lld" "{{.*}}.o" "-Bstatic"
Hans Wennborgca7a3942017-05-25 20:39:52 +000073// CHECK-V6M-NDL-SAME: "-L{{[^"]*}}{{[/\\]+}}lib{{[/\\]+}}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
77// CHECK-THREAD-MODEL: Thread model: single