[testsuite] Fix retrieval of testname
[official-gcc.git] / libstdc++-v3 / testsuite / lib / dg-options.exp
blob57eff708ecafb203624efac5a8f21e071f533c2b
1 # Handlers for additional dg-xxx keywords in tests.
3 # Copyright (C) 2004-2017 Free Software Foundation, Inc.
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 3 of the License, or
8 # (at your option) any later version.
9 #
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
15 # You should have received a copy of the GNU General Public License
16 # along with this program; see the file COPYING3. If not see
17 # <http://www.gnu.org/licenses/>.
19 proc dg-require-c-std { args } {
20 if { ![ check_v3_target_c_std ] } {
21 upvar dg-do-what dg-do-what
22 set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
23 return
25 return
28 proc dg-require-debug-mode { args } {
29 if { ![ check_v3_target_debug_mode ] } {
30 upvar dg-do-what dg-do-what
31 set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
32 return
34 return
37 proc dg-require-profile-mode { args } {
38 if { ![ check_v3_target_profile_mode ] } {
39 upvar dg-do-what dg-do-what
40 set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
41 return
43 return
46 proc dg-require-normal-mode { args } {
47 if { ![ check_v3_target_normal_mode ] } {
48 upvar dg-do-what dg-do-what
49 set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
50 return
52 return
55 proc dg-require-normal-namespace { args } {
56 if { ![ check_v3_target_normal_namespace ] } {
57 upvar dg-do-what dg-do-what
58 set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
59 return
61 return
64 proc dg-require-parallel-mode { args } {
65 if { ![ check_v3_target_parallel_mode ] } {
66 upvar dg-do-what dg-do-what
67 set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
68 return
70 return
73 proc dg-require-fileio { args } {
74 if { ![ check_v3_target_fileio ] } {
75 upvar dg-do-what dg-do-what
76 set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
77 return
79 return
82 proc dg-require-namedlocale { args } {
83 if { ![ check_v3_target_namedlocale [lindex $args 1] ] } {
84 upvar dg-do-what dg-do-what
85 set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
86 return
88 return
91 proc dg-require-sharedlib { args } {
92 if { ![ check_v3_target_sharedlib ] } {
93 upvar dg-do-what dg-do-what
94 set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
95 return
97 return
100 proc dg-require-time { args } {
101 if { ![ check_v3_target_time ] } {
102 upvar dg-do-what dg-do-what
103 set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
104 return
106 return
109 proc dg-require-cstdint { args } {
110 if { ![ check_v3_target_cstdint ] } {
111 upvar dg-do-what dg-do-what
112 set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
113 return
115 return
118 proc dg-require-cmath { args } {
119 if { ![ check_v3_target_cmath ] } {
120 upvar dg-do-what dg-do-what
121 set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
122 return
124 return
127 proc dg-require-thread-fence { args } {
128 if { ![ check_v3_target_thread_fence ] } {
129 upvar dg-do-what dg-do-what
130 set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
131 return
133 return
136 proc dg-require-atomic-builtins { args } {
137 if { ![ check_v3_target_atomic_builtins ] } {
138 upvar dg-do-what dg-do-what
139 set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
140 return
142 return
145 proc dg-require-gthreads { args } {
146 if { ![ check_v3_target_gthreads ] } {
147 upvar dg-do-what dg-do-what
148 set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
149 return
151 return
154 proc dg-require-gthreads-timed { args } {
155 if { ![ check_v3_target_gthreads_timed ] } {
156 upvar dg-do-what dg-do-what
157 set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
158 return
160 return
163 proc dg-require-sleep { args } {
164 if { ![ check_v3_target_sleep ] } {
165 upvar dg-do-what dg-do-what
166 set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
167 return
169 return
172 proc dg-require-sched-yield { args } {
173 if { ![ check_v3_target_sched_yield ] } {
174 upvar dg-do-what dg-do-what
175 set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
176 return
178 return
181 proc dg-require-string-conversions { args } {
182 if { ![ check_v3_target_string_conversions ] } {
183 upvar dg-do-what dg-do-what
184 set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
185 return
187 return
190 proc dg-require-swprintf { args } {
191 if { ![ check_v3_target_swprintf ] } {
192 upvar dg-do-what dg-do-what
193 set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
194 return
196 return
199 proc dg-require-binary-io { args } {
200 if { ![ check_v3_target_binary_io ] } {
201 upvar dg-do-what dg-do-what
202 set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
203 return
205 return
208 proc dg-require-nprocs { args } {
209 if { ![ check_v3_target_nprocs ] } {
210 upvar dg-do-what dg-do-what
211 set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
212 return
214 return
217 proc dg-require-static-libstdcxx { args } {
218 if { ![ check_v3_target_static_libstdcxx ] } {
219 upvar dg-do-what dg-do-what
220 set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
221 return
223 return
226 proc dg-require-little-endian { args } {
227 if { ![ check_v3_target_little_endian ] } {
228 upvar dg-do-what dg-do-what
229 set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
230 return
232 return
235 proc dg-require-filesystem-ts { args } {
236 if { ![ check_v3_target_filesystem_ts ] } {
237 upvar dg-do-what dg-do-what
238 set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
239 return
241 return
244 proc add_options_for_no_pch { flags } {
245 # This forces any generated and possibly included PCH to be invalid.
246 return "-D__GLIBCXX__=99999999"
249 # Like dg-options, but adds to the default options rather than replacing them.
251 proc dg-additional-options { args } {
252 upvar dg-extra-tool-flags extra-tool-flags
254 if { [llength $args] > 3 } {
255 error "[lindex $args 0]: too many arguments"
256 return
259 if { [llength $args] >= 3 } {
260 switch [dg-process-target [lindex $args 2]] {
261 "S" { eval lappend extra-tool-flags [lindex $args 1] }
262 "N" { }
263 "F" { error "[lindex $args 0]: `xfail' not allowed here" }
264 "P" { error "[lindex $args 0]: `xfail' not allowed here" }
266 } else {
267 eval lappend extra-tool-flags [lindex $args 1]