|
13 | 13 | // RUN: | FileCheck --check-prefix=CHECK-LIBCXX-NONE %s
|
14 | 14 | // CHECK-LIBCXX-NONE: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
|
15 | 15 |
|
16 |
| -// Check with only headers alongside the installation (those should be used, |
17 |
| -// but we should still add /usr/include/c++/v1 after to preserve legacy). |
| 16 | +// Check with only headers alongside the installation (those should be used). |
18 | 17 | //
|
19 | 18 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
|
20 | 19 | // RUN: -target x86_64-apple-darwin \
|
21 | 20 | // RUN: -stdlib=libc++ \
|
22 | 21 | // RUN: -ccc-install-dir %S/Inputs/basic_darwin_toolchain/usr/bin \
|
23 | 22 | // RUN: --sysroot="" \
|
24 |
| -// RUN: | FileCheck -DTOOLCHAIN=%S/Inputs/basic_darwin_toolchain --check-prefix=CHECK-LIBCXX-TOOLCHAIN-1 %s |
| 23 | +// RUN: | FileCheck -DTOOLCHAIN=%S/Inputs/basic_darwin_toolchain \ |
| 24 | +// RUN: --check-prefix=CHECK-LIBCXX-TOOLCHAIN-1 %s |
25 | 25 | // CHECK-LIBCXX-TOOLCHAIN-1: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
|
26 | 26 | // CHECK-LIBCXX-TOOLCHAIN-1: "-internal-isystem" "[[TOOLCHAIN]]/usr/bin/../include/c++/v1"
|
27 |
| -// CHECK-LIBCXX-TOOLCHAIN-1: "-internal-isystem" "/usr/include/c++/v1" |
| 27 | +// CHECK-LIBCXX-TOOLCHAIN-1-NOT: "-internal-isystem" "/usr/include/c++/v1" |
28 | 28 | //
|
29 | 29 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
|
30 | 30 | // RUN: -target x86_64-apple-darwin \
|
31 | 31 | // RUN: -stdlib=libc++ \
|
32 | 32 | // RUN: -ccc-install-dir %S/Inputs/basic_darwin_toolchain/usr/bin \
|
33 | 33 | // RUN: -isysroot %S/Inputs/basic_darwin_sdk_no_libcxx \
|
34 |
| -// RUN: | FileCheck -DTOOLCHAIN=%S/Inputs/basic_darwin_toolchain --check-prefix=CHECK-LIBCXX-TOOLCHAIN-2 %s |
| 34 | +// RUN: | FileCheck -DTOOLCHAIN=%S/Inputs/basic_darwin_toolchain \ |
| 35 | +// RUN: -DSYSROOT=%S/Inputs/basic_darwin_sdk_no_libcxx \ |
| 36 | +// RUN: --check-prefix=CHECK-LIBCXX-TOOLCHAIN-2 %s |
35 | 37 | // CHECK-LIBCXX-TOOLCHAIN-2: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
|
36 | 38 | // CHECK-LIBCXX-TOOLCHAIN-2: "-internal-isystem" "[[TOOLCHAIN]]/usr/bin/../include/c++/v1"
|
| 39 | +// CHECK-LIBCXX-TOOLCHAIN-2-NOT: "-internal-isystem" "[[SYSROOT]]/usr/include/c++/v1" |
| 40 | + |
| 41 | +// Check with only headers in the sysroot (those should be used). |
| 42 | +// |
| 43 | +// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
| 44 | +// RUN: -target x86_64-apple-darwin \ |
| 45 | +// RUN: -stdlib=libc++ \ |
| 46 | +// RUN: -ccc-install-dir %S/Inputs/basic_darwin_toolchain_no_libcxx/usr/bin \ |
| 47 | +// RUN: -isysroot %S/Inputs/basic_darwin_sdk_usr_cxx_v1 \ |
| 48 | +// RUN: | FileCheck -DSYSROOT=%S/Inputs/basic_darwin_sdk_usr_cxx_v1 \ |
| 49 | +// RUN: -DTOOLCHAIN=%S/Inputs/basic_darwin_toolchain_no_libcxx \ |
| 50 | +// RUN: --check-prefix=CHECK-LIBCXX-SYSROOT-1 %s |
| 51 | +// CHECK-LIBCXX-SYSROOT-1: "{{[^"]*}}clang{{[^"]*}}" "-cc1" |
| 52 | +// CHECK-LIBCXX-SYSROOT-1: "-internal-isystem" "[[SYSROOT]]/usr/include/c++/v1" |
| 53 | +// CHECK-LIBCXX-SYSROOT-1-NOT: "-internal-isystem" "[[TOOLCHAIN]]/usr/bin/../include/c++/v1" |
37 | 54 |
|
38 | 55 | // Check with both headers in the sysroot and headers alongside the installation
|
39 |
| -// (the headers in <sysroot> should be added after the toolchain headers). |
40 |
| -// Ensure that both -isysroot and --sysroot work, and that isysroot has precedence. |
| 56 | +// (the headers in the toolchain should be preferred over the <sysroot> headers). |
| 57 | +// Ensure that both -isysroot and --sysroot work, and that isysroot has precedence |
| 58 | +// over --sysroot. |
41 | 59 | //
|
42 | 60 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
|
43 | 61 | // RUN: -target x86_64-apple-darwin \
|
44 | 62 | // RUN: -stdlib=libc++ \
|
45 | 63 | // RUN: -ccc-install-dir %S/Inputs/basic_darwin_toolchain/usr/bin \
|
46 | 64 | // RUN: -resource-dir=%S/Inputs/resource_dir \
|
47 |
| -// RUN: -isysroot %S/Inputs/basic_darwin_sdk_usr \ |
48 |
| -// RUN: | FileCheck -DSYSROOT=%S/Inputs/basic_darwin_sdk_usr \ |
| 65 | +// RUN: -isysroot %S/Inputs/basic_darwin_sdk_usr_cxx_v1 \ |
| 66 | +// RUN: | FileCheck -DSYSROOT=%S/Inputs/basic_darwin_sdk_usr_cxx_v1 \ |
49 | 67 | // RUN: -DTOOLCHAIN=%S/Inputs/basic_darwin_toolchain \
|
50 | 68 | // RUN: --check-prefix=CHECK-LIBCXX-SYSROOT_AND_TOOLCHAIN-1 %s
|
51 | 69 | //
|
|
54 | 72 | // RUN: -stdlib=libc++ \
|
55 | 73 | // RUN: -ccc-install-dir %S/Inputs/basic_darwin_toolchain/usr/bin \
|
56 | 74 | // RUN: -resource-dir=%S/Inputs/resource_dir \
|
57 |
| -// RUN: --sysroot %S/Inputs/basic_darwin_sdk_usr \ |
58 |
| -// RUN: | FileCheck -DSYSROOT=%S/Inputs/basic_darwin_sdk_usr \ |
| 75 | +// RUN: --sysroot %S/Inputs/basic_darwin_sdk_usr_cxx_v1 \ |
| 76 | +// RUN: | FileCheck -DSYSROOT=%S/Inputs/basic_darwin_sdk_usr_cxx_v1 \ |
59 | 77 | // RUN: -DTOOLCHAIN=%S/Inputs/basic_darwin_toolchain \
|
60 | 78 | // RUN: --check-prefix=CHECK-LIBCXX-SYSROOT_AND_TOOLCHAIN-1 %s
|
61 | 79 | //
|
|
64 | 82 | // RUN: -stdlib=libc++ \
|
65 | 83 | // RUN: -ccc-install-dir %S/Inputs/basic_darwin_toolchain/usr/bin \
|
66 | 84 | // RUN: -resource-dir=%S/Inputs/resource_dir \
|
67 |
| -// RUN: -isysroot %S/Inputs/basic_darwin_sdk_usr \ |
| 85 | +// RUN: -isysroot %S/Inputs/basic_darwin_sdk_usr_cxx_v1 \ |
68 | 86 | // RUN: --sysroot %S/Inputs/basic_darwin_sdk_no_libcxx \
|
69 |
| -// RUN: | FileCheck -DSYSROOT=%S/Inputs/basic_darwin_sdk_usr \ |
| 87 | +// RUN: | FileCheck -DSYSROOT=%S/Inputs/basic_darwin_sdk_usr_cxx_v1 \ |
70 | 88 | // RUN: -DTOOLCHAIN=%S/Inputs/basic_darwin_toolchain \
|
71 | 89 | // RUN: --check-prefix=CHECK-LIBCXX-SYSROOT_AND_TOOLCHAIN-1 %s
|
72 | 90 | //
|
73 | 91 | // CHECK-LIBCXX-SYSROOT_AND_TOOLCHAIN-1: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
|
74 | 92 | // CHECK-LIBCXX-SYSROOT_AND_TOOLCHAIN-1: "-internal-isystem" "[[TOOLCHAIN]]/usr/bin/../include/c++/v1"
|
75 |
| -// CHECK-LIBCXX-SYSROOT_AND_TOOLCHAIN-1: "-internal-isystem" "[[SYSROOT]]/usr/include/c++/v1" |
| 93 | +// CHECK-LIBCXX-SYSROOT_AND_TOOLCHAIN-1-NOT: "-internal-isystem" "[[SYSROOT]]/usr/include/c++/v1" |
76 | 94 |
|
77 |
| -// Make sure that using -nostdinc will drop the sysroot C++ library include |
78 |
| -// path, but not the toolchain one. |
| 95 | +// Make sure that using -nostdinc does not drop any C++ library include path. |
| 96 | +// This behavior is strange, but it is compatible with the legacy CC1 behavior. |
79 | 97 | //
|
80 | 98 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
|
81 | 99 | // RUN: -target x86_64-apple-darwin16 \
|
82 | 100 | // RUN: -ccc-install-dir %S/Inputs/basic_darwin_toolchain/usr/bin \
|
83 | 101 | // RUN: -resource-dir=%S/Inputs/resource_dir \
|
84 |
| -// RUN: -isysroot %S/Inputs/basic_darwin_sdk_usr \ |
| 102 | +// RUN: -isysroot %S/Inputs/basic_darwin_sdk_usr_cxx_v1 \ |
85 | 103 | // RUN: -stdlib=platform \
|
86 | 104 | // RUN: -nostdinc \
|
87 |
| -// RUN: | FileCheck -DSYSROOT=%S/Inputs/basic_darwin_sdk_usr \ |
| 105 | +// RUN: | FileCheck -DSYSROOT=%S/Inputs/basic_darwin_sdk_usr_cxx_v1 \ |
88 | 106 | // RUN: -DTOOLCHAIN=%S/Inputs/basic_darwin_toolchain \
|
89 |
| -// RUN: --check-prefix=CHECK-LIBCXX-NOSTDINC %s |
90 |
| -// CHECK-LIBCXX-NOSTDINC: "{{[^"]*}}clang{{[^"]*}}" "-cc1" |
91 |
| -// CHECK-LIBCXX-NOSTDINC: "-internal-isystem" "[[TOOLCHAIN]]/usr/bin/../include/c++/v1" |
92 |
| -// CHECK-LIBCXX-NOSTDINC-NOT: "-internal-isystem" "[[SYSROOT]]/usr/include/c++/v1" |
| 107 | +// RUN: --check-prefix=CHECK-LIBCXX-NOSTDINC-1 %s |
| 108 | +// CHECK-LIBCXX-NOSTDINC-1: "{{[^"]*}}clang{{[^"]*}}" "-cc1" |
| 109 | +// CHECK-LIBCXX-NOSTDINC-1-NOT: "-internal-isystem" "[[SYSROOT]]/usr/include/c++/v1" |
| 110 | +// CHECK-LIBCXX-NOSTDINC-1: "-internal-isystem" "[[TOOLCHAIN]]/usr/bin/../include/c++/v1" |
| 111 | +// |
| 112 | +// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
| 113 | +// RUN: -target x86_64-apple-darwin16 \ |
| 114 | +// RUN: -ccc-install-dir %S/Inputs/basic_darwin_toolchain/usr/bin \ |
| 115 | +// RUN: -resource-dir=%S/Inputs/resource_dir \ |
| 116 | +// RUN: -isysroot %S/Inputs/basic_darwin_sdk_no_libcxx \ |
| 117 | +// RUN: -stdlib=platform \ |
| 118 | +// RUN: -nostdinc \ |
| 119 | +// RUN: | FileCheck -DSYSROOT=%S/Inputs/basic_darwin_sdk_no_libcxx \ |
| 120 | +// RUN: -DTOOLCHAIN=%S/Inputs/basic_darwin_toolchain \ |
| 121 | +// RUN: --check-prefix=CHECK-LIBCXX-NOSTDINC-2 %s |
| 122 | +// CHECK-LIBCXX-NOSTDINC-2: "{{[^"]*}}clang{{[^"]*}}" "-cc1" |
| 123 | +// CHECK-LIBCXX-NOSTDINC-2: "-internal-isystem" "[[TOOLCHAIN]]/usr/bin/../include/c++/v1" |
| 124 | +// CHECK-LIBCXX-NOSTDINC-2-NOT: "-internal-isystem" "[[SYSROOT]]/usr/include/c++/v1" |
93 | 125 |
|
94 | 126 | // Make sure that using -nostdinc++ or -nostdlib will drop both the toolchain
|
95 | 127 | // C++ include path and the sysroot one.
|
|
98 | 130 | // RUN: -target x86_64-apple-darwin16 \
|
99 | 131 | // RUN: -ccc-install-dir %S/Inputs/basic_darwin_toolchain/usr/bin \
|
100 | 132 | // RUN: -resource-dir=%S/Inputs/resource_dir \
|
101 |
| -// RUN: -isysroot %S/Inputs/basic_darwin_sdk_usr \ |
| 133 | +// RUN: -isysroot %S/Inputs/basic_darwin_sdk_usr_cxx_v1 \ |
102 | 134 | // RUN: -stdlib=platform \
|
103 | 135 | // RUN: -nostdinc++ \
|
104 | 136 | // RUN: | FileCheck -DSYSROOT=%S/Inputs/basic_darwin_sdk_usr \
|
|
121 | 153 | // CHECK-LIBCXX-NOSTDLIBINC: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
|
122 | 154 | // CHECK-LIBCXX-NOSTDLIBINC-NOT: "-internal-isystem" "[[TOOLCHAIN]]/usr/bin/../include/c++/v1"
|
123 | 155 | // CHECK-LIBCXX-NOSTDLIBINC-NOT: "-internal-isystem" "[[SYSROOT]]/usr/include/c++/v1"
|
| 156 | + |
| 157 | +// Make sure we explain that we considered a path but didn't add it when it |
| 158 | +// doesn't exist. |
| 159 | +// |
| 160 | +// RUN: %clang -no-canonical-prefixes %s -fsyntax-only -v 2>&1 \ |
| 161 | +// RUN: -target x86_64-apple-darwin \ |
| 162 | +// RUN: -ccc-install-dir %S/Inputs/basic_darwin_toolchain_no_libcxx/usr/bin \ |
| 163 | +// RUN: -isysroot %S/Inputs/basic_darwin_sdk \ |
| 164 | +// RUN: -stdlib=libc++ \ |
| 165 | +// RUN: | FileCheck -DTOOLCHAIN=%S/Inputs/basic_darwin_toolchain_no_libcxx \ |
| 166 | +// RUN: --check-prefix=CHECK-LIBCXX-MISSING-TOOLCHAIN %s |
| 167 | +// CHECK-LIBCXX-MISSING-TOOLCHAIN: ignoring nonexistent directory "[[TOOLCHAIN]]/usr/bin/../include/c++/v1" |
| 168 | +// |
| 169 | +// RUN: %clang -no-canonical-prefixes %s -fsyntax-only -v 2>&1 \ |
| 170 | +// RUN: -target x86_64-apple-darwin \ |
| 171 | +// RUN: -ccc-install-dir %S/Inputs/basic_darwin_toolchain_no_libcxx/usr/bin \ |
| 172 | +// RUN: -isysroot %S/Inputs/basic_darwin_sdk_no_libcxx \ |
| 173 | +// RUN: -stdlib=libc++ \ |
| 174 | +// RUN: | FileCheck -DSYSROOT=%S/Inputs/basic_darwin_sdk_no_libcxx \ |
| 175 | +// RUN: -DTOOLCHAIN=%S/Inputs/basic_darwin_toolchain_no_libcxx \ |
| 176 | +// RUN: --check-prefix=CHECK-LIBCXX-MISSING-BOTH %s |
| 177 | +// CHECK-LIBCXX-MISSING-BOTH: ignoring nonexistent directory "[[TOOLCHAIN]]/usr/bin/../include/c++/v1" |
| 178 | +// CHECK-LIBCXX-MISSING-BOTH: ignoring nonexistent directory "[[SYSROOT]]/usr/include/c++/v1" |
0 commit comments