xref: /llvm-project/clang/test/Driver/zos-comp-cxx.cpp (revision d32fb5e5f51dedba495301073b9250f84ac6d8a8)
1*d32fb5e5SSean Perry // Tests that the z/OS toolchain adds system includes to its search path.
2*d32fb5e5SSean Perry 
3*d32fb5e5SSean Perry // RUN: %clangxx -c -### %s --target=s390x-ibm-zos 2>&1 \
4*d32fb5e5SSean Perry // RUN:   | FileCheck %s
5*d32fb5e5SSean Perry 
6*d32fb5e5SSean Perry // CHECK: "-D_UNIX03_WITHDRAWN"
7*d32fb5e5SSean Perry // CHECK-SAME: "-D_OPEN_DEFAULT"
8*d32fb5e5SSean Perry // CHECK-SAME: "-D_XOPEN_SOURCE=600"
9*d32fb5e5SSean Perry // CHECK-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
10*d32fb5e5SSean Perry // CHECK-SAME: "-internal-isystem" "{{.*}}{{/|\\\\}}bin{{/|\\\\}}..{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}v1"
11*d32fb5e5SSean Perry // CHECK-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|\\\\)}}include{{(/|\\\\)}}zos_wrappers"
12*d32fb5e5SSean Perry // CHECK-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|\\\\)}}include"
13*d32fb5e5SSean Perry // CHECK-SAME: "-internal-isystem" "/usr/include"
14*d32fb5e5SSean Perry // CHECK-SAME: "-fshort-enums"
15*d32fb5e5SSean Perry // CHECK-SAME: "-fno-signed-char"
16*d32fb5e5SSean Perry // CHECK-SAME: "-fno-signed-wchar"
17*d32fb5e5SSean Perry 
18*d32fb5e5SSean Perry // RUN: %clangxx -c -### -mzos-sys-include=/ABC/DEF %s 2>&1 \
19*d32fb5e5SSean Perry // RUN:		--target=s390x-ibm-zos \
20*d32fb5e5SSean Perry // RUN:   | FileCheck --check-prefixes=CHECK2 %s
21*d32fb5e5SSean Perry 
22*d32fb5e5SSean Perry // CHECK2: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
23*d32fb5e5SSean Perry // CHECK2-SAME: "-internal-isystem" "{{.*}}{{/|\\\\}}bin{{/|\\\\}}..{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}v1"
24*d32fb5e5SSean Perry // CHECK2-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|\\\\)}}include{{(/|\\\\)}}zos_wrappers"
25*d32fb5e5SSean Perry // CHECK2-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|\\\\)}}include"
26*d32fb5e5SSean Perry // CHECK2-SAME: "-internal-isystem" "{{/|\\\\}}ABC{{/|\\\\}}DEF"
27*d32fb5e5SSean Perry // CHECK2-NOT: "-internal-isystem" "/usr/include"
28*d32fb5e5SSean Perry // CHECK2-SAME: "-fshort-enums"
29*d32fb5e5SSean Perry // CHECK2-SAME: "-fno-signed-char"
30*d32fb5e5SSean Perry // CHECK2-SAME: "-fno-signed-wchar"
31*d32fb5e5SSean Perry 
32*d32fb5e5SSean Perry // RUN: %clangxx -c -### -nostdinc %s 2>&1 \
33*d32fb5e5SSean Perry // RUN:		--target=s390x-ibm-zos \
34*d32fb5e5SSean Perry // RUN:   | FileCheck --check-prefixes=CHECK3 %s
35*d32fb5e5SSean Perry 
36*d32fb5e5SSean Perry // CHECK3: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
37*d32fb5e5SSean Perry // CHECK3-NOT: "-internal-isystem" "{{.*}}/bin/../include/c++/v1"
38*d32fb5e5SSean Perry // CHECK3-NOT: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|\\\\)}}include{{(/|\\\\)}}zos_wrappers"
39*d32fb5e5SSean Perry // CHECK3-NOT: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|\\\\)}}include"
40*d32fb5e5SSean Perry // CHECK3-NOT: "-internal-isystem" "/usr/include"
41*d32fb5e5SSean Perry // CHECK3-SAME: "-fshort-enums"
42*d32fb5e5SSean Perry // CHECK3-SAME: "-fno-signed-char"
43*d32fb5e5SSean Perry // CHECK3-SAME: "-fno-signed-wchar"
44*d32fb5e5SSean Perry 
45*d32fb5e5SSean Perry // RUN: %clangxx -c -### -nostdinc++ %s 2>&1 \
46*d32fb5e5SSean Perry // RUN:		--target=s390x-ibm-zos \
47*d32fb5e5SSean Perry // RUN:   | FileCheck --check-prefixes=CHECK4 %s
48*d32fb5e5SSean Perry 
49*d32fb5e5SSean Perry // CHECK4: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
50*d32fb5e5SSean Perry // CHECK4-NOT: "-internal-isystem" "{{.*}}{{/|\\\\}}bin{{/|\\\\}}..{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}v1"
51*d32fb5e5SSean Perry // CHECK4-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|\\\\)}}include{{(/|\\\\)}}zos_wrappers"
52*d32fb5e5SSean Perry // CHECK4-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|\\\\)}}include"
53*d32fb5e5SSean Perry // CHECK4-SAME: "-internal-isystem" "/usr/include"
54*d32fb5e5SSean Perry // CHECK4-SAME: "-fshort-enums"
55*d32fb5e5SSean Perry // CHECK4-SAME: "-fno-signed-char"
56*d32fb5e5SSean Perry // CHECK4-SAME: "-fno-signed-wchar"
57*d32fb5e5SSean Perry 
58*d32fb5e5SSean Perry // RUN: %clangxx -c -### -nostdlibinc %s 2>&1 \
59*d32fb5e5SSean Perry // RUN:		--target=s390x-ibm-zos \
60*d32fb5e5SSean Perry // RUN:   | FileCheck --check-prefixes=CHECK5 %s
61*d32fb5e5SSean Perry 
62*d32fb5e5SSean Perry // CHECK5: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
63*d32fb5e5SSean Perry // CHECK5-NOT: "-internal-isystem" "{{.*}}{{/|\\\\}}bin{{/|\\\\}}..{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}v1"
64*d32fb5e5SSean Perry // CHECK5-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|\\\\)}}include{{(/|\\\\)}}zos_wrappers"
65*d32fb5e5SSean Perry // CHECK5-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|\\\\)}}include"
66*d32fb5e5SSean Perry // CHECK5-SAME: "-internal-isystem" "/usr/include"
67*d32fb5e5SSean Perry // CHECK5-SAME: "-fshort-enums"
68*d32fb5e5SSean Perry // CHECK5-SAME: "-fno-signed-char"
69*d32fb5e5SSean Perry // CHECK5-SAME: "-fno-signed-wchar"
70*d32fb5e5SSean Perry 
71*d32fb5e5SSean Perry // RUN: %clangxx -c -### -nobuiltininc %s 2>&1 \
72*d32fb5e5SSean Perry // RUN:		--target=s390x-ibm-zos \
73*d32fb5e5SSean Perry // RUN:   | FileCheck --check-prefixes=CHECK6 %s
74*d32fb5e5SSean Perry 
75*d32fb5e5SSean Perry // CHECK6: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
76*d32fb5e5SSean Perry // CHECK6-SAME: "-internal-isystem" "{{.*}}{{/|\\\\}}bin{{/|\\\\}}..{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}v1"
77*d32fb5e5SSean Perry // CHECK6-NOT: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|\\\\)}}include{{(/|\\\\)}}zos_wrappers"
78*d32fb5e5SSean Perry // CHECK6-NOT: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|\\\\)}}include"
79*d32fb5e5SSean Perry // CHECK6-SAME: "-internal-isystem" "/usr/include"
80*d32fb5e5SSean Perry // CHECK6-SAME: "-fshort-enums"
81*d32fb5e5SSean Perry // CHECK6-SAME: "-fno-signed-char"
82*d32fb5e5SSean Perry // CHECK6-SAME: "-fno-signed-wchar"
83*d32fb5e5SSean Perry 
84*d32fb5e5SSean Perry // RUN: %clangxx -c -### -D_XOPEN_SOURCE=700 %s 2>&1 \
85*d32fb5e5SSean Perry // RUN:		--target=s390x-ibm-zos \
86*d32fb5e5SSean Perry // RUN:   | FileCheck --check-prefixes=CHECK7 %s
87*d32fb5e5SSean Perry 
88*d32fb5e5SSean Perry // CHECK7: "-D_UNIX03_WITHDRAWN"
89*d32fb5e5SSean Perry // CHECK7-SAME: "-D_OPEN_DEFAULT"
90*d32fb5e5SSean Perry // CHECK7-NOT: "-D_XOPEN_SOURCE=600"
91*d32fb5e5SSean Perry // CHECK7-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
92*d32fb5e5SSean Perry // CHECK7-SAME: "-D" "_XOPEN_SOURCE=700"
93*d32fb5e5SSean Perry // CHECK7-SAME: "-internal-isystem" "{{.*}}{{/|\\\\}}bin{{/|\\\\}}..{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}v1"
94*d32fb5e5SSean Perry // CHECK7-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|\\\\)}}include{{(/|\\\\)}}zos_wrappers"
95*d32fb5e5SSean Perry // CHECK7-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|\\\\)}}include"
96*d32fb5e5SSean Perry // CHECK7-SAME: "-internal-isystem" "/usr/include"
97*d32fb5e5SSean Perry // CHECK7-SAME: "-fshort-enums"
98*d32fb5e5SSean Perry // CHECK7-SAME: "-fno-signed-char"
99*d32fb5e5SSean Perry // CHECK7-SAME: "-fno-signed-wchar"
100