1 // REQUIRES: shell 2 // UNSUPPORTED: system-windows 3 4 // Test that when a --sysroot is not provided, driver picks the default 5 // location correctly if available. 6 7 // RUN: rm -rf %T/baremetal_default_sysroot 8 // RUN: mkdir -p %T/baremetal_default_sysroot/bin 9 // RUN: mkdir -p %T/baremetal_default_sysroot/lib/clang-runtimes/armv6m-none-eabi 10 // RUN: ln -s %clang %T/baremetal_default_sysroot/bin/clang 11 12 // RUN: %T/baremetal_default_sysroot/bin/clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 13 // RUN: -target armv6m-none-eabi --sysroot= \ 14 // RUN: | FileCheck --check-prefix=CHECK-V6M-C %s 15 // CHECK-V6M-C: "{{.*}}clang{{.*}}" "-cc1" "-triple" "thumbv6m-unknown-none-eabi" 16 // CHECK-V6M-C-SAME: "-internal-isystem" "{{.*}}/baremetal_default_sysroot{{[/\\]+}}bin{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+}}armv6m-none-eabi{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1" 17 // CHECk-V6M-C-SAME: "-internal-isystem" "{{.*}}/baremetal_default_sysroot{{[/\\]+}}bin{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+}}armv6m-none-eabi{{[/\\]+}}include" 18 // CHECK-V6M-C-SAME: "-x" "c++" "{{.*}}baremetal-sysroot.cpp" 19 // CHECK-V6M-C-NEXT: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 20 // CHECK-V6M-C-SAME: "-L{{.*}}/baremetal_default_sysroot{{[/\\]+}}bin{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+}}armv6m-none-eabi{{[/\\]+}}lib" 21 // CHECK-V6M-C-SAME: "{{[^"]*}}libclang_rt.builtins.a" 22 // CHECK-V6M-C-SAME: "-lc" 23 // CHECK-V6M-C-SAME: "-o" "{{.*}}.o" 24