# Handlers for additional dg-xxx keywords in tests. # Copyright (C) 2004-2017 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING3. If not see # . proc dg-require-c-std { args } { if { ![ check_v3_target_c_std ] } { upvar dg-do-what dg-do-what set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] return } return } proc dg-require-debug-mode { args } { if { ![ check_v3_target_debug_mode ] } { upvar dg-do-what dg-do-what set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] return } return } proc dg-require-profile-mode { args } { if { ![ check_v3_target_profile_mode ] } { upvar dg-do-what dg-do-what set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] return } return } proc dg-require-normal-mode { args } { if { ![ check_v3_target_normal_mode ] } { upvar dg-do-what dg-do-what set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] return } return } proc dg-require-parallel-mode { args } { if { ![ check_v3_target_parallel_mode ] } { upvar dg-do-what dg-do-what set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] return } return } proc dg-require-fileio { args } { if { ![ check_v3_target_fileio ] } { upvar dg-do-what dg-do-what set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] return } return } proc dg-require-namedlocale { args } { if { ![ check_v3_target_namedlocale [lindex $args 1] ] } { upvar dg-do-what dg-do-what set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] return } return } proc dg-require-sharedlib { args } { if { ![ check_v3_target_sharedlib ] } { upvar dg-do-what dg-do-what set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] return } return } proc dg-require-time { args } { if { ![ check_v3_target_time ] } { upvar dg-do-what dg-do-what set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] return } return } proc dg-require-cstdint { args } { if { ![ check_v3_target_cstdint ] } { upvar dg-do-what dg-do-what set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] return } return } proc dg-require-cmath { args } { if { ![ check_v3_target_cmath ] } { upvar dg-do-what dg-do-what set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] return } return } proc dg-require-thread-fence { args } { if { ![ check_v3_target_thread_fence ] } { upvar dg-do-what dg-do-what set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] return } return } proc dg-require-atomic-builtins { args } { if { ![ check_v3_target_atomic_builtins ] } { upvar dg-do-what dg-do-what set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] return } return } proc dg-require-gthreads { args } { if { ![ check_v3_target_gthreads ] } { upvar dg-do-what dg-do-what set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] return } return } proc dg-require-gthreads-timed { args } { if { ![ check_v3_target_gthreads_timed ] } { upvar dg-do-what dg-do-what set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] return } return } proc dg-require-sleep { args } { if { ![ check_v3_target_sleep ] } { upvar dg-do-what dg-do-what set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] return } return } proc dg-require-sched-yield { args } { if { ![ check_v3_target_sched_yield ] } { upvar dg-do-what dg-do-what set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] return } return } proc dg-require-string-conversions { args } { if { ![ check_v3_target_string_conversions ] } { upvar dg-do-what dg-do-what set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] return } return } proc dg-require-swprintf { args } { if { ![ check_v3_target_swprintf ] } { upvar dg-do-what dg-do-what set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] return } return } proc dg-require-binary-io { args } { if { ![ check_v3_target_binary_io ] } { upvar dg-do-what dg-do-what set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] return } return } proc dg-require-nprocs { args } { if { ![ check_v3_target_nprocs ] } { upvar dg-do-what dg-do-what set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] return } return } proc dg-require-static-libstdcxx { args } { if { ![ check_v3_target_static_libstdcxx ] } { upvar dg-do-what dg-do-what set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] return } return } proc dg-require-little-endian { args } { if { ![ check_v3_target_little_endian ] } { upvar dg-do-what dg-do-what set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] return } return } proc dg-require-filesystem-ts { args } { if { ![ check_v3_target_filesystem_ts ] } { upvar dg-do-what dg-do-what set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] return } return } proc add_options_for_no_pch { flags } { # This forces any generated and possibly included PCH to be invalid. return "-D__GLIBCXX__=99999999" } # Like dg-options, but adds to the default options rather than replacing them. proc dg-additional-options { args } { upvar dg-extra-tool-flags extra-tool-flags if { [llength $args] > 3 } { error "[lindex $args 0]: too many arguments" return } if { [llength $args] >= 3 } { switch [dg-process-target [lindex $args 2]] { "S" { eval lappend extra-tool-flags [lindex $args 1] } "N" { } "F" { error "[lindex $args 0]: `xfail' not allowed here" } "P" { error "[lindex $args 0]: `xfail' not allowed here" } } } else { eval lappend extra-tool-flags [lindex $args 1] } }