1b50e8c59SShoaib Meenai // Backslash escaping makes matching against the installation directory fail on 2b50e8c59SShoaib Meenai // Windows. Temporarily disable the test there until we add an option to print 3b50e8c59SShoaib Meenai // the installation directory unescaped. 4b50e8c59SShoaib Meenai // UNSUPPORTED: system-windows 5b50e8c59SShoaib Meenai 6b50e8c59SShoaib Meenai // By default, we should search for libc++ next to the driver. 7b50e8c59SShoaib Meenai // RUN: mkdir -p %t/bin 8b50e8c59SShoaib Meenai // RUN: mkdir -p %t/include/c++/v1 9bab98499SPeter Collingbourne // RUN: %clang -target aarch64-linux-gnu -ccc-install-dir %t/bin \ 10b50e8c59SShoaib Meenai // RUN: -stdlib=libc++ -fsyntax-only %s -### 2>&1 | \ 11b50e8c59SShoaib Meenai // RUN: FileCheck -check-prefix=LIBCXX %s 12b50e8c59SShoaib Meenai // RUN: %clang -target x86_64-apple-darwin -ccc-install-dir %t/bin \ 13b50e8c59SShoaib Meenai // RUN: -stdlib=libc++ -fsyntax-only %s -### 2>&1 | \ 14b50e8c59SShoaib Meenai // RUN: FileCheck -check-prefix=LIBCXX %s 15b50e8c59SShoaib Meenai // LIBCXX: InstalledDir: [[INSTALLDIR:.+$]] 16b50e8c59SShoaib Meenai // LIBCXX: "-internal-isystem" "[[INSTALLDIR]]/../include/c++/v1" 17b50e8c59SShoaib Meenai 18b50e8c59SShoaib Meenai // Passing -stdlib++-isystem should suppress the default search. 19bab98499SPeter Collingbourne // RUN: %clang -target aarch64-linux-gnu -ccc-install-dir %t/bin \ 20b50e8c59SShoaib Meenai // RUN: -stdlib++-isystem /tmp/foo -stdlib++-isystem /tmp/bar -stdlib=libc++ \ 21b50e8c59SShoaib Meenai // RUN: -fsyntax-only %s -### 2>&1 | FileCheck -check-prefix=NODEFAULT %s 22b50e8c59SShoaib Meenai // RUN: %clang -target x86_64-apple-darwin -ccc-install-dir %t/bin \ 23b50e8c59SShoaib Meenai // RUN: -stdlib++-isystem /tmp/foo -stdlib++-isystem /tmp/bar -stdlib=libc++ \ 24b50e8c59SShoaib Meenai // RUN: -fsyntax-only %s -### 2>&1 | FileCheck -check-prefix=NODEFAULT %s 25b50e8c59SShoaib Meenai // NODEFAULT: InstalledDir: [[INSTALLDIR:.+$]] 26b50e8c59SShoaib Meenai // NODEFAULT-NOT: "-internal-isystem" "[[INSTALLDIR]]/../include/c++/v1" 27b50e8c59SShoaib Meenai 28b50e8c59SShoaib Meenai // And we should add it as an -internal-isystem. 29bab98499SPeter Collingbourne // RUN: %clang -target aarch64-linux-gnu -ccc-install-dir %t/bin \ 30b50e8c59SShoaib Meenai // RUN: -stdlib++-isystem /tmp/foo -stdlib++-isystem /tmp/bar -stdlib=libc++ \ 31b50e8c59SShoaib Meenai // RUN: -fsyntax-only %s -### 2>&1 | FileCheck -check-prefix=INCPATH %s 32b50e8c59SShoaib Meenai // RUN: %clang -target x86_64-apple-darwin -ccc-install-dir %t/bin \ 33b50e8c59SShoaib Meenai // RUN: -stdlib++-isystem /tmp/foo -stdlib++-isystem /tmp/bar -stdlib=libc++ \ 34b50e8c59SShoaib Meenai // RUN: -fsyntax-only %s -### 2>&1 | FileCheck -check-prefix=INCPATH %s 35b50e8c59SShoaib Meenai // INCPATH: "-internal-isystem" "/tmp/foo" "-internal-isystem" "/tmp/bar" 36b50e8c59SShoaib Meenai 37b50e8c59SShoaib Meenai // We shouldn't pass the -stdlib++-isystem to cc1. 38bab98499SPeter Collingbourne // RUN: %clang -target aarch64-linux-gnu -ccc-install-dir %t/bin \ 39b50e8c59SShoaib Meenai // RUN: -stdlib++-isystem /tmp -stdlib=libc++ -fsyntax-only %s -### 2>&1 | \ 40b50e8c59SShoaib Meenai // RUN: FileCheck -check-prefix=NOCC1 %s 41b50e8c59SShoaib Meenai // RUN: %clang -target x86_64-apple-darwin -ccc-install-dir %t/bin \ 42b50e8c59SShoaib Meenai // RUN: -stdlib++-isystem /tmp -stdlib=libc++ -fsyntax-only %s -### 2>&1 | \ 43b50e8c59SShoaib Meenai // RUN: FileCheck -check-prefix=NOCC1 %s 44b50e8c59SShoaib Meenai // NOCC1-NOT: "-stdlib++-isystem" "/tmp" 45b50e8c59SShoaib Meenai 46*53c98d85SFangrui Song // It should respect -nostdinc++ 47bab98499SPeter Collingbourne // RUN: %clang -target aarch64-linux-gnu -ccc-install-dir %t/bin \ 48b50e8c59SShoaib Meenai // RUN: -stdlib++-isystem /tmp/foo -stdlib++-isystem /tmp/bar -nostdinc++ \ 49b50e8c59SShoaib Meenai // RUN: -fsyntax-only %s -### 2>&1 | FileCheck -check-prefix=NOSTDINCXX %s 50b50e8c59SShoaib Meenai // RUN: %clang -target x86_64-apple-darwin -ccc-install-dir %t/bin \ 51b50e8c59SShoaib Meenai // RUN: -stdlib++-isystem /tmp/foo -stdlib++-isystem /tmp/bar -nostdinc++ \ 52b50e8c59SShoaib Meenai // RUN: -fsyntax-only %s -### 2>&1 | FileCheck -check-prefix=NOSTDINCXX %s 53*53c98d85SFangrui Song 54*53c98d85SFangrui Song // ... and -nostdinc and -nostdlibinc. 55*53c98d85SFangrui Song // RUN: %clang -target aarch64-linux-gnu -ccc-install-dir %t/bin \ 56*53c98d85SFangrui Song // RUN: -stdlib++-isystem /tmp/foo -stdlib++-isystem /tmp/bar -nostdinc \ 57*53c98d85SFangrui Song // RUN: -fsyntax-only %s -### 2>&1 | FileCheck --check-prefix=NOSTDINCXX %s 58*53c98d85SFangrui Song // RUN: %clang -target aarch64-linux-gnu -ccc-install-dir %t/bin \ 59*53c98d85SFangrui Song // RUN: -stdlib++-isystem /tmp/foo -stdlib++-isystem /tmp/bar -nostdlibinc \ 60*53c98d85SFangrui Song // RUN: -fsyntax-only %s -### 2>&1 | FileCheck --check-prefix=NOSTDINCXX %s 61b50e8c59SShoaib Meenai // NOSTDINCXX-NOT: "-internal-isystem" "/tmp/foo" "-internal-isystem" "/tmp/bar" 62