1 // General tests that the header search paths detected by the driver and passed
2 // to CC1 are sane.
3 //
4 // Test a simulated installation of libc++ on Linux, both through sysroot and
5 // the installation path of Clang.
6 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
7 // RUN:     -target x86_64-unknown-linux-gnu \
8 // RUN:     -stdlib=libc++ \
9 // RUN:     -ccc-install-dir %S/Inputs/basic_linux_tree/usr/bin \
10 // RUN:     -resource-dir=%S/Inputs/resource_dir \
11 // RUN:     --sysroot=%S/Inputs/basic_linux_libcxx_tree \
12 // RUN:     --gcc-toolchain="" \
13 // RUN:   | FileCheck --check-prefix=CHECK-BASIC-LIBCXX-SYSROOT %s
14 // CHECK-BASIC-LIBCXX-SYSROOT: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
15 // CHECK-BASIC-LIBCXX-SYSROOT: "-isysroot" "[[SYSROOT:[^"]+]]"
16 // CHECK-BASIC-LIBCXX-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/include/c++/v1"
17 // CHECK-BASIC-LIBCXX-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
18 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
19 // RUN:     -target x86_64-unknown-linux-gnu \
20 // RUN:     -stdlib=libc++ \
21 // RUN:     -ccc-install-dir %S/Inputs/basic_linux_libcxx_tree/usr/bin \
22 // RUN:     -resource-dir=%S/Inputs/resource_dir \
23 // RUN:     --sysroot=%S/Inputs/basic_linux_libcxx_tree \
24 // RUN:     --gcc-toolchain="" \
25 // RUN:   | FileCheck --check-prefix=CHECK-BASIC-LIBCXX-INSTALL %s
26 // CHECK-BASIC-LIBCXX-INSTALL: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
27 // CHECK-BASIC-LIBCXX-INSTALL: "-isysroot" "[[SYSROOT:[^"]+]]"
28 // CHECK-BASIC-LIBCXX-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/bin/../include/c++/v1"
29 // CHECK-BASIC-LIBCXX-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
30 //
31 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
32 // RUN:     -target x86_64-unknown-linux-gnu \
33 // RUN:     -stdlib=libc++ \
34 // RUN:     -ccc-install-dir %S/Inputs/basic_linux_tree/usr/bin \
35 // RUN:     -resource-dir=%S/Inputs/resource_dir \
36 // RUN:     --sysroot=%S/Inputs/basic_linux_libcxxv2_tree \
37 // RUN:     --gcc-toolchain="" \
38 // RUN:   | FileCheck --check-prefix=CHECK-BASIC-LIBCXXV2-SYSROOT %s
39 // CHECK-BASIC-LIBCXXV2-SYSROOT: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
40 // CHECK-BASIC-LIBCXXV2-SYSROOT: "-isysroot" "[[SYSROOT:[^"]+]]"
41 // CHECK-BASIC-LIBCXXV2-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/include/c++/v2"
42 // CHECK-BASIC-LIBCXXV2-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
43 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
44 // RUN:     -target x86_64-unknown-linux-gnu \
45 // RUN:     -stdlib=libc++ \
46 // RUN:     -ccc-install-dir %S/Inputs/basic_linux_libcxxv2_tree/usr/bin \
47 // RUN:     -resource-dir=%S/Inputs/resource_dir \
48 // RUN:     --sysroot=%S/Inputs/basic_linux_libcxxv2_tree \
49 // RUN:     --gcc-toolchain="" \
50 // RUN:   | FileCheck --check-prefix=CHECK-BASIC-LIBCXXV2-INSTALL %s
51 // CHECK-BASIC-LIBCXXV2-INSTALL: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
52 // CHECK-BASIC-LIBCXXV2-INSTALL: "-isysroot" "[[SYSROOT:[^"]+]]"
53 // CHECK-BASIC-LIBCXXV2-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/bin/../include/c++/v2"
54 // CHECK-BASIC-LIBCXXV2-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
55 //
56 // Test Linux with both libc++ and libstdc++ installed.
57 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
58 // RUN:     -target x86_64-unknown-linux-gnu \
59 // RUN:     -stdlib=libc++ \
60 // RUN:     -ccc-install-dir %S/Inputs/basic_linux_tree/usr/bin \
61 // RUN:     -resource-dir=%S/Inputs/resource_dir \
62 // RUN:     --sysroot=%S/Inputs/basic_linux_libstdcxx_libcxxv2_tree \
63 // RUN:     --gcc-toolchain="" \
64 // RUN:   | FileCheck --check-prefix=CHECK-BASIC-LIBSTDCXX-LIBCXXV2-SYSROOT %s
65 // CHECK-BASIC-LIBSTDCXX-LIBCXXV2-SYSROOT: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
66 // CHECK-BASIC-LIBSTDCXX-LIBCXXV2-SYSROOT: "-isysroot" "[[SYSROOT:[^"]+]]"
67 // CHECK-BASIC-LIBSTDCXX-LIBCXXV2-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/include/c++/v2"
68 // CHECK-BASIC-LIBSTDCXX-LIBCXXV2-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
69 
70 // Test Gentoo's weirdness both before and after they changed it in their GCC
71 // 4.6.4 release.
72 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
73 // RUN:     -target x86_64-unknown-linux-gnu -stdlib=libstdc++ \
74 // RUN:     --sysroot=%S/Inputs/gentoo_linux_gcc_4.6.2_tree \
75 // RUN:     --gcc-toolchain="" \
76 // RUN:   | FileCheck --check-prefix=CHECK-GENTOO-4-6-2 %s
77 // CHECK-GENTOO-4-6-2: "{{.*}}clang{{.*}}" "-cc1"
78 // CHECK-GENTOO-4-6-2: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
79 // CHECK-GENTOO-4-6-2: "-isysroot" "[[SYSROOT:[^"]+]]"
80 // CHECK-GENTOO-4-6-2: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4"
81 // CHECK-GENTOO-4-6-2: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/x86_64-pc-linux-gnu"
82 // CHECK-GENTOO-4-6-2: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/backward"
83 // CHECK-GENTOO-4-6-2: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include"
84 // CHECK-GENTOO-4-6-2: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
85 // CHECK-GENTOO-4-6-2: "-internal-externc-isystem" "[[SYSROOT]]/include"
86 // CHECK-GENTOO-4-6-2: "-internal-externc-isystem" "[[SYSROOT]]/usr/include"
87 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
88 // RUN:     -target x86_64-unknown-linux-gnu -stdlib=libstdc++ \
89 // RUN:     --sysroot=%S/Inputs/gentoo_linux_gcc_4.6.4_tree \
90 // RUN:     --gcc-toolchain="" \
91 // RUN:   | FileCheck --check-prefix=CHECK-GENTOO-4-6-4 %s
92 // CHECK-GENTOO-4-6-4: "{{.*}}clang{{.*}}" "-cc1"
93 // CHECK-GENTOO-4-6-4: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
94 // CHECK-GENTOO-4-6-4: "-isysroot" "[[SYSROOT:[^"]+]]"
95 // CHECK-GENTOO-4-6-4: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.4/include/g++-v4.6"
96 // CHECK-GENTOO-4-6-4: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.4/include/g++-v4.6/x86_64-pc-linux-gnu"
97 // CHECK-GENTOO-4-6-4: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.4/include/g++-v4.6/backward"
98 // CHECK-GENTOO-4-6-4: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include"
99 // CHECK-GENTOO-4-6-4: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
100 // CHECK-GENTOO-4-6-4: "-internal-externc-isystem" "[[SYSROOT]]/include"
101 // CHECK-GENTOO-4-6-4: "-internal-externc-isystem" "[[SYSROOT]]/usr/include"
102 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
103 // RUN:     -target x86_64-unknown-linux-gnu -stdlib=libstdc++ \
104 // RUN:     --sysroot=%S/Inputs/gentoo_linux_gcc_4.9.3_tree \
105 // RUN:     --gcc-toolchain="" \
106 // RUN:   | FileCheck --check-prefix=CHECK-GENTOO-4-9-3 %s
107 // CHECK-GENTOO-4-9-3: "{{.*}}clang{{.*}}" "-cc1"
108 // CHECK-GENTOO-4-9-3: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
109 // CHECK-GENTOO-4-9-3: "-isysroot" "[[SYSROOT:[^"]+]]"
110 // CHECK-GENTOO-4-9-3: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3"
111 // CHECK-GENTOO-4-9-3: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3/x86_64-pc-linux-gnu"
112 // CHECK-GENTOO-4-9-3: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3/backward"
113 // CHECK-GENTOO-4-9-3: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include"
114 // CHECK-GENTOO-4-9-3: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
115 // CHECK-GENTOO-4-9-3: "-internal-externc-isystem" "[[SYSROOT]]/include"
116 // CHECK-GENTOO-4-9-3: "-internal-externc-isystem" "[[SYSROOT]]/usr/include"
117 //
118 // Test support for Gentoo's gcc-config -- clang should prefer the older
119 // (4.9.3) version over the newer (5.4.0) due to preference specified
120 // in /etc/env.d/gcc/x86_64-pc-linux-gnu.
121 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
122 // RUN:     -target x86_64-unknown-linux-gnu -stdlib=libstdc++ \
123 // RUN:     --sysroot=%S/Inputs/gentoo_linux_gcc_multi_version_tree \
124 // RUN:     --gcc-toolchain="" \
125 // RUN:   | FileCheck --check-prefix=CHECK-GENTOO-4-9-3 %s
126 //
127 // Test that gcc-config support does not break multilib.
128 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
129 // RUN:     -target x86_64-unknown-linux-gnux32 -stdlib=libstdc++ \
130 // RUN:     --sysroot=%S/Inputs/gentoo_linux_gcc_multi_version_tree \
131 // RUN:     --gcc-toolchain="" \
132 // RUN:   | FileCheck --check-prefix=CHECK-GENTOO-4-9-3-X32 %s
133 // CHECK-GENTOO-4-9-3-X32: "{{.*}}clang{{.*}}" "-cc1"
134 // CHECK-GENTOO-4-9-3-X32: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
135 // CHECK-GENTOO-4-9-3-X32: "-isysroot" "[[SYSROOT:[^"]+]]"
136 // CHECK-GENTOO-4-9-3-X32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3"
137 // CHECK-GENTOO-4-9-3-X32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3/x86_64-pc-linux-gnu/x32"
138 // CHECK-GENTOO-4-9-3-X32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3/backward"
139 // CHECK-GENTOO-4-9-3-X32: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include"
140 // CHECK-GENTOO-4-9-3-X32: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
141 // CHECK-GENTOO-4-9-3-X32: "-internal-externc-isystem" "[[SYSROOT]]/include"
142 // CHECK-GENTOO-4-9-3-X32: "-internal-externc-isystem" "[[SYSROOT]]/usr/include"
143 //
144 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
145 // RUN:     -target i386-unknown-linux-gnu -stdlib=libstdc++ \
146 // RUN:     --sysroot=%S/Inputs/gentoo_linux_gcc_multi_version_tree \
147 // RUN:     --gcc-toolchain="" \
148 // RUN:   | FileCheck --check-prefix=CHECK-GENTOO-4-9-3-32 %s
149 // CHECK-GENTOO-4-9-3-32: "{{.*}}clang{{.*}}" "-cc1"
150 // CHECK-GENTOO-4-9-3-32: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
151 // CHECK-GENTOO-4-9-3-32: "-isysroot" "[[SYSROOT:[^"]+]]"
152 // CHECK-GENTOO-4-9-3-32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3"
153 // CHECK-GENTOO-4-9-3-32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3/x86_64-pc-linux-gnu/32"
154 // CHECK-GENTOO-4-9-3-32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3/backward"
155 // CHECK-GENTOO-4-9-3-32: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include"
156 // CHECK-GENTOO-4-9-3-32: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
157 // CHECK-GENTOO-4-9-3-32: "-internal-externc-isystem" "[[SYSROOT]]/include"
158 // CHECK-GENTOO-4-9-3-32: "-internal-externc-isystem" "[[SYSROOT]]/usr/include"
159 //
160 // Test support for parsing Gentoo's gcc-config -- clang should parse the
161 // /etc/env.d/gcc/config-x86_64-pc-linux-gnu file to find CURRENT gcc used.
162 // Then should pick the multilibs from version 4.9.x specified in
163 // /etc/env.d/gcc/x86_64-pc-linux-gnu-4.9.3.
164 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
165 // RUN:     -target x86_64-unknown-linux-gnu -stdlib=libstdc++ \
166 // RUN:     --sysroot=%S/Inputs/gentoo_linux_gcc_4.9.x_tree \
167 // RUN:     --gcc-toolchain="" \
168 // RUN:   | FileCheck --check-prefix=CHECK-GENTOO-4-9-X %s
169 //
170 // CHECK-GENTOO-4-9-X: "{{.*}}clang{{.*}}" "-cc1"
171 // CHECK-GENTOO-4-9-X: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
172 // CHECK-GENTOO-4-9-X: "-isysroot" "[[SYSROOT:[^"]+]]"
173 // CHECK-GENTOO-4-9-X: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.x/include/g++-v4.9.3"
174 // CHECK-GENTOO-4-9-X: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.x/include/g++-v4.9.3/x86_64-pc-linux-gnu"
175 // CHECK-GENTOO-4-9-X: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.x/include/g++-v4.9.3/backward"
176 // CHECK-GENTOO-4-9-X: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include"
177 // CHECK-GENTOO-4-9-X: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
178 // CHECK-GENTOO-4-9-X: "-internal-externc-isystem" "[[SYSROOT]]/include"
179 // CHECK-GENTOO-4-9-X: "-internal-externc-isystem" "[[SYSROOT]]/usr/include"
180 //
181 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
182 // RUN:     -target x86_64-unknown-linux-gnux32 -stdlib=libstdc++ \
183 // RUN:     --sysroot=%S/Inputs/gentoo_linux_gcc_4.9.x_tree \
184 // RUN:     --gcc-toolchain="" \
185 // RUN:   | FileCheck --check-prefix=CHECK-GENTOO-4-9-X-X32 %s
186 // CHECK-GENTOO-4-9-X-X32: "{{.*}}clang{{.*}}" "-cc1"
187 // CHECK-GENTOO-4-9-X-X32: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
188 // CHECK-GENTOO-4-9-X-X32: "-isysroot" "[[SYSROOT:[^"]+]]"
189 // CHECK-GENTOO-4-9-X-X32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.x/include/g++-v4.9.3"
190 // CHECK-GENTOO-4-9-X-X32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.x/include/g++-v4.9.3/x86_64-pc-linux-gnu/x32"
191 // CHECK-GENTOO-4-9-X-X32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.x/include/g++-v4.9.3/backward"
192 // CHECK-GENTOO-4-9-X-X32: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include"
193 // CHECK-GENTOO-4-9-X-X32: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
194 // CHECK-GENTOO-4-9-X-X32: "-internal-externc-isystem" "[[SYSROOT]]/include"
195 // CHECK-GENTOO-4-9-X-X32: "-internal-externc-isystem" "[[SYSROOT]]/usr/include"
196 //
197 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
198 // RUN:     -target i386-unknown-linux-gnu -stdlib=libstdc++ \
199 // RUN:     --sysroot=%S/Inputs/gentoo_linux_gcc_4.9.x_tree \
200 // RUN:     --gcc-toolchain="" \
201 // RUN:   | FileCheck --check-prefix=CHECK-GENTOO-4-9-X-32 %s
202 // CHECK-GENTOO-4-9-X-32: "{{.*}}clang{{.*}}" "-cc1"
203 // CHECK-GENTOO-4-9-X-32: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
204 // CHECK-GENTOO-4-9-X-32: "-isysroot" "[[SYSROOT:[^"]+]]"
205 // CHECK-GENTOO-4-9-X-32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.x/include/g++-v4.9.3"
206 // CHECK-GENTOO-4-9-X-32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.x/include/g++-v4.9.3/x86_64-pc-linux-gnu/32"
207 // CHECK-GENTOO-4-9-X-32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.x/include/g++-v4.9.3/backward"
208 // CHECK-GENTOO-4-9-X-32: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include"
209 // CHECK-GENTOO-4-9-X-32: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
210 // CHECK-GENTOO-4-9-X-32: "-internal-externc-isystem" "[[SYSROOT]]/include"
211 // CHECK-GENTOO-4-9-X-32: "-internal-externc-isystem" "[[SYSROOT]]/usr/include"
212 //
213 // Check header search on Debian 6 / MIPS64
214 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
215 // RUN:     -target mips64-unknown-linux-gnuabi64 -stdlib=libstdc++ \
216 // RUN:     --sysroot=%S/Inputs/debian_6_mips64_tree \
217 // RUN:     --gcc-toolchain="" \
218 // RUN:   | FileCheck --check-prefix=CHECK-MIPS64-GNUABI %s
219 // CHECK-MIPS64-GNUABI: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
220 // CHECK-MIPS64-GNUABI: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
221 // CHECK-MIPS64-GNUABI: "-isysroot" "[[SYSROOT:[^"]+]]"
222 // CHECK-MIPS64-GNUABI: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../../include/c++/4.9"
223 // CHECK-MIPS64-GNUABI: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../../include/c++/4.9/mips64-linux-gnuabi64"
224 // CHECK-MIPS64-GNUABI: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../../include/c++/4.9/backward"
225 // CHECK-MIPS64-GNUABI: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include"
226 // CHECK-MIPS64-GNUABI: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
227 // CHECK-MIPS64-GNUABI: "-internal-externc-isystem" "[[SYSROOT]]/usr/include/mips64-linux-gnuabi64"
228 // CHECK-MIPS64-GNUABI: "-internal-externc-isystem" "[[SYSROOT]]/include"
229 // CHECK-MIPS64-GNUABI: "-internal-externc-isystem" "[[SYSROOT]]/usr/include"
230 //
231 // Check header search on Debian 6 / MIPS64
232 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
233 // RUN:     -target mips64el-unknown-linux-gnuabi64 -stdlib=libstdc++ \
234 // RUN:     --sysroot=%S/Inputs/debian_6_mips64_tree \
235 // RUN:     --gcc-toolchain="" \
236 // RUN:   | FileCheck --check-prefix=CHECK-MIPS64EL-GNUABI %s
237 // CHECK-MIPS64EL-GNUABI: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
238 // CHECK-MIPS64EL-GNUABI: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
239 // CHECK-MIPS64EL-GNUABI: "-isysroot" "[[SYSROOT:[^"]+]]"
240 // CHECK-MIPS64EL-GNUABI: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../../include/c++/4.9"
241 // CHECK-MIPS64EL-GNUABI: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../../include/c++/4.9/mips64el-linux-gnuabi64"
242 // CHECK-MIPS64EL-GNUABI: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../../include/c++/4.9/backward"
243 // CHECK-MIPS64EL-GNUABI: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include"
244 // CHECK-MIPS64EL-GNUABI: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
245 // CHECK-MIPS64EL-GNUABI: "-internal-externc-isystem" "[[SYSROOT]]/usr/include/mips64el-linux-gnuabi64"
246 // CHECK-MIPS64EL-GNUABI: "-internal-externc-isystem" "[[SYSROOT]]/include"
247 // CHECK-MIPS64EL-GNUABI: "-internal-externc-isystem" "[[SYSROOT]]/usr/include"
248 
249 
250 // Check header search on OpenEmbedded ARM.
251 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
252 // RUN:     -target arm-oe-linux-gnueabi -stdlib=libstdc++ \
253 // RUN:     --sysroot=%S/Inputs/openembedded_arm_linux_tree \
254 // RUN:     --gcc-toolchain="" \
255 // RUN:   | FileCheck --check-prefix=CHECK-OE-ARM %s
256 
257 // CHECK-OE-ARM: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
258 // CHECK-OE-ARM: "-isysroot" "[[SYSROOT:[^"]+]]"
259 // CHECK-OE-ARM: "-internal-isystem" "[[SYSROOT]]/usr/lib/arm-oe-linux-gnueabi/6.3.0/../../../include/c++/6.3.0"
260 // CHECK-OE-ARM: "-internal-isystem" "[[SYSROOT]]/usr/lib/arm-oe-linux-gnueabi/6.3.0/../../../include/c++/6.3.0/backward"
261 
262 // Check header search on OpenEmbedded AArch64.
263 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
264 // RUN:     -target aarch64-oe-linux -stdlib=libstdc++ \
265 // RUN:     --sysroot=%S/Inputs/openembedded_aarch64_linux_tree \
266 // RUN:     --gcc-toolchain="" \
267 // RUN:   | FileCheck --check-prefix=CHECK-OE-AARCH64 %s
268 
269 // CHECK-OE-AARCH64: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
270 // CHECK-OE-AARCH64: "-isysroot" "[[SYSROOT:[^"]+]]"
271 // CHECK-OE-AARCH64: "-internal-isystem" "[[SYSROOT]]/usr/lib64/aarch64-oe-linux/6.3.0/../../../include/c++/6.3.0"
272 // CHECK-OE-AARCH64: "-internal-isystem" "[[SYSROOT]]/usr/lib64/aarch64-oe-linux/6.3.0/../../../include/c++/6.3.0/backward"
273 
274 // Check header search with Cray's gcc package.
275 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
276 // RUN:     -target x86_64-unknown-linux-gnu -stdlib=libstdc++ \
277 // RUN:     --sysroot=%S/Inputs/cray_suse_gcc_tree \
278 // RUN:     --gcc-toolchain="%S/Inputs/cray_suse_gcc_tree/opt/gcc/8.2.0/snos" \
279 // RUN:   | FileCheck --check-prefix=CHECK-CRAY-X86 %s
280 
281 // CHECK-CRAY-X86: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
282 // CHECK-CRAY-X86: "-isysroot" "[[SYSROOT:[^"]+]]"
283 // CHECK-CRAY-X86: "-internal-isystem" "[[SYSROOT]]/opt/gcc/8.2.0/snos/lib/gcc/x86_64-suse-linux/8.2.0/../../../../include/g++"
284 // CHECK-CRAY-X86: "-internal-isystem" "[[SYSROOT]]/opt/gcc/8.2.0/snos/lib/gcc/x86_64-suse-linux/8.2.0/../../../../include/g++/backward"
285