2004-02-27 23:01:32 +01:00
|
|
|
# Handlers for additional dg-xxx keywords in tests.
|
|
|
|
|
2009-01-15 15:01:04 +01:00
|
|
|
# Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009
|
|
|
|
# Free Software Foundation, Inc.
|
2004-02-27 23:01:32 +01:00
|
|
|
#
|
|
|
|
# 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 2 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; if not, write to the Free Software
|
2007-03-16 11:35:16 +01:00
|
|
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
|
|
|
# 02110-1301, USA.
|
2004-02-27 23:01:32 +01:00
|
|
|
|
2007-03-16 11:35:16 +01:00
|
|
|
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
|
|
|
|
}
|
2004-02-27 23:01:32 +01:00
|
|
|
|
2007-03-16 11:35:16 +01:00
|
|
|
proc dg-require-debug-mode { args } {
|
|
|
|
if { ![ check_v3_target_debug_mode ] } {
|
2005-05-18 10:07:32 +02:00
|
|
|
upvar dg-do-what dg-do-what
|
|
|
|
set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
|
|
|
|
return
|
|
|
|
}
|
|
|
|
return
|
|
|
|
}
|
2005-09-01 09:06:05 +02:00
|
|
|
|
2007-09-12 00:32:51 +02:00
|
|
|
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
|
|
|
|
}
|
|
|
|
|
2007-03-14 12:37:55 +01:00
|
|
|
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
|
|
|
|
}
|
|
|
|
|
2007-03-16 11:35:16 +01:00
|
|
|
proc dg-require-namedlocale { args } {
|
|
|
|
if { ![ check_v3_target_namedlocale ] } {
|
2007-03-14 12:37:55 +01:00
|
|
|
upvar dg-do-what dg-do-what
|
|
|
|
set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
|
|
|
|
return
|
|
|
|
}
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
2005-09-12 06:49:11 +02:00
|
|
|
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
|
|
|
|
}
|
2005-09-15 20:58:02 +02:00
|
|
|
|
2007-03-16 11:35:16 +01:00
|
|
|
proc dg-require-time { args } {
|
|
|
|
if { ![ check_v3_target_time ] } {
|
2005-09-15 20:58:02 +02:00
|
|
|
upvar dg-do-what dg-do-what
|
|
|
|
set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
|
|
|
|
return
|
|
|
|
}
|
|
|
|
return
|
|
|
|
}
|
2007-10-03 19:27:18 +02:00
|
|
|
|
|
|
|
proc dg-require-rvalref { args } {
|
|
|
|
if { ![ check_v3_target_rvalref ] } {
|
|
|
|
upvar dg-do-what dg-do-what
|
|
|
|
set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
|
|
|
|
return
|
|
|
|
}
|
|
|
|
return
|
|
|
|
}
|
2008-07-08 03:11:18 +02:00
|
|
|
|
|
|
|
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
|
|
|
|
}
|
[multiple changes]
2008-08-23 Paolo Carlini <paolo.carlini@oracle.com>
* testsuite/lib/libstdc++.exp (check_v3_target_atomic_builtins): Add.
* testsuite/lib/dg-options.exp (dg-require-atomic-builtins): Likewise.
* testsuite/18_support/exception_ptr/current_exception.cc: Use it.
* testsuite/18_support/exception_ptr/rethrow_exception.cc: Likewise.
* testsuite/18_support/exception_ptr/lifespan.cc: Likewise.
2008-08-23 Sebastian Redl <sebastian.redl@getdesigned.at>
Add (again) exception propagation support as per N2179. Feature is
available only when _GLIBCXX_ATOMIC_BUILTINS_4 is defined.
* libsupc++/exception_ptr.h (exception_ptr, current_exception,
copy_exception, rethrow_exception): New file, implement exception
propagation.
* libsupc++/eh_ptr.cc (exception_ptr, current_exception,
rethrow_exception, __gxx_dependent_exception_cleanup): Likewise.
* libsupc++/unwind-cxx.h (__cxa_exception): Add reference count.
(__cxa_dependent_exception, __cxa_allocate_dependent_exception,
__cxa_free_dependent_exception, __get_dependent_exception_from_ue,
__GXX_INIT_DEPENDENT_EXCEPTION_CLASS, __is_dependent_exception,
__gxx_dependent_exception_class, __get_object_from_ue,
__get_object_from_ambiguous_exception): Add.
(__GXX_INIT_EXCEPTION_CLASS, __gxx_exception_class): Rename.
(__is_gxx_exception_class): Handle dependent exceptions.
* libsupc++/eh_arm.cc (__cxa_type_match): Likewise.
* libsupc++/eh_call.cc (__cxa_call_unexpected): Likewise.
* libsupc++/eh_personality.cc (__gxx_personality_*): Likewise.
* libsupc++/eh_type.cc (__cxa_current_exception_type): Likewise.
* libsupc++/eh_alloc.cc (__cxa_allocate_dependent_exception,
__cxa_free_dependent_exception): Add.
* libsupc++/eh_throw.cc (__gxx_exception_cleanup): Handle reference
counting.
* libsupc++/exception: Conditionally include exception_ptr.h.
* libsupc++/Makefile.am: Register new files.
* libsupc++/Makefile.in: Regenerate.
* config/abi/pre/gnu.ver: Add new symbols.
* testsuite/18_support/exception_ptr/current_exception.cc: Test the
core functionality of current_exception().
* testsuite/18_support/exception_ptr/rethrow_exception.cc: Test the
core functionality of rethrow_exception().
* testsuite/18_support/exception_ptr/lifespan.cc: Test the life span of
exception objects during exception propagation.
From-SVN: r139509
2008-08-23 13:28:30 +02:00
|
|
|
|
|
|
|
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
|
|
|
|
}
|
2008-09-03 19:46:09 +02:00
|
|
|
|
|
|
|
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
|
|
|
|
}
|
2008-09-13 02:32:37 +02:00
|
|
|
|
|
|
|
proc dg-require-nanosleep { args } {
|
|
|
|
if { ![ check_v3_target_nanosleep ] } {
|
|
|
|
upvar dg-do-what dg-do-what
|
|
|
|
set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
|
|
|
|
return
|
|
|
|
}
|
|
|
|
return
|
|
|
|
}
|
2008-10-27 16:01:28 +01:00
|
|
|
|
2009-01-15 15:01:04 +01:00
|
|
|
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
|
|
|
|
}
|
|
|
|
|
2008-10-27 16:01:28 +01:00
|
|
|
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
|
|
|
|
}
|