1 // 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 7 // CHECK-V6M-C: "[[PREFIX_DIR:.*]]{{[/\\]+}}{{[^/^\\]+}}{{[/\\]+}}clang{{.*}}" "-cc1" "-triple" "thumbv6m-none-unknown-eabi" 8 // CHECK-V6M-C-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 9 // CHECK-V6M-C-SAME: "-isysroot" "[[SYSROOT:[^"]*]]" 10 // CHECK-V6M-C-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1" 11 // CHECk-V6M-C-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}include" 12 // CHECK-V6M-C-SAME: "-x" "c++" "{{.*}}baremetal.cpp" 13 // CHECK-V6M-C-NEXT: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 14 // CHECK-V6M-C-SAME: "-L[[RESOURCE_DIR:[^"]+]]{{[/\\]+}}lib{{[/\\]+}}baremetal" 15 // CHECK-V6M-C-SAME: "-T" "semihosted.lds" "-Lsome{{[/\\]+}}directory{{[/\\]+}}user{{[/\\]+}}asked{{[/\\]+}}for" 16 // CHECK-V6M-C-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m" 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 35 // CHECK-V6M-DEFAULTCXX: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 36 // CHECK-V6M-DEFAULTCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}lib{{(64)?}}{{[/\\]+}}clang{{[/\\]+}}{{.*}}{{[/\\]+}}lib{{[/\\]+}}baremetal" 37 // CHECK-V6M-DEFAULTCXX-SAME: "-lc++" "-lc++abi" "-lunwind" 38 // CHECK-V6M-DEFAULTCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m" 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 46 // CHECK-V6M-LIBCXX-NOT: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}{{[^v].*}}" 47 // CHECK-V6M-LIBCXX: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1" 48 // CHECK-V6M-LIBCXX: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 49 // CHECK-V6M-LIBCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}lib{{(64)?}}{{[/\\]+}}clang{{[/\\]+}}{{.*}}{{[/\\]+}}lib{{[/\\]+}}baremetal" 50 // CHECK-V6M-LIBCXX-SAME: "-lc++" "-lc++abi" "-lunwind" 51 // CHECK-V6M-LIBCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m" 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 59 // CHECK-V6M-LIBSTDCXX-NOT: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1" 60 // CHECK-V6M-LIBSTDCXX: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}6.0.0" 61 // CHECK-V6M-LIBSTDCXX: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 62 // CHECK-V6M-LIBSTDCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}lib{{(64)?}}{{[/\\]+}}clang{{[/\\]+}}{{.*}}{{[/\\]+}}lib{{[/\\]+}}baremetal" 63 // CHECK-V6M-LIBSTDCXX-SAME: "-lstdc++" "-lsupc++" "-lunwind" 64 // CHECK-V6M-LIBSTDCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m" 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 72 // CHECK-V6M-NDL: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 73 // CHECK-V6M-NDL-SAME: "-L{{[^"]*}}{{[/\\]+}}lib{{(64)?}}{{[/\\]+}}clang{{[/\\]+}}{{.*}}{{[/\\]+}}lib{{[/\\]+}}baremetal" "-o" "{{.*}}.o" 74 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: 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 86 87 // RUN: %clang -### -target arm-none-eabi -rtlib=libgcc -v %s 2>&1 \ 88 // RUN: | FileCheck %s --check-prefix=CHECK-RTLIB-GCC 89 // CHECK-RTLIB-GCC: -lgcc 90