1 /// Check the behavior of toolchain for NEC Aurora VE
2 /// REQUIRES: ve-registered-target
3 /// UNSUPPORTED: system-windows
4 
5 ///-----------------------------------------------------------------------------
6 /// Checking dwarf-version
7 
8 // RUN: %clangxx -### -g -target ve-unknown-linux-gnu \
9 // RUN:     %s 2>&1 | FileCheck -check-prefix=DWARF_VER %s
10 // DWARF_VER: "-dwarf-version=4"
11 
12 ///-----------------------------------------------------------------------------
13 /// Checking include-path
14 
15 // RUN: %clangxx -### -target ve-unknown-linux-gnu \
16 // RUN:     --sysroot %S/Inputs/basic_ve_tree %s \
17 // RUN:     -ccc-install-dir %S/Inputs/basic_ve_tree/bin \
18 // RUN:     -resource-dir=%S/Inputs/basic_ve_tree/resource_dir \
19 // RUN:     2>&1 | FileCheck -check-prefix=DEFINC %s
20 // DEFINC: clang{{.*}} "-cc1"
21 // DEFINC-SAME: "-nostdsysteminc"
22 // DEFINC-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
23 // DEFINC-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
24 // DEFINC-SAME: "-internal-isystem" "{{.*}}/bin/../include/ve-unknown-linux-gnu/c++/v1"
25 // DEFINC-SAME: "-internal-isystem" "{{.*}}/bin/../include/c++/v1"
26 // DEFINC-SAME: "-internal-isystem" "[[RESOURCE_DIR]]/include"
27 // DEFINC-SAME: "-internal-isystem" "[[SYSROOT]]/opt/nec/ve/include"
28 
29 // RUN: %clangxx -### -target ve-unknown-linux-gnu \
30 // RUN:     --sysroot %S/Inputs/basic_ve_tree %s \
31 // RUN:     -ccc-install-dir %S/Inputs/basic_ve_tree/bin \
32 // RUN:     -resource-dir=%S/Inputs/basic_ve_tree/resource_dir \
33 // RUN:     -nostdlibinc 2>&1 | FileCheck -check-prefix=NOSTDLIBINC %s
34 // NOSTDLIBINC: clang{{.*}} "-cc1"
35 // NOSTDLIBINC-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
36 // NOSTDLIBINC-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
37 // NOSTDLIBINC-NOT: "-internal-isystem" "{{.*}}/bin/../include/ve-unknown-linux-gnu/c++/v1"
38 // NOSTDLIBINC-NOT: "-internal-isystem" "{{.*}}/bin/../include/c++/v1"
39 // NOSTDLIBINC-SAME: "-internal-isystem" "[[RESOURCE_DIR]]/include"
40 // NOSTDLIBINC-NOT: "-internal-isystem" "[[SYSROOT]]/opt/nec/ve/include"
41 
42 // RUN: %clangxx -### -target ve-unknown-linux-gnu \
43 // RUN:     --sysroot %S/Inputs/basic_ve_tree %s \
44 // RUN:     -ccc-install-dir %S/Inputs/basic_ve_tree/bin \
45 // RUN:     -resource-dir=%S/Inputs/basic_ve_tree/resource_dir \
46 // RUN:     -nobuiltininc 2>&1 | FileCheck -check-prefix=NOBUILTININC %s
47 // NOBUILTININC: clang{{.*}} "-cc1"
48 // NOBUILTININC-SAME: "-nobuiltininc"
49 // NOBUILTININC-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
50 // NOBUILTININC-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
51 // NOBUILTININC-SAME: "-internal-isystem" "{{.*}}/bin/../include/ve-unknown-linux-gnu/c++/v1"
52 // NOBUILTININC-SAME: "-internal-isystem" "{{.*}}/bin/../include/c++/v1"
53 // NOBUILTININC-NOT: "-internal-isystem" "[[RESOURCE_DIR]]/include"
54 // NOBUILTININC-SAME: "-internal-isystem" "[[SYSROOT]]/opt/nec/ve/include"
55 
56 // RUN: %clangxx -### -target ve-unknown-linux-gnu \
57 // RUN:     --sysroot %S/Inputs/basic_ve_tree %s \
58 // RUN:     -ccc-install-dir %S/Inputs/basic_ve_tree/bin \
59 // RUN:     -resource-dir=%S/Inputs/basic_ve_tree/resource_dir \
60 // RUN:     -nostdinc 2>&1 | FileCheck -check-prefix=NOSTDINC %s
61 // NOSTDINC: clang{{.*}} "-cc1"
62 // NOSTDINC-SAME: "-nobuiltininc"
63 // NOSTDINC-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
64 // NOSTDINC-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
65 // NOSTDINC-NOT: "-internal-isystem" "{{.*}}/bin/../include/ve-unknown-linux-gnu/c++/v1"
66 // NOSTDINC-NOT: "-internal-isystem" "{{.*}}/bin/../include/c++/v1"
67 // NOSTDINC-NOT: "-internal-isystem" "[[RESOURCE_DIR]]/include"
68 // NOSTDINC-NOT: "-internal-isystem" "[[SYSROOT]]/opt/nec/ve/include"
69 
70 // RUN: %clangxx -### -target ve-unknown-linux-gnu \
71 // RUN:     --sysroot %S/Inputs/basic_ve_tree %s \
72 // RUN:     -ccc-install-dir %S/Inputs/basic_ve_tree/bin \
73 // RUN:     -resource-dir=%S/Inputs/basic_ve_tree/resource_dir \
74 // RUN:     -nostdinc++ 2>&1 | FileCheck -check-prefix=NOSTDINCXX %s
75 // NOSTDINCXX: clang{{.*}} "-cc1"
76 // NOSTDINCXX-SAME: "-nostdinc++"
77 // NOSTDINCXX-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
78 // NOSTDINCXX-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
79 // NOSTDINCXX-NOT: "-internal-isystem" "{{.*}}/bin/../include/ve-unknown-linux-gnu/c++/v1"
80 // NOSTDINCXX-NOT: "-internal-isystem" "{{.*}}/bin/../include/c++/v1"
81 // NOSTDINCXX-SAME: "-internal-isystem" "[[RESOURCE_DIR]]/include"
82 // NOSTDINCXX-SAME: "-internal-isystem" "[[SYSROOT]]/opt/nec/ve/include"
83 
84 ///-----------------------------------------------------------------------------
85 /// Checking environment variable NCC_CPLUS_INCLUDE_PATH
86 
87 // RUN: env NCC_CPLUS_INCLUDE_PATH=/test/test %clangxx -### \
88 // RUN:     -target ve-unknown-linux-gnu %s \
89 // RUN:     --sysroot %S/Inputs/basic_ve_tree \
90 // RUN:     -resource-dir=%S/Inputs/basic_ve_tree/resource_dir \
91 // RUN:     2>&1 | FileCheck -check-prefix=DEFINCENV %s
92 
93 // DEFINCENV: clang{{.*}} "-cc1"
94 // DEFINCENV-SAME: "-nostdsysteminc"
95 // DEFINCENV-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
96 // DEFINCENV-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
97 // DEFINCENV-SAME: "-internal-isystem" "/test/test"
98 // DEFINCENV-SAME: "-internal-isystem" "[[RESOURCE_DIR]]/include"
99 // DEFINCENV-SAME: "-internal-isystem" "[[SYSROOT]]/opt/nec/ve/include"
100 
101 ///-----------------------------------------------------------------------------
102 /// Checking -faddrsig
103 
104 // RUN: %clangxx -### -target ve-unknown-linux-gnu \
105 // RUN:     %s 2>&1 | FileCheck -check-prefix=DEFADDRSIG %s
106 // DEFADDRSIG: clang{{.*}} "-cc1"
107 // DEFADDRSIG-NOT: "-faddrsig"
108 
109 ///-----------------------------------------------------------------------------
110 /// Checking -fintegrated-as
111 
112 // RUN: %clangxx -### -target ve-unknown-linux-gnu \
113 // RUN:     -x assembler -fuse-ld=ld %s 2>&1 | \
114 // RUN:    FileCheck -check-prefix=AS %s
115 // RUN: %clangxx -### -target ve-unknown-linux-gnu \
116 // RUN:     -fno-integrated-as -x assembler -fuse-ld=ld %s 2>&1 | \
117 // RUN:    FileCheck -check-prefix=NAS %s
118 
119 // AS: clang{{.*}} "-cc1as"
120 // AS: nld{{.*}}
121 
122 // NAS: nas{{.*}}
123 // NAS: nld{{.*}}
124 
125 ///-----------------------------------------------------------------------------
126 /// Checking default behavior:
127 ///  - dynamic linker
128 ///  - library paths
129 ///  - nld VE specific options
130 ///  - sjlj exception
131 
132 // RUN: %clangxx -### -target ve-unknown-linux-gnu \
133 // RUN:     --sysroot %S/Inputs/basic_ve_tree \
134 // RUN:     -fuse-ld=ld \
135 // RUN:     -resource-dir=%S/Inputs/basic_ve_tree/resource_dir \
136 // RUN:     --stdlib=c++ %s 2>&1 | FileCheck -check-prefix=DEF %s
137 
138 // DEF:      clang{{.*}}" "-cc1"
139 // DEF-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
140 // DEF-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
141 // DEF-SAME: "-exception-model=sjlj"
142 // DEF:      nld"
143 // DEF-SAME: "--sysroot=[[SYSROOT]]"
144 // DEF-SAME: "-dynamic-linker" "/opt/nec/ve/lib/ld-linux-ve.so.1"
145 // DEF-SAME: "[[SYSROOT]]/opt/nec/ve/lib/crt1.o"
146 // DEF-SAME: "[[SYSROOT]]/opt/nec/ve/lib/crti.o"
147 // DEF-SAME: "-z" "max-page-size=0x4000000"
148 // DEF-SAME: "[[RESOURCE_DIR]]/lib/linux/clang_rt.crtbegin-ve.o"
149 // DEF-SAME: "-lc++" "-lc++abi" "-lunwind" "-lpthread" "-ldl"
150 // DEF-SAME: "[[RESOURCE_DIR]]/lib/linux/libclang_rt.builtins-ve.a" "-lc"
151 // DEF-SAME: "[[RESOURCE_DIR]]/lib/linux/libclang_rt.builtins-ve.a"
152 // DEF-SAME: "[[RESOURCE_DIR]]/lib/linux/clang_rt.crtend-ve.o"
153 // DEF-SAME: "[[SYSROOT]]/opt/nec/ve/lib/crtn.o"
154