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: "-T" "semihosted.lds" "-Lsome{{[/\\]+}}directory{{[/\\]+}}user{{[/\\]+}}asked{{[/\\]+}}for" 15 // CHECK-V6M-C-SAME: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}lib" 16 // CHECK-V6M-C-SAME: "-L[[RESOURCE_DIR:[^"]+]]{{[/\\]+}}lib{{[/\\]+}}baremetal" 17 // CHECK-V6M-C-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m" 18 // CHECK-V6M-C-SAME: "-o" "{{.*}}.o" 19 20 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 21 // RUN: -target armv6m-none-eabi \ 22 // RUN: -nostdlibinc -nobuiltininc \ 23 // RUN: --sysroot=%S/Inputs/baremetal_arm \ 24 // RUN: | FileCheck --check-prefix=CHECK-V6M-LIBINC %s 25 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 26 // RUN: -target armv6m-none-eabi \ 27 // RUN: -nostdinc \ 28 // RUN: --sysroot=%S/Inputs/baremetal_arm \ 29 // RUN: | FileCheck --check-prefix=CHECK-V6M-LIBINC %s 30 // CHECK-V6M-LIBINC-NOT: "-internal-isystem" 31 32 // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 33 // RUN: -target armv6m-none-eabi \ 34 // RUN: --sysroot=%S/Inputs/baremetal_arm \ 35 // RUN: | FileCheck --check-prefix=CHECK-V6M-DEFAULTCXX %s 36 // CHECK-V6M-DEFAULTCXX: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 37 // CHECK-V6M-DEFAULTCXX: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 38 // CHECK-V6M-DEFAULTCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}baremetal_arm{{[/\\]+}}lib" 39 // CHECK-V6M-DEFAULTCXX-SAME: "-L[[RESOURCE_DIR]]{{[/\\]+}}lib{{[/\\]+}}baremetal" 40 // CHECK-V6M-DEFAULTCXX-SAME: "-lc++" "-lc++abi" "-lunwind" 41 // CHECK-V6M-DEFAULTCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m" 42 // CHECK-V6M-DEFAULTCXX-SAME: "-o" "{{.*}}.o" 43 44 // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 45 // RUN: -target armv6m-none-eabi \ 46 // RUN: --sysroot=%S/Inputs/baremetal_arm \ 47 // RUN: -stdlib=libc++ \ 48 // RUN: | FileCheck --check-prefix=CHECK-V6M-LIBCXX %s 49 // CHECK-V6M-LIBCXX: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 50 // CHECK-V6M-LIBCXX-NOT: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}{{[^v].*}}" 51 // CHECK-V6M-LIBCXX-SAME: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1" 52 // CHECK-V6M-LIBCXX: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 53 // CHECK-V6M-LIBCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}baremetal_arm{{[/\\]+}}lib" 54 // CHECK-V6M-LIBCXX-SAME: "-L[[RESOURCE_DIR]]{{[/\\]+}}lib{{[/\\]+}}baremetal" 55 // CHECK-V6M-LIBCXX-SAME: "-lc++" "-lc++abi" "-lunwind" 56 // CHECK-V6M-LIBCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m" 57 // CHECK-V6M-LIBCXX-SAME: "-o" "{{.*}}.o" 58 59 // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 60 // RUN: -target armv6m-none-eabi \ 61 // RUN: --sysroot=%S/Inputs/baremetal_arm \ 62 // RUN: -stdlib=libstdc++ \ 63 // RUN: | FileCheck --check-prefix=CHECK-V6M-LIBSTDCXX %s 64 // CHECK-V6M-LIBSTDCXX: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 65 // CHECK-V6M-LIBSTDCXX-NOT: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1" 66 // CHECK-V6M-LIBSTDCXX-SAME: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}6.0.0" 67 // CHECK-V6M-LIBSTDCXX: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 68 // CHECK-V6M-LIBSTDCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}baremetal_arm{{[/\\]+}}lib" 69 // CHECK-V6M-LIBSTDCXX-SAME: "-L[[RESOURCE_DIR]]{{[/\\]+}}lib{{[/\\]+}}baremetal" 70 // CHECK-V6M-LIBSTDCXX-SAME: "-lstdc++" "-lsupc++" "-lunwind" 71 // CHECK-V6M-LIBSTDCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m" 72 // CHECK-V6M-LIBSTDCXX-SAME: "-o" "{{.*}}.o" 73 74 // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 75 // RUN: -target armv6m-none-eabi \ 76 // RUN: --sysroot=%S/Inputs/baremetal_arm \ 77 // RUN: -nodefaultlibs \ 78 // RUN: | FileCheck --check-prefix=CHECK-V6M-NDL %s 79 // CHECK-V6M-NDL: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 80 // CHECK-V6M-NDL: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 81 // CHECK-V6M-NDL-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}baremetal_arm{{[/\\]+}}lib" 82 // CHECK-V6M-NDL-SAME: "-L[[RESOURCE_DIR]]{{[/\\]+}}lib{{[/\\]+}}baremetal" 83 // CHECK-V6M-NDL-SAME: "-o" "{{.*}}.o" 84 85 // RUN: %clangxx -target arm-none-eabi -v 2>&1 \ 86 // RUN: | FileCheck %s --check-prefix=CHECK-THREAD-MODEL 87 // CHECK-THREAD-MODEL: Thread model: posix 88 89 // RUN: %clangxx -target arm-none-eabi -mthread-model single -v 2>&1 \ 90 // RUN: | FileCheck %s --check-prefix=CHECK-THREAD-MODEL-SINGLE 91 // CHECK-THREAD-MODEL-SINGLE: Thread model: single 92 93 // RUN: %clangxx -target arm-none-eabi -mthread-model posix -v 2>&1 \ 94 // RUN: | FileCheck %s --check-prefix=CHECK-THREAD-MODEL-POSIX 95 // CHECK-THREAD-MODEL-POSIX: Thread model: posix 96 97 // RUN: %clang -### -target arm-none-eabi -rtlib=libgcc -v %s 2>&1 \ 98 // RUN: | FileCheck %s --check-prefix=CHECK-RTLIB-GCC 99 // CHECK-RTLIB-GCC: -lgcc 100 101 // RUN: %clang -### -target arm-none-eabi -v %s 2>&1 \ 102 // RUN: | FileCheck %s --check-prefix=CHECK-SYSROOT-INC 103 // CHECK-SYSROOT-INC-NOT: "-internal-isystem" "include" 104 105 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 106 // RUN: -target riscv64-unknown-elf \ 107 // RUN: -L some/directory/user/asked/for \ 108 // RUN: --sysroot=%S/Inputs/basic_riscv64_tree/riscv64-unknown-elf \ 109 // RUN: | FileCheck --check-prefix=CHECK-RV64 %s 110 // CHECK-RV64: "[[PREFIX_DIR:.*]]{{[/\\]+}}{{[^/^\\]+}}{{[/\\]+}}clang{{.*}}" "-cc1" "-triple" "riscv64-unknown-unknown-elf" 111 // CHECK-RV64-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 112 // CHECK-RV64-SAME: "-isysroot" "[[SYSROOT:[^"]*]]" 113 // CHECK-RV64-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1" 114 // CHECk-RV64-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}include" 115 // CHECK-RV64-SAME: "-x" "c++" "{{.*}}baremetal.cpp" 116 // CHECK-RV64-NEXT: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 117 // CHECK-RV64-SAME: "-Lsome{{[/\\]+}}directory{{[/\\]+}}user{{[/\\]+}}asked{{[/\\]+}}for" 118 // CHECK-RV64-SAME: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}lib" 119 // CHECK-RV64-SAME: "-L[[RESOURCE_DIR:[^"]+]]{{[/\\]+}}lib{{[/\\]+}}baremetal" 120 // CHECK-RV64-SAME: "-lc" "-lm" "-lclang_rt.builtins-riscv64" 121 // CHECK-RV64-SAME: "-o" "{{.*}}.o" 122 123 // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 124 // RUN: -target riscv64-unknown-elf \ 125 // RUN: --sysroot=%S/Inputs/basic_riscv64_tree/riscv64-unknown-elf \ 126 // RUN: | FileCheck --check-prefix=CHECK-RV64-DEFAULTCXX %s 127 // CHECK-RV64-DEFAULTCXX: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 128 // CHECK-RV64-DEFAULTCXX: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 129 // CHECK-RV64-DEFAULTCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}basic_riscv64_tree{{[/\\]+}}riscv64-unknown-elf{{[/\\]+}}lib" 130 // CHECK-RV64-DEFAULTCXX-SAME: "-L[[RESOURCE_DIR]]{{.*}}{{[/\\]+}}lib{{[/\\]+}}baremetal" 131 // CHECK-RV64-DEFAULTCXX-SAME: "-lc++" "-lc++abi" "-lunwind" 132 // CHECK-RV64-DEFAULTCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-riscv64" 133 // CHECK-RV64-DEFAULTCXX-SAME: "-o" "{{.*}}.o" 134 135 // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 136 // RUN: -target riscv64-unknown-elf \ 137 // RUN: --sysroot=%S/Inputs/basic_riscv64_tree/riscv64-unknown-elf \ 138 // RUN: -stdlib=libc++ \ 139 // RUN: | FileCheck --check-prefix=CHECK-RV64-LIBCXX %s 140 // CHECK-RV64-LIBCXX: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 141 // CHECK-RV64-LIBCXX-NOT: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}{{[^v].*}}" 142 // CHECK-RV64-LIBCXX-SAME: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1" 143 // CHECK-RV64-LIBCXX: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 144 // CHECK-RV64-LIBCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}basic_riscv64_tree{{[/\\]+}}riscv64-unknown-elf{{[/\\]+}}lib" 145 // CHECK-RV64-LIBCXX-SAME: "-L[[RESOURCE_DIR]]{{[/\\]+}}lib{{[/\\]+}}baremetal" 146 // CHECK-RV64-LIBCXX-SAME: "-lc++" "-lc++abi" "-lunwind" 147 // CHECK-RV64-LIBCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-riscv64" 148 // CHECK-RV64-LIBCXX-SAME: "-o" "{{.*}}.o" 149 150 // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 151 // RUN: -target riscv64-unknown-elf \ 152 // RUN: --sysroot=%S/Inputs/basic_riscv64_tree/riscv64-unknown-elf \ 153 // RUN: -stdlib=libstdc++ \ 154 // RUN: | FileCheck --check-prefix=CHECK-RV64-LIBSTDCXX %s 155 // CHECK-RV64-LIBSTDCXX: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 156 // CHECK-RV64-LIBSTDCXX-NOT: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1" 157 // CHECK-RV64-LIBSTDCXX-SAME: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}8.0.1" 158 // CHECK-RV64-LIBSTDCXX: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 159 // CHECK-RV64-LIBSTDCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}basic_riscv64_tree{{[/\\]+}}riscv64-unknown-elf{{[/\\]+}}lib" 160 // CHECK-RV64-LIBSTDCXX-SAME: "-L[[RESOURCE_DIR]]{{[/\\]+}}lib{{[/\\]+}}baremetal" 161 // CHECK-RV64-LIBSTDCXX-SAME: "-lstdc++" "-lsupc++" "-lunwind" 162 // CHECK-RV64-LIBSTDCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-riscv64" 163 // CHECK-RV64-LIBSTDCXX-SAME: "-o" "{{.*}}.o" 164 165 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 166 // RUN: -target riscv32-unknown-elf \ 167 // RUN: -L some/directory/user/asked/for \ 168 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \ 169 // RUN: | FileCheck --check-prefix=CHECK-RV32 %s 170 // CHECK-RV32: "[[PREFIX_DIR:.*]]{{[/\\]+}}{{[^/^\\]+}}{{[/\\]+}}clang{{.*}}" "-cc1" "-triple" "riscv32-unknown-unknown-elf" 171 // CHECK-RV32-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 172 // CHECK-RV32-SAME: "-isysroot" "[[SYSROOT:[^"]*]]" 173 // CHECK-RV32-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1" 174 // CHECK-RV32-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}include" 175 // CHECK-RV32-SAME: "-x" "c++" "{{.*}}baremetal.cpp" 176 // CHECK-RV32-NEXT: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 177 // CHECK-RV32-SAME: "-Lsome{{[/\\]+}}directory{{[/\\]+}}user{{[/\\]+}}asked{{[/\\]+}}for" 178 // CHECK-RV32-SAME: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}lib" 179 // CHECK-RV32-SAME: "-L[[RESOURCE_DIR:[^"]+]]{{[/\\]+}}lib{{[/\\]+}}baremetal" 180 // CHECK-RV32-SAME: "-lc" "-lm" "-lclang_rt.builtins-riscv32" 181 // CHECK-RV32-SAME: "-o" "{{.*}}.o" 182 183 // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 184 // RUN: -target riscv32-unknown-elf \ 185 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \ 186 // RUN: | FileCheck --check-prefix=CHECK-RV32-DEFAULTCXX %s 187 // CHECK-RV32-DEFAULTCXX: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 188 // CHECK-RV32-DEFAULTCXX: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 189 // CHECK-RV32-DEFAULTCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}basic_riscv32_tree{{[/\\]+}}riscv32-unknown-elf{{[/\\]+}}lib" 190 // CHECK-RV32-DEFAULTCXX-SAME: "-L[[RESOURCE_DIR]]{{[/\\]+}}lib{{[/\\]+}}baremetal" 191 // CHECK-RV32-DEFAULTCXX-SAME: "-lc++" "-lc++abi" "-lunwind" 192 // CHECK-RV32-DEFAULTCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-riscv32" 193 // CHECK-RV32-DEFAULTCXX-SAME: "-o" "{{.*}}.o" 194 195 // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 196 // RUN: -target riscv32-unknown-elf \ 197 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \ 198 // RUN: -stdlib=libc++ \ 199 // RUN: | FileCheck --check-prefix=CHECK-RV32-LIBCXX %s 200 // CHECK-RV32-LIBCXX: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 201 // CHECK-RV32-LIBCXX-NOT: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}{{[^v].*}}" 202 // CHECK-RV32-LIBCXX-SAME: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1" 203 // CHECK-RV32-LIBCXX: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 204 // CHECK-RV32-LIBCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}basic_riscv32_tree{{[/\\]+}}riscv32-unknown-elf{{[/\\]+}}lib" 205 // CHECK-RV32-LIBCXX-SAME: "-L[[RESOURCE_DIR]]{{[/\\]+}}lib{{[/\\]+}}baremetal" 206 // CHECK-RV32-LIBCXX-SAME: "-lc++" "-lc++abi" "-lunwind" 207 // CHECK-RV32-LIBCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-riscv32" 208 // CHECK-RV32-LIBCXX-SAME: "-o" "{{.*}}.o" 209 210 // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 211 // RUN: -target riscv32-unknown-elf \ 212 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \ 213 // RUN: -stdlib=libstdc++ \ 214 // RUN: | FileCheck --check-prefix=CHECK-RV32-LIBSTDCXX %s 215 // CHECK-RV32-LIBSTDCXX: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 216 // CHECK-RV32-LIBSTDCXX-NOT: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1" 217 // CHECK-RV32-LIBSTDCXX-SAME: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}8.0.1" 218 // CHECK-RV32-LIBSTDCXX: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 219 // CHECK-RV32-LIBSTDCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}basic_riscv32_tree{{[/\\]+}}riscv32-unknown-elf{{[/\\]+}}lib" 220 // CHECK-RV32-LIBSTDCXX-SAME: "-L[[RESOURCE_DIR]]{{[/\\]+}}lib{{[/\\]+}}baremetal" 221 // CHECK-RV32-LIBSTDCXX-SAME: "-lstdc++" "-lsupc++" "-lunwind" 222 // CHECK-RV32-LIBSTDCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-riscv32" 223 // CHECK-RV32-LIBSTDCXX-SAME: "-o" "{{.*}}.o" 224 225 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 226 // RUN: -target riscv64-unknown-elf \ 227 // RUN: -nostdlibinc -nobuiltininc \ 228 // RUN: --sysroot=%S/Inputs/basic_riscv64_tree/riscv64-unknown-elf \ 229 // RUN: | FileCheck --check-prefix=CHECK-RV64-LIBINC %s 230 231 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 232 // RUN: -target riscv64-unknown-elf \ 233 // RUN: -nostdinc \ 234 // RUN: --sysroot=%S/Inputs/basic_riscv64_tree/riscv64-unknown-elf \ 235 // RUN: | FileCheck --check-prefix=CHECK-RV64-LIBINC %s 236 // CHECK-RV64-LIBINC-NOT: "-internal-isystem" 237 238 // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 239 // RUN: -target riscv64-unknown-elf \ 240 // RUN: --sysroot=%S/Inputs/basic_riscv64_tree/riscv64-unknown-elf \ 241 // RUN: -nodefaultlibs \ 242 // RUN: | FileCheck --check-prefix=CHECK-RV64-NDL %s 243 // CHECK-RV64-NDL: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 244 // CHECK-RV64-NDL: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 245 // CHECK-RV64-NDL-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}basic_riscv64_tree{{[/\\]+}}riscv64-unknown-elf{{[/\\]+}}lib" 246 // CHECK-RV64-NDL-SAME: "-L[[RESOURCE_DIR]]{{[/\\]+}}lib{{[/\\]+}}baremetal" 247 // CHECK-RV64-NDL-SAME: "-o" "{{.*}}.o" 248 249 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 250 // RUN: -target riscv64-unknown-elf \ 251 // RUN: -march=rv64imafdc -mabi=lp64d \ 252 // RUN: --sysroot=%S/Inputs/basic_riscv64_tree/riscv64-unknown-elf \ 253 // RUN: | FileCheck --check-prefix=CHECK-RV64FD %s 254 255 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 256 // RUN: -target riscv64-unknown-elf \ 257 // RUN: -march=rv64gc -mabi=lp64d \ 258 // RUN: --sysroot=%S/Inputs/basic_riscv64_tree/riscv64-unknown-elf \ 259 // RUN: | FileCheck --check-prefix=CHECK-RV64FD %s 260 261 // CHECK-RV64FD: "[[PREFIX_DIR:.*]]{{[/\\]+}}{{[^/^\\]+}}{{[/\\]+}}clang{{.*}}" "-cc1" "-triple" "riscv64-unknown-unknown-elf" 262 // CHECK-RV64FD-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 263 // CHECK-RV64FD-SAME: "-isysroot" "[[SYSROOT:[^"]*]]" 264 // CHECK-RV64FD-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}rv64imafdc{{[/\\]+}}lp64d{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1" 265 // CHECk-RV64FD-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}rv64imafdc{{[/\\]+}}lp64d{{[/\\]+}}include" 266 // CHECK-RV64FD-SAME: "-x" "c++" "{{.*}}baremetal.cpp" 267 // CHECK-RV64FD-NEXT: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 268 // CHECK-RV64FD-SAME: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}rv64imafdc{{[/\\]+}}lp64d{{[/\\]+}}lib" 269 // CHECK-RV64FD-SAME: "-L[[RESOURCE_DIR:[^"]+]]{{[/\\]+}}lib{{[/\\]+}}baremetal{{[/\\]+}}rv64imafdc{{[/\\]+}}lp64d" 270 271 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 272 // RUN: -target riscv32-unknown-elf \ 273 // RUN: -march=rv32i -mabi=ilp32 \ 274 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \ 275 // RUN: | FileCheck --check-prefix=CHECK-RV32I %s 276 277 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 278 // RUN: -target riscv32-unknown-elf \ 279 // RUN: -march=rv32ic -mabi=ilp32 \ 280 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \ 281 // RUN: | FileCheck --check-prefix=CHECK-RV32I %s 282 283 // CHECK-RV32I: "[[PREFIX_DIR:.*]]{{[/\\]+}}{{[^/^\\]+}}{{[/\\]+}}clang{{.*}}" "-cc1" "-triple" "riscv32-unknown-unknown-elf" 284 // CHECK-RV32I-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 285 // CHECK-RV32I-SAME: "-isysroot" "[[SYSROOT:[^"]*]]" 286 // CHECK-RV32I-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}rv32i{{[/\\]+}}ilp32{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1" 287 // CHECK-RV32I-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}rv32i{{[/\\]+}}ilp32{{[/\\]+}}include" 288 // CHECK-RV32I-SAME: "-x" "c++" "{{.*}}baremetal.cpp" 289 // CHECK-RV32I-NEXT: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 290 // CHECK-RV32I-SAME: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}rv32i{{[/\\]+}}ilp32{{[/\\]+}}lib" 291 // CHECK-RV32I-SAME: "-L[[RESOURCE_DIR:[^"]+]]{{[/\\]+}}lib{{[/\\]+}}baremetal{{[/\\]+}}rv32i{{[/\\]+}}ilp32" 292 293 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 294 // RUN: -target riscv32-unknown-elf \ 295 // RUN: -march=rv32im -mabi=ilp32 \ 296 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \ 297 // RUN: | FileCheck --check-prefix=CHECK-RV32IM %s 298 299 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 300 // RUN: -target riscv32-unknown-elf \ 301 // RUN: -march=rv32imc -mabi=ilp32 \ 302 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \ 303 // RUN: | FileCheck --check-prefix=CHECK-RV32IM %s 304 305 // CHECK-RV32IM: "[[PREFIX_DIR:.*]]{{[/\\]+}}{{[^/^\\]+}}{{[/\\]+}}clang{{.*}}" "-cc1" "-triple" "riscv32-unknown-unknown-elf" 306 // CHECK-RV32IM-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 307 // CHECK-RV32IM-SAME: "-isysroot" "[[SYSROOT:[^"]*]]" 308 // CHECK-RV32IM-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}rv32im{{[/\\]+}}ilp32{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1" 309 // CHECK-RV32IM-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}rv32im{{[/\\]+}}ilp32{{[/\\]+}}include" 310 // CHECK-RV32IM-SAME: "-x" "c++" "{{.*}}baremetal.cpp" 311 // CHECK-RV32IM-NEXT: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 312 // CHECK-RV32IM-SAME: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}rv32im{{[/\\]+}}ilp32{{[/\\]+}}lib" 313 // CHECK-RV32IM-SAME: "-L[[RESOURCE_DIR:[^"]+]]{{[/\\]+}}lib{{[/\\]+}}baremetal{{[/\\]+}}rv32im{{[/\\]+}}ilp32" 314 315 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 316 // RUN: -target riscv32-unknown-elf \ 317 // RUN: -march=rv32iac -mabi=ilp32 \ 318 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \ 319 // RUN: | FileCheck --check-prefix=CHECK-RV32IAC %s 320 321 // CHECK-RV32IAC: "[[PREFIX_DIR:.*]]{{[/\\]+}}{{[^/^\\]+}}{{[/\\]+}}clang{{.*}}" "-cc1" "-triple" "riscv32-unknown-unknown-elf" 322 // CHECK-RV32IAC-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 323 // CHECK-RV32IAC-SAME: "-isysroot" "[[SYSROOT:[^"]*]]" 324 // CHECK-RV32IAC-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}rv32iac{{[/\\]+}}ilp32{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1" 325 // CHECK-RV32IAC-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}rv32iac{{[/\\]+}}ilp32{{[/\\]+}}include" 326 // CHECK-RV32IAC-SAME: "-x" "c++" "{{.*}}baremetal.cpp" 327 // CHECK-RV32IAC-NEXT: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 328 // CHECK-RV32IAC-SAME: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}rv32iac{{[/\\]+}}ilp32{{[/\\]+}}lib" 329 // CHECK-RV32IAC-SAME: "-L[[RESOURCE_DIR:[^"]+]]{{[/\\]+}}lib{{[/\\]+}}baremetal{{[/\\]+}}rv32iac{{[/\\]+}}ilp32" 330 331 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 332 // RUN: -target riscv32-unknown-elf \ 333 // RUN: -march=rv32imafc -mabi=ilp32f \ 334 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \ 335 // RUN: | FileCheck --check-prefix=CHECK-RV32IMAFC %s 336 337 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 338 // RUN: -target riscv32-unknown-elf \ 339 // RUN: -march=rv32imafdc -mabi=ilp32f \ 340 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \ 341 // RUN: | FileCheck --check-prefix=CHECK-RV32IMAFC %s 342 343 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 344 // RUN: -target riscv32-unknown-elf \ 345 // RUN: -march=rv32gc -mabi=ilp32f \ 346 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \ 347 // RUN: | FileCheck --check-prefix=CHECK-RV32IMAFC %s 348 349 // CHECK-RV32IMAFC: "[[PREFIX_DIR:.*]]{{[/\\]+}}{{[^/^\\]+}}{{[/\\]+}}clang{{.*}}" "-cc1" "-triple" "riscv32-unknown-unknown-elf" 350 // CHECK-RV32IMAFC-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 351 // CHECK-RV32IMAFC-SAME: "-isysroot" "[[SYSROOT:[^"]*]]" 352 // CHECK-RV32IMAFC-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}rv32imafc{{[/\\]+}}ilp32f{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1" 353 // CHECK-RV32IMAFC-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}rv32imafc{{[/\\]+}}ilp32f{{[/\\]+}}include" 354 // CHECK-RV32IMAFC-SAME: "-x" "c++" "{{.*}}baremetal.cpp" 355 // CHECK-RV32IMAFC-NEXT: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 356 // CHECK-RV32IMAFC-SAME: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}rv32imafc{{[/\\]+}}ilp32f{{[/\\]+}}lib" 357 // CHECK-RV32IMAFC-SAME: "-L[[RESOURCE_DIR:[^"]+]]{{[/\\]+}}lib{{[/\\]+}}baremetal{{[/\\]+}}rv32imafc{{[/\\]+}}ilp32f" 358