xref: /aosp_15_r20/external/clang/test/Driver/linux-header-search.cpp (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // General tests that the header search paths detected by the driver and passed
2*67e74705SXin Li // to CC1 are sane.
3*67e74705SXin Li //
4*67e74705SXin Li // Test a simulated installation of libc++ on Linux, both through sysroot and
5*67e74705SXin Li // the installation path of Clang.
6*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
7*67e74705SXin Li // RUN:     -target x86_64-unknown-linux-gnu \
8*67e74705SXin Li // RUN:     -stdlib=libc++ \
9*67e74705SXin Li // RUN:     -ccc-install-dir %S/Inputs/basic_linux_tree/usr/bin \
10*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_linux_libcxx_tree \
11*67e74705SXin Li // RUN:     --gcc-toolchain="" \
12*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-BASIC-LIBCXX-SYSROOT %s
13*67e74705SXin Li // CHECK-BASIC-LIBCXX-SYSROOT: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
14*67e74705SXin Li // CHECK-BASIC-LIBCXX-SYSROOT: "-isysroot" "[[SYSROOT:[^"]+]]"
15*67e74705SXin Li // CHECK-BASIC-LIBCXX-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/include/c++/v1"
16*67e74705SXin Li // CHECK-BASIC-LIBCXX-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
17*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
18*67e74705SXin Li // RUN:     -target x86_64-unknown-linux-gnu \
19*67e74705SXin Li // RUN:     -stdlib=libc++ \
20*67e74705SXin Li // RUN:     -ccc-install-dir %S/Inputs/basic_linux_libcxx_tree/usr/bin \
21*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_linux_libcxx_tree \
22*67e74705SXin Li // RUN:     --gcc-toolchain="" \
23*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-BASIC-LIBCXX-INSTALL %s
24*67e74705SXin Li // CHECK-BASIC-LIBCXX-INSTALL: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
25*67e74705SXin Li // CHECK-BASIC-LIBCXX-INSTALL: "-isysroot" "[[SYSROOT:[^"]+]]"
26*67e74705SXin Li // CHECK-BASIC-LIBCXX-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/bin/../include/c++/v1"
27*67e74705SXin Li // CHECK-BASIC-LIBCXX-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
28*67e74705SXin Li //
29*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
30*67e74705SXin Li // RUN:     -target x86_64-unknown-linux-gnu \
31*67e74705SXin Li // RUN:     -stdlib=libc++ \
32*67e74705SXin Li // RUN:     -ccc-install-dir %S/Inputs/basic_linux_tree/usr/bin \
33*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_linux_libcxxv2_tree \
34*67e74705SXin Li // RUN:     --gcc-toolchain="" \
35*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-BASIC-LIBCXXV2-SYSROOT %s
36*67e74705SXin Li // CHECK-BASIC-LIBCXXV2-SYSROOT: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
37*67e74705SXin Li // CHECK-BASIC-LIBCXXV2-SYSROOT: "-isysroot" "[[SYSROOT:[^"]+]]"
38*67e74705SXin Li // CHECK-BASIC-LIBCXXV2-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/include/c++/v2"
39*67e74705SXin Li // CHECK-BASIC-LIBCXXV2-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
40*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
41*67e74705SXin Li // RUN:     -target x86_64-unknown-linux-gnu \
42*67e74705SXin Li // RUN:     -stdlib=libc++ \
43*67e74705SXin Li // RUN:     -ccc-install-dir %S/Inputs/basic_linux_libcxxv2_tree/usr/bin \
44*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_linux_libcxxv2_tree \
45*67e74705SXin Li // RUN:     --gcc-toolchain="" \
46*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-BASIC-LIBCXXV2-INSTALL %s
47*67e74705SXin Li // CHECK-BASIC-LIBCXXV2-INSTALL: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
48*67e74705SXin Li // CHECK-BASIC-LIBCXXV2-INSTALL: "-isysroot" "[[SYSROOT:[^"]+]]"
49*67e74705SXin Li // CHECK-BASIC-LIBCXXV2-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/bin/../include/c++/v2"
50*67e74705SXin Li // CHECK-BASIC-LIBCXXV2-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
51*67e74705SXin Li //
52*67e74705SXin Li // Test Linux with both libc++ and libstdc++ installed.
53*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
54*67e74705SXin Li // RUN:     -target x86_64-unknown-linux-gnu \
55*67e74705SXin Li // RUN:     -stdlib=libc++ \
56*67e74705SXin Li // RUN:     -ccc-install-dir %S/Inputs/basic_linux_tree/usr/bin \
57*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_linux_libstdcxx_libcxxv2_tree \
58*67e74705SXin Li // RUN:     --gcc-toolchain="" \
59*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-BASIC-LIBSTDCXX-LIBCXXV2-SYSROOT %s
60*67e74705SXin Li // CHECK-BASIC-LIBSTDCXX-LIBCXXV2-SYSROOT: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
61*67e74705SXin Li // CHECK-BASIC-LIBSTDCXX-LIBCXXV2-SYSROOT: "-isysroot" "[[SYSROOT:[^"]+]]"
62*67e74705SXin Li // CHECK-BASIC-LIBSTDCXX-LIBCXXV2-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/include/c++/v2"
63*67e74705SXin Li // CHECK-BASIC-LIBSTDCXX-LIBCXXV2-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
64*67e74705SXin Li //
65*67e74705SXin Li // Test a very broken version of multiarch that shipped in Ubuntu 11.04.
66*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
67*67e74705SXin Li // RUN:     -target i386-unknown-linux -stdlib=libstdc++ \
68*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/ubuntu_11.04_multiarch_tree \
69*67e74705SXin Li // RUN:     --gcc-toolchain="" \
70*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-UBUNTU-11-04 %s
71*67e74705SXin Li // CHECK-UBUNTU-11-04: "{{.*}}clang{{.*}}" "-cc1"
72*67e74705SXin Li // CHECK-UBUNTU-11-04: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
73*67e74705SXin Li // CHECK-UBUNTU-11-04: "-isysroot" "[[SYSROOT:[^"]+]]"
74*67e74705SXin Li // CHECK-UBUNTU-11-04: "-internal-isystem" "[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../../../include/c++/4.5"
75*67e74705SXin Li // CHECK-UBUNTU-11-04: "-internal-isystem" "[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../../../include/c++/4.5/i686-linux-gnu"
76*67e74705SXin Li // CHECK-UBUNTU-11-04: "-internal-isystem" "[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../../../include/c++/4.5/backward"
77*67e74705SXin Li // CHECK-UBUNTU-11-04: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
78*67e74705SXin Li // CHECK-UBUNTU-11-04: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include"
79*67e74705SXin Li // CHECK-UBUNTU-11-04: "-internal-externc-isystem" "[[SYSROOT]]/include"
80*67e74705SXin Li // CHECK-UBUNTU-11-04: "-internal-externc-isystem" "[[SYSROOT]]/usr/include"
81*67e74705SXin Li //
82*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
83*67e74705SXin Li // RUN:     -target x86_64-unknown-linux-gnu -stdlib=libstdc++ \
84*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/ubuntu_13.04_multiarch_tree \
85*67e74705SXin Li // RUN:     --gcc-toolchain="" \
86*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-UBUNTU-13-04 %s
87*67e74705SXin Li // CHECK-UBUNTU-13-04: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
88*67e74705SXin Li // CHECK-UBUNTU-13-04: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
89*67e74705SXin Li // CHECK-UBUNTU-13-04: "-isysroot" "[[SYSROOT:[^"]+]]"
90*67e74705SXin Li // CHECK-UBUNTU-13-04: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7"
91*67e74705SXin Li // CHECK-UBUNTU-13-04: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/x86_64-linux-gnu/c++/4.7"
92*67e74705SXin Li // CHECK-UBUNTU-13-04: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/backward"
93*67e74705SXin Li // CHECK-UBUNTU-13-04: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
94*67e74705SXin Li // CHECK-UBUNTU-13-04: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include"
95*67e74705SXin Li // CHECK-UBUNTU-13-04: "-internal-externc-isystem" "[[SYSROOT]]/usr/include/x86_64-linux-gnu"
96*67e74705SXin Li // CHECK-UBUNTU-13-04: "-internal-externc-isystem" "[[SYSROOT]]/include"
97*67e74705SXin Li // CHECK-UBUNTU-13-04: "-internal-externc-isystem" "[[SYSROOT]]/usr/include"
98*67e74705SXin Li //
99*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
100*67e74705SXin Li // RUN:     -target x86_64-unknown-linux-gnux32 -stdlib=libstdc++ \
101*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/ubuntu_14.04_multiarch_tree \
102*67e74705SXin Li // RUN:     --gcc-toolchain="" \
103*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-UBUNTU-14-04 %s
104*67e74705SXin Li // CHECK-UBUNTU-14-04: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
105*67e74705SXin Li // CHECK-UBUNTU-14-04: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
106*67e74705SXin Li // CHECK-UBUNTU-14-04: "-isysroot" "[[SYSROOT:[^"]+]]"
107*67e74705SXin Li // CHECK-UBUNTU-14-04: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8"
108*67e74705SXin Li // CHECK-UBUNTU-14-04: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/x86_64-linux-gnu/c++/4.8/x32"
109*67e74705SXin Li // CHECK-UBUNTU-14-04: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/backward"
110*67e74705SXin Li // CHECK-UBUNTU-14-04: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
111*67e74705SXin Li // CHECK-UBUNTU-14-04: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include"
112*67e74705SXin Li // CHECK-UBUNTU-14-04: "-internal-externc-isystem" "[[SYSROOT]]/usr/include/x86_64-linux-gnu"
113*67e74705SXin Li // CHECK-UBUNTU-14-04: "-internal-externc-isystem" "[[SYSROOT]]/include"
114*67e74705SXin Li // CHECK-UBUNTU-14-04: "-internal-externc-isystem" "[[SYSROOT]]/usr/include"
115*67e74705SXin Li ///
116*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
117*67e74705SXin Li // RUN:     -target arm-linux-gnueabihf -stdlib=libstdc++ \
118*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/ubuntu_13.04_multiarch_tree \
119*67e74705SXin Li // RUN:     --gcc-toolchain="" \
120*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-UBUNTU-13-04-CROSS %s
121*67e74705SXin Li // CHECK-UBUNTU-13-04-CROSS: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
122*67e74705SXin Li // CHECK-UBUNTU-13-04-CROSS: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
123*67e74705SXin Li // CHECK-UBUNTU-13-04-CROSS: "-isysroot" "[[SYSROOT:[^"]+]]"
124*67e74705SXin Li // CHECK-UBUNTU-13-04-CROSS: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.7/../../../../include/c++/4.7"
125*67e74705SXin Li // CHECK-UBUNTU-13-04-CROSS: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.7/../../../../include/arm-linux-gnueabihf/c++/4.7"
126*67e74705SXin Li // CHECK-UBUNTU-13-04-CROSS: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.7/../../../../include/c++/4.7/backward"
127*67e74705SXin Li // CHECK-UBUNTU-13-04-CROSS: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
128*67e74705SXin Li // CHECK-UBUNTU-13-04-CROSS: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include"
129*67e74705SXin Li // CHECK-UBUNTU-13-04-CROSS: "-internal-externc-isystem" "[[SYSROOT]]/include"
130*67e74705SXin Li // CHECK-UBUNTU-13-04-CROSS: "-internal-externc-isystem" "[[SYSROOT]]/usr/include"
131*67e74705SXin Li //
132*67e74705SXin Li // Test Ubuntu/Debian's new version of multiarch, with -m32.
133*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
134*67e74705SXin Li // RUN:     -target x86_64-unknown-linux-gnu -m32 -stdlib=libstdc++ \
135*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/ubuntu_13.04_multiarch_tree \
136*67e74705SXin Li // RUN:     --gcc-toolchain="" \
137*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-UBUNTU-13-04-M32 %s
138*67e74705SXin Li // CHECK-UBUNTU-13-04-M32: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
139*67e74705SXin Li // CHECK-UBUNTU-13-04-M32: "-triple" "i386-unknown-linux-gnu"
140*67e74705SXin Li // CHECK-UBUNTU-13-04-M32: "-isysroot" "[[SYSROOT:[^"]+]]"
141*67e74705SXin Li // CHECK-UBUNTU-13-04-M32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7"
142*67e74705SXin Li // CHECK-UBUNTU-13-04-M32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/x86_64-linux-gnu/c++/4.7/32"
143*67e74705SXin Li // CHECK-UBUNTU-13-04-M32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/backward"
144*67e74705SXin Li //
145*67e74705SXin Li // Test Ubuntu/Debian's Ubuntu 14.04 config variant, with -m32
146*67e74705SXin Li // and an empty 4.9 directory.
147*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
148*67e74705SXin Li // RUN:     -target x86_64-unknown-linux-gnu -m32 -stdlib=libstdc++ \
149*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/ubuntu_14.04_multiarch_tree \
150*67e74705SXin Li // RUN:     --gcc-toolchain="" \
151*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-UBUNTU-14-04-M32 %s
152*67e74705SXin Li // CHECK-UBUNTU-14-04-M32: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
153*67e74705SXin Li // CHECK-UBUNTU-14-04-M32: "-triple" "i386-unknown-linux-gnu"
154*67e74705SXin Li // CHECK-UBUNTU-14-04-M32: "-isysroot" "[[SYSROOT:[^"]+]]"
155*67e74705SXin Li // CHECK-UBUNTU-14-04-M32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8"
156*67e74705SXin Li // CHECK-UBUNTU-14-04-M32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/x86_64-linux-gnu/c++/4.8/32"
157*67e74705SXin Li // CHECK-UBUNTU-14-04-M32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/backward"
158*67e74705SXin Li //
159*67e74705SXin Li // Test Ubuntu/Debian's Ubuntu 14.04 with -m32 and an i686 cross compiler
160*67e74705SXin Li // installed rather than relying on multilib. Also happens to look like an
161*67e74705SXin Li // actual i686 Ubuntu system.
162*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
163*67e74705SXin Li // RUN:     -target x86_64-unknown-linux-gnu -m32 -stdlib=libstdc++ \
164*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/ubuntu_14.04_multiarch_tree2 \
165*67e74705SXin Li // RUN:     --gcc-toolchain="" \
166*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-UBUNTU-14-04-I686 %s
167*67e74705SXin Li // CHECK-UBUNTU-14-04-I686: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
168*67e74705SXin Li // CHECK-UBUNTU-14-04-I686: "-triple" "i386-unknown-linux-gnu"
169*67e74705SXin Li // CHECK-UBUNTU-14-04-I686: "-isysroot" "[[SYSROOT:[^"]+]]"
170*67e74705SXin Li // CHECK-UBUNTU-14-04-I686: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.8/../../../../include/c++/4.8"
171*67e74705SXin Li // CHECK-UBUNTU-14-04-I686: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.8/../../../../include/i386-linux-gnu/c++/4.8"
172*67e74705SXin Li // CHECK-UBUNTU-14-04-I686: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.8/../../../../include/c++/4.8/backward"
173*67e74705SXin Li //
174*67e74705SXin Li // Test Ubuntu/Debian's Ubuntu 14.04 for powerpc64le
175*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
176*67e74705SXin Li // RUN:     -target powerpc64le-unknown-linux-gnu -m32 -stdlib=libstdc++ \
177*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/ubuntu_14.04_multiarch_tree \
178*67e74705SXin Li // RUN:     --gcc-toolchain="" \
179*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-UBUNTU-14-04-PPC64LE %s
180*67e74705SXin Li // CHECK-UBUNTU-14-04-PPC64LE: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
181*67e74705SXin Li // CHECK-UBUNTU-14-04-PPC64LE: "-triple" "powerpc64le-unknown-linux-gnu"
182*67e74705SXin Li // CHECK-UBUNTU-14-04-PPC64LE: "-isysroot" "[[SYSROOT:[^"]+]]"
183*67e74705SXin Li // CHECK-UBUNTU-14-04-PPC64LE: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../../include/c++/4.8"
184*67e74705SXin Li // CHECK-UBUNTU-14-04-PPC64LE: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../../include/powerpc64le-linux-gnu/c++/4.8"
185*67e74705SXin Li // CHECK-UBUNTU-14-04-PPC64LE: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../../include/c++/4.8/backward"
186*67e74705SXin Li // CHECK-UBUNTU-14-04-PPC64LE: "-internal-externc-isystem" "[[SYSROOT]]/usr/include/powerpc64le-linux-gnu"
187*67e74705SXin Li // CHECK-UBUNTU-14-04-PPC64LE: "-internal-externc-isystem" "[[SYSROOT]]/include"
188*67e74705SXin Li // CHECK-UBUNTU-14-04-PPC64LE: "-internal-externc-isystem" "[[SYSROOT]]/usr/include"
189*67e74705SXin Li //
190*67e74705SXin Li // Thoroughly exercise the Debian multiarch environment.
191*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
192*67e74705SXin Li // RUN:     -target i686-linux-gnu -stdlib=libstdc++ \
193*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/debian_multiarch_tree \
194*67e74705SXin Li // RUN:     --gcc-toolchain="" \
195*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-DEBIAN-X86 %s
196*67e74705SXin Li // CHECK-DEBIAN-X86: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
197*67e74705SXin Li // CHECK-DEBIAN-X86: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
198*67e74705SXin Li // CHECK-DEBIAN-X86: "-isysroot" "[[SYSROOT:[^"]+]]"
199*67e74705SXin Li // CHECK-DEBIAN-X86: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5/../../../../include/c++/4.5"
200*67e74705SXin Li // CHECK-DEBIAN-X86: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5/../../../../include/c++/4.5/i686-linux-gnu"
201*67e74705SXin Li // CHECK-DEBIAN-X86: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5/../../../../include/c++/4.5/backward"
202*67e74705SXin Li // CHECK-DEBIAN-X86: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
203*67e74705SXin Li // CHECK-DEBIAN-X86: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include"
204*67e74705SXin Li // CHECK-DEBIAN-X86: "-internal-externc-isystem" "[[SYSROOT]]/usr/include/i386-linux-gnu"
205*67e74705SXin Li // CHECK-DEBIAN-X86: "-internal-externc-isystem" "[[SYSROOT]]/include"
206*67e74705SXin Li // CHECK-DEBIAN-X86: "-internal-externc-isystem" "[[SYSROOT]]/usr/include"
207*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
208*67e74705SXin Li // RUN:     -target x86_64-linux-gnu -stdlib=libstdc++ \
209*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/debian_multiarch_tree \
210*67e74705SXin Li // RUN:     --gcc-toolchain="" \
211*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-DEBIAN-X86-64 %s
212*67e74705SXin Li // CHECK-DEBIAN-X86-64: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
213*67e74705SXin Li // CHECK-DEBIAN-X86-64: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
214*67e74705SXin Li // CHECK-DEBIAN-X86-64: "-isysroot" "[[SYSROOT:[^"]+]]"
215*67e74705SXin Li // CHECK-DEBIAN-X86-64: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5/../../../../include/c++/4.5"
216*67e74705SXin Li // CHECK-DEBIAN-X86-64: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5/../../../../include/c++/4.5/x86_64-linux-gnu"
217*67e74705SXin Li // CHECK-DEBIAN-X86-64: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5/../../../../include/c++/4.5/backward"
218*67e74705SXin Li // CHECK-DEBIAN-X86-64: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
219*67e74705SXin Li // CHECK-DEBIAN-X86-64: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include"
220*67e74705SXin Li // CHECK-DEBIAN-X86-64: "-internal-externc-isystem" "[[SYSROOT]]/usr/include/x86_64-linux-gnu"
221*67e74705SXin Li // CHECK-DEBIAN-X86-64: "-internal-externc-isystem" "[[SYSROOT]]/include"
222*67e74705SXin Li // CHECK-DEBIAN-X86-64: "-internal-externc-isystem" "[[SYSROOT]]/usr/include"
223*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
224*67e74705SXin Li // RUN:     -target powerpc-linux-gnu -stdlib=libstdc++ \
225*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/debian_multiarch_tree \
226*67e74705SXin Li // RUN:     --gcc-toolchain="" \
227*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-DEBIAN-PPC %s
228*67e74705SXin Li // CHECK-DEBIAN-PPC: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
229*67e74705SXin Li // CHECK-DEBIAN-PPC: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
230*67e74705SXin Li // CHECK-DEBIAN-PPC: "-isysroot" "[[SYSROOT:[^"]+]]"
231*67e74705SXin Li // CHECK-DEBIAN-PPC: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5/../../../../include/c++/4.5"
232*67e74705SXin Li // CHECK-DEBIAN-PPC: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5/../../../../include/c++/4.5/powerpc-linux-gnu"
233*67e74705SXin Li // CHECK-DEBIAN-PPC: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5/../../../../include/c++/4.5/backward"
234*67e74705SXin Li // CHECK-DEBIAN-PPC: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
235*67e74705SXin Li // CHECK-DEBIAN-PPC: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include"
236*67e74705SXin Li // CHECK-DEBIAN-PPC: "-internal-externc-isystem" "[[SYSROOT]]/usr/include/powerpc-linux-gnu"
237*67e74705SXin Li // CHECK-DEBIAN-PPC: "-internal-externc-isystem" "[[SYSROOT]]/include"
238*67e74705SXin Li // CHECK-DEBIAN-PPC: "-internal-externc-isystem" "[[SYSROOT]]/usr/include"
239*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
240*67e74705SXin Li // RUN:     -target powerpc64-linux-gnu -stdlib=libstdc++ \
241*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/debian_multiarch_tree \
242*67e74705SXin Li // RUN:     --gcc-toolchain="" \
243*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-DEBIAN-PPC64 %s
244*67e74705SXin Li // CHECK-DEBIAN-PPC64: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
245*67e74705SXin Li // CHECK-DEBIAN-PPC64: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
246*67e74705SXin Li // CHECK-DEBIAN-PPC64: "-isysroot" "[[SYSROOT:[^"]+]]"
247*67e74705SXin Li // CHECK-DEBIAN-PPC64: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5/../../../../include/c++/4.5"
248*67e74705SXin Li // CHECK-DEBIAN-PPC64: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5/../../../../include/c++/4.5/powerpc64-linux-gnu"
249*67e74705SXin Li // CHECK-DEBIAN-PPC64: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5/../../../../include/c++/4.5/backward"
250*67e74705SXin Li // CHECK-DEBIAN-PPC64: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
251*67e74705SXin Li // CHECK-DEBIAN-PPC64: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include"
252*67e74705SXin Li // CHECK-DEBIAN-PPC64: "-internal-externc-isystem" "[[SYSROOT]]/usr/include/powerpc64-linux-gnu"
253*67e74705SXin Li // CHECK-DEBIAN-PPC64: "-internal-externc-isystem" "[[SYSROOT]]/include"
254*67e74705SXin Li // CHECK-DEBIAN-PPC64: "-internal-externc-isystem" "[[SYSROOT]]/usr/include"
255*67e74705SXin Li //
256*67e74705SXin Li // Test Gentoo's weirdness both before and after they changed it in their GCC
257*67e74705SXin Li // 4.6.4 release.
258*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
259*67e74705SXin Li // RUN:     -target x86_64-unknown-linux-gnu -stdlib=libstdc++ \
260*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/gentoo_linux_gcc_4.6.2_tree \
261*67e74705SXin Li // RUN:     --gcc-toolchain="" \
262*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-GENTOO-4-6-2 %s
263*67e74705SXin Li // CHECK-GENTOO-4-6-2: "{{.*}}clang{{.*}}" "-cc1"
264*67e74705SXin Li // CHECK-GENTOO-4-6-2: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
265*67e74705SXin Li // CHECK-GENTOO-4-6-2: "-isysroot" "[[SYSROOT:[^"]+]]"
266*67e74705SXin Li // CHECK-GENTOO-4-6-2: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4"
267*67e74705SXin Li // 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"
268*67e74705SXin Li // CHECK-GENTOO-4-6-2: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/backward"
269*67e74705SXin Li // CHECK-GENTOO-4-6-2: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
270*67e74705SXin Li // CHECK-GENTOO-4-6-2: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include"
271*67e74705SXin Li // CHECK-GENTOO-4-6-2: "-internal-externc-isystem" "[[SYSROOT]]/include"
272*67e74705SXin Li // CHECK-GENTOO-4-6-2: "-internal-externc-isystem" "[[SYSROOT]]/usr/include"
273*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
274*67e74705SXin Li // RUN:     -target x86_64-unknown-linux-gnu -stdlib=libstdc++ \
275*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/gentoo_linux_gcc_4.6.4_tree \
276*67e74705SXin Li // RUN:     --gcc-toolchain="" \
277*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-GENTOO-4-6-4 %s
278*67e74705SXin Li // CHECK-GENTOO-4-6-4: "{{.*}}clang{{.*}}" "-cc1"
279*67e74705SXin Li // CHECK-GENTOO-4-6-4: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
280*67e74705SXin Li // CHECK-GENTOO-4-6-4: "-isysroot" "[[SYSROOT:[^"]+]]"
281*67e74705SXin Li // CHECK-GENTOO-4-6-4: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.4/include/g++-v4.6"
282*67e74705SXin Li // 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"
283*67e74705SXin Li // CHECK-GENTOO-4-6-4: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.4/include/g++-v4.6/backward"
284*67e74705SXin Li // CHECK-GENTOO-4-6-4: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
285*67e74705SXin Li // CHECK-GENTOO-4-6-4: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include"
286*67e74705SXin Li // CHECK-GENTOO-4-6-4: "-internal-externc-isystem" "[[SYSROOT]]/include"
287*67e74705SXin Li // CHECK-GENTOO-4-6-4: "-internal-externc-isystem" "[[SYSROOT]]/usr/include"
288*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
289*67e74705SXin Li // RUN:     -target x86_64-unknown-linux-gnu -stdlib=libstdc++ \
290*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/gentoo_linux_gcc_4.9.3_tree \
291*67e74705SXin Li // RUN:     --gcc-toolchain="" \
292*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-GENTOO-4-9-3 %s
293*67e74705SXin Li // CHECK-GENTOO-4-9-3: "{{.*}}clang{{.*}}" "-cc1"
294*67e74705SXin Li // CHECK-GENTOO-4-9-3: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
295*67e74705SXin Li // CHECK-GENTOO-4-9-3: "-isysroot" "[[SYSROOT:[^"]+]]"
296*67e74705SXin Li // CHECK-GENTOO-4-9-3: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3"
297*67e74705SXin Li // 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"
298*67e74705SXin Li // 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"
299*67e74705SXin Li // CHECK-GENTOO-4-9-3: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
300*67e74705SXin Li // CHECK-GENTOO-4-9-3: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include"
301*67e74705SXin Li // CHECK-GENTOO-4-9-3: "-internal-externc-isystem" "[[SYSROOT]]/include"
302*67e74705SXin Li // CHECK-GENTOO-4-9-3: "-internal-externc-isystem" "[[SYSROOT]]/usr/include"
303*67e74705SXin Li //
304*67e74705SXin Li // Check header search on Debian 6 / MIPS64
305*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
306*67e74705SXin Li // RUN:     -target mips64-unknown-linux-gnuabi64 -stdlib=libstdc++ \
307*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/debian_6_mips64_tree \
308*67e74705SXin Li // RUN:     --gcc-toolchain="" \
309*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-MIPS64-GNUABI %s
310*67e74705SXin Li // CHECK-MIPS64-GNUABI: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
311*67e74705SXin Li // CHECK-MIPS64-GNUABI: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
312*67e74705SXin Li // CHECK-MIPS64-GNUABI: "-isysroot" "[[SYSROOT:[^"]+]]"
313*67e74705SXin Li // CHECK-MIPS64-GNUABI: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../../include/c++/4.9"
314*67e74705SXin Li // CHECK-MIPS64-GNUABI: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../../include/c++/4.9/mips64-linux-gnuabi64"
315*67e74705SXin Li // CHECK-MIPS64-GNUABI: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../../include/c++/4.9/backward"
316*67e74705SXin Li // CHECK-MIPS64-GNUABI: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
317*67e74705SXin Li // CHECK-MIPS64-GNUABI: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include"
318*67e74705SXin Li // CHECK-MIPS64-GNUABI: "-internal-externc-isystem" "[[SYSROOT]]/usr/include/mips64-linux-gnuabi64"
319*67e74705SXin Li // CHECK-MIPS64-GNUABI: "-internal-externc-isystem" "[[SYSROOT]]/include"
320*67e74705SXin Li // CHECK-MIPS64-GNUABI: "-internal-externc-isystem" "[[SYSROOT]]/usr/include"
321*67e74705SXin Li //
322*67e74705SXin Li // Check header search on Debian 6 / MIPS64
323*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
324*67e74705SXin Li // RUN:     -target mips64el-unknown-linux-gnuabi64 -stdlib=libstdc++ \
325*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/debian_6_mips64_tree \
326*67e74705SXin Li // RUN:     --gcc-toolchain="" \
327*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-MIPS64EL-GNUABI %s
328*67e74705SXin Li // CHECK-MIPS64EL-GNUABI: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
329*67e74705SXin Li // CHECK-MIPS64EL-GNUABI: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
330*67e74705SXin Li // CHECK-MIPS64EL-GNUABI: "-isysroot" "[[SYSROOT:[^"]+]]"
331*67e74705SXin Li // CHECK-MIPS64EL-GNUABI: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../../include/c++/4.9"
332*67e74705SXin Li // CHECK-MIPS64EL-GNUABI: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../../include/c++/4.9/mips64el-linux-gnuabi64"
333*67e74705SXin Li // CHECK-MIPS64EL-GNUABI: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../../include/c++/4.9/backward"
334*67e74705SXin Li // CHECK-MIPS64EL-GNUABI: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
335*67e74705SXin Li // CHECK-MIPS64EL-GNUABI: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include"
336*67e74705SXin Li // CHECK-MIPS64EL-GNUABI: "-internal-externc-isystem" "[[SYSROOT]]/usr/include/mips64el-linux-gnuabi64"
337*67e74705SXin Li // CHECK-MIPS64EL-GNUABI: "-internal-externc-isystem" "[[SYSROOT]]/include"
338*67e74705SXin Li // CHECK-MIPS64EL-GNUABI: "-internal-externc-isystem" "[[SYSROOT]]/usr/include"
339*67e74705SXin Li 
340*67e74705SXin Li // Check header search on Debian 8 / Sparc
341*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
342*67e74705SXin Li // RUN:     -target sparc-unknown-linux-gnu -stdlib=libstdc++ \
343*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/debian_8_sparc_multilib_tree \
344*67e74705SXin Li // RUN:     --gcc-toolchain="" \
345*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-DEBIAN-SPARC32 %s
346*67e74705SXin Li // CHECK-DEBIAN-SPARC32: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
347*67e74705SXin Li // CHECK-DEBIAN-SPARC32: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
348*67e74705SXin Li // CHECK-DEBIAN-SPARC32: "-isysroot" "[[SYSROOT:[^"]+]]"
349*67e74705SXin Li // CHECK-DEBIAN-SPARC32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/../../../../include/c++/4.9"
350*67e74705SXin Li // CHECK-DEBIAN-SPARC32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/../../../../include/sparc-linux-gnu/c++/4.9"
351*67e74705SXin Li // CHECK-DEBIAN-SPARC32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/../../../../include/c++/4.9/backward"
352*67e74705SXin Li // CHECK-DEBIAN-SPARC32: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
353*67e74705SXin Li // CHECK-DEBIAN-SPARC32: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include"
354*67e74705SXin Li // CHECK-DEBIAN-SPARC32: "-internal-externc-isystem" "[[SYSROOT]]/usr/include/sparc-linux-gnu"
355*67e74705SXin Li // CHECK-DEBIAN-SPARC32: "-internal-externc-isystem" "[[SYSROOT]]/include"
356*67e74705SXin Li // CHECK-DEBIAN-SPARC32: "-internal-externc-isystem" "[[SYSROOT]]/usr/include"
357*67e74705SXin Li 
358*67e74705SXin Li // Check header search on Debian 8 / Sparc, with the oldstyle multilib packages
359*67e74705SXin Li // RUN: %clang -no-canonical-prefixes -m64 %s -### -fsyntax-only 2>&1 \
360*67e74705SXin Li // RUN:     -target sparc-unknown-linux-gnu -stdlib=libstdc++ \
361*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/debian_8_sparc_multilib_tree \
362*67e74705SXin Li // RUN:     --gcc-toolchain="" \
363*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-DEBIAN-SPARC32-LIB64 %s
364*67e74705SXin Li // CHECK-DEBIAN-SPARC32-LIB64: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
365*67e74705SXin Li // CHECK-DEBIAN-SPARC32-LIB64: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
366*67e74705SXin Li // CHECK-DEBIAN-SPARC32-LIB64: "-isysroot" "[[SYSROOT:[^"]+]]"
367*67e74705SXin Li // CHECK-DEBIAN-SPARC32-LIB64: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/../../../../include/c++/4.9"
368*67e74705SXin Li // CHECK-DEBIAN-SPARC32-LIB64: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/../../../../include/sparc-linux-gnu/c++/4.9/64"
369*67e74705SXin Li // CHECK-DEBIAN-SPARC32-LIB64: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/../../../../include/c++/4.9/backward"
370*67e74705SXin Li // CHECK-DEBIAN-SPARC32-LIB64: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
371*67e74705SXin Li // CHECK-DEBIAN-SPARC32-LIB64: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include"
372*67e74705SXin Li /* TODO: GCC 4.9 includes the following dir in its search path, which
373*67e74705SXin Li    seems questionable. Clang doesn't. Not sure if clang should be
374*67e74705SXin Li    doing that too. */
375*67e74705SXin Li // CHECK-DEBIAN-SPARC32-LIB64-todo: "-internal-externc-isystem" "[[SYSROOT]]/usr/include/sparc-linux-gnu"
376*67e74705SXin Li // CHECK-DEBIAN-SPARC32-LIB64: "-internal-externc-isystem" "[[SYSROOT]]/include"
377*67e74705SXin Li // CHECK-DEBIAN-SPARC32-LIB64: "-internal-externc-isystem" "[[SYSROOT]]/usr/include"
378*67e74705SXin Li 
379*67e74705SXin Li // Check header search on Debian 8 / Sparc64
380*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
381*67e74705SXin Li // RUN:     -target sparc64-unknown-linux-gnu -stdlib=libstdc++ \
382*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/debian_8_sparc64_tree \
383*67e74705SXin Li // RUN:     --gcc-toolchain="" \
384*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-DEBIAN-SPARC64 %s
385*67e74705SXin Li // CHECK-DEBIAN-SPARC64: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
386*67e74705SXin Li // CHECK-DEBIAN-SPARC64: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
387*67e74705SXin Li // CHECK-DEBIAN-SPARC64: "-isysroot" "[[SYSROOT:[^"]+]]"
388*67e74705SXin Li // CHECK-DEBIAN-SPARC64: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/sparc64-linux-gnu/4.9/../../../../include/c++/4.9"
389*67e74705SXin Li // CHECK-DEBIAN-SPARC64: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/sparc64-linux-gnu/4.9/../../../../include/sparc64-linux-gnu/c++/4.9"
390*67e74705SXin Li // CHECK-DEBIAN-SPARC64: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/sparc64-linux-gnu/4.9/../../../../include/c++/4.9/backward"
391*67e74705SXin Li // CHECK-DEBIAN-SPARC64: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
392*67e74705SXin Li // CHECK-DEBIAN-SPARC64: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include"
393*67e74705SXin Li // CHECK-DEBIAN-SPARC64: "-internal-externc-isystem" "[[SYSROOT]]/usr/include/sparc64-linux-gnu"
394*67e74705SXin Li // CHECK-DEBIAN-SPARC64: "-internal-externc-isystem" "[[SYSROOT]]/include"
395*67e74705SXin Li // CHECK-DEBIAN-SPARC64: "-internal-externc-isystem" "[[SYSROOT]]/usr/include"
396