[multiple changes]
authorBenjamin Kosnik <bkoz@redhat.com>
Tue, 20 Feb 2007 18:15:01 +0000 (18:15 +0000)
committerBenjamin Kosnik <bkoz@gcc.gnu.org>
Tue, 20 Feb 2007 18:15:01 +0000 (18:15 +0000)
 2007-02-20  Benjamin Kosnik  <bkoz@redhat.com>

Revamp library API testing.
Added:
* 17_intro/headers
* 17_intro/headers/all_assert_neg.cc
* 17_intro/headers/all_c++200x_compatibility.cc
* 17_intro/headers/all.cc
* 17_intro/headers/c++1998
* 17_intro/headers/c++1998/all.cc
* 17_intro/headers/c++1998/all_multiple_inclusion.cc
* 17_intro/headers/c++1998/c++_for_c.tar
* 17_intro/headers/c++1998/c++.tar
* 17_intro/using_namespace_std.cc
* 18_support/headers
* 18_support/headers/cfloat
* 18_support/headers/cfloat/values.cc
* 18_support/headers/climits
* 18_support/headers/climits/values.cc
* 18_support/headers/csetjmp
* 18_support/headers/csetjmp/functions_std.cc
* 18_support/headers/csetjmp/macros.cc
* 18_support/headers/csetjmp/types_std.cc
* 18_support/headers/csignal
* 18_support/headers/csignal/functions_std.cc
* 18_support/headers/csignal/macros.cc
* 18_support/headers/csignal/types_std.cc
* 18_support/headers/cstdarg
* 18_support/headers/cstdarg/macros.cc
* 18_support/headers/cstdarg/types_std.cc
* 18_support/headers/cstddef
* 18_support/headers/cstddef/macros.cc
* 18_support/headers/cstddef/types_std.cc
* 18_support/headers/cstdlib
* 18_support/headers/cstdlib/functions_std.cc
* 18_support/headers/cstdlib/macros.cc
* 18_support/headers/ctime
* 18_support/headers/ctime/functions_std.cc
* 18_support/headers/ctime/macros.cc
* 18_support/headers/ctime/types_std.cc
* 18_support/headers/exception
* 18_support/headers/exception/synopsis.cc
* 18_support/headers/exception/types_std.cc
* 18_support/headers/limits
* 18_support/headers/limits/synopsis.cc
* 18_support/headers/new
* 18_support/headers/new/synopsis.cc
* 18_support/headers/new/types_std.cc
* 18_support/headers/typeinfo
* 18_support/headers/typeinfo/synopsis.cc
* 18_support/headers/typeinfo/types_std.cc
* 18_support/numeric_limits/is_signed.cc
* 18_support/numeric_limits/requirements
* 18_support/numeric_limits/requirements/explicit_instantiation
* 18_support/numeric_limits/requirements/explicit_instantiation/1.cc
* 18_support/numeric_limits/specialization_default_values.cc
* 19_diagnostics/headers
* 19_diagnostics/headers/cassert
* 19_diagnostics/headers/cassert/macros.cc
* 19_diagnostics/headers/cerrno
* 19_diagnostics/headers/cerrno/macros.cc
* 19_diagnostics/headers/stdexcept
* 19_diagnostics/headers/stdexcept/synopsis.cc
* 19_diagnostics/headers/stdexcept/types_std.cc
* 20_util/headers
* 20_util/headers/cstdlib
* 20_util/headers/cstdlib/functions_std.cc
* 20_util/headers/cstring
* 20_util/headers/cstring/functions_std.cc
* 20_util/headers/cstring/macros.cc
* 20_util/headers/cstring/types_std.cc
* 20_util/headers/ctime
* 20_util/headers/ctime/functions_std.cc
* 20_util/headers/ctime/macros.cc
* 20_util/headers/ctime/types_std.cc
* 20_util/headers/functional
* 20_util/headers/functional/synopsis.cc
* 20_util/headers/memory
* 20_util/headers/memory/synopsis.cc
* 20_util/headers/utility
* 20_util/headers/utility/synopsis.cc
* 20_util/headers/utility/using_namespace_std_rel_ops.cc
* 20_util/memory/allocator/requirements
* 20_util/memory/allocator/requirements/explicit_instantiation
* 20_util/memory/allocator/requirements/explicit_instantiation/1.cc
* 20_util/memory/auto_ptr/requirements
* 20_util/memory/auto_ptr/requirements/explicit_instantiation
* 20_util/memory/auto_ptr/requirements/explicit_instantiation/1.cc
* 20_util/memory/raw_storage_iterator
* 20_util/memory/raw_storage_iterator/requirements
* 20_util/memory/raw_storage_iterator/requirements/base_classes.cc
* 20_util/memory/raw_storage_iterator/requirements/
explicit_instantiation
* 20_util/memory/raw_storage_iterator/requirements/
explicit_instantiation/1.cc
* 20_util/memory/raw_storage_iterator/requirements/typedefs.cc
* 20_util/utility/pair/requirements
* 20_util/utility/pair/requirements/explicit_instantiation
* 20_util/utility/pair/requirements/explicit_instantiation/1.cc
* 21_strings/basic_string/requirements
* 21_strings/basic_string/requirements/explicit_instantiation
* 21_strings/basic_string/requirements/explicit_instantiation/1.cc
* 21_strings/basic_string/requirements/explicit_instantiation/debug.cc
* 21_strings/headers
* 21_strings/headers/cctype
* 21_strings/headers/cctype/functions_std.cc
* 21_strings/headers/cstdlib
* 21_strings/headers/cstdlib/functions_std.cc
* 21_strings/headers/cstdlib/macros.cc
* 21_strings/headers/cstring
* 21_strings/headers/cstring/functions_std.cc
* 21_strings/headers/cstring/macros.cc
* 21_strings/headers/cstring/types_std.cc
* 21_strings/headers/cwchar
* 21_strings/headers/cwchar/functions_std.cc
* 21_strings/headers/cwchar/macros.cc
* 21_strings/headers/cwchar/types_std.cc
* 21_strings/headers/cwctype
* 21_strings/headers/cwctype/functions_std.cc
* 21_strings/headers/cwctype/macros.cc
* 21_strings/headers/cwctype/types_std.cc
* 21_strings/headers/string
* 21_strings/headers/string/synopsis.cc
* 21_strings/headers/string/types_std.cc
* 22_locale/codecvt_byname/requirements
* 22_locale/codecvt_byname/requirements/base_classes.cc
* 22_locale/codecvt_byname/requirements/explicit_instantiation.cc
* 22_locale/codecvt_byname/requirements/typedefs.cc
* 22_locale/codecvt/requirements
* 22_locale/codecvt/requirements/base_classes.cc
* 22_locale/codecvt/requirements/explicit_instantiation.cc
* 22_locale/codecvt/requirements/typedefs.cc
* 22_locale/collate_byname/requirements
* 22_locale/collate_byname/requirements/base_classes.cc
* 22_locale/collate_byname/requirements/explicit_instantiation.cc
* 22_locale/collate_byname/requirements/typedefs.cc
* 22_locale/collate/requirements
* 22_locale/collate/requirements/base_classes.cc
* 22_locale/collate/requirements/explicit_instantiation.cc
* 22_locale/collate/requirements/typedefs.cc
* 22_locale/ctype_base/mask.cc
* 22_locale/ctype/requirements
* 22_locale/ctype/requirements/base_classes.cc
* 22_locale/ctype/requirements/explicit_instantiation.cc
* 22_locale/ctype/requirements/typedefs.cc
* 22_locale/headers
* 22_locale/headers/clocale
* 22_locale/headers/clocale/functions_std.cc
* 22_locale/headers/clocale/macros.cc
* 22_locale/headers/clocale/types_std.cc
* 22_locale/headers/locale
* 22_locale/headers/locale/synopsis.cc
* 22_locale/headers/locale/types_std.cc
* 22_locale/messages_byname/requirements
* 22_locale/messages_byname/requirements/base_classes.cc
* 22_locale/messages_byname/requirements/explicit_instantiation.cc
* 22_locale/messages_byname/requirements/typedefs.cc
* 22_locale/messages/requirements
* 22_locale/messages/requirements/base_classes.cc
* 22_locale/messages/requirements/explicit_instantiation.cc
* 22_locale/messages/requirements/typedefs.cc
* 22_locale/money_get/cons
* 22_locale/money_get/cons/3.cc
* 22_locale/money_get/requirements
* 22_locale/money_get/requirements/base_classes.cc
* 22_locale/money_get/requirements/explicit_instantiations.cc
* 22_locale/money_get/requirements/typedefs.cc
* 22_locale/moneypunct_byname/requirements
* 22_locale/moneypunct_byname/requirements/base_classes.cc
* 22_locale/moneypunct_byname/requirements/explicit_instantiation.cc
* 22_locale/moneypunct_byname/requirements/typedefs.cc
* 22_locale/moneypunct/requirements
* 22_locale/moneypunct/requirements/false
* 22_locale/moneypunct/requirements/false/base_classes.cc
* 22_locale/moneypunct/requirements/false/explicit_instantiation.cc
* 22_locale/moneypunct/requirements/false/intl.cc
* 22_locale/moneypunct/requirements/false/typedefs.cc
* 22_locale/moneypunct/requirements/true
* 22_locale/moneypunct/requirements/true/base_classes.cc
* 22_locale/moneypunct/requirements/true/explicit_instantiation.cc
* 22_locale/moneypunct/requirements/true/intl.cc
* 22_locale/moneypunct/requirements/true/typedefs.cc
* 22_locale/money_put/cons
* 22_locale/money_put/cons/3.cc
* 22_locale/money_put/requirements
* 22_locale/money_put/requirements/base_classes.cc
* 22_locale/money_put/requirements/explicit_instantiation.cc
* 22_locale/money_put/requirements/typedefs.cc
* 22_locale/num_get/cons
* 22_locale/num_get/cons/3.cc
* 22_locale/num_get/requirements
* 22_locale/num_get/requirements/base_classes.cc
* 22_locale/num_get/requirements/explicit_instantiation.cc
* 22_locale/num_get/requirements/typedefs.cc
* 22_locale/numpunct_byname/requirements
* 22_locale/numpunct_byname/requirements/base_classes.cc
* 22_locale/numpunct_byname/requirements/explicit_instantiations.cc
* 22_locale/numpunct_byname/requirements/typedefs.cc
* 22_locale/numpunct/requirements
* 22_locale/numpunct/requirements/base_classes.cc
* 22_locale/numpunct/requirements/explicit_instantiations.cc
* 22_locale/numpunct/requirements/typedefs.cc
* 22_locale/num_put/cons
* 22_locale/num_put/cons/3.cc
* 22_locale/num_put/requirements
* 22_locale/num_put/requirements/base_classes.cc
* 22_locale/num_put/requirements/explicit_instantiations.cc
* 22_locale/num_put/requirements/typedefs.cc
* 22_locale/time_get/requirements
* 22_locale/time_get/requirements/base_classes.cc
* 22_locale/time_get/requirements/explicit_instantiations.cc
* 22_locale/time_get/requirements/typedefs.cc
* 22_locale/time_put/requirements
* 22_locale/time_put/requirements/base_classes.cc
* 22_locale/time_put/requirements/explicit_instantiations.cc
* 22_locale/time_put/requirements/typedefs.cc
* 23_containers/bitset/requirements
* 23_containers/bitset/requirements/explicit_instantiation
* 23_containers/bitset/requirements/explicit_instantiation/1.cc
* 23_containers/deque/requirements
* 23_containers/deque/requirements/explicit_instantiation
* 23_containers/deque/requirements/partial_specialization
* 23_containers/deque/requirements/partial_specialization/1.cc
* 23_containers/headers
* 23_containers/headers/bitset
* 23_containers/headers/bitset/synopsis.cc
* 23_containers/headers/deque
* 23_containers/headers/deque/synopsis.cc
* 23_containers/headers/list
* 23_containers/headers/list/synopsis.cc
* 23_containers/headers/map
* 23_containers/headers/map/synopsis.cc
* 23_containers/headers/queue
* 23_containers/headers/queue/synopsis.cc
* 23_containers/headers/set
* 23_containers/headers/set/synopsis.cc
* 23_containers/headers/stack
* 23_containers/headers/stack/synopsis.cc
* 23_containers/headers/vector
* 23_containers/headers/vector/synopsis.cc
* 23_containers/list/requirements
* 23_containers/list/requirements/explicit_instantiation
* 23_containers/list/requirements/partial_specialization
* 23_containers/list/requirements/partial_specialization/1.cc
* 23_containers/map/requirements
* 23_containers/map/requirements/explicit_instantiation
* 23_containers/map/requirements/partial_specialization
* 23_containers/map/requirements/partial_specialization/1.cc
* 23_containers/multimap/requirements
* 23_containers/multimap/requirements/explicit_instantiation
* 23_containers/multimap/requirements/partial_specialization
* 23_containers/multimap/requirements/partial_specialization/1.cc
* 23_containers/multiset/requirements
* 23_containers/multiset/requirements/explicit_instantiation
* 23_containers/multiset/requirements/partial_specialization
* 23_containers/multiset/requirements/partial_specialization/1.cc
* 23_containers/priority_queue/requirements
* 23_containers/priority_queue/requirements/explicit_instantiation
* 23_containers/priority_queue/requirements/explicit_instantiation/1.cc
* 23_containers/queue/requirements
* 23_containers/queue/requirements/explicit_instantiation
* 23_containers/queue/requirements/explicit_instantiation/1.cc
* 23_containers/set/requirements
* 23_containers/set/requirements/explicit_instantiation
* 23_containers/set/requirements/partial_specialization
* 23_containers/set/requirements/partial_specialization/1.cc
* 23_containers/stack/requirements
* 23_containers/stack/requirements/explicit_instantiation
* 23_containers/stack/requirements/explicit_instantiation/1.cc
* 23_containers/vector/requirements
* 23_containers/vector/requirements/explicit_instantiation
* 23_containers/vector/requirements/partial_specialization
* 23_containers/vector/requirements/partial_specialization/1.cc
* 24_iterators/back_insert_iterator
* 24_iterators/back_insert_iterator/2.cc
* 24_iterators/back_insert_iterator/requirements
* 24_iterators/back_insert_iterator/requirements/base_classes.cc
* 24_iterators/back_insert_iterator/requirements/container.cc
* 24_iterators/back_insert_iterator/requirements/
explicit_instantiation.cc
* 24_iterators/back_insert_iterator/requirements/typedefs.cc
* 24_iterators/front_insert_iterator
* 24_iterators/front_insert_iterator/2.cc
* 24_iterators/front_insert_iterator/requirements
* 24_iterators/front_insert_iterator/requirements/base_classes.cc
* 24_iterators/front_insert_iterator/requirements/container.cc
* 24_iterators/front_insert_iterator/requirements/
explicit_instantiation.cc
* 24_iterators/front_insert_iterator/requirements/typedefs.cc
* 24_iterators/headers
* 24_iterators/headers/iterator
* 24_iterators/headers/iterator/synopsis.cc
* 24_iterators/headers/iterator/types_std.cc
* 24_iterators/insert_iterator
* 24_iterators/insert_iterator/2.cc
* 24_iterators/insert_iterator/requirements
* 24_iterators/insert_iterator/requirements/base_classes.cc
* 24_iterators/insert_iterator/requirements/container.cc
* 24_iterators/insert_iterator/requirements/explicit_instantiation.cc
* 24_iterators/insert_iterator/requirements/typedefs.cc
* 24_iterators/istreambuf_iterator/requirements
* 24_iterators/istreambuf_iterator/requirements/base_classes.cc
* 24_iterators/istreambuf_iterator/requirements/
explicit_instantiation.cc
* 24_iterators/istreambuf_iterator/requirements/typedefs.cc
* 24_iterators/istream_iterator
* 24_iterators/istream_iterator/2.cc
* 24_iterators/istream_iterator/requirements
* 24_iterators/istream_iterator/requirements/base_classes.cc
* 24_iterators/istream_iterator/requirements/explicit_instantiation.cc
* 24_iterators/istream_iterator/requirements/typedefs.cc
* 24_iterators/ostreambuf_iterator/requirements
* 24_iterators/ostreambuf_iterator/requirements/base_classes.cc
* 24_iterators/ostreambuf_iterator/requirements/
explicit_instantiation.cc
* 24_iterators/ostreambuf_iterator/requirements/typedefs.cc
* 24_iterators/ostream_iterator
* 24_iterators/ostream_iterator/requirements
* 24_iterators/ostream_iterator/requirements/base_classes.cc
* 24_iterators/ostream_iterator/requirements/explicit_instantiation.cc
* 24_iterators/ostream_iterator/requirements/typedefs.cc
* 24_iterators/random_access_iterator
* 24_iterators/random_access_iterator/26020.cc
* 24_iterators/random_access_iterator/string_vector_iterators.cc
* 24_iterators/reverse_iterator/requirements
* 24_iterators/reverse_iterator/requirements/base_classes.cc
* 24_iterators/reverse_iterator/requirements/current.cc
* 24_iterators/reverse_iterator/requirements/explicit_instantiation.cc
* 24_iterators/reverse_iterator/requirements/typedefs.cc
* 25_algorithms/headers
* 25_algorithms/headers/algorithm
* 25_algorithms/headers/algorithm/synopsis.cc
* 25_algorithms/headers/cstdlib
* 25_algorithms/headers/cstdlib/functions_std.cc
* 26_numerics/headers
* 26_numerics/headers/cmath
* 26_numerics/headers/cmath/19322.cc
* 26_numerics/headers/cmath/c99_classification_macros_c.cc
* 26_numerics/headers/cmath/c99_classification_macros_c++.cc
* 26_numerics/headers/cmath/c_math.cc
* 26_numerics/headers/cmath/c_math_dynamic.cc
* 26_numerics/headers/cmath/fabs_inline.cc
* 26_numerics/headers/cmath/functions_std.cc
* 26_numerics/headers/cmath/macros.cc
* 26_numerics/headers/cmath/overloads.cc
* 26_numerics/headers/cmath/powi.cc
* 26_numerics/headers/complex
* 26_numerics/headers/complex/synopsis.cc
* 26_numerics/headers/cstdlib
* 26_numerics/headers/cstdlib/13943.cc
* 26_numerics/headers/cstdlib/2190.cc
* 26_numerics/headers/cstdlib/functions_std.cc
* 26_numerics/headers/cstdlib/macros.cc
* 26_numerics/headers/cstdlib/types_std.cc
* 26_numerics/headers/numeric
* 26_numerics/headers/numeric/synopsis.cc
* 26_numerics/headers/valarray
* 26_numerics/headers/valarray/synopsis.cc
* 26_numerics/headers/valarray/types_std.cc
* 26_numerics/numeric_arrays
* 26_numerics/numeric_operations
* 27_io/basic_filebuf/cons/2020.cc
* 27_io/basic_filebuf/requirements
* 27_io/basic_filebuf/requirements/base_classes.cc
* 27_io/basic_filebuf/requirements/explicit_instantiation.cc
* 27_io/basic_filebuf/requirements/typedefs.cc
* 27_io/basic_fstream/cons
* 27_io/basic_fstream/cons/3.cc
* 27_io/basic_fstream/requirements
* 27_io/basic_fstream/requirements/base_classes.cc
* 27_io/basic_fstream/requirements/explicit_instantiation.cc
* 27_io/basic_fstream/requirements/typedefs.cc
* 27_io/basic_ifstream/cons/2020.cc
* 27_io/basic_ifstream/requirements
* 27_io/basic_ifstream/requirements/base_classes.cc
* 27_io/basic_ifstream/requirements/explicit_instantiation.cc
* 27_io/basic_ifstream/requirements/typedefs.cc
* 27_io/basic_ios/cons/2020.cc
* 27_io/basic_ios/requirements
* 27_io/basic_ios/requirements/base_classes.cc
* 27_io/basic_ios/requirements/explicit_instantiation.cc
* 27_io/basic_ios/requirements/typedefs.cc
* 27_io/basic_iostream/cons
* 27_io/basic_iostream/cons/2020.cc
* 27_io/basic_iostream/requirements
* 27_io/basic_iostream/requirements/base_classes.cc
* 27_io/basic_iostream/requirements/explicit_instantiation.cc
* 27_io/basic_iostream/requirements/typedefs.cc
* 27_io/basic_istream/cons
* 27_io/basic_istream/cons/3.cc
* 27_io/basic_istream/requirements
* 27_io/basic_istream/requirements/base_classes.cc
* 27_io/basic_istream/requirements/explicit_instantiation.cc
* 27_io/basic_istream/requirements/typedefs.cc
* 27_io/basic_istringstream/cons
* 27_io/basic_istringstream/cons/2020.cc
* 27_io/basic_istringstream/requirements
* 27_io/basic_istringstream/requirements/base_classes.cc
* 27_io/basic_istringstream/requirements/explicit_instantiation.cc
* 27_io/basic_istringstream/requirements/typedefs.cc
* 27_io/basic_ofstream/cons/2020.cc
* 27_io/basic_ofstream/requirements
* 27_io/basic_ofstream/requirements/base_classes.cc
* 27_io/basic_ofstream/requirements/explicit_instantiations.cc
* 27_io/basic_ofstream/requirements/typedefs.cc
* 27_io/basic_ostream/cons/2020.cc
* 27_io/basic_ostream/requirements
* 27_io/basic_ostream/requirements/base_classes.cc
* 27_io/basic_ostream/requirements/explicit_instantiation.cc
* 27_io/basic_ostream/requirements/typedefs.cc
* 27_io/basic_ostringstream/cons/2020.cc
* 27_io/basic_ostringstream/requirements
* 27_io/basic_ostringstream/requirements/base_classes.cc
* 27_io/basic_ostringstream/requirements/explicit_instantiation.cc
* 27_io/basic_ostringstream/requirements/typedefs.cc
* 27_io/basic_streambuf/cons/2020.cc
* 27_io/basic_streambuf/requirements
* 27_io/basic_streambuf/requirements/base_classes.cc
* 27_io/basic_streambuf/requirements/typedefs.cc
* 27_io/basic_stringbuf/cons/2020.cc
* 27_io/basic_stringbuf/requirements
* 27_io/basic_stringbuf/requirements/base_classes.cc
* 27_io/basic_stringbuf/requirements/explicit_instantiation
* 27_io/basic_stringbuf/requirements/explicit_instantiation/2.cc
* 27_io/basic_stringbuf/requirements/explicit_instantiation/4.cc
* 27_io/basic_stringbuf/requirements/typedefs.cc
* 27_io/basic_stringstream/cons
* 27_io/basic_stringstream/cons/2020.cc
* 27_io/basic_stringstream/requirements
* 27_io/basic_stringstream/requirements/base_classes.cc
* 27_io/basic_stringstream/requirements/explicit_instantiation.cc
* 27_io/basic_stringstream/requirements/typedefs.cc
* 27_io/fpos/requirements
* 27_io/fpos/requirements/explicit_instantiation.cc
* 27_io/headers
* 27_io/headers/cstdio
* 27_io/headers/cstdio/functions_std.cc
* 27_io/headers/cstdio/macros.cc
* 27_io/headers/cstdio/types_std.cc
* 27_io/headers/cstdlib
* 27_io/headers/fstream
* 27_io/headers/fstream/synopsis.cc
* 27_io/headers/fstream/types_std.cc
* 27_io/headers/iomanip
* 27_io/headers/iomanip/synopsis.cc
* 27_io/headers/ios
* 27_io/headers/ios/synopsis.cc
* 27_io/headers/iostream
* 27_io/headers/iostream/synopsis.cc
* 27_io/headers/iostream/types_std.cc
* 27_io/headers/ios/types_std.cc
* 27_io/headers/istream
* 27_io/headers/istream/synopsis.cc
* 27_io/headers/istream/types_std.cc
* 27_io/headers/ostream
* 27_io/headers/ostream/synopsis.cc
* 27_io/headers/ostream/types_std.cc
* 27_io/headers/sstream
* 27_io/headers/sstream/synopsis.cc
* 27_io/headers/sstream/types_std.cc
* 27_io/headers/streambuf
* 27_io/headers/streambuf/synopsis.cc
* 27_io/headers/streambuf/types_std.cc
* ext/debug_allocator/explicit_instantiation.cc
* ext/hash_map/requirements
* ext/hash_map/requirements/explicit_instantiation.cc
* ext/hash_set/requirements
* ext/hash_set/requirements/explicit_instantiation.cc
* ext/malloc_allocator/explicit_instantiation.cc
* ext/mt_allocator/explicit_instantiation.cc
* ext/pool_allocator/explicit_instantiation.cc
* ext/slist/requirements
* ext/slist/requirements/explicit_instantiation.cc
* ext/stdio_filebuf/requirements
* ext/stdio_filebuf/requirements/explicit_instantiation.cc
* ext/vstring/requirements
* ext/vstring/requirements/explicit_instantiation
* tr1/2_general_utilities/headers
* tr1/2_general_utilities/headers/functional
* tr1/2_general_utilities/headers/functional/synopsis.cc
* tr1/2_general_utilities/headers/memory
* tr1/2_general_utilities/headers/memory/synopsis.cc
* tr1/2_general_utilities/headers/memory/types_std_tr1.cc
* tr1/2_general_utilities/memory/enable_shared_from_this/requirements
* tr1/2_general_utilities/memory/enable_shared_from_this/
requirements/explicit_instantiation
* tr1/2_general_utilities/memory/shared_ptr/requirements
* tr1/2_general_utilities/memory/shared_ptr/requirements/
explicit_instantiation
* tr1/2_general_utilities/memory/weak_ptr/requirements
* tr1/2_general_utilities/memory/weak_ptr/requirements/
explicit_instantiation
* tr1/3_function_objects/headers
* tr1/3_function_objects/headers/functional
* tr1/3_function_objects/headers/functional/synopsis.cc
* tr1/3_function_objects/headers/functional/types_std_tr1.cc
* tr1/3_function_objects/headers/functional/
using_namespace_std_tr1_placeholders.cc
* tr1/4_metaprogramming/headers
* tr1/4_metaprogramming/headers/type_traits
* tr1/4_metaprogramming/headers/type_traits/synopsis.cc
* tr1/4_metaprogramming/headers/type_traits/types_std_tr1.cc
* tr1/5_numerical_facilities/headers
* tr1/5_numerical_facilities/headers/random
* tr1/5_numerical_facilities/headers/random/synopsis.cc
* tr1/5_numerical_facilities/headers/random/types_std_tr1.cc
* tr1/5_numerical_facilities/random/discard_block/
requirements/typedefs.cc
* tr1/6_containers/array/requirements/explicit_instantiation.cc
* tr1/6_containers/hash
* tr1/6_containers/hash/requirements
* tr1/6_containers/hash/requirements/base_classes.cc
* tr1/6_containers/hash/requirements/explicit_instantiation.cc
* tr1/6_containers/headers
* tr1/6_containers/headers/array
* tr1/6_containers/headers/array/synopsis.cc
* tr1/6_containers/headers/functional
* tr1/6_containers/headers/functional/synopsis.cc
* tr1/6_containers/headers/tuple
* tr1/6_containers/headers/tuple/synopsis.cc
* tr1/6_containers/headers/tuple/types_std_tr1.cc
* tr1/6_containers/headers/unordered_map
* tr1/6_containers/headers/unordered_map/synopsis.cc
* tr1/6_containers/headers/unordered_set
* tr1/6_containers/headers/unordered_set/synopsis.cc
* tr1/6_containers/tuple/requirements
* tr1/6_containers/tuple/requirements/explicit_instantiation.cc
* tr1/6_containers/unordered_map
* tr1/6_containers/unordered_map/24064.cc
* tr1/6_containers/unordered_map/capacity
* tr1/6_containers/unordered_map/capacity/29134-map.cc
* tr1/6_containers/unordered_map/erase
* tr1/6_containers/unordered_map/erase/24061-map.cc
* tr1/6_containers/unordered_map/find
* tr1/6_containers/unordered_map/find/map1.cc
* tr1/6_containers/unordered_map/insert
* tr1/6_containers/unordered_map/insert/24061-map.cc
* tr1/6_containers/unordered_map/insert/array_syntax.cc
* tr1/6_containers/unordered_map/insert/map_range.cc
* tr1/6_containers/unordered_map/insert/map_single.cc
* tr1/6_containers/unordered_map/requirements
* tr1/6_containers/unordered_map/requirements/explicit_instantiation.cc
* tr1/6_containers/unordered_map/requirements/iterator_neg.cc
* tr1/6_containers/unordered_map/requirements/iterator_null_neg.cc
* tr1/6_containers/unordered_map/swap
* tr1/6_containers/unordered_map/swap/1.cc
* tr1/6_containers/unordered_map/swap/2.cc
* tr1/6_containers/unordered_multimap
* tr1/6_containers/unordered_multimap/capacity
* tr1/6_containers/unordered_multimap/capacity/29134-multimap.cc
* tr1/6_containers/unordered_multimap/erase
* tr1/6_containers/unordered_multimap/erase/24061-multimap.cc
* tr1/6_containers/unordered_multimap/find
* tr1/6_containers/unordered_multimap/find/multimap1.cc
* tr1/6_containers/unordered_multimap/insert
* tr1/6_containers/unordered_multimap/insert/24061-multimap.cc
* tr1/6_containers/unordered_multimap/insert/multimap_range.cc
* tr1/6_containers/unordered_multimap/insert/multimap_single.cc
* tr1/6_containers/unordered_multimap/requirements
* tr1/6_containers/unordered_multimap/requirements/
explicit_instantiation.cc
* tr1/6_containers/unordered_multimap/requirements/iterator_neg.cc
* tr1/6_containers/unordered_multimap/requirements/iterator_null_neg.cc
* tr1/6_containers/unordered_multimap/swap
* tr1/6_containers/unordered_multimap/swap/1.cc
* tr1/6_containers/unordered_multimap/swap/2.cc
* tr1/6_containers/unordered_multiset
* tr1/6_containers/unordered_multiset/24054.cc
* tr1/6_containers/unordered_multiset/capacity
* tr1/6_containers/unordered_multiset/capacity/29134-multiset.cc
* tr1/6_containers/unordered_multiset/erase
* tr1/6_containers/unordered_multiset/erase/24061-multiset.cc
* tr1/6_containers/unordered_multiset/find
* tr1/6_containers/unordered_multiset/find/multiset1.cc
* tr1/6_containers/unordered_multiset/insert
* tr1/6_containers/unordered_multiset/insert/24061-multiset.cc
* tr1/6_containers/unordered_multiset/insert/multiset_range.cc
* tr1/6_containers/unordered_multiset/insert/multiset_single.cc
* tr1/6_containers/unordered_multiset/requirements
* tr1/6_containers/unordered_multiset/requirements/
explicit_instantiation.cc
* tr1/6_containers/unordered_multiset/requirements/iterator_neg.cc
* tr1/6_containers/unordered_multiset/requirements/iterator_null_neg.cc
* tr1/6_containers/unordered_multiset/swap
* tr1/6_containers/unordered_multiset/swap/1.cc
* tr1/6_containers/unordered_multiset/swap/2.cc
* tr1/6_containers/unordered_set
* tr1/6_containers/unordered_set/23053.cc
* tr1/6_containers/unordered_set/23465.cc
* tr1/6_containers/unordered_set/26127.cc
* tr1/6_containers/unordered_set/26132.cc
* tr1/6_containers/unordered_set/capacity
* tr1/6_containers/unordered_set/capacity/29134-set.cc
* tr1/6_containers/unordered_set/erase
* tr1/6_containers/unordered_set/erase/24061-set.cc
* tr1/6_containers/unordered_set/find
* tr1/6_containers/unordered_set/find/set1.cc
* tr1/6_containers/unordered_set/insert
* tr1/6_containers/unordered_set/insert/24061-set.cc
* tr1/6_containers/unordered_set/insert/set_range.cc
* tr1/6_containers/unordered_set/insert/set_single.cc
* tr1/6_containers/unordered_set/requirements
* tr1/6_containers/unordered_set/requirements/explicit_instantiation.cc
* tr1/6_containers/unordered_set/requirements/iterator_neg.cc
* tr1/6_containers/unordered_set/requirements/iterator_null_neg.cc
* tr1/6_containers/unordered_set/requirements/
iterators_default_constructor.cc
* tr1/6_containers/unordered_set/swap
* tr1/6_containers/unordered_set/swap/1.cc
* tr1/6_containers/unordered_set/swap/2.cc
* tr1/using_namespace_std_tr1.cc

Deleted:
* 17_intro/header_cassert.cc
* 17_intro/header_cerrno.cc
* 17_intro/header_csetjmp.cc
* 17_intro/header_cstdarg.cc
* 17_intro/header_cstddef.cc
* 17_intro/header_cstdio.cc
* 17_intro/header_cstdlib.cc
* 17_intro/header_cstring.cc
* 17_intro/header_ctime.cc
* 17_intro/header_cwchar.cc
* 17_intro/header_cwctype.cc
* 17_intro/header_fstream.cc
* 17_intro/header_iomanip.cc
* 17_intro/header_ios.cc
* 17_intro/header_iosfwd.cc
* 17_intro/header_iostream.cc
* 17_intro/header_istream.cc
* 17_intro/header_ostream.cc
* 17_intro/headers.cc
* 17_intro/headers_c++_c++0x_compat.cc
* 17_intro/headers_c.cc
* 17_intro/headers_c++.cc
* 17_intro/header_sstream.cc
* 17_intro/header_streambuf.cc
* 17_intro/no_assert_neg.cc
* 18_support/numeric_limits/sign.cc
* 18_support/numeric_limits/specialization.cc
* 20_util/memory/raw_storage_iterator.cc
* 21_strings/basic_string/1.cc
* 21_strings/basic_string/2.cc
* 22_locale/codecvt/1.cc
* 22_locale/codecvt/2.cc
* 22_locale/codecvt_byname/1.cc
* 22_locale/collate/1.cc
* 22_locale/collate/2.cc
* 22_locale/collate_byname/1.cc
* 22_locale/ctype/1.cc
* 22_locale/ctype_base/1.cc
* 22_locale/messages/1.cc
* 22_locale/messages/2.cc
* 22_locale/messages_byname/1.cc
* 22_locale/money_get/1.cc
* 22_locale/money_get/2.cc
* 22_locale/money_get/3.cc
* 22_locale/moneypunct/1.cc
* 22_locale/moneypunct/2.cc
* 22_locale/moneypunct/3.cc
* 22_locale/moneypunct_byname/1.cc
* 22_locale/money_put/1.cc
* 22_locale/money_put/2.cc
* 22_locale/money_put/3.cc
* 22_locale/num_get/1.cc
* 22_locale/num_get/2.cc
* 22_locale/num_get/3.cc
* 22_locale/numpunct/1.cc
* 22_locale/numpunct/2.cc
* 22_locale/numpunct_byname/1.cc
* 22_locale/num_put/1.cc
* 22_locale/num_put/2.cc
* 22_locale/num_put/3.cc
* 22_locale/time_get/1.cc
* 22_locale/time_get/2.cc
* 22_locale/time_put/1.cc
* 22_locale/time_put/2.cc
* 23_containers/deque/1.cc
* 23_containers/deque/explicit_instantiation
* 23_containers/deque/explicit_instantiation/1.cc
* 23_containers/deque/explicit_instantiation/2.cc
* 23_containers/deque/explicit_instantiation/3.cc
* 23_containers/list/1.cc
* 23_containers/list/explicit_instantiation
* 23_containers/list/explicit_instantiation/1.cc
* 23_containers/list/explicit_instantiation/2.cc
* 23_containers/list/explicit_instantiation/3.cc
* 23_containers/map/1.cc
* 23_containers/map/explicit_instantiation
* 23_containers/map/explicit_instantiation/1.cc
* 23_containers/map/explicit_instantiation/2.cc
* 23_containers/map/explicit_instantiation/3.cc
* 23_containers/multimap/1.cc
* 23_containers/multimap/explicit_instantiation
* 23_containers/multimap/explicit_instantiation/1.cc
* 23_containers/multimap/explicit_instantiation/2.cc
* 23_containers/multimap/explicit_instantiation/3.cc
* 23_containers/multiset/1.cc
* 23_containers/multiset/explicit_instantiation
* 23_containers/multiset/explicit_instantiation/1.cc
* 23_containers/multiset/explicit_instantiation/2.cc
* 23_containers/multiset/explicit_instantiation/3.cc
* 23_containers/set/1.cc
* 23_containers/set/explicit_instantiation
* 23_containers/set/explicit_instantiation/1.cc
* 23_containers/set/explicit_instantiation/2.cc
* 23_containers/set/explicit_instantiation/3.cc
* 23_containers/vector/1.cc
* 23_containers/vector/explicit_instantiation
* 23_containers/vector/explicit_instantiation/1.cc
* 23_containers/vector/explicit_instantiation/2.cc
* 23_containers/vector/explicit_instantiation/3.cc
* 24_iterators/26020.cc
* 24_iterators/back_insert_iterator.cc
* 24_iterators/front_insert_iterator.cc
* 24_iterators/insert_iterator.cc
* 24_iterators/istreambuf_iterator/1.cc
* 24_iterators/istream_iterator.cc
* 24_iterators/iterator.cc
* 24_iterators/ostreambuf_iterator/1.cc
* 24_iterators/ostream_iterator.cc
* 24_iterators/reverse_iterator/1.cc
* 26_numerics/cmath
* 26_numerics/cmath/19322.cc
* 26_numerics/cmath/c99_classification_macros_c.cc
* 26_numerics/cmath/c99_classification_macros_c++.cc
* 26_numerics/cmath/c_math.cc
* 26_numerics/cmath/c_math_dynamic.cc
* 26_numerics/cmath/fabs_inline.cc
* 26_numerics/cmath/overloads.cc
* 26_numerics/cmath/powi.cc
* 26_numerics/cstdlib
* 26_numerics/cstdlib/13943.cc
* 26_numerics/numeric
* 26_numerics/numeric/sum_diff.cc
* 26_numerics/valarray
* 26_numerics/valarray/27867.cc
* 26_numerics/valarray/28277.cc
* 26_numerics/valarray/30416.cc
* 26_numerics/valarray/binary_closure.cc
* 26_numerics/valarray/dr543.cc
* 26_numerics/valarray/slice_array_assignment.cc
* 26_numerics/valarray/slice.cc
* 26_numerics/valarray/valarray.cc
* 26_numerics/valarray/valarray_const_bracket.cc
* 26_numerics/valarray/valarray_name_lookup.cc
* 26_numerics/valarray/valarray_operators.cc
* 26_numerics/valarray/valarray_subset_assignment.cc
* 27_io/basic_filebuf/1.cc
* 27_io/basic_filebuf/2.cc
* 27_io/basic_filebuf/3.cc
* 27_io/basic_filebuf/4.cc
* 27_io/basic_fstream/1.cc
* 27_io/basic_fstream/2.cc
* 27_io/basic_fstream/3.cc
* 27_io/basic_fstream/4.cc
* 27_io/basic_ifstream/1.cc
* 27_io/basic_ifstream/2.cc
* 27_io/basic_ifstream/3.cc
* 27_io/basic_ifstream/4.cc
* 27_io/basic_ios/1.cc
* 27_io/basic_ios/2.cc
* 27_io/basic_ios/3.cc
* 27_io/basic_ios/4.cc
* 27_io/basic_iostream/1.cc
* 27_io/basic_iostream/2.cc
* 27_io/basic_iostream/3.cc
* 27_io/basic_iostream/4.cc
* 27_io/basic_istream/1.cc
* 27_io/basic_istream/2.cc
* 27_io/basic_istream/3.cc
* 27_io/basic_istream/4.cc
* 27_io/basic_istringstream/1.cc
* 27_io/basic_istringstream/2.cc
* 27_io/basic_istringstream/3.cc
* 27_io/basic_istringstream/4.cc
* 27_io/basic_ofstream/1.cc
* 27_io/basic_ofstream/2.cc
* 27_io/basic_ofstream/3.cc
* 27_io/basic_ofstream/4.cc
* 27_io/basic_ostream/1.cc
* 27_io/basic_ostream/2.cc
* 27_io/basic_ostream/3.cc
* 27_io/basic_ostream/4.cc
* 27_io/basic_ostringstream/1.cc
* 27_io/basic_ostringstream/2.cc
* 27_io/basic_ostringstream/3.cc
* 27_io/basic_ostringstream/4.cc
* 27_io/basic_streambuf/1.cc
* 27_io/basic_streambuf/2.cc
* 27_io/basic_streambuf/3.cc
* 27_io/basic_stringbuf/1.cc
* 27_io/basic_stringbuf/2.cc
* 27_io/basic_stringbuf/3.cc
* 27_io/basic_stringbuf/4.cc
* 27_io/basic_stringbuf/5.cc
* 27_io/basic_stringstream/1.cc
* 27_io/basic_stringstream/2.cc
* 27_io/basic_stringstream/3.cc
* 27_io/basic_stringstream/4.cc
* 27_io/fpos/1.cc
* ext/debug_allocator/instantiate.cc
* ext/hash_map/instantiate.cc
* ext/hash_set/instantiate.cc
* ext/malloc_allocator/instantiate.cc
* ext/mt_allocator/instantiate.cc
* ext/pool_allocator/instantiate.cc
* ext/slist/instantiate.cc
* ext/stdio_filebuf/char/1.cc
* ext/vstring/explicit_instantiation
* ext/vstring/explicit_instantiation/1.cc
* ext/vstring/explicit_instantiation/2.cc
* ext/vstring/explicit_instantiation/char
* ext/vstring/explicit_instantiation/char/1.cc
* ext/vstring/explicit_instantiation/wchar_t
* ext/vstring/explicit_instantiation/wchar_t/1.cc
* tr1/2_general_utilities/memory/enable_shared_from_this/
explicit_instantiation
* tr1/2_general_utilities/memory/enable_shared_from_this/
explicit_instantiation/1.cc
* tr1/2_general_utilities/memory/shared_ptr/explicit_instantiation
* tr1/2_general_utilities/memory/shared_ptr/explicit_instantiation/1.cc
* tr1/2_general_utilities/memory/weak_ptr/explicit_instantiation
* tr1/2_general_utilities/memory/weak_ptr/explicit_instantiation/1.cc
* tr1/5_numerical_facilities/random/discard_block/requirements/
requirements.cc
* tr1/6_containers/array/requirements/instantiate.cc
* tr1/6_containers/unordered
* tr1/6_containers/unordered/23781.cc
* tr1/6_containers/unordered/capacity
* tr1/6_containers/unordered/capacity/29134-map.cc
* tr1/6_containers/unordered/capacity/29134-multimap.cc
* tr1/6_containers/unordered/capacity/29134-multiset.cc
* tr1/6_containers/unordered/capacity/29134-set.cc
* tr1/6_containers/unordered/erase
* tr1/6_containers/unordered/erase/24061-map.cc
* tr1/6_containers/unordered/erase/24061-multimap.cc
* tr1/6_containers/unordered/erase/24061-multiset.cc
* tr1/6_containers/unordered/erase/24061-set.cc
* tr1/6_containers/unordered/find
* tr1/6_containers/unordered/find/map1.cc
* tr1/6_containers/unordered/find/multimap1.cc
* tr1/6_containers/unordered/find/multiset1.cc
* tr1/6_containers/unordered/find/set1.cc
* tr1/6_containers/unordered/hash
* tr1/6_containers/unordered/hash/24799.cc
* tr1/6_containers/unordered/hashtable
* tr1/6_containers/unordered/hashtable/23053.cc
* tr1/6_containers/unordered/hashtable/23465.cc
* tr1/6_containers/unordered/hashtable/24054.cc
* tr1/6_containers/unordered/hashtable/24064.cc
* tr1/6_containers/unordered/hashtable/26127.cc
* tr1/6_containers/unordered/hashtable/26132.cc
* tr1/6_containers/unordered/hashtable/iterators_default_constructor.cc
* tr1/6_containers/unordered/insert
* tr1/6_containers/unordered/insert/24061-map.cc
* tr1/6_containers/unordered/insert/24061-multimap.cc
* tr1/6_containers/unordered/insert/24061-multiset.cc
* tr1/6_containers/unordered/insert/24061-set.cc
* tr1/6_containers/unordered/insert/array_syntax.cc
* tr1/6_containers/unordered/insert/map_range.cc
* tr1/6_containers/unordered/insert/map_single.cc
* tr1/6_containers/unordered/insert/multimap_range.cc
* tr1/6_containers/unordered/insert/multimap_single.cc
* tr1/6_containers/unordered/insert/multiset_range.cc
* tr1/6_containers/unordered/insert/multiset_single.cc
* tr1/6_containers/unordered/insert/set_range.cc
* tr1/6_containers/unordered/insert/set_single.cc
* tr1/6_containers/unordered/instantiate
* tr1/6_containers/unordered/instantiate/hash.cc
* tr1/6_containers/unordered/instantiate/map.cc
* tr1/6_containers/unordered/instantiate/multimap.cc
* tr1/6_containers/unordered/instantiate/multiset.cc
* tr1/6_containers/unordered/instantiate/set.cc
* tr1/6_containers/unordered/swap
* tr1/6_containers/unordered/swap/unordered_map
* tr1/6_containers/unordered/swap/unordered_map/1.cc
* tr1/6_containers/unordered/swap/unordered_map/2.cc
* tr1/6_containers/unordered/swap/unordered_multimap
* tr1/6_containers/unordered/swap/unordered_multimap/1.cc
* tr1/6_containers/unordered/swap/unordered_multimap/2.cc
* tr1/6_containers/unordered/swap/unordered_multiset
* tr1/6_containers/unordered/swap/unordered_multiset/1.cc
* tr1/6_containers/unordered/swap/unordered_multiset/2.cc
* tr1/6_containers/unordered/swap/unordered_set
* tr1/6_containers/unordered/swap/unordered_set/1.cc
* tr1/6_containers/unordered/swap/unordered_set/2.cc
* tr1/6_containers/unordered/types
* tr1/6_containers/unordered/types/map_iterator.cc
* tr1/6_containers/unordered/types/multimap_iterator.cc
* tr1/6_containers/unordered/types/multiset_iterator.cc
* tr1/6_containers/unordered/types/set_iterator.cc

* 24_iterators/reverse_iterator/2.cc: To just one
non-requirements test.
* ext/headers.cc: Add new includes.

2007-02-18  Paolo Carlini  <pcarlini@suse.de>

PR libstdc++/28080 (partial)
* include/bits/stl_algobase.h: Do not include <climits>, use
std::numeric_limits.
* include/bits/stl_bvector.h: Use __CHAR_BIT__.
* config/locale/gnu/codecvt_members.cc: Include <climits>.
* config/locale/generic/codecvt_members.cc: Likewise.
* include/std/string: Do not include <algorithm>; do not include
<memory>, include <bits/allocator.h> instead.
* include/ext/vstring_fwd.h: Likewise.
* include/ext/vstring_util.h: Do not include <algorithm>.
* include/tr1/hashtable_policy.h: Include <algorithm>.
* testsuite/21_strings/basic_string/replace/char/1.cc: Likewise.
* testsuite/21_strings/basic_string/replace/wchar_t/1.cc: Likewise.
* testsuite/23_containers/bitset/cons/1.cc: Likewise.
* testsuite/util/testsuite_character.h: Likewise.

* config/locale/gnu/codecvt_members.cc: Also include <cstdlib>,
for MB_CUR_MAX.
* config/locale/generic/codecvt_members.cc: Likewise.

From-SVN: r122168

657 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/testsuite/17_intro/header_cassert.cc [deleted file]
libstdc++-v3/testsuite/17_intro/header_cerrno.cc [deleted file]
libstdc++-v3/testsuite/17_intro/header_csetjmp.cc [deleted file]
libstdc++-v3/testsuite/17_intro/header_cstdarg.cc [deleted file]
libstdc++-v3/testsuite/17_intro/header_cstddef.cc [deleted file]
libstdc++-v3/testsuite/17_intro/header_cstdio.cc [deleted file]
libstdc++-v3/testsuite/17_intro/header_cstdlib.cc [deleted file]
libstdc++-v3/testsuite/17_intro/header_cstring.cc [deleted file]
libstdc++-v3/testsuite/17_intro/header_ctime.cc [deleted file]
libstdc++-v3/testsuite/17_intro/header_cwchar.cc [deleted file]
libstdc++-v3/testsuite/17_intro/header_cwctype.cc [deleted file]
libstdc++-v3/testsuite/17_intro/header_fstream.cc [deleted file]
libstdc++-v3/testsuite/17_intro/header_iomanip.cc [deleted file]
libstdc++-v3/testsuite/17_intro/header_ios.cc [deleted file]
libstdc++-v3/testsuite/17_intro/header_iosfwd.cc [deleted file]
libstdc++-v3/testsuite/17_intro/header_iostream.cc [deleted file]
libstdc++-v3/testsuite/17_intro/header_istream.cc [deleted file]
libstdc++-v3/testsuite/17_intro/header_ostream.cc [deleted file]
libstdc++-v3/testsuite/17_intro/header_sstream.cc [deleted file]
libstdc++-v3/testsuite/17_intro/header_streambuf.cc [deleted file]
libstdc++-v3/testsuite/17_intro/headers.cc [deleted file]
libstdc++-v3/testsuite/17_intro/headers/all.cc [new file with mode: 0644]
libstdc++-v3/testsuite/17_intro/headers/all_assert_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/17_intro/headers/all_c++200x_compatibility.cc [new file with mode: 0644]
libstdc++-v3/testsuite/17_intro/headers/c++1998/all.cc [new file with mode: 0644]
libstdc++-v3/testsuite/17_intro/headers/c++1998/all_multiple_inclusion.cc [new file with mode: 0644]
libstdc++-v3/testsuite/17_intro/headers/c++1998/c++.tar [new file with mode: 0644]
libstdc++-v3/testsuite/17_intro/headers/c++1998/c++_for_c.tar [new file with mode: 0644]
libstdc++-v3/testsuite/17_intro/headers_c++.cc [deleted file]
libstdc++-v3/testsuite/17_intro/headers_c++_c++0x_compat.cc [deleted file]
libstdc++-v3/testsuite/17_intro/headers_c.cc [deleted file]
libstdc++-v3/testsuite/17_intro/no_assert_neg.cc [deleted file]
libstdc++-v3/testsuite/17_intro/using_namespace_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/18_support/headers/cfloat/values.cc [new file with mode: 0644]
libstdc++-v3/testsuite/18_support/headers/climits/values.cc [new file with mode: 0644]
libstdc++-v3/testsuite/18_support/headers/csetjmp/functions_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/18_support/headers/csetjmp/macros.cc [new file with mode: 0644]
libstdc++-v3/testsuite/18_support/headers/csetjmp/types_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/18_support/headers/csignal/functions_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/18_support/headers/csignal/macros.cc [new file with mode: 0644]
libstdc++-v3/testsuite/18_support/headers/csignal/types_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/18_support/headers/cstdarg/macros.cc [new file with mode: 0644]
libstdc++-v3/testsuite/18_support/headers/cstdarg/types_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/18_support/headers/cstddef/macros.cc [new file with mode: 0644]
libstdc++-v3/testsuite/18_support/headers/cstddef/types_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/18_support/headers/cstdlib/functions_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/18_support/headers/cstdlib/macros.cc [new file with mode: 0644]
libstdc++-v3/testsuite/18_support/headers/ctime/functions_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/18_support/headers/ctime/macros.cc [new file with mode: 0644]
libstdc++-v3/testsuite/18_support/headers/ctime/types_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/18_support/headers/exception/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/18_support/headers/exception/types_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/18_support/headers/limits/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/18_support/headers/new/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/18_support/headers/new/types_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/18_support/headers/typeinfo/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/18_support/headers/typeinfo/types_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/18_support/numeric_limits/is_signed.cc [new file with mode: 0644]
libstdc++-v3/testsuite/18_support/numeric_limits/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/18_support/numeric_limits/sign.cc [deleted file]
libstdc++-v3/testsuite/18_support/numeric_limits/specialization.cc [deleted file]
libstdc++-v3/testsuite/18_support/numeric_limits/specialization_default_values.cc [new file with mode: 0644]
libstdc++-v3/testsuite/19_diagnostics/headers/cassert/macros.cc [new file with mode: 0644]
libstdc++-v3/testsuite/19_diagnostics/headers/cerrno/macros.cc [new file with mode: 0644]
libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/types_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/headers/cstdlib/functions_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/headers/cstring/functions_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/headers/cstring/macros.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/headers/cstring/types_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/headers/ctime/functions_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/headers/ctime/macros.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/headers/ctime/types_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/headers/functional/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/headers/memory/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/headers/utility/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/headers/utility/using_namespace_std_rel_ops.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/memory/allocator/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/memory/auto_ptr/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator.cc [deleted file]
libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/utility/pair/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/21_strings/basic_string/1.cc [deleted file]
libstdc++-v3/testsuite/21_strings/basic_string/2.cc [deleted file]
libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/debug.cc [new file with mode: 0644]
libstdc++-v3/testsuite/21_strings/headers/cctype/functions_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/21_strings/headers/cstdlib/functions_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/21_strings/headers/cstdlib/macros.cc [new file with mode: 0644]
libstdc++-v3/testsuite/21_strings/headers/cstring/functions_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/21_strings/headers/cstring/macros.cc [new file with mode: 0644]
libstdc++-v3/testsuite/21_strings/headers/cstring/types_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/21_strings/headers/cwchar/functions_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/21_strings/headers/cwchar/macros.cc [new file with mode: 0644]
libstdc++-v3/testsuite/21_strings/headers/cwchar/types_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/21_strings/headers/cwctype/functions_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/21_strings/headers/cwctype/macros.cc [new file with mode: 0644]
libstdc++-v3/testsuite/21_strings/headers/cwctype/types_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/21_strings/headers/string/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/21_strings/headers/string/types_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/codecvt/1.cc [deleted file]
libstdc++-v3/testsuite/22_locale/codecvt/2.cc [deleted file]
libstdc++-v3/testsuite/22_locale/codecvt/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/codecvt/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/codecvt/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/codecvt_byname/1.cc [deleted file]
libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/collate/1.cc [deleted file]
libstdc++-v3/testsuite/22_locale/collate/2.cc [deleted file]
libstdc++-v3/testsuite/22_locale/collate/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/collate/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/collate/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/collate_byname/1.cc [deleted file]
libstdc++-v3/testsuite/22_locale/collate_byname/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/collate_byname/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/collate_byname/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/ctype/1.cc [deleted file]
libstdc++-v3/testsuite/22_locale/ctype/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/ctype/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/ctype/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/ctype_base/1.cc [deleted file]
libstdc++-v3/testsuite/22_locale/ctype_base/mask.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/headers/clocale/functions_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/headers/clocale/macros.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/headers/clocale/types_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/headers/locale/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/headers/locale/types_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/messages/1.cc [deleted file]
libstdc++-v3/testsuite/22_locale/messages/2.cc [deleted file]
libstdc++-v3/testsuite/22_locale/messages/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/messages/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/messages/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/messages_byname/1.cc [deleted file]
libstdc++-v3/testsuite/22_locale/messages_byname/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/messages_byname/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/messages_byname/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/money_get/1.cc [deleted file]
libstdc++-v3/testsuite/22_locale/money_get/2.cc [deleted file]
libstdc++-v3/testsuite/22_locale/money_get/3.cc [deleted file]
libstdc++-v3/testsuite/22_locale/money_get/cons/3.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/money_get/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/money_get/requirements/explicit_instantiations.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/money_get/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/money_put/1.cc [deleted file]
libstdc++-v3/testsuite/22_locale/money_put/2.cc [deleted file]
libstdc++-v3/testsuite/22_locale/money_put/3.cc [deleted file]
libstdc++-v3/testsuite/22_locale/money_put/cons/3.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/money_put/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/money_put/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/money_put/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/moneypunct/1.cc [deleted file]
libstdc++-v3/testsuite/22_locale/moneypunct/2.cc [deleted file]
libstdc++-v3/testsuite/22_locale/moneypunct/3.cc [deleted file]
libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/intl.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/intl.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/moneypunct_byname/1.cc [deleted file]
libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/num_get/1.cc [deleted file]
libstdc++-v3/testsuite/22_locale/num_get/2.cc [deleted file]
libstdc++-v3/testsuite/22_locale/num_get/3.cc [deleted file]
libstdc++-v3/testsuite/22_locale/num_get/cons/3.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/num_get/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/num_get/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/num_get/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/num_put/1.cc [deleted file]
libstdc++-v3/testsuite/22_locale/num_put/2.cc [deleted file]
libstdc++-v3/testsuite/22_locale/num_put/3.cc [deleted file]
libstdc++-v3/testsuite/22_locale/num_put/cons/3.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/num_put/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/num_put/requirements/explicit_instantiations.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/num_put/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/numpunct/1.cc [deleted file]
libstdc++-v3/testsuite/22_locale/numpunct/2.cc [deleted file]
libstdc++-v3/testsuite/22_locale/numpunct/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/numpunct/requirements/explicit_instantiations.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/numpunct/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/numpunct_byname/1.cc [deleted file]
libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/explicit_instantiations.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/time_get/1.cc [deleted file]
libstdc++-v3/testsuite/22_locale/time_get/2.cc [deleted file]
libstdc++-v3/testsuite/22_locale/time_get/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/time_get/requirements/explicit_instantiations.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/time_get/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/time_put/1.cc [deleted file]
libstdc++-v3/testsuite/22_locale/time_put/2.cc [deleted file]
libstdc++-v3/testsuite/22_locale/time_put/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/time_put/requirements/explicit_instantiations.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/time_put/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/bitset/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/deque/1.cc [deleted file]
libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/1.cc [deleted file]
libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/2.cc [deleted file]
libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/3.cc [deleted file]
libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/2.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/deque/requirements/partial_specialization/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/headers/bitset/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/headers/deque/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/headers/list/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/headers/map/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/headers/queue/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/headers/set/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/headers/stack/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/headers/vector/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/list/1.cc [deleted file]
libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/1.cc [deleted file]
libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/2.cc [deleted file]
libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/3.cc [deleted file]
libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/2.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/3.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/list/requirements/partial_specialization/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/map/1.cc [deleted file]
libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/1.cc [deleted file]
libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/2.cc [deleted file]
libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/3.cc [deleted file]
libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/2.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/3.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/map/requirements/partial_specialization/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/multimap/1.cc [deleted file]
libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/1.cc [deleted file]
libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/2.cc [deleted file]
libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/3.cc [deleted file]
libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/2.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/multimap/requirements/partial_specialization/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/multiset/1.cc [deleted file]
libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/1.cc [deleted file]
libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/2.cc [deleted file]
libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/3.cc [deleted file]
libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/2.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/multiset/requirements/partial_specialization/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/set/1.cc [deleted file]
libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/1.cc [deleted file]
libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/2.cc [deleted file]
libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/3.cc [deleted file]
libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/2.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/3.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/set/requirements/partial_specialization/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/vector/1.cc [deleted file]
libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/1.cc [deleted file]
libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/2.cc [deleted file]
libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/3.cc [deleted file]
libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/2.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/vector/requirements/partial_specialization/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/26020.cc [deleted file]
libstdc++-v3/testsuite/24_iterators/back_insert_iterator.cc [deleted file]
libstdc++-v3/testsuite/24_iterators/back_insert_iterator/2.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/container.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/front_insert_iterator.cc [deleted file]
libstdc++-v3/testsuite/24_iterators/front_insert_iterator/2.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/container.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/headers/iterator/types_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/insert_iterator.cc [deleted file]
libstdc++-v3/testsuite/24_iterators/insert_iterator/2.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/container.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/istream_iterator.cc [deleted file]
libstdc++-v3/testsuite/24_iterators/istream_iterator/2.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/1.cc [deleted file]
libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/iterator.cc [deleted file]
libstdc++-v3/testsuite/24_iterators/ostream_iterator.cc [deleted file]
libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/1.cc [deleted file]
libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/random_access_iterator/26020.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/random_access_iterator/string_vector_iterators.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/reverse_iterator/1.cc [deleted file]
libstdc++-v3/testsuite/24_iterators/reverse_iterator/2.cc
libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/current.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/25_algorithms/headers/algorithm/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/25_algorithms/headers/cstdlib/functions_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/cmath/19322.cc [deleted file]
libstdc++-v3/testsuite/26_numerics/cmath/c99_classification_macros_c++.cc [deleted file]
libstdc++-v3/testsuite/26_numerics/cmath/c99_classification_macros_c.cc [deleted file]
libstdc++-v3/testsuite/26_numerics/cmath/c_math.cc [deleted file]
libstdc++-v3/testsuite/26_numerics/cmath/c_math_dynamic.cc [deleted file]
libstdc++-v3/testsuite/26_numerics/cmath/fabs_inline.cc [deleted file]
libstdc++-v3/testsuite/26_numerics/cmath/overloads.cc [deleted file]
libstdc++-v3/testsuite/26_numerics/cmath/powi.cc [deleted file]
libstdc++-v3/testsuite/26_numerics/cstdlib/13943.cc [deleted file]
libstdc++-v3/testsuite/26_numerics/headers/cmath/19322.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c++.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/headers/cmath/c_math.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/headers/cmath/c_math_dynamic.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/headers/cmath/fabs_inline.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/headers/cmath/macros.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/headers/cmath/overloads.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/headers/cmath/powi.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/headers/complex/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/headers/cstdlib/13943.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/headers/cstdlib/2190.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/headers/cstdlib/functions_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/headers/cstdlib/macros.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/headers/cstdlib/types_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/headers/numeric/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/headers/valarray/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/headers/valarray/types_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/numeric/sum_diff.cc [deleted file]
libstdc++-v3/testsuite/26_numerics/numeric_arrays/27867.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/numeric_arrays/28277.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/numeric_arrays/30416.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/numeric_arrays/binary_closure.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/numeric_arrays/dr543.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/numeric_arrays/slice.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/numeric_arrays/slice_array_assignment.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray_const_bracket.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray_name_lookup.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray_operators.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray_subset_assignment.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/numeric_operations/sum_diff.cc [new file with mode: 0644]
libstdc++-v3/testsuite/26_numerics/valarray/27867.cc [deleted file]
libstdc++-v3/testsuite/26_numerics/valarray/28277.cc [deleted file]
libstdc++-v3/testsuite/26_numerics/valarray/30416.cc [deleted file]
libstdc++-v3/testsuite/26_numerics/valarray/binary_closure.cc [deleted file]
libstdc++-v3/testsuite/26_numerics/valarray/dr543.cc [deleted file]
libstdc++-v3/testsuite/26_numerics/valarray/slice.cc [deleted file]
libstdc++-v3/testsuite/26_numerics/valarray/slice_array_assignment.cc [deleted file]
libstdc++-v3/testsuite/26_numerics/valarray/valarray.cc [deleted file]
libstdc++-v3/testsuite/26_numerics/valarray/valarray_const_bracket.cc [deleted file]
libstdc++-v3/testsuite/26_numerics/valarray/valarray_name_lookup.cc [deleted file]
libstdc++-v3/testsuite/26_numerics/valarray/valarray_operators.cc [deleted file]
libstdc++-v3/testsuite/26_numerics/valarray/valarray_subset_assignment.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_filebuf/1.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_filebuf/2.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_filebuf/3.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_filebuf/4.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_filebuf/cons/2020.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_fstream/1.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_fstream/2.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_fstream/3.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_fstream/4.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_fstream/cons/3.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_fstream/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_fstream/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_fstream/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ifstream/1.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_ifstream/2.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_ifstream/3.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_ifstream/4.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_ifstream/cons/2020.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ios/1.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_ios/2.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_ios/3.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_ios/4.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_ios/cons/2020.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ios/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ios/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ios/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_iostream/1.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_iostream/2.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_iostream/3.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_iostream/4.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_iostream/cons/2020.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_iostream/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_iostream/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_iostream/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_istream/1.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_istream/2.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_istream/3.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_istream/4.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_istream/cons/3.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_istream/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_istream/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_istream/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_istringstream/1.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_istringstream/2.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_istringstream/3.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_istringstream/4.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_istringstream/cons/2020.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ofstream/1.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_ofstream/2.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_ofstream/3.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_ofstream/4.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_ofstream/cons/2020.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/explicit_instantiations.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/1.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_ostream/2.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_ostream/3.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_ostream/4.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_ostream/cons/2020.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostringstream/1.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_ostringstream/2.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_ostringstream/3.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_ostringstream/4.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/2020.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_streambuf/1.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_streambuf/2.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_streambuf/3.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_streambuf/cons/2020.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_streambuf/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_streambuf/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_stringbuf/1.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_stringbuf/2.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_stringbuf/3.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_stringbuf/4.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_stringbuf/5.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/2020.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/explicit_instantiation/2.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/explicit_instantiation/4.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_stringstream/1.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_stringstream/2.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_stringstream/3.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_stringstream/4.cc [deleted file]
libstdc++-v3/testsuite/27_io/basic_stringstream/cons/2020.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/fpos/1.cc [deleted file]
libstdc++-v3/testsuite/27_io/fpos/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/headers/cstdio/functions_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/headers/cstdio/macros.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/headers/cstdio/types_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/headers/fstream/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/headers/fstream/types_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/headers/iomanip/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/headers/ios/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/headers/ios/types_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/headers/iostream/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/headers/iostream/types_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/headers/istream/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/headers/istream/types_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/headers/ostream/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/headers/ostream/types_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/headers/sstream/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/headers/sstream/types_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/headers/streambuf/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/headers/streambuf/types_std.cc [new file with mode: 0644]
libstdc++-v3/testsuite/ext/debug_allocator/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/ext/debug_allocator/instantiate.cc [deleted file]
libstdc++-v3/testsuite/ext/hash_map/instantiate.cc [deleted file]
libstdc++-v3/testsuite/ext/hash_map/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/ext/hash_set/instantiate.cc [deleted file]
libstdc++-v3/testsuite/ext/hash_set/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/ext/headers.cc
libstdc++-v3/testsuite/ext/malloc_allocator/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/ext/malloc_allocator/instantiate.cc [deleted file]
libstdc++-v3/testsuite/ext/mt_allocator/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/ext/mt_allocator/instantiate.cc [deleted file]
libstdc++-v3/testsuite/ext/pool_allocator/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/ext/pool_allocator/instantiate.cc [deleted file]
libstdc++-v3/testsuite/ext/slist/instantiate.cc [deleted file]
libstdc++-v3/testsuite/ext/slist/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/ext/stdio_filebuf/char/1.cc [deleted file]
libstdc++-v3/testsuite/ext/stdio_filebuf/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/1.cc [deleted file]
libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/2.cc [deleted file]
libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/char/1.cc [deleted file]
libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/wchar_t/1.cc [deleted file]
libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/2.cc [new file with mode: 0644]
libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/char/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/wchar_t/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/2_general_utilities/headers/functional/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/types_std_tr1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/2_general_utilities/memory/enable_shared_from_this/explicit_instantiation/1.cc [deleted file]
libstdc++-v3/testsuite/tr1/2_general_utilities/memory/enable_shared_from_this/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/2_general_utilities/memory/shared_ptr/explicit_instantiation/1.cc [deleted file]
libstdc++-v3/testsuite/tr1/2_general_utilities/memory/shared_ptr/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/2_general_utilities/memory/weak_ptr/explicit_instantiation/1.cc [deleted file]
libstdc++-v3/testsuite/tr1/2_general_utilities/memory/weak_ptr/requirements/explicit_instantiation/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/types_std_tr1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/using_namespace_std_tr1_placeholders.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/types_std_tr1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/types_std_tr1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/requirements/requirements.cc [deleted file]
libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/requirements/typedefs.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/array/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/array/requirements/instantiate.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/hash/24799.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/base_classes.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/headers/array/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/headers/functional/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/types_std_tr1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_map/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_set/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/tuple/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered/23781.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-map.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-multimap.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-multiset.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-set.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-map.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-multimap.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-multiset.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-set.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/find/map1.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/find/multimap1.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/find/multiset1.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/find/set1.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/hash/24799.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/23053.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/23465.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/24054.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/24064.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/26127.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/26132.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/iterators_default_constructor.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-map.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-multimap.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-multiset.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-set.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/array_syntax.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/map_range.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/map_single.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multimap_range.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multimap_single.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multiset_range.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multiset_single.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/set_range.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/set_single.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/hash.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/map.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/multimap.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/multiset.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/set.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_map/1.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_map/2.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multimap/1.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multimap/2.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multiset/1.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multiset/2.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_set/1.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_set/2.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/types/map_iterator.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/types/multimap_iterator.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/types/multiset_iterator.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered/types/set_iterator.cc [deleted file]
libstdc++-v3/testsuite/tr1/6_containers/unordered_map/24064.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_map/capacity/29134-map.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_map/erase/24061-map.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_map/find/map1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/24061-map.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/array_syntax.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/map_range.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/map_single.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_null_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_map/swap/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_map/swap/2.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/capacity/29134-multimap.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/erase/24061-multimap.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/find/multimap1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/24061-multimap.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/multimap_range.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/multimap_single.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_null_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/swap/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/swap/2.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/24054.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/capacity/29134-multiset.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/erase/24061-multiset.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/find/multiset1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/24061-multiset.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/multiset_range.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/multiset_single.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_null_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/swap/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/swap/2.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_set/23053.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_set/23465.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_set/26127.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_set/26132.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_set/capacity/29134-set.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_set/erase/24061-set.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_set/find/set1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/24061-set.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/set_range.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/set_single.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/explicit_instantiation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_null_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterators_default_constructor.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_set/swap/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/6_containers/unordered_set/swap/2.cc [new file with mode: 0644]
libstdc++-v3/testsuite/tr1/using_namespace_std_tr1.cc [new file with mode: 0644]

index eb1a05b3161c773eb0b2b337ca8f3b42e31cc6dc..937d3150cb5bc7cea538c0b971cef8b5777f0dc1 100644 (file)
@@ -1,3 +1,900 @@
+2007-02-20  Benjamin Kosnik  <bkoz@redhat.com>
+
+       Revamp library API testing.
+       Added:
+       * 17_intro/headers
+       * 17_intro/headers/all_assert_neg.cc
+       * 17_intro/headers/all_c++200x_compatibility.cc
+       * 17_intro/headers/all.cc
+       * 17_intro/headers/c++1998
+       * 17_intro/headers/c++1998/all.cc
+       * 17_intro/headers/c++1998/all_multiple_inclusion.cc
+       * 17_intro/headers/c++1998/c++_for_c.tar
+       * 17_intro/headers/c++1998/c++.tar
+       * 17_intro/using_namespace_std.cc
+       * 18_support/headers
+       * 18_support/headers/cfloat
+       * 18_support/headers/cfloat/values.cc
+       * 18_support/headers/climits
+       * 18_support/headers/climits/values.cc
+       * 18_support/headers/csetjmp
+       * 18_support/headers/csetjmp/functions_std.cc
+       * 18_support/headers/csetjmp/macros.cc
+       * 18_support/headers/csetjmp/types_std.cc
+       * 18_support/headers/csignal
+       * 18_support/headers/csignal/functions_std.cc
+       * 18_support/headers/csignal/macros.cc
+       * 18_support/headers/csignal/types_std.cc
+       * 18_support/headers/cstdarg
+       * 18_support/headers/cstdarg/macros.cc
+       * 18_support/headers/cstdarg/types_std.cc
+       * 18_support/headers/cstddef
+       * 18_support/headers/cstddef/macros.cc
+       * 18_support/headers/cstddef/types_std.cc
+       * 18_support/headers/cstdlib
+       * 18_support/headers/cstdlib/functions_std.cc
+       * 18_support/headers/cstdlib/macros.cc
+       * 18_support/headers/ctime
+       * 18_support/headers/ctime/functions_std.cc
+       * 18_support/headers/ctime/macros.cc
+       * 18_support/headers/ctime/types_std.cc
+       * 18_support/headers/exception
+       * 18_support/headers/exception/synopsis.cc
+       * 18_support/headers/exception/types_std.cc
+       * 18_support/headers/limits
+       * 18_support/headers/limits/synopsis.cc
+       * 18_support/headers/new
+       * 18_support/headers/new/synopsis.cc
+       * 18_support/headers/new/types_std.cc
+       * 18_support/headers/typeinfo
+       * 18_support/headers/typeinfo/synopsis.cc
+       * 18_support/headers/typeinfo/types_std.cc
+       * 18_support/numeric_limits/is_signed.cc
+       * 18_support/numeric_limits/requirements
+       * 18_support/numeric_limits/requirements/explicit_instantiation
+       * 18_support/numeric_limits/requirements/explicit_instantiation/1.cc
+       * 18_support/numeric_limits/specialization_default_values.cc
+       * 19_diagnostics/headers
+       * 19_diagnostics/headers/cassert
+       * 19_diagnostics/headers/cassert/macros.cc
+       * 19_diagnostics/headers/cerrno
+       * 19_diagnostics/headers/cerrno/macros.cc
+       * 19_diagnostics/headers/stdexcept
+       * 19_diagnostics/headers/stdexcept/synopsis.cc
+       * 19_diagnostics/headers/stdexcept/types_std.cc
+       * 20_util/headers
+       * 20_util/headers/cstdlib
+       * 20_util/headers/cstdlib/functions_std.cc
+       * 20_util/headers/cstring
+       * 20_util/headers/cstring/functions_std.cc
+       * 20_util/headers/cstring/macros.cc
+       * 20_util/headers/cstring/types_std.cc
+       * 20_util/headers/ctime
+       * 20_util/headers/ctime/functions_std.cc
+       * 20_util/headers/ctime/macros.cc
+       * 20_util/headers/ctime/types_std.cc
+       * 20_util/headers/functional
+       * 20_util/headers/functional/synopsis.cc
+       * 20_util/headers/memory
+       * 20_util/headers/memory/synopsis.cc
+       * 20_util/headers/utility
+       * 20_util/headers/utility/synopsis.cc
+       * 20_util/headers/utility/using_namespace_std_rel_ops.cc
+       * 20_util/memory/allocator/requirements
+       * 20_util/memory/allocator/requirements/explicit_instantiation
+       * 20_util/memory/allocator/requirements/explicit_instantiation/1.cc
+       * 20_util/memory/auto_ptr/requirements
+       * 20_util/memory/auto_ptr/requirements/explicit_instantiation
+       * 20_util/memory/auto_ptr/requirements/explicit_instantiation/1.cc
+       * 20_util/memory/raw_storage_iterator
+       * 20_util/memory/raw_storage_iterator/requirements
+       * 20_util/memory/raw_storage_iterator/requirements/base_classes.cc
+       * 20_util/memory/raw_storage_iterator/requirements/
+       explicit_instantiation
+       * 20_util/memory/raw_storage_iterator/requirements/
+       explicit_instantiation/1.cc
+       * 20_util/memory/raw_storage_iterator/requirements/typedefs.cc
+       * 20_util/utility/pair/requirements
+       * 20_util/utility/pair/requirements/explicit_instantiation
+       * 20_util/utility/pair/requirements/explicit_instantiation/1.cc
+       * 21_strings/basic_string/requirements
+       * 21_strings/basic_string/requirements/explicit_instantiation
+       * 21_strings/basic_string/requirements/explicit_instantiation/1.cc
+       * 21_strings/basic_string/requirements/explicit_instantiation/debug.cc
+       * 21_strings/headers
+       * 21_strings/headers/cctype
+       * 21_strings/headers/cctype/functions_std.cc
+       * 21_strings/headers/cstdlib
+       * 21_strings/headers/cstdlib/functions_std.cc
+       * 21_strings/headers/cstdlib/macros.cc
+       * 21_strings/headers/cstring
+       * 21_strings/headers/cstring/functions_std.cc
+       * 21_strings/headers/cstring/macros.cc
+       * 21_strings/headers/cstring/types_std.cc
+       * 21_strings/headers/cwchar
+       * 21_strings/headers/cwchar/functions_std.cc
+       * 21_strings/headers/cwchar/macros.cc
+       * 21_strings/headers/cwchar/types_std.cc
+       * 21_strings/headers/cwctype
+       * 21_strings/headers/cwctype/functions_std.cc
+       * 21_strings/headers/cwctype/macros.cc
+       * 21_strings/headers/cwctype/types_std.cc
+       * 21_strings/headers/string
+       * 21_strings/headers/string/synopsis.cc
+       * 21_strings/headers/string/types_std.cc
+       * 22_locale/codecvt_byname/requirements
+       * 22_locale/codecvt_byname/requirements/base_classes.cc
+       * 22_locale/codecvt_byname/requirements/explicit_instantiation.cc
+       * 22_locale/codecvt_byname/requirements/typedefs.cc
+       * 22_locale/codecvt/requirements
+       * 22_locale/codecvt/requirements/base_classes.cc
+       * 22_locale/codecvt/requirements/explicit_instantiation.cc
+       * 22_locale/codecvt/requirements/typedefs.cc
+       * 22_locale/collate_byname/requirements
+       * 22_locale/collate_byname/requirements/base_classes.cc
+       * 22_locale/collate_byname/requirements/explicit_instantiation.cc
+       * 22_locale/collate_byname/requirements/typedefs.cc
+       * 22_locale/collate/requirements
+       * 22_locale/collate/requirements/base_classes.cc
+       * 22_locale/collate/requirements/explicit_instantiation.cc
+       * 22_locale/collate/requirements/typedefs.cc
+       * 22_locale/ctype_base/mask.cc
+       * 22_locale/ctype/requirements
+       * 22_locale/ctype/requirements/base_classes.cc
+       * 22_locale/ctype/requirements/explicit_instantiation.cc
+       * 22_locale/ctype/requirements/typedefs.cc
+       * 22_locale/headers
+       * 22_locale/headers/clocale
+       * 22_locale/headers/clocale/functions_std.cc
+       * 22_locale/headers/clocale/macros.cc
+       * 22_locale/headers/clocale/types_std.cc
+       * 22_locale/headers/locale
+       * 22_locale/headers/locale/synopsis.cc
+       * 22_locale/headers/locale/types_std.cc
+       * 22_locale/messages_byname/requirements
+       * 22_locale/messages_byname/requirements/base_classes.cc
+       * 22_locale/messages_byname/requirements/explicit_instantiation.cc
+       * 22_locale/messages_byname/requirements/typedefs.cc
+       * 22_locale/messages/requirements
+       * 22_locale/messages/requirements/base_classes.cc
+       * 22_locale/messages/requirements/explicit_instantiation.cc
+       * 22_locale/messages/requirements/typedefs.cc
+       * 22_locale/money_get/cons
+       * 22_locale/money_get/cons/3.cc
+       * 22_locale/money_get/requirements
+       * 22_locale/money_get/requirements/base_classes.cc
+       * 22_locale/money_get/requirements/explicit_instantiations.cc
+       * 22_locale/money_get/requirements/typedefs.cc
+       * 22_locale/moneypunct_byname/requirements
+       * 22_locale/moneypunct_byname/requirements/base_classes.cc
+       * 22_locale/moneypunct_byname/requirements/explicit_instantiation.cc
+       * 22_locale/moneypunct_byname/requirements/typedefs.cc
+       * 22_locale/moneypunct/requirements
+       * 22_locale/moneypunct/requirements/false
+       * 22_locale/moneypunct/requirements/false/base_classes.cc
+       * 22_locale/moneypunct/requirements/false/explicit_instantiation.cc
+       * 22_locale/moneypunct/requirements/false/intl.cc
+       * 22_locale/moneypunct/requirements/false/typedefs.cc
+       * 22_locale/moneypunct/requirements/true
+       * 22_locale/moneypunct/requirements/true/base_classes.cc
+       * 22_locale/moneypunct/requirements/true/explicit_instantiation.cc
+       * 22_locale/moneypunct/requirements/true/intl.cc
+       * 22_locale/moneypunct/requirements/true/typedefs.cc
+       * 22_locale/money_put/cons
+       * 22_locale/money_put/cons/3.cc
+       * 22_locale/money_put/requirements
+       * 22_locale/money_put/requirements/base_classes.cc
+       * 22_locale/money_put/requirements/explicit_instantiation.cc
+       * 22_locale/money_put/requirements/typedefs.cc
+       * 22_locale/num_get/cons
+       * 22_locale/num_get/cons/3.cc
+       * 22_locale/num_get/requirements
+       * 22_locale/num_get/requirements/base_classes.cc
+       * 22_locale/num_get/requirements/explicit_instantiation.cc
+       * 22_locale/num_get/requirements/typedefs.cc
+       * 22_locale/numpunct_byname/requirements
+       * 22_locale/numpunct_byname/requirements/base_classes.cc
+       * 22_locale/numpunct_byname/requirements/explicit_instantiations.cc
+       * 22_locale/numpunct_byname/requirements/typedefs.cc
+       * 22_locale/numpunct/requirements
+       * 22_locale/numpunct/requirements/base_classes.cc
+       * 22_locale/numpunct/requirements/explicit_instantiations.cc
+       * 22_locale/numpunct/requirements/typedefs.cc
+       * 22_locale/num_put/cons
+       * 22_locale/num_put/cons/3.cc
+       * 22_locale/num_put/requirements
+       * 22_locale/num_put/requirements/base_classes.cc
+       * 22_locale/num_put/requirements/explicit_instantiations.cc
+       * 22_locale/num_put/requirements/typedefs.cc
+       * 22_locale/time_get/requirements
+       * 22_locale/time_get/requirements/base_classes.cc
+       * 22_locale/time_get/requirements/explicit_instantiations.cc
+       * 22_locale/time_get/requirements/typedefs.cc
+       * 22_locale/time_put/requirements
+       * 22_locale/time_put/requirements/base_classes.cc
+       * 22_locale/time_put/requirements/explicit_instantiations.cc
+       * 22_locale/time_put/requirements/typedefs.cc
+       * 23_containers/bitset/requirements
+       * 23_containers/bitset/requirements/explicit_instantiation
+       * 23_containers/bitset/requirements/explicit_instantiation/1.cc
+       * 23_containers/deque/requirements
+       * 23_containers/deque/requirements/explicit_instantiation
+       * 23_containers/deque/requirements/partial_specialization
+       * 23_containers/deque/requirements/partial_specialization/1.cc
+       * 23_containers/headers
+       * 23_containers/headers/bitset
+       * 23_containers/headers/bitset/synopsis.cc
+       * 23_containers/headers/deque
+       * 23_containers/headers/deque/synopsis.cc
+       * 23_containers/headers/list
+       * 23_containers/headers/list/synopsis.cc
+       * 23_containers/headers/map
+       * 23_containers/headers/map/synopsis.cc
+       * 23_containers/headers/queue
+       * 23_containers/headers/queue/synopsis.cc
+       * 23_containers/headers/set
+       * 23_containers/headers/set/synopsis.cc
+       * 23_containers/headers/stack
+       * 23_containers/headers/stack/synopsis.cc
+       * 23_containers/headers/vector
+       * 23_containers/headers/vector/synopsis.cc
+       * 23_containers/list/requirements
+       * 23_containers/list/requirements/explicit_instantiation
+       * 23_containers/list/requirements/partial_specialization
+       * 23_containers/list/requirements/partial_specialization/1.cc
+       * 23_containers/map/requirements
+       * 23_containers/map/requirements/explicit_instantiation
+       * 23_containers/map/requirements/partial_specialization
+       * 23_containers/map/requirements/partial_specialization/1.cc
+       * 23_containers/multimap/requirements
+       * 23_containers/multimap/requirements/explicit_instantiation
+       * 23_containers/multimap/requirements/partial_specialization
+       * 23_containers/multimap/requirements/partial_specialization/1.cc
+       * 23_containers/multiset/requirements
+       * 23_containers/multiset/requirements/explicit_instantiation
+       * 23_containers/multiset/requirements/partial_specialization
+       * 23_containers/multiset/requirements/partial_specialization/1.cc
+       * 23_containers/priority_queue/requirements
+       * 23_containers/priority_queue/requirements/explicit_instantiation
+       * 23_containers/priority_queue/requirements/explicit_instantiation/1.cc
+       * 23_containers/queue/requirements
+       * 23_containers/queue/requirements/explicit_instantiation
+       * 23_containers/queue/requirements/explicit_instantiation/1.cc
+       * 23_containers/set/requirements
+       * 23_containers/set/requirements/explicit_instantiation
+       * 23_containers/set/requirements/partial_specialization
+       * 23_containers/set/requirements/partial_specialization/1.cc
+       * 23_containers/stack/requirements
+       * 23_containers/stack/requirements/explicit_instantiation
+       * 23_containers/stack/requirements/explicit_instantiation/1.cc
+       * 23_containers/vector/requirements
+       * 23_containers/vector/requirements/explicit_instantiation
+       * 23_containers/vector/requirements/partial_specialization
+       * 23_containers/vector/requirements/partial_specialization/1.cc
+       * 24_iterators/back_insert_iterator
+       * 24_iterators/back_insert_iterator/2.cc
+       * 24_iterators/back_insert_iterator/requirements
+       * 24_iterators/back_insert_iterator/requirements/base_classes.cc
+       * 24_iterators/back_insert_iterator/requirements/container.cc
+       * 24_iterators/back_insert_iterator/requirements/
+       explicit_instantiation.cc
+       * 24_iterators/back_insert_iterator/requirements/typedefs.cc
+       * 24_iterators/front_insert_iterator
+       * 24_iterators/front_insert_iterator/2.cc
+       * 24_iterators/front_insert_iterator/requirements
+       * 24_iterators/front_insert_iterator/requirements/base_classes.cc
+       * 24_iterators/front_insert_iterator/requirements/container.cc
+       * 24_iterators/front_insert_iterator/requirements/
+       explicit_instantiation.cc
+       * 24_iterators/front_insert_iterator/requirements/typedefs.cc
+       * 24_iterators/headers
+       * 24_iterators/headers/iterator
+       * 24_iterators/headers/iterator/synopsis.cc
+       * 24_iterators/headers/iterator/types_std.cc
+       * 24_iterators/insert_iterator
+       * 24_iterators/insert_iterator/2.cc
+       * 24_iterators/insert_iterator/requirements
+       * 24_iterators/insert_iterator/requirements/base_classes.cc
+       * 24_iterators/insert_iterator/requirements/container.cc
+       * 24_iterators/insert_iterator/requirements/explicit_instantiation.cc
+       * 24_iterators/insert_iterator/requirements/typedefs.cc
+       * 24_iterators/istreambuf_iterator/requirements
+       * 24_iterators/istreambuf_iterator/requirements/base_classes.cc
+       * 24_iterators/istreambuf_iterator/requirements/
+       explicit_instantiation.cc
+       * 24_iterators/istreambuf_iterator/requirements/typedefs.cc
+       * 24_iterators/istream_iterator
+       * 24_iterators/istream_iterator/2.cc
+       * 24_iterators/istream_iterator/requirements
+       * 24_iterators/istream_iterator/requirements/base_classes.cc
+       * 24_iterators/istream_iterator/requirements/explicit_instantiation.cc
+       * 24_iterators/istream_iterator/requirements/typedefs.cc
+       * 24_iterators/ostreambuf_iterator/requirements
+       * 24_iterators/ostreambuf_iterator/requirements/base_classes.cc
+       * 24_iterators/ostreambuf_iterator/requirements/
+       explicit_instantiation.cc
+       * 24_iterators/ostreambuf_iterator/requirements/typedefs.cc
+       * 24_iterators/ostream_iterator
+       * 24_iterators/ostream_iterator/requirements
+       * 24_iterators/ostream_iterator/requirements/base_classes.cc
+       * 24_iterators/ostream_iterator/requirements/explicit_instantiation.cc
+       * 24_iterators/ostream_iterator/requirements/typedefs.cc
+       * 24_iterators/random_access_iterator
+       * 24_iterators/random_access_iterator/26020.cc
+       * 24_iterators/random_access_iterator/string_vector_iterators.cc
+       * 24_iterators/reverse_iterator/requirements
+       * 24_iterators/reverse_iterator/requirements/base_classes.cc
+       * 24_iterators/reverse_iterator/requirements/current.cc
+       * 24_iterators/reverse_iterator/requirements/explicit_instantiation.cc
+       * 24_iterators/reverse_iterator/requirements/typedefs.cc
+       * 25_algorithms/headers
+       * 25_algorithms/headers/algorithm
+       * 25_algorithms/headers/algorithm/synopsis.cc
+       * 25_algorithms/headers/cstdlib
+       * 25_algorithms/headers/cstdlib/functions_std.cc
+       * 26_numerics/headers
+       * 26_numerics/headers/cmath
+       * 26_numerics/headers/cmath/19322.cc
+       * 26_numerics/headers/cmath/c99_classification_macros_c.cc
+       * 26_numerics/headers/cmath/c99_classification_macros_c++.cc
+       * 26_numerics/headers/cmath/c_math.cc
+       * 26_numerics/headers/cmath/c_math_dynamic.cc
+       * 26_numerics/headers/cmath/fabs_inline.cc
+       * 26_numerics/headers/cmath/functions_std.cc
+       * 26_numerics/headers/cmath/macros.cc
+       * 26_numerics/headers/cmath/overloads.cc
+       * 26_numerics/headers/cmath/powi.cc
+       * 26_numerics/headers/complex
+       * 26_numerics/headers/complex/synopsis.cc
+       * 26_numerics/headers/cstdlib
+       * 26_numerics/headers/cstdlib/13943.cc
+       * 26_numerics/headers/cstdlib/2190.cc
+       * 26_numerics/headers/cstdlib/functions_std.cc
+       * 26_numerics/headers/cstdlib/macros.cc
+       * 26_numerics/headers/cstdlib/types_std.cc
+       * 26_numerics/headers/numeric
+       * 26_numerics/headers/numeric/synopsis.cc
+       * 26_numerics/headers/valarray
+       * 26_numerics/headers/valarray/synopsis.cc
+       * 26_numerics/headers/valarray/types_std.cc
+       * 26_numerics/numeric_arrays
+       * 26_numerics/numeric_operations
+       * 27_io/basic_filebuf/cons/2020.cc
+       * 27_io/basic_filebuf/requirements
+       * 27_io/basic_filebuf/requirements/base_classes.cc
+       * 27_io/basic_filebuf/requirements/explicit_instantiation.cc
+       * 27_io/basic_filebuf/requirements/typedefs.cc
+       * 27_io/basic_fstream/cons
+       * 27_io/basic_fstream/cons/3.cc
+       * 27_io/basic_fstream/requirements
+       * 27_io/basic_fstream/requirements/base_classes.cc
+       * 27_io/basic_fstream/requirements/explicit_instantiation.cc
+       * 27_io/basic_fstream/requirements/typedefs.cc
+       * 27_io/basic_ifstream/cons/2020.cc
+       * 27_io/basic_ifstream/requirements
+       * 27_io/basic_ifstream/requirements/base_classes.cc
+       * 27_io/basic_ifstream/requirements/explicit_instantiation.cc
+       * 27_io/basic_ifstream/requirements/typedefs.cc
+       * 27_io/basic_ios/cons/2020.cc
+       * 27_io/basic_ios/requirements
+       * 27_io/basic_ios/requirements/base_classes.cc
+       * 27_io/basic_ios/requirements/explicit_instantiation.cc
+       * 27_io/basic_ios/requirements/typedefs.cc
+       * 27_io/basic_iostream/cons
+       * 27_io/basic_iostream/cons/2020.cc
+       * 27_io/basic_iostream/requirements
+       * 27_io/basic_iostream/requirements/base_classes.cc
+       * 27_io/basic_iostream/requirements/explicit_instantiation.cc
+       * 27_io/basic_iostream/requirements/typedefs.cc
+       * 27_io/basic_istream/cons
+       * 27_io/basic_istream/cons/3.cc
+       * 27_io/basic_istream/requirements
+       * 27_io/basic_istream/requirements/base_classes.cc
+       * 27_io/basic_istream/requirements/explicit_instantiation.cc
+       * 27_io/basic_istream/requirements/typedefs.cc
+       * 27_io/basic_istringstream/cons
+       * 27_io/basic_istringstream/cons/2020.cc
+       * 27_io/basic_istringstream/requirements
+       * 27_io/basic_istringstream/requirements/base_classes.cc
+       * 27_io/basic_istringstream/requirements/explicit_instantiation.cc
+       * 27_io/basic_istringstream/requirements/typedefs.cc
+       * 27_io/basic_ofstream/cons/2020.cc
+       * 27_io/basic_ofstream/requirements
+       * 27_io/basic_ofstream/requirements/base_classes.cc
+       * 27_io/basic_ofstream/requirements/explicit_instantiations.cc
+       * 27_io/basic_ofstream/requirements/typedefs.cc
+       * 27_io/basic_ostream/cons/2020.cc
+       * 27_io/basic_ostream/requirements
+       * 27_io/basic_ostream/requirements/base_classes.cc
+       * 27_io/basic_ostream/requirements/explicit_instantiation.cc
+       * 27_io/basic_ostream/requirements/typedefs.cc
+       * 27_io/basic_ostringstream/cons/2020.cc
+       * 27_io/basic_ostringstream/requirements
+       * 27_io/basic_ostringstream/requirements/base_classes.cc
+       * 27_io/basic_ostringstream/requirements/explicit_instantiation.cc
+       * 27_io/basic_ostringstream/requirements/typedefs.cc
+       * 27_io/basic_streambuf/cons/2020.cc
+       * 27_io/basic_streambuf/requirements
+       * 27_io/basic_streambuf/requirements/base_classes.cc
+       * 27_io/basic_streambuf/requirements/typedefs.cc
+       * 27_io/basic_stringbuf/cons/2020.cc
+       * 27_io/basic_stringbuf/requirements
+       * 27_io/basic_stringbuf/requirements/base_classes.cc
+       * 27_io/basic_stringbuf/requirements/explicit_instantiation
+       * 27_io/basic_stringbuf/requirements/explicit_instantiation/2.cc
+       * 27_io/basic_stringbuf/requirements/explicit_instantiation/4.cc
+       * 27_io/basic_stringbuf/requirements/typedefs.cc
+       * 27_io/basic_stringstream/cons
+       * 27_io/basic_stringstream/cons/2020.cc
+       * 27_io/basic_stringstream/requirements
+       * 27_io/basic_stringstream/requirements/base_classes.cc
+       * 27_io/basic_stringstream/requirements/explicit_instantiation.cc
+       * 27_io/basic_stringstream/requirements/typedefs.cc
+       * 27_io/fpos/requirements
+       * 27_io/fpos/requirements/explicit_instantiation.cc
+       * 27_io/headers
+       * 27_io/headers/cstdio
+       * 27_io/headers/cstdio/functions_std.cc
+       * 27_io/headers/cstdio/macros.cc
+       * 27_io/headers/cstdio/types_std.cc
+       * 27_io/headers/cstdlib
+       * 27_io/headers/fstream
+       * 27_io/headers/fstream/synopsis.cc
+       * 27_io/headers/fstream/types_std.cc
+       * 27_io/headers/iomanip
+       * 27_io/headers/iomanip/synopsis.cc
+       * 27_io/headers/ios
+       * 27_io/headers/ios/synopsis.cc
+       * 27_io/headers/iostream
+       * 27_io/headers/iostream/synopsis.cc
+       * 27_io/headers/iostream/types_std.cc
+       * 27_io/headers/ios/types_std.cc
+       * 27_io/headers/istream
+       * 27_io/headers/istream/synopsis.cc
+       * 27_io/headers/istream/types_std.cc
+       * 27_io/headers/ostream
+       * 27_io/headers/ostream/synopsis.cc
+       * 27_io/headers/ostream/types_std.cc
+       * 27_io/headers/sstream
+       * 27_io/headers/sstream/synopsis.cc
+       * 27_io/headers/sstream/types_std.cc
+       * 27_io/headers/streambuf
+       * 27_io/headers/streambuf/synopsis.cc
+       * 27_io/headers/streambuf/types_std.cc
+       * ext/debug_allocator/explicit_instantiation.cc
+       * ext/hash_map/requirements
+       * ext/hash_map/requirements/explicit_instantiation.cc
+       * ext/hash_set/requirements
+       * ext/hash_set/requirements/explicit_instantiation.cc
+       * ext/malloc_allocator/explicit_instantiation.cc
+       * ext/mt_allocator/explicit_instantiation.cc
+       * ext/pool_allocator/explicit_instantiation.cc
+       * ext/slist/requirements
+       * ext/slist/requirements/explicit_instantiation.cc
+       * ext/stdio_filebuf/requirements
+       * ext/stdio_filebuf/requirements/explicit_instantiation.cc
+       * ext/vstring/requirements
+       * ext/vstring/requirements/explicit_instantiation
+       * tr1/2_general_utilities/headers
+       * tr1/2_general_utilities/headers/functional
+       * tr1/2_general_utilities/headers/functional/synopsis.cc
+       * tr1/2_general_utilities/headers/memory
+       * tr1/2_general_utilities/headers/memory/synopsis.cc
+       * tr1/2_general_utilities/headers/memory/types_std_tr1.cc
+       * tr1/2_general_utilities/memory/enable_shared_from_this/requirements
+       * tr1/2_general_utilities/memory/enable_shared_from_this/
+       requirements/explicit_instantiation
+       * tr1/2_general_utilities/memory/shared_ptr/requirements
+       * tr1/2_general_utilities/memory/shared_ptr/requirements/
+       explicit_instantiation
+       * tr1/2_general_utilities/memory/weak_ptr/requirements
+       * tr1/2_general_utilities/memory/weak_ptr/requirements/
+       explicit_instantiation
+       * tr1/3_function_objects/headers
+       * tr1/3_function_objects/headers/functional
+       * tr1/3_function_objects/headers/functional/synopsis.cc
+       * tr1/3_function_objects/headers/functional/types_std_tr1.cc
+       * tr1/3_function_objects/headers/functional/
+       using_namespace_std_tr1_placeholders.cc
+       * tr1/4_metaprogramming/headers
+       * tr1/4_metaprogramming/headers/type_traits
+       * tr1/4_metaprogramming/headers/type_traits/synopsis.cc
+       * tr1/4_metaprogramming/headers/type_traits/types_std_tr1.cc
+       * tr1/5_numerical_facilities/headers
+       * tr1/5_numerical_facilities/headers/random
+       * tr1/5_numerical_facilities/headers/random/synopsis.cc
+       * tr1/5_numerical_facilities/headers/random/types_std_tr1.cc
+       * tr1/5_numerical_facilities/random/discard_block/
+       requirements/typedefs.cc
+       * tr1/6_containers/array/requirements/explicit_instantiation.cc
+       * tr1/6_containers/hash
+       * tr1/6_containers/hash/requirements
+       * tr1/6_containers/hash/requirements/base_classes.cc
+       * tr1/6_containers/hash/requirements/explicit_instantiation.cc
+       * tr1/6_containers/headers
+       * tr1/6_containers/headers/array
+       * tr1/6_containers/headers/array/synopsis.cc
+       * tr1/6_containers/headers/functional
+       * tr1/6_containers/headers/functional/synopsis.cc
+       * tr1/6_containers/headers/tuple
+       * tr1/6_containers/headers/tuple/synopsis.cc
+       * tr1/6_containers/headers/tuple/types_std_tr1.cc
+       * tr1/6_containers/headers/unordered_map
+       * tr1/6_containers/headers/unordered_map/synopsis.cc
+       * tr1/6_containers/headers/unordered_set
+       * tr1/6_containers/headers/unordered_set/synopsis.cc
+       * tr1/6_containers/tuple/requirements
+       * tr1/6_containers/tuple/requirements/explicit_instantiation.cc
+       * tr1/6_containers/unordered_map
+       * tr1/6_containers/unordered_map/24064.cc
+       * tr1/6_containers/unordered_map/capacity
+       * tr1/6_containers/unordered_map/capacity/29134-map.cc
+       * tr1/6_containers/unordered_map/erase
+       * tr1/6_containers/unordered_map/erase/24061-map.cc
+       * tr1/6_containers/unordered_map/find
+       * tr1/6_containers/unordered_map/find/map1.cc
+       * tr1/6_containers/unordered_map/insert
+       * tr1/6_containers/unordered_map/insert/24061-map.cc
+       * tr1/6_containers/unordered_map/insert/array_syntax.cc
+       * tr1/6_containers/unordered_map/insert/map_range.cc
+       * tr1/6_containers/unordered_map/insert/map_single.cc
+       * tr1/6_containers/unordered_map/requirements
+       * tr1/6_containers/unordered_map/requirements/explicit_instantiation.cc
+       * tr1/6_containers/unordered_map/requirements/iterator_neg.cc
+       * tr1/6_containers/unordered_map/requirements/iterator_null_neg.cc
+       * tr1/6_containers/unordered_map/swap
+       * tr1/6_containers/unordered_map/swap/1.cc
+       * tr1/6_containers/unordered_map/swap/2.cc
+       * tr1/6_containers/unordered_multimap
+       * tr1/6_containers/unordered_multimap/capacity
+       * tr1/6_containers/unordered_multimap/capacity/29134-multimap.cc
+       * tr1/6_containers/unordered_multimap/erase
+       * tr1/6_containers/unordered_multimap/erase/24061-multimap.cc
+       * tr1/6_containers/unordered_multimap/find
+       * tr1/6_containers/unordered_multimap/find/multimap1.cc
+       * tr1/6_containers/unordered_multimap/insert
+       * tr1/6_containers/unordered_multimap/insert/24061-multimap.cc
+       * tr1/6_containers/unordered_multimap/insert/multimap_range.cc
+       * tr1/6_containers/unordered_multimap/insert/multimap_single.cc
+       * tr1/6_containers/unordered_multimap/requirements
+       * tr1/6_containers/unordered_multimap/requirements/
+       explicit_instantiation.cc
+       * tr1/6_containers/unordered_multimap/requirements/iterator_neg.cc
+       * tr1/6_containers/unordered_multimap/requirements/iterator_null_neg.cc
+       * tr1/6_containers/unordered_multimap/swap
+       * tr1/6_containers/unordered_multimap/swap/1.cc
+       * tr1/6_containers/unordered_multimap/swap/2.cc
+       * tr1/6_containers/unordered_multiset
+       * tr1/6_containers/unordered_multiset/24054.cc
+       * tr1/6_containers/unordered_multiset/capacity
+       * tr1/6_containers/unordered_multiset/capacity/29134-multiset.cc
+       * tr1/6_containers/unordered_multiset/erase
+       * tr1/6_containers/unordered_multiset/erase/24061-multiset.cc
+       * tr1/6_containers/unordered_multiset/find
+       * tr1/6_containers/unordered_multiset/find/multiset1.cc
+       * tr1/6_containers/unordered_multiset/insert
+       * tr1/6_containers/unordered_multiset/insert/24061-multiset.cc
+       * tr1/6_containers/unordered_multiset/insert/multiset_range.cc
+       * tr1/6_containers/unordered_multiset/insert/multiset_single.cc
+       * tr1/6_containers/unordered_multiset/requirements
+       * tr1/6_containers/unordered_multiset/requirements/
+       explicit_instantiation.cc
+       * tr1/6_containers/unordered_multiset/requirements/iterator_neg.cc
+       * tr1/6_containers/unordered_multiset/requirements/iterator_null_neg.cc
+       * tr1/6_containers/unordered_multiset/swap
+       * tr1/6_containers/unordered_multiset/swap/1.cc
+       * tr1/6_containers/unordered_multiset/swap/2.cc
+       * tr1/6_containers/unordered_set
+       * tr1/6_containers/unordered_set/23053.cc
+       * tr1/6_containers/unordered_set/23465.cc
+       * tr1/6_containers/unordered_set/26127.cc
+       * tr1/6_containers/unordered_set/26132.cc
+       * tr1/6_containers/unordered_set/capacity
+       * tr1/6_containers/unordered_set/capacity/29134-set.cc
+       * tr1/6_containers/unordered_set/erase
+       * tr1/6_containers/unordered_set/erase/24061-set.cc
+       * tr1/6_containers/unordered_set/find
+       * tr1/6_containers/unordered_set/find/set1.cc
+       * tr1/6_containers/unordered_set/insert
+       * tr1/6_containers/unordered_set/insert/24061-set.cc
+       * tr1/6_containers/unordered_set/insert/set_range.cc
+       * tr1/6_containers/unordered_set/insert/set_single.cc
+       * tr1/6_containers/unordered_set/requirements
+       * tr1/6_containers/unordered_set/requirements/explicit_instantiation.cc
+       * tr1/6_containers/unordered_set/requirements/iterator_neg.cc
+       * tr1/6_containers/unordered_set/requirements/iterator_null_neg.cc
+       * tr1/6_containers/unordered_set/requirements/
+       iterators_default_constructor.cc
+       * tr1/6_containers/unordered_set/swap
+       * tr1/6_containers/unordered_set/swap/1.cc
+       * tr1/6_containers/unordered_set/swap/2.cc
+       * tr1/using_namespace_std_tr1.cc
+
+       Deleted:
+       * 17_intro/header_cassert.cc
+       * 17_intro/header_cerrno.cc
+       * 17_intro/header_csetjmp.cc
+       * 17_intro/header_cstdarg.cc
+       * 17_intro/header_cstddef.cc
+       * 17_intro/header_cstdio.cc
+       * 17_intro/header_cstdlib.cc
+       * 17_intro/header_cstring.cc
+       * 17_intro/header_ctime.cc
+       * 17_intro/header_cwchar.cc
+       * 17_intro/header_cwctype.cc
+       * 17_intro/header_fstream.cc
+       * 17_intro/header_iomanip.cc
+       * 17_intro/header_ios.cc
+       * 17_intro/header_iosfwd.cc
+       * 17_intro/header_iostream.cc
+       * 17_intro/header_istream.cc
+       * 17_intro/header_ostream.cc
+       * 17_intro/headers.cc
+       * 17_intro/headers_c++_c++0x_compat.cc
+       * 17_intro/headers_c.cc
+       * 17_intro/headers_c++.cc
+       * 17_intro/header_sstream.cc
+       * 17_intro/header_streambuf.cc
+       * 17_intro/no_assert_neg.cc
+       * 18_support/numeric_limits/sign.cc
+       * 18_support/numeric_limits/specialization.cc
+       * 20_util/memory/raw_storage_iterator.cc
+       * 21_strings/basic_string/1.cc
+       * 21_strings/basic_string/2.cc
+       * 22_locale/codecvt/1.cc
+       * 22_locale/codecvt/2.cc
+       * 22_locale/codecvt_byname/1.cc
+       * 22_locale/collate/1.cc
+       * 22_locale/collate/2.cc
+       * 22_locale/collate_byname/1.cc
+       * 22_locale/ctype/1.cc
+       * 22_locale/ctype_base/1.cc
+       * 22_locale/messages/1.cc
+       * 22_locale/messages/2.cc
+       * 22_locale/messages_byname/1.cc
+       * 22_locale/money_get/1.cc
+       * 22_locale/money_get/2.cc
+       * 22_locale/money_get/3.cc
+       * 22_locale/moneypunct/1.cc
+       * 22_locale/moneypunct/2.cc
+       * 22_locale/moneypunct/3.cc
+       * 22_locale/moneypunct_byname/1.cc
+       * 22_locale/money_put/1.cc
+       * 22_locale/money_put/2.cc
+       * 22_locale/money_put/3.cc
+       * 22_locale/num_get/1.cc
+       * 22_locale/num_get/2.cc
+       * 22_locale/num_get/3.cc
+       * 22_locale/numpunct/1.cc
+       * 22_locale/numpunct/2.cc
+       * 22_locale/numpunct_byname/1.cc
+       * 22_locale/num_put/1.cc
+       * 22_locale/num_put/2.cc
+       * 22_locale/num_put/3.cc
+       * 22_locale/time_get/1.cc
+       * 22_locale/time_get/2.cc
+       * 22_locale/time_put/1.cc
+       * 22_locale/time_put/2.cc
+       * 23_containers/deque/1.cc
+       * 23_containers/deque/explicit_instantiation
+       * 23_containers/deque/explicit_instantiation/1.cc
+       * 23_containers/deque/explicit_instantiation/2.cc
+       * 23_containers/deque/explicit_instantiation/3.cc
+       * 23_containers/list/1.cc
+       * 23_containers/list/explicit_instantiation
+       * 23_containers/list/explicit_instantiation/1.cc
+       * 23_containers/list/explicit_instantiation/2.cc
+       * 23_containers/list/explicit_instantiation/3.cc
+       * 23_containers/map/1.cc
+       * 23_containers/map/explicit_instantiation
+       * 23_containers/map/explicit_instantiation/1.cc
+       * 23_containers/map/explicit_instantiation/2.cc
+       * 23_containers/map/explicit_instantiation/3.cc
+       * 23_containers/multimap/1.cc
+       * 23_containers/multimap/explicit_instantiation
+       * 23_containers/multimap/explicit_instantiation/1.cc
+       * 23_containers/multimap/explicit_instantiation/2.cc
+       * 23_containers/multimap/explicit_instantiation/3.cc
+       * 23_containers/multiset/1.cc
+       * 23_containers/multiset/explicit_instantiation
+       * 23_containers/multiset/explicit_instantiation/1.cc
+       * 23_containers/multiset/explicit_instantiation/2.cc
+       * 23_containers/multiset/explicit_instantiation/3.cc
+       * 23_containers/set/1.cc
+       * 23_containers/set/explicit_instantiation
+       * 23_containers/set/explicit_instantiation/1.cc
+       * 23_containers/set/explicit_instantiation/2.cc
+       * 23_containers/set/explicit_instantiation/3.cc
+       * 23_containers/vector/1.cc
+       * 23_containers/vector/explicit_instantiation
+       * 23_containers/vector/explicit_instantiation/1.cc
+       * 23_containers/vector/explicit_instantiation/2.cc
+       * 23_containers/vector/explicit_instantiation/3.cc
+       * 24_iterators/26020.cc
+       * 24_iterators/back_insert_iterator.cc
+       * 24_iterators/front_insert_iterator.cc
+       * 24_iterators/insert_iterator.cc
+       * 24_iterators/istreambuf_iterator/1.cc
+       * 24_iterators/istream_iterator.cc
+       * 24_iterators/iterator.cc
+       * 24_iterators/ostreambuf_iterator/1.cc
+       * 24_iterators/ostream_iterator.cc
+       * 24_iterators/reverse_iterator/1.cc
+       * 26_numerics/cmath
+       * 26_numerics/cmath/19322.cc
+       * 26_numerics/cmath/c99_classification_macros_c.cc
+       * 26_numerics/cmath/c99_classification_macros_c++.cc
+       * 26_numerics/cmath/c_math.cc
+       * 26_numerics/cmath/c_math_dynamic.cc
+       * 26_numerics/cmath/fabs_inline.cc
+       * 26_numerics/cmath/overloads.cc
+       * 26_numerics/cmath/powi.cc
+       * 26_numerics/cstdlib
+       * 26_numerics/cstdlib/13943.cc
+       * 26_numerics/numeric
+       * 26_numerics/numeric/sum_diff.cc
+       * 26_numerics/valarray
+       * 26_numerics/valarray/27867.cc
+       * 26_numerics/valarray/28277.cc
+       * 26_numerics/valarray/30416.cc
+       * 26_numerics/valarray/binary_closure.cc
+       * 26_numerics/valarray/dr543.cc
+       * 26_numerics/valarray/slice_array_assignment.cc
+       * 26_numerics/valarray/slice.cc
+       * 26_numerics/valarray/valarray.cc
+       * 26_numerics/valarray/valarray_const_bracket.cc
+       * 26_numerics/valarray/valarray_name_lookup.cc
+       * 26_numerics/valarray/valarray_operators.cc
+       * 26_numerics/valarray/valarray_subset_assignment.cc
+       * 27_io/basic_filebuf/1.cc
+       * 27_io/basic_filebuf/2.cc
+       * 27_io/basic_filebuf/3.cc
+       * 27_io/basic_filebuf/4.cc
+       * 27_io/basic_fstream/1.cc
+       * 27_io/basic_fstream/2.cc
+       * 27_io/basic_fstream/3.cc
+       * 27_io/basic_fstream/4.cc
+       * 27_io/basic_ifstream/1.cc
+       * 27_io/basic_ifstream/2.cc
+       * 27_io/basic_ifstream/3.cc
+       * 27_io/basic_ifstream/4.cc
+       * 27_io/basic_ios/1.cc
+       * 27_io/basic_ios/2.cc
+       * 27_io/basic_ios/3.cc
+       * 27_io/basic_ios/4.cc
+       * 27_io/basic_iostream/1.cc
+       * 27_io/basic_iostream/2.cc
+       * 27_io/basic_iostream/3.cc
+       * 27_io/basic_iostream/4.cc
+       * 27_io/basic_istream/1.cc
+       * 27_io/basic_istream/2.cc
+       * 27_io/basic_istream/3.cc
+       * 27_io/basic_istream/4.cc
+       * 27_io/basic_istringstream/1.cc
+       * 27_io/basic_istringstream/2.cc
+       * 27_io/basic_istringstream/3.cc
+       * 27_io/basic_istringstream/4.cc
+       * 27_io/basic_ofstream/1.cc
+       * 27_io/basic_ofstream/2.cc
+       * 27_io/basic_ofstream/3.cc
+       * 27_io/basic_ofstream/4.cc
+       * 27_io/basic_ostream/1.cc
+       * 27_io/basic_ostream/2.cc
+       * 27_io/basic_ostream/3.cc
+       * 27_io/basic_ostream/4.cc
+       * 27_io/basic_ostringstream/1.cc
+       * 27_io/basic_ostringstream/2.cc
+       * 27_io/basic_ostringstream/3.cc
+       * 27_io/basic_ostringstream/4.cc
+       * 27_io/basic_streambuf/1.cc
+       * 27_io/basic_streambuf/2.cc
+       * 27_io/basic_streambuf/3.cc
+       * 27_io/basic_stringbuf/1.cc
+       * 27_io/basic_stringbuf/2.cc
+       * 27_io/basic_stringbuf/3.cc
+       * 27_io/basic_stringbuf/4.cc
+       * 27_io/basic_stringbuf/5.cc
+       * 27_io/basic_stringstream/1.cc
+       * 27_io/basic_stringstream/2.cc
+       * 27_io/basic_stringstream/3.cc
+       * 27_io/basic_stringstream/4.cc
+       * 27_io/fpos/1.cc
+       * ext/debug_allocator/instantiate.cc
+       * ext/hash_map/instantiate.cc
+       * ext/hash_set/instantiate.cc
+       * ext/malloc_allocator/instantiate.cc
+       * ext/mt_allocator/instantiate.cc
+       * ext/pool_allocator/instantiate.cc
+       * ext/slist/instantiate.cc
+       * ext/stdio_filebuf/char/1.cc
+       * ext/vstring/explicit_instantiation
+       * ext/vstring/explicit_instantiation/1.cc
+       * ext/vstring/explicit_instantiation/2.cc
+       * ext/vstring/explicit_instantiation/char
+       * ext/vstring/explicit_instantiation/char/1.cc
+       * ext/vstring/explicit_instantiation/wchar_t
+       * ext/vstring/explicit_instantiation/wchar_t/1.cc
+       * tr1/2_general_utilities/memory/enable_shared_from_this/
+       explicit_instantiation
+       * tr1/2_general_utilities/memory/enable_shared_from_this/
+       explicit_instantiation/1.cc
+       * tr1/2_general_utilities/memory/shared_ptr/explicit_instantiation
+       * tr1/2_general_utilities/memory/shared_ptr/explicit_instantiation/1.cc
+       * tr1/2_general_utilities/memory/weak_ptr/explicit_instantiation
+       * tr1/2_general_utilities/memory/weak_ptr/explicit_instantiation/1.cc
+       * tr1/5_numerical_facilities/random/discard_block/requirements/
+       requirements.cc
+       * tr1/6_containers/array/requirements/instantiate.cc
+       * tr1/6_containers/unordered
+       * tr1/6_containers/unordered/23781.cc
+       * tr1/6_containers/unordered/capacity
+       * tr1/6_containers/unordered/capacity/29134-map.cc
+       * tr1/6_containers/unordered/capacity/29134-multimap.cc
+       * tr1/6_containers/unordered/capacity/29134-multiset.cc
+       * tr1/6_containers/unordered/capacity/29134-set.cc
+       * tr1/6_containers/unordered/erase
+       * tr1/6_containers/unordered/erase/24061-map.cc
+       * tr1/6_containers/unordered/erase/24061-multimap.cc
+       * tr1/6_containers/unordered/erase/24061-multiset.cc
+       * tr1/6_containers/unordered/erase/24061-set.cc
+       * tr1/6_containers/unordered/find
+       * tr1/6_containers/unordered/find/map1.cc
+       * tr1/6_containers/unordered/find/multimap1.cc
+       * tr1/6_containers/unordered/find/multiset1.cc
+       * tr1/6_containers/unordered/find/set1.cc
+       * tr1/6_containers/unordered/hash
+       * tr1/6_containers/unordered/hash/24799.cc
+       * tr1/6_containers/unordered/hashtable
+       * tr1/6_containers/unordered/hashtable/23053.cc
+       * tr1/6_containers/unordered/hashtable/23465.cc
+       * tr1/6_containers/unordered/hashtable/24054.cc
+       * tr1/6_containers/unordered/hashtable/24064.cc
+       * tr1/6_containers/unordered/hashtable/26127.cc
+       * tr1/6_containers/unordered/hashtable/26132.cc
+       * tr1/6_containers/unordered/hashtable/iterators_default_constructor.cc
+       * tr1/6_containers/unordered/insert
+       * tr1/6_containers/unordered/insert/24061-map.cc
+       * tr1/6_containers/unordered/insert/24061-multimap.cc
+       * tr1/6_containers/unordered/insert/24061-multiset.cc
+       * tr1/6_containers/unordered/insert/24061-set.cc
+       * tr1/6_containers/unordered/insert/array_syntax.cc
+       * tr1/6_containers/unordered/insert/map_range.cc
+       * tr1/6_containers/unordered/insert/map_single.cc
+       * tr1/6_containers/unordered/insert/multimap_range.cc
+       * tr1/6_containers/unordered/insert/multimap_single.cc
+       * tr1/6_containers/unordered/insert/multiset_range.cc
+       * tr1/6_containers/unordered/insert/multiset_single.cc
+       * tr1/6_containers/unordered/insert/set_range.cc
+       * tr1/6_containers/unordered/insert/set_single.cc
+       * tr1/6_containers/unordered/instantiate
+       * tr1/6_containers/unordered/instantiate/hash.cc
+       * tr1/6_containers/unordered/instantiate/map.cc
+       * tr1/6_containers/unordered/instantiate/multimap.cc
+       * tr1/6_containers/unordered/instantiate/multiset.cc
+       * tr1/6_containers/unordered/instantiate/set.cc
+       * tr1/6_containers/unordered/swap
+       * tr1/6_containers/unordered/swap/unordered_map
+       * tr1/6_containers/unordered/swap/unordered_map/1.cc
+       * tr1/6_containers/unordered/swap/unordered_map/2.cc
+       * tr1/6_containers/unordered/swap/unordered_multimap
+       * tr1/6_containers/unordered/swap/unordered_multimap/1.cc
+       * tr1/6_containers/unordered/swap/unordered_multimap/2.cc
+       * tr1/6_containers/unordered/swap/unordered_multiset
+       * tr1/6_containers/unordered/swap/unordered_multiset/1.cc
+       * tr1/6_containers/unordered/swap/unordered_multiset/2.cc
+       * tr1/6_containers/unordered/swap/unordered_set
+       * tr1/6_containers/unordered/swap/unordered_set/1.cc
+       * tr1/6_containers/unordered/swap/unordered_set/2.cc
+       * tr1/6_containers/unordered/types
+       * tr1/6_containers/unordered/types/map_iterator.cc
+       * tr1/6_containers/unordered/types/multimap_iterator.cc
+       * tr1/6_containers/unordered/types/multiset_iterator.cc
+       * tr1/6_containers/unordered/types/set_iterator.cc
+
+       * 24_iterators/reverse_iterator/2.cc: To just one
+       non-requirements test.
+       * ext/headers.cc: Add new includes.
+       
 2007-02-18  Paolo Carlini  <pcarlini@suse.de>
 
        PR libstdc++/28080 (partial)
diff --git a/libstdc++-v3/testsuite/17_intro/header_cassert.cc b/libstdc++-v3/testsuite/17_intro/header_cassert.cc
deleted file mode 100644 (file)
index 50f5db4..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-// 2001-02-06  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, cassert
-
-#include <cassert>
-
-namespace gnu
-{
-  void test01()
-  { 
-    assert (true);
-#ifndef assert
-    #error "assert_must_be_a_macro"
-#endif
-  }
-}
-  
-int main()
-{
-  gnu::test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/17_intro/header_cerrno.cc b/libstdc++-v3/testsuite/17_intro/header_cerrno.cc
deleted file mode 100644 (file)
index d8d28ce..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-// 2001-02-06  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, cerrno
-
-#include <cerrno>
-
-namespace gnu
-{
-  int test01()
-  { 
-    int i = errno;
-#ifndef errno
-    #error "errno_must_be_a_macro"
-#endif
-    return i;
-  }
-}
-  
-int main()
-{
-  gnu::test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/17_intro/header_csetjmp.cc b/libstdc++-v3/testsuite/17_intro/header_csetjmp.cc
deleted file mode 100644 (file)
index 28d3631..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-// 2001-02-06  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, csetjmp
-
-#include <csetjmp>
-
-namespace gnu
-{
-  void test01()
-  { 
-    std::jmp_buf env;
-    int i __attribute__((unused)) = setjmp(env);
-#ifndef setjmp
-    #error "setjmp_must_be_a_macro"
-#endif
-  }
-}
-  
-int main()
-{
-  gnu::test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/17_intro/header_cstdarg.cc b/libstdc++-v3/testsuite/17_intro/header_cstdarg.cc
deleted file mode 100644 (file)
index e23edbb..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-// 2001-02-06  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, cstdarg
-
-#include <cstdarg>
-
-namespace gnu
-{
-  void test01()
-  { 
-    std::va_list __attribute__((unused)) list;
-#ifndef va_arg
-    #error "va_arg_must_be_a_macro"
-#endif
-#ifndef va_end
-    #error "va_end_must_be_a_macro"
-#endif
-#ifndef va_start
-    #error "va_start_must_be_a_macro"
-#endif
-  }
-}
-  
-int main()
-{
-  gnu::test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/17_intro/header_cstddef.cc b/libstdc++-v3/testsuite/17_intro/header_cstddef.cc
deleted file mode 100644 (file)
index ec195bb..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-// 2001-02-06  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, cstddef
-
-#include <cstddef>
-
-namespace gnu
-{
-  struct test_type
-  {
-    int i;
-    int j;
-  };
-
-  void test01()
-  { 
-    std::size_t i __attribute__((unused)) = offsetof(struct test_type, i);
-#ifndef offsetof
-    #error "offsetof_must_be_a_macro"
-#endif
-  }
-}
-  
-int main()
-{
-  gnu::test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/17_intro/header_cstdio.cc b/libstdc++-v3/testsuite/17_intro/header_cstdio.cc
deleted file mode 100644 (file)
index 688df8d..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-// 2000-01-01 bkoz
-
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, cstdio
-
-#include <cstdio>
-
-int main(void)
-{
-  // Make sure size_t is in namespace std
-  std::size_t i __attribute__((unused)) = 5;
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/17_intro/header_cstdlib.cc b/libstdc++-v3/testsuite/17_intro/header_cstdlib.cc
deleted file mode 100644 (file)
index 82e21b6..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-// 2000-01-01 bkoz
-
-// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, cstdlib
-
-#include <cstdlib>
-
-// libstdc++/2190
-void test01()
-{
-  long a __attribute__((unused)) = std::abs(1L);
-  std::div(2L, 1L);
-  std::ldiv_t b __attribute__((unused));
-}
-
-void test02()
-{
-  // Make sure size_t is in namespace std.
-  std::size_t i __attribute__((unused)) = 5;
-}
-
-int main()
-{
-  test01();
-  test02();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/17_intro/header_cstring.cc b/libstdc++-v3/testsuite/17_intro/header_cstring.cc
deleted file mode 100644 (file)
index 0f58fc9..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-// 2000-01-01 bkoz
-
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, cstring
-
-#include <cstring>
-
-
-int main(void)
-{
-  // Make sure size_t is in namespace std
-  std::size_t i __attribute__((unused)) = std::strlen("tibet shop/san francisco (415) 982-0326");
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/17_intro/header_ctime.cc b/libstdc++-v3/testsuite/17_intro/header_ctime.cc
deleted file mode 100644 (file)
index 0df0157..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-// 2000-01-01 bkoz
-
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, ctime
-
-#include <ctime>
-
-int main(void)
-{
-  // Make sure size_t is in namespace std
-  std::size_t i __attribute__((unused)) = 5;
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/17_intro/header_cwchar.cc b/libstdc++-v3/testsuite/17_intro/header_cwchar.cc
deleted file mode 100644 (file)
index faf623c..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-// 2000-01-01 bkoz
-
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, cwchar
-
-#include <cwchar>
-
-int main(void)
-{
-  // Make sure size_t is in namespace std
-  std::size_t i __attribute__((unused)) = 5;
-
-  std::tm  __attribute__((unused)) mytime;
-
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/17_intro/header_cwctype.cc b/libstdc++-v3/testsuite/17_intro/header_cwctype.cc
deleted file mode 100644 (file)
index 850e58b..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-// 2000-01-03 bkoz
-
-// Copyright (C) 2001 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, cwctype
-
-#if _GLIBCXX_USE_WCHAR_T
-#include <cwctype>
-// Make sure wint_t is in namespace std
-std::wint_t i = 5;
-
-// Make sure table 46 is in namespace std.
-using std::wctype_t;
-using std::wctrans_t;
-using std::iswalpha;
-using std::iswupper;
-using std::iswlower;
-using std::iswdigit;
-using std::iswxdigit;
-using std::iswalnum;
-using std::iswspace;
-using std::iswpunct;
-using std::iswprint;
-using std::iswgraph;
-using std::iswcntrl;
-using std::iswctype;
-using std::towctrans;
-using std::towlower;
-using std::towupper;
-using std::wctrans;
-using std::wctype;
-#endif
-
-int main(void)
-{
-  return 0;
-}
-
diff --git a/libstdc++-v3/testsuite/17_intro/header_fstream.cc b/libstdc++-v3/testsuite/17_intro/header_fstream.cc
deleted file mode 100644 (file)
index c190d50..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-// 1999-07-01 bkoz
-
-// Copyright (C) 1999 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, fstream
-
-#include <fstream>
-#include <testsuite_hooks.h>
-
-
-int main(void)
-{
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/17_intro/header_iomanip.cc b/libstdc++-v3/testsuite/17_intro/header_iomanip.cc
deleted file mode 100644 (file)
index 6d46224..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-// 1999-07-01 bkoz
-
-// Copyright (C) 1999 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, iomanip
-
-#include <iomanip>
-#include <testsuite_hooks.h>
-
-
-int main(void)
-{
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/17_intro/header_ios.cc b/libstdc++-v3/testsuite/17_intro/header_ios.cc
deleted file mode 100644 (file)
index d04e14a..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-// 1999-07-01 bkoz
-
-// Copyright (C) 1999 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, ios
-
-#include <ios>
-#include <testsuite_hooks.h>
-
-
-int main(void)
-{
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/17_intro/header_iosfwd.cc b/libstdc++-v3/testsuite/17_intro/header_iosfwd.cc
deleted file mode 100644 (file)
index ccfd14a..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-// 1999-07-01 bkoz
-
-// Copyright (C) 1999 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, iosfwd
-
-#include <iosfwd> 
-#include <testsuite_hooks.h>
-
-
-int main(void)
-{
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/17_intro/header_iostream.cc b/libstdc++-v3/testsuite/17_intro/header_iostream.cc
deleted file mode 100644 (file)
index 2a6202d..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-// 1999-07-01 bkoz
-
-// Copyright (C) 1999 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, iostream
-
-#include <iostream>
-#include <testsuite_hooks.h>
-
-
-int main(void)
-{
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/17_intro/header_istream.cc b/libstdc++-v3/testsuite/17_intro/header_istream.cc
deleted file mode 100644 (file)
index 90326d6..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-// 1999-07-01 bkoz
-
-// Copyright (C) 1999 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, istream
-
-#include <istream>
-#include <testsuite_hooks.h>
-
-
-int main(void)
-{
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/17_intro/header_ostream.cc b/libstdc++-v3/testsuite/17_intro/header_ostream.cc
deleted file mode 100644 (file)
index 901bfec..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-// 1999-07-01 bkoz
-
-// Copyright (C) 1999 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, ostream
-
-#include <ostream>
-#include <testsuite_hooks.h>
-
-
-int main(void)
-{
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/17_intro/header_sstream.cc b/libstdc++-v3/testsuite/17_intro/header_sstream.cc
deleted file mode 100644 (file)
index d8689ae..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-// 1999-07-01 bkoz
-
-// Copyright (C) 1999 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, sstream
-
-#include <sstream>
-#include <testsuite_hooks.h>
-
-
-int main(void)
-{
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/17_intro/header_streambuf.cc b/libstdc++-v3/testsuite/17_intro/header_streambuf.cc
deleted file mode 100644 (file)
index ac67481..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-// 1999-07-01 bkoz
-
-// Copyright (C) 1999 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, streambuf
-
-#include <streambuf>
-#include <testsuite_hooks.h>
-
-
-int main(void)
-{
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/17_intro/headers.cc b/libstdc++-v3/testsuite/17_intro/headers.cc
deleted file mode 100644 (file)
index 4697540..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-// 1999-05-12 bkoz
-
-// Copyright (C) 1999 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// FreeBSD wants warning clean system headers:
-// { dg-options "-Wall -Wsystem-headers" { target *-*-freebsd* } }
-
-// 17.4.1.2 Headers
-
-
-// "C++" headers
-#include <algorithm>
-#include <bitset>
-#include <complex>
-#include <deque>
-#include <exception>
-#include <fstream>
-#include <functional>
-#include <iomanip>
-#include <ios>
-#include <iosfwd>
-#include <iostream>
-#include <istream>
-#include <iterator>
-#include <limits>
-#include <list>
-#include <locale>
-#include <map>
-#include <memory>
-#include <new>
-#include <numeric>
-#include <ostream>
-#include <queue>
-#include <set>
-#include <sstream>
-#include <stack>
-#include <stdexcept>
-#include <streambuf>
-#include <string>
-#include <typeinfo>
-#include <utility>
-#include <valarray>
-#include <vector>
-
-// "C" headers
-#include <cassert>
-#include <cctype>
-#include <cerrno>
-#include <cfloat>
-#include <ciso646>
-#include <climits>
-#include <clocale>
-#include <cmath>
-#include <csetjmp>
-#include <csignal>
-#include <cstdarg>
-#include <cstddef>
-#include <cstdio>
-#include <cstdlib>
-#include <cstring>
-#include <ctime>
-
-// "C" headers that might not work if wchar_t support is disabled.
-#include <bits/c++config.h>
-#if _GLIBCXX_USE_WCHAR_T
-  #include <cwchar>
-  #include <cwctype>
-#endif
-
-int main() { return 0; }
diff --git a/libstdc++-v3/testsuite/17_intro/headers/all.cc b/libstdc++-v3/testsuite/17_intro/headers/all.cc
new file mode 100644 (file)
index 0000000..c0ef4bf
--- /dev/null
@@ -0,0 +1,145 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// Make sure all the includes can be compiled with -Wc++0x-compat
+// libstdc++/30571
+
+// C
+#include <cassert>
+#include <cctype>
+#include <cerrno>
+#include <cfloat>
+#include <ciso646>
+#include <climits>
+#include <clocale>
+#include <cmath>
+#include <csetjmp>
+#include <csignal>
+#include <cstdarg>
+#include <cstddef>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <ctime>
+
+// C++
+#include <algorithm>
+#include <bitset>
+#include <complex>
+#include <deque>
+#include <exception>
+#include <fstream>
+#include <functional>
+#include <iomanip>
+#include <ios>
+#include <iosfwd>
+#include <iostream>
+#include <istream>
+#include <iterator>
+#include <limits>
+#include <list>
+#include <locale>
+#include <map>
+#include <memory>
+#include <new>
+#include <numeric>
+#include <ostream>
+#include <queue>
+#include <set>
+#include <sstream>
+#include <stack>
+#include <stdexcept>
+#include <streambuf>
+#include <string>
+#include <typeinfo>
+#include <utility>
+#include <valarray>
+#include <vector>
+
+// TR1
+#include <tr1/array>
+#include <tr1/cctype>
+#include <tr1/cfenv>
+#include <tr1/cfloat>
+#include <tr1/cinttypes>
+#include <tr1/climits>
+#include <tr1/cmath>
+#include <tr1/complex>
+#include <tr1/cstdarg>
+#include <tr1/cstdbool>
+#include <tr1/cstdint>
+#include <tr1/cstdio>
+#include <tr1/cstdlib>
+#include <tr1/ctgmath>
+#include <tr1/ctime>
+#include <tr1/cwchar>
+#include <tr1/cwctype>
+#include <tr1/functional>
+#include <tr1/random>
+#include <tr1/tuple>
+#include <tr1/unordered_map>
+#include <tr1/unordered_set>
+#include <tr1/utility>
+
+// Extensions
+#include <ext/algorithm>
+#include <ext/array_allocator.h>
+#include <ext/atomicity.h>
+#include <ext/bitmap_allocator.h>
+#include <ext/codecvt_specializations.h>
+#include <ext/concurrence.h>
+#include <ext/debug_allocator.h>
+#include <ext/enc_filebuf.h>
+#include <ext/functional>
+#include <ext/hash_map>
+#include <ext/hash_set>
+#include <ext/iterator>
+#include <ext/malloc_allocator.h>
+#include <ext/memory>
+#include <ext/mt_allocator.h>
+#include <ext/new_allocator.h>
+#include <ext/numeric>
+#include <ext/pod_char_traits.h>
+#include <ext/pool_allocator.h>
+#include <ext/rb_tree>
+#include <ext/rope>
+#include <ext/slist>
+#include <ext/stdio_filebuf.h>
+#include <ext/stdio_sync_filebuf.h>
+#include <ext/throw_allocator.h>
+#include <ext/typelist.h>
+#include <ext/type_traits.h>
+#include <ext/vstring.h>
+#include <ext/pb_ds/assoc_container.hpp>
+#include <ext/pb_ds/priority_queue.hpp>
+#include <ext/pb_ds/exception.hpp>
+#include <ext/pb_ds/hash_policy.hpp>
+#include <ext/pb_ds/list_update_policy.hpp>
+#include <ext/pb_ds/tree_policy.hpp>
+#include <ext/pb_ds/trie_policy.hpp>
diff --git a/libstdc++-v3/testsuite/17_intro/headers/all_assert_neg.cc b/libstdc++-v3/testsuite/17_intro/headers/all_assert_neg.cc
new file mode 100644 (file)
index 0000000..d259c2c
--- /dev/null
@@ -0,0 +1,89 @@
+// { dg-do compile }
+// { dg-options "-D__GLIBCXX__=99999999" }
+// NB: This is done to force any generated and possibly included PCH
+// to be invalid.
+
+// 2005-05-24 bkoz
+
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 17.4.1.2 Headers
+
+// This file tests that assert is not included in any of the standard
+// includes by accident.
+
+// C++ headers
+#include <algorithm>
+#include <bitset>
+#include <complex>
+#include <deque>
+#include <exception>
+#include <fstream>
+#include <functional>
+#include <iomanip>
+#include <ios>
+#include <iosfwd>
+#include <iostream>
+#include <istream>
+#include <iterator>
+#include <limits>
+#include <list>
+#include <locale>
+#include <map>
+#include <memory>
+#include <new>
+#include <numeric>
+#include <ostream>
+#include <queue>
+#include <set>
+#include <sstream>
+#include <stack>
+#include <stdexcept>
+#include <streambuf>
+#include <string>
+#include <typeinfo>
+#include <utility>
+#include <valarray>
+#include <vector>
+
+// C headers
+#include <cctype>
+#include <cerrno>
+#include <cfloat>
+#include <ciso646>
+#include <climits>
+#include <clocale>
+#include <cmath>
+#include <csetjmp>
+#include <csignal>
+#include <cstdarg>
+#include <cstddef>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <ctime>
+
+void foo()
+{
+ assert(true);  
+}
+
+// { dg-error "not declared" "" { target *-*-* } 84 } 
+
+
diff --git a/libstdc++-v3/testsuite/17_intro/headers/all_c++200x_compatibility.cc b/libstdc++-v3/testsuite/17_intro/headers/all_c++200x_compatibility.cc
new file mode 100644 (file)
index 0000000..1052cd7
--- /dev/null
@@ -0,0 +1,146 @@
+// { dg-do compile }
+// { dg-options "-Wc++0x-compat -Werror" }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// Make sure all the includes can be compiled with -Wc++0x-compat
+// libstdc++/30571
+
+// C
+#include <cassert>
+#include <cctype>
+#include <cerrno>
+#include <cfloat>
+#include <ciso646>
+#include <climits>
+#include <clocale>
+#include <cmath>
+#include <csetjmp>
+#include <csignal>
+#include <cstdarg>
+#include <cstddef>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <ctime>
+
+// C++
+#include <algorithm>
+#include <bitset>
+#include <complex>
+#include <deque>
+#include <exception>
+#include <fstream>
+#include <functional>
+#include <iomanip>
+#include <ios>
+#include <iosfwd>
+#include <iostream>
+#include <istream>
+#include <iterator>
+#include <limits>
+#include <list>
+#include <locale>
+#include <map>
+#include <memory>
+#include <new>
+#include <numeric>
+#include <ostream>
+#include <queue>
+#include <set>
+#include <sstream>
+#include <stack>
+#include <stdexcept>
+#include <streambuf>
+#include <string>
+#include <typeinfo>
+#include <utility>
+#include <valarray>
+#include <vector>
+
+// TR1
+#include <tr1/array>
+#include <tr1/cctype>
+#include <tr1/cfenv>
+#include <tr1/cfloat>
+#include <tr1/cinttypes>
+#include <tr1/climits>
+#include <tr1/cmath>
+#include <tr1/complex>
+#include <tr1/cstdarg>
+#include <tr1/cstdbool>
+#include <tr1/cstdint>
+#include <tr1/cstdio>
+#include <tr1/cstdlib>
+#include <tr1/ctgmath>
+#include <tr1/ctime>
+#include <tr1/cwchar>
+#include <tr1/cwctype>
+#include <tr1/functional>
+#include <tr1/random>
+#include <tr1/tuple>
+#include <tr1/unordered_map>
+#include <tr1/unordered_set>
+#include <tr1/utility>
+
+// Extensions
+#include <ext/algorithm>
+#include <ext/array_allocator.h>
+#include <ext/atomicity.h>
+#include <ext/bitmap_allocator.h>
+#include <ext/codecvt_specializations.h>
+#include <ext/concurrence.h>
+#include <ext/debug_allocator.h>
+#include <ext/enc_filebuf.h>
+#include <ext/functional>
+#include <ext/hash_map>
+#include <ext/hash_set>
+#include <ext/iterator>
+#include <ext/malloc_allocator.h>
+#include <ext/memory>
+#include <ext/mt_allocator.h>
+#include <ext/new_allocator.h>
+#include <ext/numeric>
+#include <ext/pod_char_traits.h>
+#include <ext/pool_allocator.h>
+#include <ext/rb_tree>
+#include <ext/rope>
+#include <ext/slist>
+#include <ext/stdio_filebuf.h>
+#include <ext/stdio_sync_filebuf.h>
+#include <ext/throw_allocator.h>
+#include <ext/typelist.h>
+#include <ext/type_traits.h>
+#include <ext/vstring.h>
+#include <ext/pb_ds/assoc_container.hpp>
+#include <ext/pb_ds/priority_queue.hpp>
+#include <ext/pb_ds/exception.hpp>
+#include <ext/pb_ds/hash_policy.hpp>
+#include <ext/pb_ds/list_update_policy.hpp>
+#include <ext/pb_ds/tree_policy.hpp>
+#include <ext/pb_ds/trie_policy.hpp>
diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++1998/all.cc b/libstdc++-v3/testsuite/17_intro/headers/c++1998/all.cc
new file mode 100644 (file)
index 0000000..2704e49
--- /dev/null
@@ -0,0 +1,100 @@
+// { dg-do compile }
+// 1999-05-12 bkoz
+
+// Copyright (C) 1999, 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// FreeBSD wants warning clean system headers:
+// { dg-options "-Wall -Wsystem-headers" { target *-*-freebsd* } }
+
+// 17.4.1.2 Headers
+
+// "C" headers
+#include <cassert>
+#include <cctype>
+#include <cerrno>
+#include <cfloat>
+#include <ciso646>
+#include <climits>
+#include <clocale>
+#include <cmath>
+#include <csetjmp>
+#include <csignal>
+#include <cstdarg>
+#include <cstddef>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <ctime>
+#include <cwchar>
+#include <cwctype>
+
+// "C" compatibility headers
+#include <assert.h>
+#include <ctype.h>
+#include <errno.h>
+#include <float.h>
+#include <iso646.h>
+#include <limits.h>
+#include <locale.h>
+#include <math.h>
+#include <setjmp.h>
+#include <signal.h>
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <wchar.h>
+#include <wctype.h>
+
+// "C++" headers
+#include <algorithm>
+#include <bitset>
+#include <complex>
+#include <deque>
+#include <exception>
+#include <fstream>
+#include <functional>
+#include <iomanip>
+#include <ios>
+#include <iosfwd>
+#include <iostream>
+#include <istream>
+#include <iterator>
+#include <limits>
+#include <list>
+#include <locale>
+#include <map>
+#include <memory>
+#include <new>
+#include <numeric>
+#include <ostream>
+#include <queue>
+#include <set>
+#include <sstream>
+#include <stack>
+#include <stdexcept>
+#include <streambuf>
+#include <string>
+#include <typeinfo>
+#include <utility>
+#include <valarray>
+#include <vector>
+
diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++1998/all_multiple_inclusion.cc b/libstdc++-v3/testsuite/17_intro/headers/c++1998/all_multiple_inclusion.cc
new file mode 100644 (file)
index 0000000..a1cb289
--- /dev/null
@@ -0,0 +1,174 @@
+// { dg-do compile }
+// 1999-05-12 bkoz
+
+// Copyright (C) 1999, 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// FreeBSD wants warning clean system headers:
+// { dg-options "-Wall -Wsystem-headers" { target *-*-freebsd* } }
+
+// 17.4.1.2 Headers
+
+// "C" headers
+#include <cassert>
+#include <cctype>
+#include <cerrno>
+#include <cfloat>
+#include <ciso646>
+#include <climits>
+#include <clocale>
+#include <cmath>
+#include <csetjmp>
+#include <csignal>
+#include <cstdarg>
+#include <cstddef>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <ctime>
+#include <cwchar>
+#include <cwctype>
+
+// "C" compatibility headers
+#include <assert.h>
+#include <ctype.h>
+#include <errno.h>
+#include <float.h>
+#include <iso646.h>
+#include <limits.h>
+#include <locale.h>
+#include <math.h>
+#include <setjmp.h>
+#include <signal.h>
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <wchar.h>
+#include <wctype.h>
+
+// "C++" headers
+#include <algorithm>
+#include <bitset>
+#include <complex>
+#include <deque>
+#include <exception>
+#include <fstream>
+#include <functional>
+#include <iomanip>
+#include <ios>
+#include <iosfwd>
+#include <iostream>
+#include <istream>
+#include <iterator>
+#include <limits>
+#include <list>
+#include <locale>
+#include <map>
+#include <memory>
+#include <new>
+#include <numeric>
+#include <ostream>
+#include <queue>
+#include <set>
+#include <sstream>
+#include <stack>
+#include <stdexcept>
+#include <streambuf>
+#include <string>
+#include <typeinfo>
+#include <utility>
+#include <valarray>
+#include <vector>
+
+
+// "C" headers
+#include <cassert>
+#include <cctype>
+#include <cerrno>
+#include <cfloat>
+#include <ciso646>
+#include <climits>
+#include <clocale>
+#include <cmath>
+#include <csetjmp>
+#include <csignal>
+#include <cstdarg>
+#include <cstddef>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <ctime>
+#include <cwchar>
+#include <cwctype>
+
+// "C" compatibility headers
+#include <assert.h>
+#include <ctype.h>
+#include <errno.h>
+#include <float.h>
+#include <iso646.h>
+#include <limits.h>
+#include <locale.h>
+#include <math.h>
+#include <setjmp.h>
+#include <signal.h>
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <wchar.h>
+#include <wctype.h>
+
+// "C++" headers
+#include <algorithm>
+#include <bitset>
+#include <complex>
+#include <deque>
+#include <exception>
+#include <fstream>
+#include <functional>
+#include <iomanip>
+#include <ios>
+#include <iosfwd>
+#include <iostream>
+#include <istream>
+#include <iterator>
+#include <limits>
+#include <list>
+#include <locale>
+#include <map>
+#include <memory>
+#include <new>
+#include <numeric>
+#include <ostream>
+#include <queue>
+#include <set>
+#include <sstream>
+#include <stack>
+#include <stdexcept>
+#include <streambuf>
+#include <string>
+#include <typeinfo>
+#include <utility>
+#include <valarray>
+#include <vector>
diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++1998/c++.tar b/libstdc++-v3/testsuite/17_intro/headers/c++1998/c++.tar
new file mode 100644 (file)
index 0000000..bbe7c5a
Binary files /dev/null and b/libstdc++-v3/testsuite/17_intro/headers/c++1998/c++.tar differ
diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++1998/c++_for_c.tar b/libstdc++-v3/testsuite/17_intro/headers/c++1998/c++_for_c.tar
new file mode 100644 (file)
index 0000000..9f25ab9
Binary files /dev/null and b/libstdc++-v3/testsuite/17_intro/headers/c++1998/c++_for_c.tar differ
diff --git a/libstdc++-v3/testsuite/17_intro/headers_c++.cc b/libstdc++-v3/testsuite/17_intro/headers_c++.cc
deleted file mode 100644 (file)
index 03c902a..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-// 2001-01-01 bkoz
-
-// Copyright (C) 2001 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers
-
-// This file tests C++ inclusion then C inclusion.
-
-// C++ headers
-#include <cassert>
-#include <cctype>
-#include <cerrno>
-#include <cfloat>
-#include <ciso646>
-#include <climits>
-#include <clocale>
-#include <cmath>
-#include <csetjmp>
-#include <csignal>
-#include <cstdarg>
-#include <cstddef>
-#include <cstdio>
-#include <cstdlib>
-#include <cstring>
-#include <ctime>
-
-// "C" headers
-#include <assert.h>
-#include <ctype.h>
-#include <errno.h>
-#include <float.h>
-#include <iso646.h>
-#include <limits.h>
-#include <locale.h>
-#include <math.h>
-#include <setjmp.h>
-#include <signal.h>
-#include <stdarg.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-
-// "C++" headers that might not work if wchar_t support is disabled.
-#include <bits/c++config.h>
-#if _GLIBCXX_USE_WCHAR_T
-  #include <cwchar>
-  #include <cwctype>
-  #include <wchar.h>
-  #include <wctype.h>
-#endif
-
-// libstdc++/2992
-namespace bar
-{
-  int foo(const char *x)
-  { return strlen(x); }
-};
-
-
-int main() { return 0; }
-
-
-
-
-
-
diff --git a/libstdc++-v3/testsuite/17_intro/headers_c++_c++0x_compat.cc b/libstdc++-v3/testsuite/17_intro/headers_c++_c++0x_compat.cc
deleted file mode 100644 (file)
index 1052cd7..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-// { dg-do compile }
-// { dg-options "-Wc++0x-compat -Werror" }
-
-// Copyright (C) 2007 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Make sure all the includes can be compiled with -Wc++0x-compat
-// libstdc++/30571
-
-// C
-#include <cassert>
-#include <cctype>
-#include <cerrno>
-#include <cfloat>
-#include <ciso646>
-#include <climits>
-#include <clocale>
-#include <cmath>
-#include <csetjmp>
-#include <csignal>
-#include <cstdarg>
-#include <cstddef>
-#include <cstdio>
-#include <cstdlib>
-#include <cstring>
-#include <ctime>
-
-// C++
-#include <algorithm>
-#include <bitset>
-#include <complex>
-#include <deque>
-#include <exception>
-#include <fstream>
-#include <functional>
-#include <iomanip>
-#include <ios>
-#include <iosfwd>
-#include <iostream>
-#include <istream>
-#include <iterator>
-#include <limits>
-#include <list>
-#include <locale>
-#include <map>
-#include <memory>
-#include <new>
-#include <numeric>
-#include <ostream>
-#include <queue>
-#include <set>
-#include <sstream>
-#include <stack>
-#include <stdexcept>
-#include <streambuf>
-#include <string>
-#include <typeinfo>
-#include <utility>
-#include <valarray>
-#include <vector>
-
-// TR1
-#include <tr1/array>
-#include <tr1/cctype>
-#include <tr1/cfenv>
-#include <tr1/cfloat>
-#include <tr1/cinttypes>
-#include <tr1/climits>
-#include <tr1/cmath>
-#include <tr1/complex>
-#include <tr1/cstdarg>
-#include <tr1/cstdbool>
-#include <tr1/cstdint>
-#include <tr1/cstdio>
-#include <tr1/cstdlib>
-#include <tr1/ctgmath>
-#include <tr1/ctime>
-#include <tr1/cwchar>
-#include <tr1/cwctype>
-#include <tr1/functional>
-#include <tr1/random>
-#include <tr1/tuple>
-#include <tr1/unordered_map>
-#include <tr1/unordered_set>
-#include <tr1/utility>
-
-// Extensions
-#include <ext/algorithm>
-#include <ext/array_allocator.h>
-#include <ext/atomicity.h>
-#include <ext/bitmap_allocator.h>
-#include <ext/codecvt_specializations.h>
-#include <ext/concurrence.h>
-#include <ext/debug_allocator.h>
-#include <ext/enc_filebuf.h>
-#include <ext/functional>
-#include <ext/hash_map>
-#include <ext/hash_set>
-#include <ext/iterator>
-#include <ext/malloc_allocator.h>
-#include <ext/memory>
-#include <ext/mt_allocator.h>
-#include <ext/new_allocator.h>
-#include <ext/numeric>
-#include <ext/pod_char_traits.h>
-#include <ext/pool_allocator.h>
-#include <ext/rb_tree>
-#include <ext/rope>
-#include <ext/slist>
-#include <ext/stdio_filebuf.h>
-#include <ext/stdio_sync_filebuf.h>
-#include <ext/throw_allocator.h>
-#include <ext/typelist.h>
-#include <ext/type_traits.h>
-#include <ext/vstring.h>
-#include <ext/pb_ds/assoc_container.hpp>
-#include <ext/pb_ds/priority_queue.hpp>
-#include <ext/pb_ds/exception.hpp>
-#include <ext/pb_ds/hash_policy.hpp>
-#include <ext/pb_ds/list_update_policy.hpp>
-#include <ext/pb_ds/tree_policy.hpp>
-#include <ext/pb_ds/trie_policy.hpp>
diff --git a/libstdc++-v3/testsuite/17_intro/headers_c.cc b/libstdc++-v3/testsuite/17_intro/headers_c.cc
deleted file mode 100644 (file)
index 369639c..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-// 2000-12-20 bkoz
-
-// Copyright (C) 2000, 2001 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers
-
-// This file tests C inclusion then C++ inclusion.
-
-// "C" headers
-#include <assert.h>
-#include <ctype.h>
-#include <errno.h>
-#include <float.h>
-#include <iso646.h>
-#include <limits.h>
-#include <locale.h>
-#include <math.h>
-#include <setjmp.h>
-#include <signal.h>
-#include <stdarg.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-
-// C++ headers
-#include <cassert>
-#include <cctype>
-#include <cerrno>
-#include <cfloat>
-#include <ciso646>
-#include <climits>
-#include <clocale>
-#include <cmath>
-#include <csetjmp>
-#include <csignal>
-#include <cstdarg>
-#include <cstddef>
-#include <cstdio>
-#include <cstdlib>
-#include <cstring>
-#include <ctime>
-
-// "C" headers that might not work if wchar_t support is disabled.
-#include <bits/c++config.h>
-#if _GLIBCXX_USE_WCHAR_T
-  #include <wchar.h>
-  #include <wctype.h>
-  #include <cwchar>
-  #include <cwctype>
-#endif
-
-// libstdc++/2992
-namespace bar
-{
-  int foo(const char *x)
-  { return strlen(x); }
-};
-
-
-int main() { return 0; }
diff --git a/libstdc++-v3/testsuite/17_intro/no_assert_neg.cc b/libstdc++-v3/testsuite/17_intro/no_assert_neg.cc
deleted file mode 100644 (file)
index d259c2c..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-// { dg-do compile }
-// { dg-options "-D__GLIBCXX__=99999999" }
-// NB: This is done to force any generated and possibly included PCH
-// to be invalid.
-
-// 2005-05-24 bkoz
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers
-
-// This file tests that assert is not included in any of the standard
-// includes by accident.
-
-// C++ headers
-#include <algorithm>
-#include <bitset>
-#include <complex>
-#include <deque>
-#include <exception>
-#include <fstream>
-#include <functional>
-#include <iomanip>
-#include <ios>
-#include <iosfwd>
-#include <iostream>
-#include <istream>
-#include <iterator>
-#include <limits>
-#include <list>
-#include <locale>
-#include <map>
-#include <memory>
-#include <new>
-#include <numeric>
-#include <ostream>
-#include <queue>
-#include <set>
-#include <sstream>
-#include <stack>
-#include <stdexcept>
-#include <streambuf>
-#include <string>
-#include <typeinfo>
-#include <utility>
-#include <valarray>
-#include <vector>
-
-// C headers
-#include <cctype>
-#include <cerrno>
-#include <cfloat>
-#include <ciso646>
-#include <climits>
-#include <clocale>
-#include <cmath>
-#include <csetjmp>
-#include <csignal>
-#include <cstdarg>
-#include <cstddef>
-#include <cstdio>
-#include <cstdlib>
-#include <cstring>
-#include <ctime>
-
-void foo()
-{
- assert(true);  
-}
-
-// { dg-error "not declared" "" { target *-*-* } 84 } 
-
-
diff --git a/libstdc++-v3/testsuite/17_intro/using_namespace_std.cc b/libstdc++-v3/testsuite/17_intro/using_namespace_std.cc
new file mode 100644 (file)
index 0000000..26a2c65
--- /dev/null
@@ -0,0 +1,26 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <new>
+
+namespace gnu
+{
+  using namespace std;
+}
diff --git a/libstdc++-v3/testsuite/18_support/headers/cfloat/values.cc b/libstdc++-v3/testsuite/18_support/headers/cfloat/values.cc
new file mode 100644 (file)
index 0000000..7a06a68
--- /dev/null
@@ -0,0 +1,54 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cfloat>
+
+namespace gnu
+{
+  double d1 = DBL_DIG;
+  double d2 = DBL_EPSILON;
+  double d3 = DBL_MANT_DIG;
+  double d4 = DBL_MAX;
+  double d5 = DBL_MAX_10_EXP;
+  double d6 = DBL_MAX_EXP;
+  double d7 = DBL_MIN;
+  double d8 = DBL_MIN_10_EXP;
+  double d9 = DBL_MIN_EXP;
+
+  float f1 = FLT_DIG;
+  float f2 = FLT_EPSILON;
+  float f3 = FLT_MANT_DIG;
+  float f4 = FLT_MAX;
+  float f5 = FLT_MAX_10_EXP;
+  float f6 = FLT_MAX_EXP;
+  float f7 = FLT_MIN;
+  float f8 = FLT_MIN_10_EXP;
+  float f9 = FLT_MIN_EXP;
+
+  long double ld1 = LDBL_DIG;
+  long double ld2 = LDBL_EPSILON;
+  long double ld3 = LDBL_MANT_DIG;
+  long double ld4 = LDBL_MAX;
+  long double ld5 = LDBL_MAX_10_EXP;
+  long double ld6 = LDBL_MAX_EXP;
+  long double ld7 = LDBL_MIN;
+  long double ld8 = LDBL_MIN_10_EXP;
+  long double ld9 = LDBL_MIN_EXP;
+}
diff --git a/libstdc++-v3/testsuite/18_support/headers/climits/values.cc b/libstdc++-v3/testsuite/18_support/headers/climits/values.cc
new file mode 100644 (file)
index 0000000..2d15600
--- /dev/null
@@ -0,0 +1,53 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <climits>
+
+namespace gnu
+{
+  // char
+  char c1 = CHAR_BIT;
+  char c2 = CHAR_MAX;
+  char c3 = CHAR_MIN;
+
+  // int
+  int i2 = INT_MAX;
+  int i3 = INT_MIN;
+
+  // short
+  short s2 = SHRT_MAX;
+  short s3 = SHRT_MIN;
+
+  // long
+  long l2 = LONG_MAX;
+  long l3 = LONG_MIN;
+
+  unsigned long mb = MB_LEN_MAX;
+
+  // signed char
+  signed char sc1 = SCHAR_MIN;
+  signed char sc2 = SCHAR_MAX;
+
+  // unsigned
+  unsigned int ui = UINT_MAX;
+  unsigned short us = USHRT_MAX;
+  unsigned long ul = ULONG_MAX;
+
+}
diff --git a/libstdc++-v3/testsuite/18_support/headers/csetjmp/functions_std.cc b/libstdc++-v3/testsuite/18_support/headers/csetjmp/functions_std.cc
new file mode 100644 (file)
index 0000000..d0a2494
--- /dev/null
@@ -0,0 +1,26 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <csetjmp>
+
+namespace gnu
+{
+  using std::longjmp;
+}
diff --git a/libstdc++-v3/testsuite/18_support/headers/csetjmp/macros.cc b/libstdc++-v3/testsuite/18_support/headers/csetjmp/macros.cc
new file mode 100644 (file)
index 0000000..01a9013
--- /dev/null
@@ -0,0 +1,28 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <csetjmp>
+
+namespace gnu
+{
+#ifndef setjmp
+    #error "setjmp_must_be_a_macro"
+#endif
+}
diff --git a/libstdc++-v3/testsuite/18_support/headers/csetjmp/types_std.cc b/libstdc++-v3/testsuite/18_support/headers/csetjmp/types_std.cc
new file mode 100644 (file)
index 0000000..ecf7f66
--- /dev/null
@@ -0,0 +1,26 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <csetjmp>
+
+namespace gnu
+{
+  std::jmp_buf j;
+}
diff --git a/libstdc++-v3/testsuite/18_support/headers/csignal/functions_std.cc b/libstdc++-v3/testsuite/18_support/headers/csignal/functions_std.cc
new file mode 100644 (file)
index 0000000..6823376
--- /dev/null
@@ -0,0 +1,27 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <csignal>
+
+namespace gnu
+{
+  using std::raise;
+  using std::signal;
+}
diff --git a/libstdc++-v3/testsuite/18_support/headers/csignal/macros.cc b/libstdc++-v3/testsuite/18_support/headers/csignal/macros.cc
new file mode 100644 (file)
index 0000000..8842611
--- /dev/null
@@ -0,0 +1,56 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <csignal>
+
+namespace gnu
+{
+#ifndef SIGABRT
+    #error "SIGABRT_must_be_a_macro"
+#endif
+
+#ifndef SIGILL
+    #error "SIGILL_must_be_a_macro"
+#endif
+
+#ifndef SIGSEGV
+    #error "SIGSEGV_must_be_a_macro"
+#endif
+
+#ifndef SIG_DFL
+    #error "SIG_DFL_must_be_a_macro"
+#endif
+
+#ifndef SIGFPE
+    #error "SIGFPE_must_be_a_macro"
+#endif
+
+#ifndef SIGINT
+    #error "SIGINT_must_be_a_macro"
+#endif
+
+#ifndef SIGTERM
+    #error "SIGTERM_must_be_a_macro"
+#endif
+
+#ifndef SIG_ERR
+    #error "SIG_ERR_must_be_a_macro"
+#endif
+}
diff --git a/libstdc++-v3/testsuite/18_support/headers/csignal/types_std.cc b/libstdc++-v3/testsuite/18_support/headers/csignal/types_std.cc
new file mode 100644 (file)
index 0000000..7562727
--- /dev/null
@@ -0,0 +1,26 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <csignal>
+
+namespace gnu
+{
+  std::sig_atomic_t s;
+}
diff --git a/libstdc++-v3/testsuite/18_support/headers/cstdarg/macros.cc b/libstdc++-v3/testsuite/18_support/headers/cstdarg/macros.cc
new file mode 100644 (file)
index 0000000..add2f90
--- /dev/null
@@ -0,0 +1,36 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstdarg>
+
+namespace gnu
+{
+#ifndef va_arg
+    #error "va_arg_must_be_a_macro"
+#endif
+
+#ifndef va_start
+    #error "va_start_must_be_a_macro"
+#endif
+
+#ifndef va_end
+    #error "va_end_must_be_a_macro"
+#endif
+}
diff --git a/libstdc++-v3/testsuite/18_support/headers/cstdarg/types_std.cc b/libstdc++-v3/testsuite/18_support/headers/cstdarg/types_std.cc
new file mode 100644 (file)
index 0000000..5215152
--- /dev/null
@@ -0,0 +1,26 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstdarg>
+
+namespace gnu
+{
+  std::va_list v;
+}
diff --git a/libstdc++-v3/testsuite/18_support/headers/cstddef/macros.cc b/libstdc++-v3/testsuite/18_support/headers/cstddef/macros.cc
new file mode 100644 (file)
index 0000000..4751d16
--- /dev/null
@@ -0,0 +1,51 @@
+// { dg-do compile }
+// 2001-02-06  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003, 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstddef>
+
+namespace gnu
+{
+  struct test_type
+  {
+    int i;
+    int j;
+  };
+
+  // offsetof
+  void test01()
+  { 
+    std::size_t i __attribute__((unused)) = offsetof(struct test_type, i);
+#ifndef offsetof
+    #error "offsetof_must_be_a_macro"
+#endif
+  }
+
+  // NULL
+  void test02()
+  {
+    // Must not be (void*)0
+    const int j = NULL;
+
+#ifndef NULL
+    #error "NULL_must_be_a_macro"
+#endif
+  }
+}
diff --git a/libstdc++-v3/testsuite/18_support/headers/cstddef/types_std.cc b/libstdc++-v3/testsuite/18_support/headers/cstddef/types_std.cc
new file mode 100644 (file)
index 0000000..a00dd16
--- /dev/null
@@ -0,0 +1,27 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstddef>
+
+namespace gnu
+{
+  std::size_t s;
+  std::ptrdiff_t p;
+}
diff --git a/libstdc++-v3/testsuite/18_support/headers/cstdlib/functions_std.cc b/libstdc++-v3/testsuite/18_support/headers/cstdlib/functions_std.cc
new file mode 100644 (file)
index 0000000..9956158
--- /dev/null
@@ -0,0 +1,31 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstdlib>
+
+namespace gnu
+{
+  using std::abort;
+  using std::atexit;
+  using std::exit;
+
+  using std::getenv;
+  using std::system;
+}
diff --git a/libstdc++-v3/testsuite/18_support/headers/cstdlib/macros.cc b/libstdc++-v3/testsuite/18_support/headers/cstdlib/macros.cc
new file mode 100644 (file)
index 0000000..419ee74
--- /dev/null
@@ -0,0 +1,33 @@
+// { dg-do compile }
+// 2001-02-06  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003, 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstddef>
+
+namespace gnu
+{
+#ifndef EXIT_FAILURE
+    #error "EXIT_FAILURE_must_be_a_macro"
+#endif
+
+#ifndef EXIT_SUCCESS
+    #error "EXIT_SUCCESS_must_be_a_macro"
+#endif
+}
diff --git a/libstdc++-v3/testsuite/18_support/headers/ctime/functions_std.cc b/libstdc++-v3/testsuite/18_support/headers/ctime/functions_std.cc
new file mode 100644 (file)
index 0000000..5a7e56d
--- /dev/null
@@ -0,0 +1,26 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <ctime>
+
+namespace gnu
+{
+  using std::clock;
+}
diff --git a/libstdc++-v3/testsuite/18_support/headers/ctime/macros.cc b/libstdc++-v3/testsuite/18_support/headers/ctime/macros.cc
new file mode 100644 (file)
index 0000000..de92381
--- /dev/null
@@ -0,0 +1,28 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <ctime>
+
+namespace gnu
+{
+#ifndef CLOCKS_PER_SEC
+    #error "CLOCKS_PER_SEC_must_be_a_macro"
+#endif
+}
diff --git a/libstdc++-v3/testsuite/18_support/headers/ctime/types_std.cc b/libstdc++-v3/testsuite/18_support/headers/ctime/types_std.cc
new file mode 100644 (file)
index 0000000..c0168af
--- /dev/null
@@ -0,0 +1,26 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <ctime>
+
+namespace gnu
+{
+  std::clock_t c;
+}
diff --git a/libstdc++-v3/testsuite/18_support/headers/exception/synopsis.cc b/libstdc++-v3/testsuite/18_support/headers/exception/synopsis.cc
new file mode 100644 (file)
index 0000000..24585ee
--- /dev/null
@@ -0,0 +1,36 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <exception>
+
+namespace std {
+  class exception;
+  class bad_exception;
+
+  typedef void (*unexpected_handler)();
+  unexpected_handler set_unexpected(unexpected_handler  f ) throw();
+  void unexpected();
+
+  typedef void (*terminate_handler)();
+  terminate_handler set_terminate(terminate_handler  f ) throw();
+  void terminate();
+
+  bool uncaught_exception() throw();
+}
diff --git a/libstdc++-v3/testsuite/18_support/headers/exception/types_std.cc b/libstdc++-v3/testsuite/18_support/headers/exception/types_std.cc
new file mode 100644 (file)
index 0000000..467f68a
--- /dev/null
@@ -0,0 +1,27 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <exception>
+
+namespace gnu
+{
+  typedef std::exception t1;
+  typedef std::bad_exception t2;
+}
diff --git a/libstdc++-v3/testsuite/18_support/headers/limits/synopsis.cc b/libstdc++-v3/testsuite/18_support/headers/limits/synopsis.cc
new file mode 100644 (file)
index 0000000..a0db1d9
--- /dev/null
@@ -0,0 +1,48 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <limits>
+
+namespace std {
+  template<class T> class numeric_limits;
+
+#if 0
+  enum float_round_style;
+  enum float_denorm_style;
+#endif
+
+  template<> class numeric_limits<bool>;
+
+  template<> class numeric_limits<char>;
+  template<> class numeric_limits<signed char>;
+  template<> class numeric_limits<unsigned char>;
+  template<> class numeric_limits<wchar_t>;
+
+  template<> class numeric_limits<short>;
+  template<> class numeric_limits<int>;
+  template<> class numeric_limits<long>;
+  template<> class numeric_limits<unsigned short>;
+  template<> class numeric_limits<unsigned int>;
+  template<> class numeric_limits<unsigned long>;
+
+  template<> class numeric_limits<float>;
+  template<> class numeric_limits<double>;
+  template<> class numeric_limits<long double>;
+}
diff --git a/libstdc++-v3/testsuite/18_support/headers/new/synopsis.cc b/libstdc++-v3/testsuite/18_support/headers/new/synopsis.cc
new file mode 100644 (file)
index 0000000..6d05bb4
--- /dev/null
@@ -0,0 +1,43 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <new>
+
+namespace std {
+  class bad_alloc;
+  struct nothrow_t;
+  extern const nothrow_t nothrow;
+  typedef void (*new_handler)();
+  new_handler set_new_handler(new_handler new_p) throw();
+}
+
+void* operator new(std::size_t size) throw(std::bad_alloc);
+void* operator new(std::size_t size, const std::nothrow_t&) throw();
+void  operator delete(void* ptr) throw();
+void  operator delete(void* ptr, const std::nothrow_t&) throw();
+void* operator new[](std::size_t size) throw(std::bad_alloc);
+void* operator new[](std::size_t size, const std::nothrow_t&) throw();
+void  operator delete[](void* ptr) throw();
+void  operator delete[](void* ptr, const std::nothrow_t&) throw();
+
+void* operator new  (std::size_t size, void* ptr) throw();
+void* operator new[](std::size_t size, void* ptr) throw();
+void  operator delete  (void* ptr, void*) throw();
+void  operator delete[](void* ptr, void*) throw();
diff --git a/libstdc++-v3/testsuite/18_support/headers/new/types_std.cc b/libstdc++-v3/testsuite/18_support/headers/new/types_std.cc
new file mode 100644 (file)
index 0000000..a0d2c4e
--- /dev/null
@@ -0,0 +1,29 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <new>
+
+namespace gnu
+{
+  typedef std::bad_alloc t1;
+  typedef std::nothrow_t t2;
+
+  typedef std::new_handler t3;
+}
diff --git a/libstdc++-v3/testsuite/18_support/headers/typeinfo/synopsis.cc b/libstdc++-v3/testsuite/18_support/headers/typeinfo/synopsis.cc
new file mode 100644 (file)
index 0000000..7e87055
--- /dev/null
@@ -0,0 +1,27 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <typeinfo>
+
+namespace std {
+  class type_info;
+  class bad_cast;
+  class bad_typeid;
+}
diff --git a/libstdc++-v3/testsuite/18_support/headers/typeinfo/types_std.cc b/libstdc++-v3/testsuite/18_support/headers/typeinfo/types_std.cc
new file mode 100644 (file)
index 0000000..8db903e
--- /dev/null
@@ -0,0 +1,29 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <typeinfo>
+
+namespace gnu
+{
+  typedef std::type_info t1;
+  typedef std::bad_cast t2;
+
+  typedef std::bad_typeid t3;
+}
diff --git a/libstdc++-v3/testsuite/18_support/numeric_limits/is_signed.cc b/libstdc++-v3/testsuite/18_support/numeric_limits/is_signed.cc
new file mode 100644 (file)
index 0000000..e6c5f1d
--- /dev/null
@@ -0,0 +1,60 @@
+// { dg-options "-mieee" { target alpha*-*-* } }
+// { dg-options "-mieee" { target sh*-*-* } }
+
+// 1999-08-23 bkoz
+
+// Copyright (C) 1999, 2001, 2002, 2003, 2004 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 18.2.1.1 template class numeric_limits
+
+#include <limits>
+#include <limits.h>
+#include <float.h>
+#include <cwchar>
+#include <testsuite_hooks.h>
+
+#ifdef __CHAR_UNSIGNED__
+#define char_is_signed false
+#else
+#define char_is_signed true
+#endif
+
+void test_sign()
+{
+  bool test __attribute__((unused)) = true;
+  VERIFY( std::numeric_limits<char>::is_signed == char_is_signed );
+  VERIFY( std::numeric_limits<signed char>::is_signed == true );
+  VERIFY( std::numeric_limits<unsigned char>::is_signed == false );
+  VERIFY( std::numeric_limits<short>::is_signed == true );
+  VERIFY( std::numeric_limits<unsigned short>::is_signed == false );
+  VERIFY( std::numeric_limits<int>::is_signed == true );
+  VERIFY( std::numeric_limits<unsigned>::is_signed == false );
+  VERIFY( std::numeric_limits<long>::is_signed == true );
+  VERIFY( std::numeric_limits<unsigned long>::is_signed == false );
+  VERIFY( std::numeric_limits<float>::is_signed == true );
+  VERIFY( std::numeric_limits<double>::is_signed == true );
+  VERIFY( std::numeric_limits<long double>::is_signed == true );
+}
+
+int main()
+{
+  test_sign();
+
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/18_support/numeric_limits/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/18_support/numeric_limits/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..77856e9
--- /dev/null
@@ -0,0 +1,50 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <limits>
+
+template<typename T>
+  struct A 
+  {
+    int key;
+  public:
+    A(int i = 0): key(i) { }
+    bool
+    operator==(int i) { return i == key; }
+  };
+
+struct B 
+{
+  B(int = 0) { }
+};
+
+// XXX Should this work for POD types?
+template class std::numeric_limits<A<B> >;
diff --git a/libstdc++-v3/testsuite/18_support/numeric_limits/sign.cc b/libstdc++-v3/testsuite/18_support/numeric_limits/sign.cc
deleted file mode 100644 (file)
index e6c5f1d..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-// { dg-options "-mieee" { target alpha*-*-* } }
-// { dg-options "-mieee" { target sh*-*-* } }
-
-// 1999-08-23 bkoz
-
-// Copyright (C) 1999, 2001, 2002, 2003, 2004 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 18.2.1.1 template class numeric_limits
-
-#include <limits>
-#include <limits.h>
-#include <float.h>
-#include <cwchar>
-#include <testsuite_hooks.h>
-
-#ifdef __CHAR_UNSIGNED__
-#define char_is_signed false
-#else
-#define char_is_signed true
-#endif
-
-void test_sign()
-{
-  bool test __attribute__((unused)) = true;
-  VERIFY( std::numeric_limits<char>::is_signed == char_is_signed );
-  VERIFY( std::numeric_limits<signed char>::is_signed == true );
-  VERIFY( std::numeric_limits<unsigned char>::is_signed == false );
-  VERIFY( std::numeric_limits<short>::is_signed == true );
-  VERIFY( std::numeric_limits<unsigned short>::is_signed == false );
-  VERIFY( std::numeric_limits<int>::is_signed == true );
-  VERIFY( std::numeric_limits<unsigned>::is_signed == false );
-  VERIFY( std::numeric_limits<long>::is_signed == true );
-  VERIFY( std::numeric_limits<unsigned long>::is_signed == false );
-  VERIFY( std::numeric_limits<float>::is_signed == true );
-  VERIFY( std::numeric_limits<double>::is_signed == true );
-  VERIFY( std::numeric_limits<long double>::is_signed == true );
-}
-
-int main()
-{
-  test_sign();
-
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/18_support/numeric_limits/specialization.cc b/libstdc++-v3/testsuite/18_support/numeric_limits/specialization.cc
deleted file mode 100644 (file)
index 0a1c8fe..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-// { dg-options "-mieee" { target alpha*-*-* } }
-// { dg-options "-mieee" { target sh*-*-* } }
-
-// 1999-08-23 bkoz
-
-// Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 18.2.1.1 template class numeric_limits
-
-#include <limits>
-#include <limits.h>
-#include <float.h>
-#include <cwchar>
-#include <testsuite_hooks.h>
-
-template<typename T>
-  struct A 
-  {
-    int key;
-  public:
-    A(int i = 0): key(i) { }
-    bool
-    operator==(int i) { return i == key; }
-  };
-
-struct B 
-{
-  B(int = 0) { }
-};
-
-
-bool test01()
-{
-  bool test __attribute__((unused)) = true;
-  std::numeric_limits< A<B> > obj;
-
-  VERIFY( !obj.is_specialized );
-  VERIFY( obj.min() == 0 );
-  VERIFY( obj.max() == 0 );
-  VERIFY( obj.digits ==  0 );
-  VERIFY( obj.digits10 == 0 );
-  VERIFY( !obj.is_signed );
-  VERIFY( !obj.is_integer );
-  VERIFY( !obj.is_exact );
-  VERIFY( obj.radix == 0 );
-  VERIFY( obj.epsilon() == 0 );
-  VERIFY( obj.round_error() == 0 );
-  VERIFY( obj.min_exponent == 0 );
-  VERIFY( obj.min_exponent10 == 0 );
-  VERIFY( obj.max_exponent == 0 );
-  VERIFY( obj.max_exponent10 == 0 );
-  VERIFY( !obj.has_infinity );
-  VERIFY( !obj.has_quiet_NaN );
-  VERIFY( !obj.has_signaling_NaN );
-  VERIFY( !obj.has_denorm );
-  VERIFY( !obj.has_denorm_loss );
-  VERIFY( obj.infinity() == 0 );
-  VERIFY( obj.quiet_NaN() == 0 );
-  VERIFY( obj.signaling_NaN() == 0 );
-  VERIFY( obj.denorm_min() == 0 );
-  VERIFY( !obj.is_iec559 );
-  VERIFY( !obj.is_bounded );
-  VERIFY( !obj.is_modulo );
-  VERIFY( !obj.traps );
-  VERIFY( !obj.tinyness_before );
-  VERIFY( obj.round_style == std::round_toward_zero );
-  return test;
-}
-
-// test linkage of the generic bits
-template struct std::numeric_limits<B>;
-
-void test02()
-{
-  typedef std::numeric_limits<B> b_nl_type;
-  
-  // Should probably do all of them...
-  const int* __attribute__((unused)) pi1 = &b_nl_type::digits;
-  const int* __attribute__((unused)) pi2 = &b_nl_type::digits10;
-  const int* __attribute__((unused)) pi3 = &b_nl_type::max_exponent10;
-  const bool* __attribute__((unused)) pb1 = &b_nl_type::traps;
-}
-
-
-int main()
-{
-  test01();
-  test02();
-
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/18_support/numeric_limits/specialization_default_values.cc b/libstdc++-v3/testsuite/18_support/numeric_limits/specialization_default_values.cc
new file mode 100644 (file)
index 0000000..0a1c8fe
--- /dev/null
@@ -0,0 +1,107 @@
+// { dg-options "-mieee" { target alpha*-*-* } }
+// { dg-options "-mieee" { target sh*-*-* } }
+
+// 1999-08-23 bkoz
+
+// Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 18.2.1.1 template class numeric_limits
+
+#include <limits>
+#include <limits.h>
+#include <float.h>
+#include <cwchar>
+#include <testsuite_hooks.h>
+
+template<typename T>
+  struct A 
+  {
+    int key;
+  public:
+    A(int i = 0): key(i) { }
+    bool
+    operator==(int i) { return i == key; }
+  };
+
+struct B 
+{
+  B(int = 0) { }
+};
+
+
+bool test01()
+{
+  bool test __attribute__((unused)) = true;
+  std::numeric_limits< A<B> > obj;
+
+  VERIFY( !obj.is_specialized );
+  VERIFY( obj.min() == 0 );
+  VERIFY( obj.max() == 0 );
+  VERIFY( obj.digits ==  0 );
+  VERIFY( obj.digits10 == 0 );
+  VERIFY( !obj.is_signed );
+  VERIFY( !obj.is_integer );
+  VERIFY( !obj.is_exact );
+  VERIFY( obj.radix == 0 );
+  VERIFY( obj.epsilon() == 0 );
+  VERIFY( obj.round_error() == 0 );
+  VERIFY( obj.min_exponent == 0 );
+  VERIFY( obj.min_exponent10 == 0 );
+  VERIFY( obj.max_exponent == 0 );
+  VERIFY( obj.max_exponent10 == 0 );
+  VERIFY( !obj.has_infinity );
+  VERIFY( !obj.has_quiet_NaN );
+  VERIFY( !obj.has_signaling_NaN );
+  VERIFY( !obj.has_denorm );
+  VERIFY( !obj.has_denorm_loss );
+  VERIFY( obj.infinity() == 0 );
+  VERIFY( obj.quiet_NaN() == 0 );
+  VERIFY( obj.signaling_NaN() == 0 );
+  VERIFY( obj.denorm_min() == 0 );
+  VERIFY( !obj.is_iec559 );
+  VERIFY( !obj.is_bounded );
+  VERIFY( !obj.is_modulo );
+  VERIFY( !obj.traps );
+  VERIFY( !obj.tinyness_before );
+  VERIFY( obj.round_style == std::round_toward_zero );
+  return test;
+}
+
+// test linkage of the generic bits
+template struct std::numeric_limits<B>;
+
+void test02()
+{
+  typedef std::numeric_limits<B> b_nl_type;
+  
+  // Should probably do all of them...
+  const int* __attribute__((unused)) pi1 = &b_nl_type::digits;
+  const int* __attribute__((unused)) pi2 = &b_nl_type::digits10;
+  const int* __attribute__((unused)) pi3 = &b_nl_type::max_exponent10;
+  const bool* __attribute__((unused)) pb1 = &b_nl_type::traps;
+}
+
+
+int main()
+{
+  test01();
+  test02();
+
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/19_diagnostics/headers/cassert/macros.cc b/libstdc++-v3/testsuite/19_diagnostics/headers/cassert/macros.cc
new file mode 100644 (file)
index 0000000..822414c
--- /dev/null
@@ -0,0 +1,28 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cassert>
+
+namespace gnu
+{
+#ifndef assert
+    #error "assert_must_be_a_macro"
+#endif
+}
diff --git a/libstdc++-v3/testsuite/19_diagnostics/headers/cerrno/macros.cc b/libstdc++-v3/testsuite/19_diagnostics/headers/cerrno/macros.cc
new file mode 100644 (file)
index 0000000..468d4a1
--- /dev/null
@@ -0,0 +1,36 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cassert>
+
+namespace gnu
+{
+#ifndef EDOM
+    #error "EDOM_must_be_a_macro"
+#endif
+
+#ifndef ERANGE
+    #error "ERANGE_must_be_a_macro"
+#endif
+
+#ifndef errno
+    #error "errno_must_be_a_macro"
+#endif
+}
diff --git a/libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/synopsis.cc b/libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/synopsis.cc
new file mode 100644 (file)
index 0000000..6be26e0
--- /dev/null
@@ -0,0 +1,34 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <stdexcept>
+
+namespace std {
+  class logic_error;
+  class domain_error;
+  class invalid_argument;
+  class length_error;
+  class out_of_range;
+  class runtime_error;
+  class range_error;
+  class overflow_error;
+  class underflow_error;
+}
+
diff --git a/libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/types_std.cc b/libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/types_std.cc
new file mode 100644 (file)
index 0000000..160c691
--- /dev/null
@@ -0,0 +1,34 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <stdexcept>
+
+namespace gnu
+{
+  typedef std::logic_error t1;
+  typedef std::domain_error t2;
+  typedef std::invalid_argument t3;
+  typedef std::length_error t4;
+  typedef std::out_of_range t5;
+  typedef std::runtime_error t6;
+  typedef std::range_error t7;
+  typedef std::overflow_error t8;
+  typedef std::underflow_error t9;
+}
diff --git a/libstdc++-v3/testsuite/20_util/headers/cstdlib/functions_std.cc b/libstdc++-v3/testsuite/20_util/headers/cstdlib/functions_std.cc
new file mode 100644 (file)
index 0000000..7ac51ed
--- /dev/null
@@ -0,0 +1,29 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstdlib>
+
+namespace gnu
+{
+  using std::calloc;
+  using std::malloc;
+  using std::free;
+  using std::realloc;
+}
diff --git a/libstdc++-v3/testsuite/20_util/headers/cstring/functions_std.cc b/libstdc++-v3/testsuite/20_util/headers/cstring/functions_std.cc
new file mode 100644 (file)
index 0000000..f521d72
--- /dev/null
@@ -0,0 +1,30 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstring>
+
+namespace gnu
+{
+  using std::memchr;
+  using std::memcmp;
+  using std::memcpy;
+  using std::memmove;
+  using std::memset;
+}
diff --git a/libstdc++-v3/testsuite/20_util/headers/cstring/macros.cc b/libstdc++-v3/testsuite/20_util/headers/cstring/macros.cc
new file mode 100644 (file)
index 0000000..c714d16
--- /dev/null
@@ -0,0 +1,28 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstring>
+
+namespace gnu
+{
+#ifndef NULL
+    #error "NULL_must_be_a_macro"
+#endif
+}
diff --git a/libstdc++-v3/testsuite/20_util/headers/cstring/types_std.cc b/libstdc++-v3/testsuite/20_util/headers/cstring/types_std.cc
new file mode 100644 (file)
index 0000000..f554d5a
--- /dev/null
@@ -0,0 +1,26 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstring>
+
+namespace gnu
+{
+  std::size_t s;
+}
diff --git a/libstdc++-v3/testsuite/20_util/headers/ctime/functions_std.cc b/libstdc++-v3/testsuite/20_util/headers/ctime/functions_std.cc
new file mode 100644 (file)
index 0000000..ce381b2
--- /dev/null
@@ -0,0 +1,34 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <ctime>
+
+namespace gnu
+{
+  using std::asctime;
+  using std::clock;
+  using std::difftime;
+  using std::localtime;
+  using std::strftime;
+  using std::ctime;
+  using std::gmtime;
+  using std::mktime;
+  using std::time;
+}
diff --git a/libstdc++-v3/testsuite/20_util/headers/ctime/macros.cc b/libstdc++-v3/testsuite/20_util/headers/ctime/macros.cc
new file mode 100644 (file)
index 0000000..7c7e134
--- /dev/null
@@ -0,0 +1,28 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <ctime>
+
+namespace gnu
+{
+#ifndef NULL
+    #error "NULL_must_be_a_macro"
+#endif
+}
diff --git a/libstdc++-v3/testsuite/20_util/headers/ctime/types_std.cc b/libstdc++-v3/testsuite/20_util/headers/ctime/types_std.cc
new file mode 100644 (file)
index 0000000..ef0cab6
--- /dev/null
@@ -0,0 +1,30 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <ctime>
+
+namespace gnu
+{
+  std::size_t s;
+  std::clock_t c;
+  std::time_t t;
+
+  std::tm t2;
+}
diff --git a/libstdc++-v3/testsuite/20_util/headers/functional/synopsis.cc b/libstdc++-v3/testsuite/20_util/headers/functional/synopsis.cc
new file mode 100644 (file)
index 0000000..d4853b2
--- /dev/null
@@ -0,0 +1,101 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <functional>
+
+namespace std {
+  //  lib.base, base:
+  template <class Arg, class Result> struct unary_function;
+  template <class Arg1, class Arg2, class Result> struct binary_function;
+
+  //  lib.arithmetic.operations, arithmetic operations:
+  template <class T> struct plus;
+  template <class T> struct minus;
+  template <class T> struct multiplies;
+  template <class T> struct divides;
+  template <class T> struct modulus;
+  template <class T> struct negate;
+
+  //  lib.comparisons, comparisons:
+  template <class T> struct equal_to;
+  template <class T> struct not_equal_to;
+  template <class T> struct greater;
+  template <class T> struct less;
+  template <class T> struct greater_equal;
+  template <class T> struct less_equal;
+
+  //  lib.logical.operations, logical operations:
+  template <class T> struct logical_and;
+  template <class T> struct logical_or;
+  template <class T> struct logical_not;
+
+  //  lib.negators, negators:
+  template <class Predicate> struct unary_negate;
+  template <class Predicate>
+  unary_negate<Predicate>  not1(const Predicate&);
+  template <class Predicate> struct binary_negate;
+  template <class Predicate>
+  binary_negate<Predicate> not2(const Predicate&);
+
+  //  lib.binders, binders:
+  template <class Operation>  class binder1st;
+  template <class Operation, class T>
+  binder1st<Operation> bind1st(const Operation&, const T&);
+  template <class Operation> class binder2nd;
+  template <class Operation, class T>
+  binder2nd<Operation> bind2nd(const Operation&, const T&);
+
+  //  lib.function.pointer.adaptors, adaptors:
+  template <class Arg, class Result> class pointer_to_unary_function;
+  template <class Arg, class Result>
+  pointer_to_unary_function<Arg,Result> ptr_fun(Result (*)(Arg));
+  template <class Arg1, class Arg2, class Result>
+  class pointer_to_binary_function;
+  template <class Arg1, class Arg2, class Result>
+  pointer_to_binary_function<Arg1,Arg2,Result>
+  ptr_fun(Result (*)(Arg1,Arg2));
+
+  //  lib.member.pointer.adaptors, adaptors:
+  template<class S, class T> class mem_fun_t;
+  template<class S, class T, class A> class mem_fun1_t;
+  template<class S, class T>
+  mem_fun_t<S,T> mem_fun(S (T::*f)());
+  template<class S, class T, class A>
+  mem_fun1_t<S,T,A> mem_fun(S (T::*f)(A));
+  template<class S, class T> class mem_fun_ref_t;
+  template<class S, class T, class A> class mem_fun1_ref_t;
+  template<class S, class T>
+  mem_fun_ref_t<S,T> mem_fun_ref(S (T::*f)());
+  template<class S, class T, class A>
+  mem_fun1_ref_t<S,T,A> mem_fun_ref(S (T::*f)(A));
+
+  template <class S, class T> class const_mem_fun_t;
+  template <class S, class T, class A> class const_mem_fun1_t;
+  template <class S, class T>
+  const_mem_fun_t<S,T> mem_fun(S (T::*f)() const);
+  template <class S, class T, class A>
+  const_mem_fun1_t<S,T,A> mem_fun(S (T::*f)(A) const);
+  template <class S, class T> class const_mem_fun_ref_t;
+  template <class S, class T, class A> class const_mem_fun1_ref_t;
+  template <class S, class T>
+  const_mem_fun_ref_t<S,T> mem_fun_ref(S (T::*f)() const);
+  template <class S, class T, class A>
+  const_mem_fun1_ref_t<S,T,A> mem_fun_ref(S (T::*f)(A) const);
+}
diff --git a/libstdc++-v3/testsuite/20_util/headers/memory/synopsis.cc b/libstdc++-v3/testsuite/20_util/headers/memory/synopsis.cc
new file mode 100644 (file)
index 0000000..306a37e
--- /dev/null
@@ -0,0 +1,54 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <memory>
+
+namespace std {
+  //  lib.default.allocator, the default allocator:
+  template <class T> class allocator;
+  template <> class allocator<void>;
+  template <class T, class U>
+  bool operator==(const allocator<T>&, const allocator<U>&) throw();
+  template <class T, class U>
+  bool operator!=(const allocator<T>&, const allocator<U>&) throw();
+
+  //  lib.storage.iterator, raw storage iterator:
+  template <class OutputIterator, class T> class raw_storage_iterator;
+
+  //  lib.temporary.buffer, temporary buffers:
+  template <class T>
+  pair<T*,ptrdiff_t> get_temporary_buffer(ptrdiff_t n);
+  template <class T>
+  void return_temporary_buffer(T* p);
+
+  //  lib.specialized.algorithms, specialized algorithms:
+  template <class InputIterator, class ForwardIterator>
+  ForwardIterator
+  uninitialized_copy(InputIterator first, InputIterator last,
+                    ForwardIterator result);
+  template <class ForwardIterator, class T>
+  void uninitialized_fill(ForwardIterator first, ForwardIterator last,
+                         const T& x);
+  template <class ForwardIterator, class Size, class T>
+  void uninitialized_fill_n(ForwardIterator first, Size n, const T& x);
+
+  //  lib.auto.ptr, pointers:
+  template<class X> class auto_ptr;
+}
diff --git a/libstdc++-v3/testsuite/20_util/headers/utility/synopsis.cc b/libstdc++-v3/testsuite/20_util/headers/utility/synopsis.cc
new file mode 100644 (file)
index 0000000..bb96c32
--- /dev/null
@@ -0,0 +1,46 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <utility>
+
+namespace std {
+  //  lib.operators, operators:
+  namespace rel_ops {
+    template<class T> bool operator!=(const T&, const T&);
+    template<class T> bool operator> (const T&, const T&);
+    template<class T> bool operator<=(const T&, const T&);
+    template<class T> bool operator>=(const T&, const T&);
+  }
+
+  //  lib.pairs, pairs:
+  template <class T1, class T2> struct pair;
+  template <class T1, class T2>
+  bool operator==(const pair<T1,T2>&, const pair<T1,T2>&);
+  template <class T1, class T2>
+  bool operator< (const pair<T1,T2>&, const pair<T1,T2>&);
+  template <class T1, class T2>
+  bool operator!=(const pair<T1,T2>&, const pair<T1,T2>&);
+  template <class T1, class T2>
+  bool operator> (const pair<T1,T2>&, const pair<T1,T2>&);
+  template <class T1, class T2>
+  bool operator>=(const pair<T1,T2>&, const pair<T1,T2>&);
+  template <class T1, class T2>
+  bool operator<=(const pair<T1,T2>&, const pair<T1,T2>&);
+}
diff --git a/libstdc++-v3/testsuite/20_util/headers/utility/using_namespace_std_rel_ops.cc b/libstdc++-v3/testsuite/20_util/headers/utility/using_namespace_std_rel_ops.cc
new file mode 100644 (file)
index 0000000..1e78aeb
--- /dev/null
@@ -0,0 +1,26 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <utility>
+
+namespace gnu
+{
+  using namespace std::rel_ops;
+}
diff --git a/libstdc++-v3/testsuite/20_util/memory/allocator/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/20_util/memory/allocator/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..ed88aef
--- /dev/null
@@ -0,0 +1,34 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <memory>
+
+template class std::allocator<int>;
diff --git a/libstdc++-v3/testsuite/20_util/memory/auto_ptr/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/20_util/memory/auto_ptr/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..e6abacd
--- /dev/null
@@ -0,0 +1,34 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <memory>
+
+template class std::auto_ptr<int>;
diff --git a/libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator.cc b/libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator.cc
deleted file mode 100644 (file)
index 36e7d25..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-// 2001-06-18  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 20.4.2 raw storage iterator
-
-#include <memory>
-
-void test01()
-{
-  using namespace std;
-
-  // Check for required base class.
-  long l;
-  typedef raw_storage_iterator<long*, long> test_iterator;
-  typedef iterator<output_iterator_tag, void, void, void, void> base_iterator;
-  test_iterator rs_it(&l);
-  base_iterator* base __attribute__((unused)) = &rs_it;
-
-  // Check for required typedefs
-  typedef test_iterator::value_type value_type;
-  typedef test_iterator::difference_type difference_type;
-  typedef test_iterator::pointer pointer;
-  typedef test_iterator::reference reference;
-  typedef test_iterator::iterator_category iteratory_category;
-}
-
-int main() 
-{ 
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator/requirements/base_classes.cc b/libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..bc2793f
--- /dev/null
@@ -0,0 +1,37 @@
+// { dg-do compile }
+
+// 2001-06-18  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003, 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 20.4.2 raw storage iterator
+
+#include <memory>
+
+void test01()
+{
+  using namespace std;
+
+  // Check for required base class.
+  long l;
+  typedef raw_storage_iterator<long*, long> test_iterator;
+  typedef iterator<output_iterator_tag, void, void, void, void> base_iterator;
+  test_iterator rs_it(&l);
+  base_iterator* base __attribute__((unused)) = &rs_it;
+}
diff --git a/libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..41023b6
--- /dev/null
@@ -0,0 +1,34 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <memory>
+
+template class std::raw_storage_iterator<int*, int>;
diff --git a/libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator/requirements/typedefs.cc b/libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..4a51c4c
--- /dev/null
@@ -0,0 +1,38 @@
+// { dg-do compile }
+// 2001-06-18  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003, 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 20.4.2 raw storage iterator
+
+#include <memory>
+
+void test01()
+{
+  using namespace std;
+
+  // Check for required typedefs
+  long l;
+  typedef raw_storage_iterator<long*, long> test_iterator;
+  typedef test_iterator::value_type value_type;
+  typedef test_iterator::difference_type difference_type;
+  typedef test_iterator::pointer pointer;
+  typedef test_iterator::reference reference;
+  typedef test_iterator::iterator_category iteratory_category;
+}
diff --git a/libstdc++-v3/testsuite/20_util/utility/pair/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/20_util/utility/pair/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..3d55f62
--- /dev/null
@@ -0,0 +1,34 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <utility>
+
+template class std::pair<int, long>;
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/1.cc b/libstdc++-v3/testsuite/21_strings/basic_string/1.cc
deleted file mode 100644 (file)
index ec83914..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of basic_string
-
-#include <string>
-
-// { dg-do compile }
-
-// libstdc++/21770
-template class std::basic_string<int, std::char_traits<int>,
-                                std::allocator<char> >;
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/2.cc b/libstdc++-v3/testsuite/21_strings/basic_string/2.cc
deleted file mode 100644 (file)
index 8b02175..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of basic_string
-
-#include <debug/string>
-
-// { dg-do compile }
-
-// libstdc++/21770
-namespace debug = __gnu_debug;
-template class debug::basic_string<int, std::char_traits<int>, 
-                                  std::allocator<char> >;
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..ec83914
--- /dev/null
@@ -0,0 +1,36 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of basic_string
+
+#include <string>
+
+// { dg-do compile }
+
+// libstdc++/21770
+template class std::basic_string<int, std::char_traits<int>,
+                                std::allocator<char> >;
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/debug.cc b/libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/debug.cc
new file mode 100644 (file)
index 0000000..8b02175
--- /dev/null
@@ -0,0 +1,37 @@
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of basic_string
+
+#include <debug/string>
+
+// { dg-do compile }
+
+// libstdc++/21770
+namespace debug = __gnu_debug;
+template class debug::basic_string<int, std::char_traits<int>, 
+                                  std::allocator<char> >;
diff --git a/libstdc++-v3/testsuite/21_strings/headers/cctype/functions_std.cc b/libstdc++-v3/testsuite/21_strings/headers/cctype/functions_std.cc
new file mode 100644 (file)
index 0000000..b0375f6
--- /dev/null
@@ -0,0 +1,38 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cctype>
+
+namespace gnu
+{
+  using std::isalnum;
+  using std::isdigit;
+  using std::isprint;
+  using std::isupper;
+  using std::tolower;
+  using std::isalpha;
+  using std::isgraph;
+  using std::ispunct;
+  using std::isxdigit;
+  using std::toupper;
+  using std::iscntrl;
+  using std::islower;
+  using std::isspace;
+}
diff --git a/libstdc++-v3/testsuite/21_strings/headers/cstdlib/functions_std.cc b/libstdc++-v3/testsuite/21_strings/headers/cstdlib/functions_std.cc
new file mode 100644 (file)
index 0000000..4840dfd
--- /dev/null
@@ -0,0 +1,36 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstdlib>
+
+namespace gnu
+{
+  using std::atol;
+  using std::atof;
+  using std::atoi;
+  using std::mblen;
+  using std::mbstowcs;
+  using std::mbtowc;
+  using std::strtod;
+  using std::strtol;
+  using std::strtoul;
+  using std::wctomb;
+  using std::wcstombs;
+}
diff --git a/libstdc++-v3/testsuite/21_strings/headers/cstdlib/macros.cc b/libstdc++-v3/testsuite/21_strings/headers/cstdlib/macros.cc
new file mode 100644 (file)
index 0000000..c714d16
--- /dev/null
@@ -0,0 +1,28 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstring>
+
+namespace gnu
+{
+#ifndef NULL
+    #error "NULL_must_be_a_macro"
+#endif
+}
diff --git a/libstdc++-v3/testsuite/21_strings/headers/cstring/functions_std.cc b/libstdc++-v3/testsuite/21_strings/headers/cstring/functions_std.cc
new file mode 100644 (file)
index 0000000..3b4662f
--- /dev/null
@@ -0,0 +1,47 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstring>
+
+namespace gnu
+{
+  using std::memchr;
+  using std::memcmp;
+  using std::memcpy;
+  using std::memmove;
+  using std::memset;
+  using std::strcat;
+  using std::strchr;
+  using std::strcmp;
+  using std::strcoll;
+  using std::strcpy;
+  using std::strcspn;
+  using std::strerror;
+  using std::strlen;
+  using std::strncat;
+  using std::strncmp;
+  using std::strncpy;
+  using std::strpbrk;
+  using std::strrchr;
+  using std::strspn;
+  using std::strstr;
+  using std::strtok;
+  using std::strxfrm;
+}
diff --git a/libstdc++-v3/testsuite/21_strings/headers/cstring/macros.cc b/libstdc++-v3/testsuite/21_strings/headers/cstring/macros.cc
new file mode 100644 (file)
index 0000000..c714d16
--- /dev/null
@@ -0,0 +1,28 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstring>
+
+namespace gnu
+{
+#ifndef NULL
+    #error "NULL_must_be_a_macro"
+#endif
+}
diff --git a/libstdc++-v3/testsuite/21_strings/headers/cstring/types_std.cc b/libstdc++-v3/testsuite/21_strings/headers/cstring/types_std.cc
new file mode 100644 (file)
index 0000000..f554d5a
--- /dev/null
@@ -0,0 +1,26 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstring>
+
+namespace gnu
+{
+  std::size_t s;
+}
diff --git a/libstdc++-v3/testsuite/21_strings/headers/cwchar/functions_std.cc b/libstdc++-v3/testsuite/21_strings/headers/cwchar/functions_std.cc
new file mode 100644 (file)
index 0000000..377cbdc
--- /dev/null
@@ -0,0 +1,77 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cwchar>
+
+namespace gnu
+{
+  using std::btowc;
+  using std::fgetwc;
+  using std::fgetws;
+  using std::fputwc;
+  using std::fputws;
+  using std::fwide;
+  using std::fwprintf;
+  using std::fwscanf;
+  using std::getwc;
+  using std::getwchar;
+  using std::mbrlen;
+  using std::mbrtowc;
+  using std::mbsinit;
+  using std::mbsrtowcs;
+  using std::putwc;
+  using std::putwchar;
+  using std::swprintf;
+  using std::swscanf;
+  using std::ungetwc;
+  using std::vfwprintf;
+  using std::vswprintf;
+  using std::vwprintf;
+  using std::wcrtomb;
+  using std::wcscat;
+  using std::wcschr;
+  using std::wcscmp;
+  using std::wcscoll;
+  using std::wcscpy;
+  using std::wcscmp;
+  using std::wcsftime;
+  using std::wcslen;
+  using std::wcsncat;
+  using std::wcsncmp;
+  using std::wcsncpy;
+  using std::wcspbrk;
+  using std::wcsrchr;
+  using std::wcsrtombs;
+  using std::wcsspn;
+  using std::wcsstr;
+  using std::wcstod;
+  using std::wcstok;
+  using std::wcstol;
+  using std::wcstoul;
+  using std::wcsxfrm;
+  using std::wctob;
+  using std::wmemchr;
+  using std::wmemcmp;
+  using std::wmemcpy;
+  using std::wmemmove;
+  using std::wmemset;
+  using std::wprintf;
+  using std::wscanf;
+}
diff --git a/libstdc++-v3/testsuite/21_strings/headers/cwchar/macros.cc b/libstdc++-v3/testsuite/21_strings/headers/cwchar/macros.cc
new file mode 100644 (file)
index 0000000..17d6129
--- /dev/null
@@ -0,0 +1,40 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cwchar>
+
+namespace gnu
+{
+#ifndef NULL
+    #error "NULL_must_be_a_macro"
+#endif
+
+#ifndef WCHAR_MAX
+    #error "WCHAR_MAX_must_be_a_macro"
+#endif
+
+#ifndef WCHAR_MIN
+    #error "WCHAR_MIN_must_be_a_macro"
+#endif
+
+#ifndef WEOF
+    #error "WEOF_must_be_a_macro"
+#endif
+}
diff --git a/libstdc++-v3/testsuite/21_strings/headers/cwchar/types_std.cc b/libstdc++-v3/testsuite/21_strings/headers/cwchar/types_std.cc
new file mode 100644 (file)
index 0000000..f7cd6a7
--- /dev/null
@@ -0,0 +1,28 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cwchar>
+
+namespace gnu
+{
+  std::mbstate_t mb;
+  std::wint_t wt;
+  std::size_t s;
+}
diff --git a/libstdc++-v3/testsuite/21_strings/headers/cwctype/functions_std.cc b/libstdc++-v3/testsuite/21_strings/headers/cwctype/functions_std.cc
new file mode 100644 (file)
index 0000000..88871fa
--- /dev/null
@@ -0,0 +1,40 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cwctype>
+
+namespace gnu
+{
+  using std::iswalnum;
+  using std::iswdigit;
+  using std::iswprint;
+  using std::iswupper;
+  using std::iswalpha;
+  using std::iswgraph;
+  using std::iswpunct;
+  using std::iswxdigit;
+  using std::iswspace;
+  using std::iswcntrl;
+  using std::towlower;
+  using std::towupper;
+  using std::towctrans;
+  using std::wctrans;
+  using std::wctype;
+}
diff --git a/libstdc++-v3/testsuite/21_strings/headers/cwctype/macros.cc b/libstdc++-v3/testsuite/21_strings/headers/cwctype/macros.cc
new file mode 100644 (file)
index 0000000..a1d78c7
--- /dev/null
@@ -0,0 +1,28 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cwctype>
+
+namespace gnu
+{
+#ifndef WEOF
+    #error "WEOF_must_be_a_macro"
+#endif
+}
diff --git a/libstdc++-v3/testsuite/21_strings/headers/cwctype/types_std.cc b/libstdc++-v3/testsuite/21_strings/headers/cwctype/types_std.cc
new file mode 100644 (file)
index 0000000..f8a48cf
--- /dev/null
@@ -0,0 +1,28 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cwctype>
+
+namespace gnu
+{
+  std::wctrans_t wt;
+  std::wctype_t wct;
+  std::wint_t wint;
+}
diff --git a/libstdc++-v3/testsuite/21_strings/headers/string/synopsis.cc b/libstdc++-v3/testsuite/21_strings/headers/string/synopsis.cc
new file mode 100644 (file)
index 0000000..a482ec1
--- /dev/null
@@ -0,0 +1,135 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <string>
+
+namespace std {
+  //  lib.char.traits, character traits:
+  template<class charT>
+  struct char_traits;
+  template <> struct char_traits<char>;
+  template <> struct char_traits<wchar_t>;
+
+  //  lib.basic.string, basic_string:
+  template<class charT, class traits, class Allocator >
+  class basic_string;
+
+  template<class charT, class traits, class Allocator>
+  basic_string<charT,traits,Allocator>
+  operator+(const basic_string<charT,traits,Allocator>& lhs,
+           const basic_string<charT,traits,Allocator>& rhs);
+  template<class charT, class traits, class Allocator>
+  basic_string<charT,traits,Allocator>
+  operator+(const charT* lhs,
+           const basic_string<charT,traits,Allocator>& rhs);
+  template<class charT, class traits, class Allocator>
+  basic_string<charT,traits,Allocator>
+  operator+(charT lhs, const basic_string<charT,traits,Allocator>& rhs);
+  template<class charT, class traits, class Allocator>
+  basic_string<charT,traits,Allocator>
+  operator+(const basic_string<charT,traits,Allocator>& lhs,
+           const charT* rhs);
+  template<class charT, class traits, class Allocator>
+  basic_string<charT,traits,Allocator>
+  operator+(const basic_string<charT,traits,Allocator>& lhs, charT rhs);
+
+  template<class charT, class traits, class Allocator>
+  bool operator==(const basic_string<charT,traits,Allocator>& lhs,
+                 const basic_string<charT,traits,Allocator>& rhs);
+  template<class charT, class traits, class Allocator>
+  bool operator==(const charT* lhs,
+                 const basic_string<charT,traits,Allocator>& rhs);
+  template<class charT, class traits, class Allocator>
+  bool operator==(const basic_string<charT,traits,Allocator>& lhs,
+                 const charT* rhs);
+  template<class charT, class traits, class Allocator>
+  bool operator!=(const basic_string<charT,traits,Allocator>& lhs,
+                 const basic_string<charT,traits,Allocator>& rhs);
+  template<class charT, class traits, class Allocator>
+  bool operator!=(const charT* lhs,
+                 const basic_string<charT,traits,Allocator>& rhs);
+  template<class charT, class traits, class Allocator>
+  bool operator!=(const basic_string<charT,traits,Allocator>& lhs,
+                 const charT* rhs);
+
+  template<class charT, class traits, class Allocator>
+  bool operator< (const basic_string<charT,traits,Allocator>& lhs,
+                 const basic_string<charT,traits,Allocator>& rhs);
+  template<class charT, class traits, class Allocator>
+  bool operator< (const basic_string<charT,traits,Allocator>& lhs,
+                 const charT* rhs);
+  template<class charT, class traits, class Allocator>
+  bool operator< (const charT* lhs,
+                 const basic_string<charT,traits,Allocator>& rhs);
+  template<class charT, class traits, class Allocator>
+  bool operator> (const basic_string<charT,traits,Allocator>& lhs,
+                 const basic_string<charT,traits,Allocator>& rhs);
+  template<class charT, class traits, class Allocator>
+  bool operator> (const basic_string<charT,traits,Allocator>& lhs,
+                 const charT* rhs);
+  template<class charT, class traits, class Allocator>
+  bool operator> (const charT* lhs,
+                 const basic_string<charT,traits,Allocator>& rhs);
+
+  template<class charT, class traits, class Allocator>
+  bool operator<=(const basic_string<charT,traits,Allocator>& lhs,
+                 const basic_string<charT,traits,Allocator>& rhs);
+  template<class charT, class traits, class Allocator>
+  bool operator<=(const basic_string<charT,traits,Allocator>& lhs,
+                 const charT* rhs);
+  template<class charT, class traits, class Allocator>
+  bool operator<=(const charT* lhs,
+                 const basic_string<charT,traits,Allocator>& rhs);
+  template<class charT, class traits, class Allocator>
+  bool operator>=(const basic_string<charT,traits,Allocator>& lhs,
+                 const basic_string<charT,traits,Allocator>& rhs);
+  template<class charT, class traits, class Allocator>
+  bool operator>=(const basic_string<charT,traits,Allocator>& lhs,
+                 const charT* rhs);
+  template<class charT, class traits, class Allocator>
+  bool operator>=(const charT* lhs,
+                 const basic_string<charT,traits,Allocator>& rhs);
+
+  //  lib.string.special:
+  template<class charT, class traits, class Allocator>
+  void swap(basic_string<charT,traits,Allocator>& lhs,
+           basic_string<charT,traits,Allocator>& rhs);
+
+  template<class charT, class traits, class Allocator>
+  basic_istream<charT,traits>&
+  operator>>(basic_istream<charT,traits>& is,
+            basic_string<charT,traits,Allocator>& str);
+  template<class charT, class traits, class Allocator>
+  basic_ostream<charT, traits>&
+  operator<<(basic_ostream<charT, traits>& os,
+            const basic_string<charT,traits,Allocator>& str);
+  template<class charT, class traits, class Allocator>
+  basic_istream<charT,traits>&
+  getline(basic_istream<charT,traits>& is,
+         basic_string<charT,traits,Allocator>& str,
+         charT  delim);
+  template<class charT, class traits, class Allocator>
+  basic_istream<charT,traits>&
+  getline(basic_istream<charT,traits>& is,
+         basic_string<charT,traits,Allocator>& str);
+
+  typedef basic_string<char> string;
+  typedef basic_string<wchar_t> wstring;
+}
diff --git a/libstdc++-v3/testsuite/21_strings/headers/string/types_std.cc b/libstdc++-v3/testsuite/21_strings/headers/string/types_std.cc
new file mode 100644 (file)
index 0000000..40731c4
--- /dev/null
@@ -0,0 +1,27 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <string>
+
+namespace gnu
+{
+  typedef std::string t1;
+  typedef std::wstring t2;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/codecvt/1.cc b/libstdc++-v3/testsuite/22_locale/codecvt/1.cc
deleted file mode 100644 (file)
index c0232ce..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-// { dg-do compile }
-// 2001-08-27  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.1.5  Template class codecvt
-
-#include <locale>
-
-void test01()
-{
-  // Check for required base class.
-  typedef std::codecvt<char, char, mbstate_t> test_type;
-  typedef std::locale::facet base_type;
-  const test_type& obj = std::use_facet<test_type>(std::locale()); 
-  const base_type* base __attribute__((unused)) = &obj;
-  
-  // Check for required typedefs
-  typedef test_type::intern_type intern_type;
-  typedef test_type::extern_type extern_type;
-  typedef test_type::state_type state_type;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/codecvt/2.cc b/libstdc++-v3/testsuite/22_locale/codecvt/2.cc
deleted file mode 100644 (file)
index 4e12657..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-// { dg-do compile }
-// 2001-08-27  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.1.5  Template class codecvt
-
-#include <locale>
-
-// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_codecvt: public std::codecvt<unsigned char, unsigned long, char> 
-{ };
-
-void test02()
-{ 
-  gnu_codecvt facet01;
-}
-
-int main()
-{
-  test02();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/codecvt/requirements/base_classes.cc b/libstdc++-v3/testsuite/22_locale/codecvt/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..15f5d64
--- /dev/null
@@ -0,0 +1,33 @@
+// { dg-do compile }
+// 2001-08-27  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.1.5  Template class codecvt
+
+#include <locale>
+
+void test01()
+{
+  // Check for required base class.
+  typedef std::codecvt<char, char, mbstate_t> test_type;
+  typedef std::locale::facet base_type;
+  const test_type& obj = std::use_facet<test_type>(std::locale()); 
+  const base_type* base __attribute__((unused)) = &obj;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/codecvt/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/22_locale/codecvt/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..b73c870
--- /dev/null
@@ -0,0 +1,27 @@
+// { dg-do compile }
+// 2001-08-27  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.1.5  Template class codecvt
+
+#include <locale>
+
+// Should be able to instantiate this for other types besides char, wchar_t
+template class std::codecvt<unsigned char, unsigned long, char>;
diff --git a/libstdc++-v3/testsuite/22_locale/codecvt/requirements/typedefs.cc b/libstdc++-v3/testsuite/22_locale/codecvt/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..45cfb2a
--- /dev/null
@@ -0,0 +1,33 @@
+// { dg-do compile }
+// 2001-08-27  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.1.5  Template class codecvt
+
+#include <locale>
+
+void test01()
+{
+  // Check for required typedefs
+  typedef std::codecvt<char, char, mbstate_t> test_type;
+  typedef test_type::intern_type intern_type;
+  typedef test_type::extern_type extern_type;
+  typedef test_type::state_type state_type;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/codecvt_byname/1.cc b/libstdc++-v3/testsuite/22_locale/codecvt_byname/1.cc
deleted file mode 100644 (file)
index d9c9f16..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-// { dg-do compile }
-// 2001-08-27  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.1.5  Template class codecvt
-
-#include <locale>
-
-void test01()
-{
-  // Check for required base class.
-  typedef std::codecvt_byname<char, char, mbstate_t> test_type;
-  typedef std::codecvt<char, char, mbstate_t> base_type;
-  const test_type& obj = std::use_facet<test_type>(std::locale::classic()); 
-  const base_type* base __attribute__((unused)) = &obj;
-  
-  // Check for required typedefs
-  typedef test_type::intern_type intern_type;
-  typedef test_type::extern_type extern_type;
-  typedef test_type::state_type state_type;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/base_classes.cc b/libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..337bd10
--- /dev/null
@@ -0,0 +1,33 @@
+// { dg-do compile }
+// 2001-08-27  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.1.5  Template class codecvt
+
+#include <locale>
+
+void test01()
+{
+  // Check for required base class.
+  typedef std::codecvt_byname<char, char, mbstate_t> test_type;
+  typedef std::codecvt<char, char, mbstate_t> base_type;
+  const test_type& obj = std::use_facet<test_type>(std::locale::classic()); 
+  const base_type* base __attribute__((unused)) = &obj;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..094b386
--- /dev/null
@@ -0,0 +1,34 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <locale>
+
+template class std::codecvt_byname<short, short, mbstate_t>;
diff --git a/libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/typedefs.cc b/libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..1bb9059
--- /dev/null
@@ -0,0 +1,33 @@
+// { dg-do compile }
+// 2001-08-27  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.1.5  Template class codecvt
+
+#include <locale>
+
+void test01()
+{
+  // Check for required typedefs
+  typedef std::codecvt_byname<char, char, mbstate_t> test_type;
+  typedef test_type::intern_type intern_type;
+  typedef test_type::extern_type extern_type;
+  typedef test_type::state_type state_type;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/collate/1.cc b/libstdc++-v3/testsuite/22_locale/collate/1.cc
deleted file mode 100644 (file)
index 72de0a9..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-// { dg-do compile }
-// 2001-08-15  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.4 The collate category
-
-#include <locale>
-
-void test01()
-{
-  // Check for required base class.
-  typedef std::collate<char> test_type;
-  typedef std::locale::facet base_type;
-  const test_type& obj = std::use_facet<test_type>(std::locale()); 
-  const base_type* base __attribute__((unused)) = &obj;
-
-  // Check for required typedefs
-  typedef test_type::char_type char_type;
-  typedef test_type::string_type string_type;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/collate/2.cc b/libstdc++-v3/testsuite/22_locale/collate/2.cc
deleted file mode 100644 (file)
index e4d43e8..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-// { dg-do compile }
-// 2001-08-15  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.4 The collate category
-
-#include <locale>
-
-// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_collate: public std::collate<unsigned char> 
-{ };
-
-void test02()
-{ 
-  gnu_collate facet01;
-}
-
-int main()
-{
-  test02();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/collate/requirements/base_classes.cc b/libstdc++-v3/testsuite/22_locale/collate/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..7659800
--- /dev/null
@@ -0,0 +1,33 @@
+// { dg-do compile }
+// 2001-08-15  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.4 The collate category
+
+#include <locale>
+
+void test01()
+{
+  // Check for required base class.
+  typedef std::collate<char> test_type;
+  typedef std::locale::facet base_type;
+  const test_type& obj = std::use_facet<test_type>(std::locale()); 
+  const base_type* base __attribute__((unused)) = &obj;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/collate/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/22_locale/collate/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..a9be3b1
--- /dev/null
@@ -0,0 +1,27 @@
+// { dg-do compile }
+// 2001-08-15  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.4 The collate category
+
+#include <locale>
+
+// Should be able to instantiate this for other types besides char, wchar_t
+template class std::collate<unsigned char>;
diff --git a/libstdc++-v3/testsuite/22_locale/collate/requirements/typedefs.cc b/libstdc++-v3/testsuite/22_locale/collate/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..9baafac
--- /dev/null
@@ -0,0 +1,32 @@
+// { dg-do compile }
+// 2001-08-15  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.4 The collate category
+
+#include <locale>
+
+void test01()
+{
+  // Check for required typedefs
+  typedef std::collate<char> test_type;
+  typedef test_type::char_type char_type;
+  typedef test_type::string_type string_type;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/collate_byname/1.cc b/libstdc++-v3/testsuite/22_locale/collate_byname/1.cc
deleted file mode 100644 (file)
index be3b7d2..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-// { dg-do compile }
-// 2001-08-15  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.4 The collate category
-
-#include <locale>
-
-void test01()
-{
-  // Check for required base class.
-  typedef std::collate_byname<char> test_type;
-  typedef std::collate<char> base_type;
-  const test_type& obj = std::use_facet<test_type>(std::locale::classic()); 
-  const base_type* base __attribute__((unused)) = &obj;
-
-  // Check for required typedefs
-  typedef test_type::char_type char_type;
-  typedef test_type::string_type string_type;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/collate_byname/requirements/base_classes.cc b/libstdc++-v3/testsuite/22_locale/collate_byname/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..f3d6571
--- /dev/null
@@ -0,0 +1,33 @@
+// { dg-do compile }
+// 2001-08-15  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.4 The collate category
+
+#include <locale>
+
+void test01()
+{
+  // Check for required base class.
+  typedef std::collate_byname<char> test_type;
+  typedef std::collate<char> base_type;
+  const test_type& obj = std::use_facet<test_type>(std::locale::classic()); 
+  const base_type* base __attribute__((unused)) = &obj;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/collate_byname/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/22_locale/collate_byname/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..43eda6f
--- /dev/null
@@ -0,0 +1,34 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <locale>
+
+template class std::collate_byname<short>;
diff --git a/libstdc++-v3/testsuite/22_locale/collate_byname/requirements/typedefs.cc b/libstdc++-v3/testsuite/22_locale/collate_byname/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..52ae527
--- /dev/null
@@ -0,0 +1,32 @@
+// { dg-do compile }
+// 2001-08-15  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.4 The collate category
+
+#include <locale>
+
+void test01()
+{
+  // Check for required typedefs
+  typedef std::collate_byname<char> test_type;
+  typedef test_type::char_type char_type;
+  typedef test_type::string_type string_type;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/ctype/1.cc b/libstdc++-v3/testsuite/22_locale/ctype/1.cc
deleted file mode 100644 (file)
index a1e2f1f..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-// { dg-do compile }
-// 2001-08-15  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.1.1 - Template class ctype
-
-#include <locale>
-
-void test01()
-{
-  // Check for required base class.
-  typedef std::ctype<char> test_type;
-  typedef std::locale::facet base_type1;
-  typedef std::ctype_base base_type2;
-  const test_type& obj = std::use_facet<test_type>(std::locale::classic()); 
-  const base_type1* base1 __attribute__((unused)) = &obj;
-  const base_type2* base2 __attribute__((unused)) = &obj;
-
-  // Check for required typedefs
-  typedef test_type::char_type char_type;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/ctype/requirements/base_classes.cc b/libstdc++-v3/testsuite/22_locale/ctype/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..0cf4c51
--- /dev/null
@@ -0,0 +1,35 @@
+// { dg-do compile }
+// 2001-08-15  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.1.1 - Template class ctype
+
+#include <locale>
+
+void test01()
+{
+  // Check for required base class.
+  typedef std::ctype<char> test_type;
+  typedef std::locale::facet base_type1;
+  typedef std::ctype_base base_type2;
+  const test_type& obj = std::use_facet<test_type>(std::locale::classic()); 
+  const base_type1* base1 __attribute__((unused)) = &obj;
+  const base_type2* base2 __attribute__((unused)) = &obj;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/ctype/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/22_locale/ctype/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..85ebec3
--- /dev/null
@@ -0,0 +1,34 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <locale>
+
+template class std::ctype<short>;
diff --git a/libstdc++-v3/testsuite/22_locale/ctype/requirements/typedefs.cc b/libstdc++-v3/testsuite/22_locale/ctype/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..f88fa34
--- /dev/null
@@ -0,0 +1,31 @@
+// { dg-do compile }
+// 2001-08-15  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.1.1 - Template class ctype
+
+#include <locale>
+
+void test01()
+{
+  // Check for required typedefs
+  typedef std::ctype<char> test_type;
+  typedef test_type::char_type char_type;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/ctype_base/1.cc b/libstdc++-v3/testsuite/22_locale/ctype_base/1.cc
deleted file mode 100644 (file)
index 260e1b0..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-// { dg-do compile }
-// 1999-08-24 bkoz
-
-// Copyright (C) 1999, 2000, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.1 The ctype category
-
-// 1: Test that the locale headers are picking up the correct declaration
-// of the internal type `ctype_base::mask'.
-int mask ();
-
-#include <locale>
-
-// 2: Sanity check ctype_base::mask bitmask requirements
-void
-test01()
-{
-  using namespace std;
-
-  ctype_base::mask m01;
-  ctype_base::mask m02;
-  ctype_base::mask res;
-
-  m01 = ctype_base::space;
-  m02 = ctype_base::xdigit;
-
-  res = m01 & m02;
-  res = m01 | m02;
-  res = m01 ^ m02;
-  res = ~m01;
-  m01 &= m02;
-  m01 |= m02;
-  m01 ^= m02;
-}
-
-int main() 
-{ 
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/ctype_base/mask.cc b/libstdc++-v3/testsuite/22_locale/ctype_base/mask.cc
new file mode 100644 (file)
index 0000000..260e1b0
--- /dev/null
@@ -0,0 +1,56 @@
+// { dg-do compile }
+// 1999-08-24 bkoz
+
+// Copyright (C) 1999, 2000, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.1 The ctype category
+
+// 1: Test that the locale headers are picking up the correct declaration
+// of the internal type `ctype_base::mask'.
+int mask ();
+
+#include <locale>
+
+// 2: Sanity check ctype_base::mask bitmask requirements
+void
+test01()
+{
+  using namespace std;
+
+  ctype_base::mask m01;
+  ctype_base::mask m02;
+  ctype_base::mask res;
+
+  m01 = ctype_base::space;
+  m02 = ctype_base::xdigit;
+
+  res = m01 & m02;
+  res = m01 | m02;
+  res = m01 ^ m02;
+  res = ~m01;
+  m01 &= m02;
+  m01 |= m02;
+  m01 ^= m02;
+}
+
+int main() 
+{ 
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/headers/clocale/functions_std.cc b/libstdc++-v3/testsuite/22_locale/headers/clocale/functions_std.cc
new file mode 100644 (file)
index 0000000..39626e8
--- /dev/null
@@ -0,0 +1,27 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <clocale>
+
+namespace gnu
+{
+  using std::localeconv;
+  using std::setlocale;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/headers/clocale/macros.cc b/libstdc++-v3/testsuite/22_locale/headers/clocale/macros.cc
new file mode 100644 (file)
index 0000000..575a33a
--- /dev/null
@@ -0,0 +1,52 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <clocale>
+
+namespace gnu
+{
+#ifndef NULL
+    #error "NULL_must_be_a_macro"
+#endif
+
+#ifndef LC_ALL
+    #error "LC_ALL_must_be_a_macro"
+#endif
+
+#ifndef LC_COLLATE
+    #error "LC_COLLATE_must_be_a_macro"
+#endif
+
+#ifndef LC_CTYPE
+    #error "LC_CTYPE_must_be_a_macro"
+#endif
+
+#ifndef LC_MONETARY
+    #error "LC_MONETARY_must_be_a_macro"
+#endif
+
+#ifndef LC_NUMERIC
+    #error "LC_NUMERIC_must_be_a_macro"
+#endif
+
+#ifndef LC_TIME
+    #error "LC_TIME_must_be_a_macro"
+#endif
+}
diff --git a/libstdc++-v3/testsuite/22_locale/headers/clocale/types_std.cc b/libstdc++-v3/testsuite/22_locale/headers/clocale/types_std.cc
new file mode 100644 (file)
index 0000000..125aef9
--- /dev/null
@@ -0,0 +1,26 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <clocale>
+
+namespace gnu
+{
+  std::lconv l;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/headers/locale/synopsis.cc b/libstdc++-v3/testsuite/22_locale/headers/locale/synopsis.cc
new file mode 100644 (file)
index 0000000..a26eab1
--- /dev/null
@@ -0,0 +1,85 @@
+// { dg-do compile { xfail *-*-* } }
+// { dg-excess-errors "" }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <locale>
+
+namespace std {
+  //  lib.locale, locale:
+  class locale;
+  template <class Facet> const Facet& use_facet(const locale&);
+  template <class Facet> bool         has_facet(const locale&) throw();
+
+  //  lib.locale.convenience, convenience interfaces:
+  template <class charT> bool isspace (charT c, const locale& loc);
+  template <class charT> bool isprint (charT c, const locale& loc);
+  template <class charT> bool iscntrl (charT c, const locale& loc);
+  template <class charT> bool isupper (charT c, const locale& loc);
+  template <class charT> bool islower (charT c, const locale& loc);
+  template <class charT> bool isalpha (charT c, const locale& loc);
+  template <class charT> bool isdigit (charT c, const locale& loc);
+  template <class charT> bool ispunct (charT c, const locale& loc);
+  template <class charT> bool isxdigit(charT c, const locale& loc);
+  template <class charT> bool isalnum (charT c, const locale& loc);
+  template <class charT> bool isgraph (charT c, const locale& loc);
+  template <class charT> charT toupper(charT c, const locale& loc);
+  template <class charT> charT tolower(charT c, const locale& loc);
+
+  //  lib.category.ctype and lib.facet.ctype.special, ctype:
+  class ctype_base;
+  template <class charT> class ctype;
+  template <>            class ctype<char>;             //  specialization
+  template <class charT> class ctype_byname;
+  template <>            class ctype_byname<char>;      //  specialization
+  class codecvt_base;
+  template <class internT, class externT, class stateT>
+  class codecvt;
+  template <class internT, class externT, class stateT>
+  class codecvt_byname;
+
+  //  lib.category.numeric and lib.facet.numpunct, numeric:
+  template <class charT, class InputIterator>  class num_get;
+  template <class charT, class OutputIterator> class num_put;
+  template <class charT> class numpunct;
+  template <class charT> class numpunct_byname;
+
+  //  lib.category.collate, collation:
+  template <class charT> class collate;
+  template <class charT> class collate_byname;
+
+  //  lib.category.time, date and time:
+  class time_base;
+  template <class charT, class InputIterator>  class time_get;
+  template <class charT, class InputIterator>  class time_get_byname;
+  template <class charT, class OutputIterator> class time_put;
+  template <class charT, class OutputIterator> class time_put_byname;
+
+  //  lib.category.monetary, money:
+  class money_base;
+  template <class charT, class InputIterator>  class money_get;
+  template <class charT, class OutputIterator> class money_put;
+  template <class charT, bool Intl> class moneypunct;
+  template <class charT, bool Intl> class moneypunct_byname;
+
+  //  lib.category.messages, message retrieval:
+  class messages_base;
+  template <class charT> class messages;
+  template <class charT> class messages_byname;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/headers/locale/types_std.cc b/libstdc++-v3/testsuite/22_locale/headers/locale/types_std.cc
new file mode 100644 (file)
index 0000000..85e4b9d
--- /dev/null
@@ -0,0 +1,31 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <locale>
+
+namespace gnu
+{
+  typedef std::locale t1;
+  typedef std::ctype_base t2;
+  typedef std::codecvt_base t3;
+  typedef std::time_base t4;
+  typedef std::money_base t5;
+  typedef std::messages_base t6;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/messages/1.cc b/libstdc++-v3/testsuite/22_locale/messages/1.cc
deleted file mode 100644 (file)
index 55b59ef..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-// { dg-do compile }
-// 2001-07-17  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.7 The message retrieval category
-
-#include <locale>
-
-void test01()
-{
-  // Check for required base class.
-  typedef std::messages<char> test_type;
-  typedef std::locale::facet base_type1;
-  typedef std::messages_base base_type2;
-  const test_type& obj = std::use_facet<test_type>(std::locale()); 
-  const base_type1* base1 __attribute__((unused)) = &obj;
-  const base_type2* base2 __attribute__((unused)) = &obj;
-
-  // Check for required typedefs
-  typedef test_type::char_type char_type;
-  typedef test_type::string_type string_type;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/messages/2.cc b/libstdc++-v3/testsuite/22_locale/messages/2.cc
deleted file mode 100644 (file)
index 42c37d9..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-// { dg-do compile }
-// 2001-07-17  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.7 The message retrieval category
-
-#include <locale>
-
-// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_messages: public std::messages<unsigned char> 
-{ };
-
-void test02()
-{ 
-  gnu_messages facet01;
-}
-
-int main()
-{
-  test02();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/messages/requirements/base_classes.cc b/libstdc++-v3/testsuite/22_locale/messages/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..ea89f80
--- /dev/null
@@ -0,0 +1,35 @@
+// { dg-do compile }
+// 2001-07-17  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.7 The message retrieval category
+
+#include <locale>
+
+void test01()
+{
+  // Check for required base class.
+  typedef std::messages<char> test_type;
+  typedef std::locale::facet base_type1;
+  typedef std::messages_base base_type2;
+  const test_type& obj = std::use_facet<test_type>(std::locale()); 
+  const base_type1* base1 __attribute__((unused)) = &obj;
+  const base_type2* base2 __attribute__((unused)) = &obj;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/messages/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/22_locale/messages/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..eaea104
--- /dev/null
@@ -0,0 +1,27 @@
+// { dg-do compile }
+// 2001-07-17  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.7 The message retrieval category
+
+#include <locale>
+
+// Should be able to instantiate this for other types besides char, wchar_t
+template class std::messages<unsigned char>;
diff --git a/libstdc++-v3/testsuite/22_locale/messages/requirements/typedefs.cc b/libstdc++-v3/testsuite/22_locale/messages/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..e8c5b95
--- /dev/null
@@ -0,0 +1,32 @@
+// { dg-do compile }
+// 2001-07-17  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.7 The message retrieval category
+
+#include <locale>
+
+void test01()
+{
+  // Check for required typedefs
+  typedef std::messages<char> test_type;
+  typedef test_type::char_type char_type;
+  typedef test_type::string_type string_type;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/messages_byname/1.cc b/libstdc++-v3/testsuite/22_locale/messages_byname/1.cc
deleted file mode 100644 (file)
index 51077ca..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-// { dg-do compile }
-// 2001-07-17  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.7 The message retrieval category
-
-#include <locale>
-
-void test01()
-{
-  // Check for required base class.
-  typedef std::messages_byname<char> test_type;
-  typedef std::messages<char> base_type;
-  const test_type& obj = std::use_facet<test_type>(std::locale::classic()); 
-  const base_type* base __attribute__((unused)) = &obj;
-
-  // Check for required typedefs
-  typedef test_type::char_type char_type;
-  typedef test_type::string_type string_type;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/messages_byname/requirements/base_classes.cc b/libstdc++-v3/testsuite/22_locale/messages_byname/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..4836c04
--- /dev/null
@@ -0,0 +1,33 @@
+// { dg-do compile }
+// 2001-07-17  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.7 The message retrieval category
+
+#include <locale>
+
+void test01()
+{
+  // Check for required base class.
+  typedef std::messages_byname<char> test_type;
+  typedef std::messages<char> base_type;
+  const test_type& obj = std::use_facet<test_type>(std::locale::classic()); 
+  const base_type* base __attribute__((unused)) = &obj;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/messages_byname/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/22_locale/messages_byname/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..b108ff8
--- /dev/null
@@ -0,0 +1,34 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <locale>
+
+template class std::messages_byname<short>;
diff --git a/libstdc++-v3/testsuite/22_locale/messages_byname/requirements/typedefs.cc b/libstdc++-v3/testsuite/22_locale/messages_byname/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..b74150e
--- /dev/null
@@ -0,0 +1,32 @@
+// { dg-do compile }
+// 2001-07-17  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.7 The message retrieval category
+
+#include <locale>
+
+void test01()
+{
+  // Check for required typedefs
+  typedef std::messages_byname<char> test_type;
+  typedef test_type::char_type char_type;
+  typedef test_type::string_type string_type;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/money_get/1.cc b/libstdc++-v3/testsuite/22_locale/money_get/1.cc
deleted file mode 100644 (file)
index dd7d0d2..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-// { dg-do compile }
-// 2001-09-12  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.6.1  Template class money_get
-
-#include <locale>
-
-void test01()
-{
-  // Check for required base class.
-  typedef std::money_get<char> test_type;
-  typedef std::locale::facet base_type;
-  const test_type& obj = std::use_facet<test_type>(std::locale()); 
-  const base_type* base __attribute__((unused)) = &obj;
-  
-  // Check for required typedefs
-  typedef test_type::char_type char_type;
-  typedef test_type::string_type string_type;
-  typedef test_type::iter_type iter_type;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/money_get/2.cc b/libstdc++-v3/testsuite/22_locale/money_get/2.cc
deleted file mode 100644 (file)
index 3853a22..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-// { dg-do compile }
-// 2001-09-12  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.6.1  Template class money_get
-
-#include <locale>
-
-// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_money_get: public std::money_get<unsigned char> 
-{ };
-
-void test02()
-{ 
-  gnu_money_get facet01;
-}
-
-int main()
-{
-  test02();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/money_get/3.cc b/libstdc++-v3/testsuite/22_locale/money_get/3.cc
deleted file mode 100644 (file)
index 61e2a1f..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-// 2005-04-29  Paolo Carlini  <pcarlini@suse.de>
-//
-// Copyright (C) 2005 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.6.1  Template class money_get
-
-// { dg-do compile }
-
-#include <locale> 
-#include <testsuite_character.h>
-
-class gnu_money_get: public std::money_get<__gnu_test::pod_uint> 
-{ };
-
-// libstdc++/21238
-void test01()
-{ 
-  gnu_money_get facet01;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/money_get/cons/3.cc b/libstdc++-v3/testsuite/22_locale/money_get/cons/3.cc
new file mode 100644 (file)
index 0000000..61e2a1f
--- /dev/null
@@ -0,0 +1,41 @@
+// 2005-04-29  Paolo Carlini  <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.6.1  Template class money_get
+
+// { dg-do compile }
+
+#include <locale> 
+#include <testsuite_character.h>
+
+class gnu_money_get: public std::money_get<__gnu_test::pod_uint> 
+{ };
+
+// libstdc++/21238
+void test01()
+{ 
+  gnu_money_get facet01;
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/money_get/requirements/base_classes.cc b/libstdc++-v3/testsuite/22_locale/money_get/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..a0a936e
--- /dev/null
@@ -0,0 +1,33 @@
+// { dg-do compile }
+// 2001-09-12  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.6.1  Template class money_get
+
+#include <locale>
+
+void test01()
+{
+  // Check for required base class.
+  typedef std::money_get<char> test_type;
+  typedef std::locale::facet base_type;
+  const test_type& obj = std::use_facet<test_type>(std::locale()); 
+  const base_type* base __attribute__((unused)) = &obj;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/money_get/requirements/explicit_instantiations.cc b/libstdc++-v3/testsuite/22_locale/money_get/requirements/explicit_instantiations.cc
new file mode 100644 (file)
index 0000000..dc7f859
--- /dev/null
@@ -0,0 +1,27 @@
+// { dg-do compile }
+// 2001-09-12  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.6.1  Template class money_get
+
+#include <locale>
+
+// Should be able to instantiate this for other types besides char, wchar_t
+template class std::money_get<unsigned char>;
diff --git a/libstdc++-v3/testsuite/22_locale/money_get/requirements/typedefs.cc b/libstdc++-v3/testsuite/22_locale/money_get/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..ee3b04d
--- /dev/null
@@ -0,0 +1,33 @@
+// { dg-do compile }
+// 2001-09-12  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.6.1  Template class money_get
+
+#include <locale>
+
+void test01()
+{
+  // Check for required typedefs
+  typedef std::money_get<char> test_type;
+  typedef test_type::char_type char_type;
+  typedef test_type::string_type string_type;
+  typedef test_type::iter_type iter_type;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/money_put/1.cc b/libstdc++-v3/testsuite/22_locale/money_put/1.cc
deleted file mode 100644 (file)
index 2e0bfa0..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-// { dg-do compile }
-// 2001-08-27  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.6.2  Template class money_put
-
-#include <locale>
-
-void test01()
-{
-  // Check for required base class.
-  typedef std::money_put<char> test_type;
-  typedef std::locale::facet base_type;
-  const test_type& obj = std::use_facet<test_type>(std::locale()); 
-  const base_type* base __attribute__((unused)) = &obj;
-  
-  // Check for required typedefs
-  typedef test_type::char_type char_type;
-  typedef test_type::string_type string_type;
-  typedef test_type::iter_type iter_type;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/money_put/2.cc b/libstdc++-v3/testsuite/22_locale/money_put/2.cc
deleted file mode 100644 (file)
index 28f9005..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-// { dg-do compile }
-// 2001-08-27  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.6.2  Template class money_put
-
-#include <locale>
-
-// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_money_put: public std::money_put<unsigned char> 
-{ };
-
-void test02()
-{ 
-  gnu_money_put facet01;
-}
-
-int main()
-{
-  test02();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/money_put/3.cc b/libstdc++-v3/testsuite/22_locale/money_put/3.cc
deleted file mode 100644 (file)
index 535ca6e..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-// 2005-04-29  Paolo Carlini  <pcarlini@suse.de>
-//
-// Copyright (C) 2005 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.6.2  Template class money_put
-
-// { dg-do compile }
-
-#include <locale> 
-#include <testsuite_character.h>
-
-class gnu_money_put: public std::money_put<__gnu_test::pod_uint> 
-{ };
-
-// libstdc++/21238
-void test01()
-{ 
-  gnu_money_put facet01;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/money_put/cons/3.cc b/libstdc++-v3/testsuite/22_locale/money_put/cons/3.cc
new file mode 100644 (file)
index 0000000..535ca6e
--- /dev/null
@@ -0,0 +1,41 @@
+// 2005-04-29  Paolo Carlini  <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.6.2  Template class money_put
+
+// { dg-do compile }
+
+#include <locale> 
+#include <testsuite_character.h>
+
+class gnu_money_put: public std::money_put<__gnu_test::pod_uint> 
+{ };
+
+// libstdc++/21238
+void test01()
+{ 
+  gnu_money_put facet01;
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/money_put/requirements/base_classes.cc b/libstdc++-v3/testsuite/22_locale/money_put/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..b352a25
--- /dev/null
@@ -0,0 +1,33 @@
+// { dg-do compile }
+// 2001-08-27  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.6.2  Template class money_put
+
+#include <locale>
+
+void test01()
+{
+  // Check for required base class.
+  typedef std::money_put<char> test_type;
+  typedef std::locale::facet base_type;
+  const test_type& obj = std::use_facet<test_type>(std::locale()); 
+  const base_type* base __attribute__((unused)) = &obj;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/money_put/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/22_locale/money_put/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..0afb187
--- /dev/null
@@ -0,0 +1,27 @@
+// { dg-do compile }
+// 2001-08-27  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.6.2  Template class money_put
+
+#include <locale>
+
+// Should be able to instantiate this for other types besides char, wchar_t
+template class std::money_put<unsigned char>;
diff --git a/libstdc++-v3/testsuite/22_locale/money_put/requirements/typedefs.cc b/libstdc++-v3/testsuite/22_locale/money_put/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..1e5ded2
--- /dev/null
@@ -0,0 +1,33 @@
+// { dg-do compile }
+// 2001-08-27  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.6.2  Template class money_put
+
+#include <locale>
+
+void test01()
+{
+  // Check for required typedefs
+  typedef std::money_put<char> test_type;
+  typedef test_type::char_type char_type;
+  typedef test_type::string_type string_type;
+  typedef test_type::iter_type iter_type;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/moneypunct/1.cc b/libstdc++-v3/testsuite/22_locale/moneypunct/1.cc
deleted file mode 100644 (file)
index 2995945..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-// { dg-do compile }
-// 2001-08-23  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.6.3  Template class moneypunct
-
-#include <locale>
-#include <testsuite_hooks.h>
-
-void test01()
-{
-  // Check for required base class.
-  typedef std::moneypunct<char, true> test_type;
-  typedef std::locale::facet base_type;
-  const test_type& obj = std::use_facet<test_type>(std::locale()); 
-  const base_type* base __attribute__((unused)) = &obj;
-  
-  // Check for required typedefs
-  typedef test_type::char_type char_type;
-  typedef test_type::string_type string_type;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/moneypunct/2.cc b/libstdc++-v3/testsuite/22_locale/moneypunct/2.cc
deleted file mode 100644 (file)
index 87fb4f4..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-// { dg-do compile }
-// 2001-08-23  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.6.3  Template class moneypunct
-
-#include <locale>
-#include <testsuite_hooks.h>
-
-void test02()
-{
-  // Check for required base class.
-  typedef std::moneypunct<char, false> test_type;
-  typedef std::locale::facet base_type;
-  const test_type& obj = std::use_facet<test_type>(std::locale()); 
-  const base_type* base __attribute__((unused)) = &obj;
-  
-  // Check for required typedefs
-  typedef test_type::char_type char_type;
-  typedef test_type::string_type string_type;
-}
-
-int main()
-{
-  test02();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/moneypunct/3.cc b/libstdc++-v3/testsuite/22_locale/moneypunct/3.cc
deleted file mode 100644 (file)
index 2b8cdc3..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-// 2001-08-23  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.6.3  Template class moneypunct
-
-// { dg-do compile }
-
-#include <locale>
-#include <testsuite_hooks.h>
-
-// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_moneypunct_t: public std::moneypunct<unsigned char, true> 
-{ };
-
-class gnu_moneypunct_f: public std::moneypunct<unsigned char, false> 
-{ };
-
-void test03()
-{ 
-  gnu_moneypunct_t facet01;
-  gnu_moneypunct_f facet02;
-  VERIFY (facet01.intl == true);
-  VERIFY (facet02.intl == false);
-}
-
-int main()
-{
-  test03();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/base_classes.cc b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/base_classes.cc
new file mode 100644 (file)
index 0000000..a880d82
--- /dev/null
@@ -0,0 +1,34 @@
+// { dg-do compile }
+// 2001-08-23  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.6.3  Template class moneypunct
+
+#include <locale>
+#include <testsuite_hooks.h>
+
+void test02()
+{
+  // Check for required base class.
+  typedef std::moneypunct<char, false> test_type;
+  typedef std::locale::facet base_type;
+  const test_type& obj = std::use_facet<test_type>(std::locale()); 
+  const base_type* base __attribute__((unused)) = &obj;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/explicit_instantiation.cc b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..9b24c0b
--- /dev/null
@@ -0,0 +1,34 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <locale>
+
+template class std::moneypunct<short, false>;
diff --git a/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/intl.cc b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/intl.cc
new file mode 100644 (file)
index 0000000..9380ecb
--- /dev/null
@@ -0,0 +1,41 @@
+// 2001-08-23  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.6.3  Template class moneypunct
+
+#include <locale>
+#include <testsuite_hooks.h>
+
+// Should be able to instantiate this for other types besides char, wchar_t
+class gnu_moneypunct_f: public std::moneypunct<char, false> 
+{ };
+
+void test03()
+{ 
+  bool test __attribute__((unused)) = true;
+  gnu_moneypunct_f facet02;
+  VERIFY (facet02.intl == false);
+}
+
+int main()
+{
+  test03();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/typedefs.cc b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/typedefs.cc
new file mode 100644 (file)
index 0000000..cd6b92b
--- /dev/null
@@ -0,0 +1,33 @@
+// { dg-do compile }
+// 2001-08-23  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.6.3  Template class moneypunct
+
+#include <locale>
+#include <testsuite_hooks.h>
+
+void test02()
+{
+  // Check for required typedefs
+  typedef std::moneypunct<char, false> test_type;
+  typedef test_type::char_type char_type;
+  typedef test_type::string_type string_type;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/base_classes.cc b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/base_classes.cc
new file mode 100644 (file)
index 0000000..231172e
--- /dev/null
@@ -0,0 +1,33 @@
+// { dg-do compile }
+// 2001-08-23  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.6.3  Template class moneypunct
+
+#include <locale>
+
+void test01()
+{
+  // Check for required base class.
+  typedef std::moneypunct<char, true> test_type;
+  typedef std::locale::facet base_type;
+  const test_type& obj = std::use_facet<test_type>(std::locale()); 
+  const base_type* base __attribute__((unused)) = &obj;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/explicit_instantiation.cc b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..20cac01
--- /dev/null
@@ -0,0 +1,34 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <locale>
+
+template class std::moneypunct<short, true>;
diff --git a/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/intl.cc b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/intl.cc
new file mode 100644 (file)
index 0000000..3448737
--- /dev/null
@@ -0,0 +1,41 @@
+// 2001-08-23  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.6.3  Template class moneypunct
+
+#include <locale>
+#include <testsuite_hooks.h>
+
+// Should be able to instantiate this for other types besides char, wchar_t
+class gnu_moneypunct_t: public std::moneypunct<char, true> 
+{ };
+
+void test03()
+{ 
+  bool test __attribute__((unused)) = true;
+  gnu_moneypunct_t facet01;
+  VERIFY (facet01.intl == true);
+}
+
+int main()
+{
+  test03();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/typedefs.cc b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/typedefs.cc
new file mode 100644 (file)
index 0000000..f1ced4e
--- /dev/null
@@ -0,0 +1,33 @@
+// { dg-do compile }
+// 2001-08-23  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.6.3  Template class moneypunct
+
+#include <locale>
+#include <testsuite_hooks.h>
+
+void test01()
+{  
+  // Check for required typedefs
+  typedef std::moneypunct<char, true> test_type;
+  typedef test_type::char_type char_type;
+  typedef test_type::string_type string_type;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/moneypunct_byname/1.cc b/libstdc++-v3/testsuite/22_locale/moneypunct_byname/1.cc
deleted file mode 100644 (file)
index 0751211..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-// { dg-do compile }
-// 2001-08-23  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.6.3  Template class moneypunct
-
-#include <locale>
-#include <testsuite_hooks.h>
-
-void test01()
-{
-  // Check for required base class.
-  typedef std::moneypunct_byname<char, true> test_type;
-  typedef std::moneypunct<char, true> base_type;
-  const test_type& obj = std::use_facet<test_type>(std::locale()); 
-  const base_type* base __attribute__((unused)) = &obj;
-  
-  // Check for required typedefs
-  typedef test_type::char_type char_type;
-  typedef test_type::string_type string_type;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/base_classes.cc b/libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..1180f29
--- /dev/null
@@ -0,0 +1,34 @@
+// { dg-do compile }
+// 2001-08-23  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.6.3  Template class moneypunct
+
+#include <locale>
+#include <testsuite_hooks.h>
+
+void test01()
+{
+  // Check for required base class.
+  typedef std::moneypunct_byname<char, true> test_type;
+  typedef std::moneypunct<char, true> base_type;
+  const test_type& obj = std::use_facet<test_type>(std::locale()); 
+  const base_type* base __attribute__((unused)) = &obj;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..4330285
--- /dev/null
@@ -0,0 +1,34 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <locale>
+
+template class std::moneypunct_byname<short, true>;
diff --git a/libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/typedefs.cc b/libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..b4b3b51
--- /dev/null
@@ -0,0 +1,32 @@
+// { dg-do compile }
+// 2001-08-23  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.6.3  Template class moneypunct
+
+#include <locale>
+
+void test01()
+{
+  // Check for required typedefs
+  typedef std::moneypunct_byname<char, true> test_type;
+  typedef test_type::char_type char_type;
+  typedef test_type::string_type string_type;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/num_get/1.cc b/libstdc++-v3/testsuite/22_locale/num_get/1.cc
deleted file mode 100644 (file)
index f1f1f85..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-// { dg-do compile }
-// 2001-11-21  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.2.1  Template class num_get
-
-#include <locale>
-
-void test01()
-{
-  // Check for required base class.
-  typedef std::num_get<char> test_type;
-  typedef std::locale::facet base_type;
-  const test_type& obj = std::use_facet<test_type>(std::locale()); 
-  const base_type* base __attribute__((unused)) = &obj;
-  
-  // Check for required typedefs
-  typedef test_type::char_type char_type;
-  typedef test_type::iter_type iter_type;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/num_get/2.cc b/libstdc++-v3/testsuite/22_locale/num_get/2.cc
deleted file mode 100644 (file)
index ab2d743..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-// { dg-do compile }
-// 2001-11-21  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.2.1  Template class num_get
-
-#include <locale>
-
-// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_num_get: public std::num_get<unsigned char> 
-{ };
-
-void test02()
-{ 
-  gnu_num_get facet01;
-}
-
-int main()
-{
-  test02();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/num_get/3.cc b/libstdc++-v3/testsuite/22_locale/num_get/3.cc
deleted file mode 100644 (file)
index 92295c0..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-// 2005-04-29  Paolo Carlini  <pcarlini@suse.de>
-//
-// Copyright (C) 2005 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.2.1  Template class num_get
-
-// { dg-do compile }
-
-#include <locale> 
-#include <testsuite_character.h>
-
-class gnu_num_get: public std::num_get<__gnu_test::pod_uint> 
-{ };
-
-// libstdc++/21238
-void test01()
-{ 
-  gnu_num_get facet01;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/num_get/cons/3.cc b/libstdc++-v3/testsuite/22_locale/num_get/cons/3.cc
new file mode 100644 (file)
index 0000000..92295c0
--- /dev/null
@@ -0,0 +1,41 @@
+// 2005-04-29  Paolo Carlini  <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.2.1  Template class num_get
+
+// { dg-do compile }
+
+#include <locale> 
+#include <testsuite_character.h>
+
+class gnu_num_get: public std::num_get<__gnu_test::pod_uint> 
+{ };
+
+// libstdc++/21238
+void test01()
+{ 
+  gnu_num_get facet01;
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/num_get/requirements/base_classes.cc b/libstdc++-v3/testsuite/22_locale/num_get/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..363ad15
--- /dev/null
@@ -0,0 +1,33 @@
+// { dg-do compile }
+// 2001-11-21  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.2.1  Template class num_get
+
+#include <locale>
+
+void test01()
+{
+  // Check for required base class.
+  typedef std::num_get<char> test_type;
+  typedef std::locale::facet base_type;
+  const test_type& obj = std::use_facet<test_type>(std::locale()); 
+  const base_type* base __attribute__((unused)) = &obj;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/num_get/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/22_locale/num_get/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..87e126a
--- /dev/null
@@ -0,0 +1,27 @@
+// { dg-do compile }
+// 2001-11-21  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.2.1  Template class num_get
+
+#include <locale>
+
+// Should be able to instantiate this for other types besides char, wchar_t
+template class std::num_get<unsigned char> ;
diff --git a/libstdc++-v3/testsuite/22_locale/num_get/requirements/typedefs.cc b/libstdc++-v3/testsuite/22_locale/num_get/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..1229581
--- /dev/null
@@ -0,0 +1,32 @@
+// { dg-do compile }
+// 2001-11-21  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.2.1  Template class num_get
+
+#include <locale>
+
+void test01()
+{
+  // Check for required typedefs
+  typedef std::num_get<char> test_type;
+  typedef test_type::char_type char_type;
+  typedef test_type::iter_type iter_type;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/num_put/1.cc b/libstdc++-v3/testsuite/22_locale/num_put/1.cc
deleted file mode 100644 (file)
index 528c130..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-// { dg-do compile }
-// 2001-11-19  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.2.2  Template class num_put
-
-#include <locale>
-
-void test01()
-{
-  // Check for required base class.
-  typedef std::num_put<char> test_type;
-  typedef std::locale::facet base_type;
-  const test_type& obj = std::use_facet<test_type>(std::locale()); 
-  const base_type* base __attribute__((unused)) = &obj;
-  
-  // Check for required typedefs
-  typedef test_type::char_type char_type;
-  typedef test_type::iter_type iter_type;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/num_put/2.cc b/libstdc++-v3/testsuite/22_locale/num_put/2.cc
deleted file mode 100644 (file)
index cec69bb..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-// { dg-do compile }
-// 2001-11-19  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.2.2  Template class num_put
-
-#include <locale>
-
-// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_num_put: public std::num_put<unsigned char> 
-{ };
-
-void test02()
-{ 
-  gnu_num_put facet01;
-}
-
-int main()
-{
-  test02();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/num_put/3.cc b/libstdc++-v3/testsuite/22_locale/num_put/3.cc
deleted file mode 100644 (file)
index 6ecad4f..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-// 2005-04-29  Paolo Carlini  <pcarlini@suse.de>
-//
-// Copyright (C) 2005 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.2.2  Template class num_put
-
-// { dg-do compile }
-
-#include <locale> 
-#include <testsuite_character.h>
-
-class gnu_num_put: public std::num_put<__gnu_test::pod_uint> 
-{ };
-
-// libstdc++/21238
-void test01()
-{ 
-  gnu_num_put facet01;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/num_put/cons/3.cc b/libstdc++-v3/testsuite/22_locale/num_put/cons/3.cc
new file mode 100644 (file)
index 0000000..6ecad4f
--- /dev/null
@@ -0,0 +1,41 @@
+// 2005-04-29  Paolo Carlini  <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.2.2  Template class num_put
+
+// { dg-do compile }
+
+#include <locale> 
+#include <testsuite_character.h>
+
+class gnu_num_put: public std::num_put<__gnu_test::pod_uint> 
+{ };
+
+// libstdc++/21238
+void test01()
+{ 
+  gnu_num_put facet01;
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/num_put/requirements/base_classes.cc b/libstdc++-v3/testsuite/22_locale/num_put/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..eb8432c
--- /dev/null
@@ -0,0 +1,33 @@
+// { dg-do compile }
+// 2001-11-19  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.2.2  Template class num_put
+
+#include <locale>
+
+void test01()
+{
+  // Check for required base class.
+  typedef std::num_put<char> test_type;
+  typedef std::locale::facet base_type;
+  const test_type& obj = std::use_facet<test_type>(std::locale()); 
+  const base_type* base __attribute__((unused)) = &obj;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/num_put/requirements/explicit_instantiations.cc b/libstdc++-v3/testsuite/22_locale/num_put/requirements/explicit_instantiations.cc
new file mode 100644 (file)
index 0000000..08008ee
--- /dev/null
@@ -0,0 +1,27 @@
+// { dg-do compile }
+// 2001-11-19  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.2.2  Template class num_put
+
+#include <locale>
+
+// Should be able to instantiate this for other types besides char, wchar_t
+template class std::num_put<unsigned char>;
diff --git a/libstdc++-v3/testsuite/22_locale/num_put/requirements/typedefs.cc b/libstdc++-v3/testsuite/22_locale/num_put/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..2dfed97
--- /dev/null
@@ -0,0 +1,32 @@
+// { dg-do compile }
+// 2001-11-19  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.2.2  Template class num_put
+
+#include <locale>
+
+void test01()
+{
+  // Check for required typedefs
+  typedef std::num_put<char> test_type;
+  typedef test_type::char_type char_type;
+  typedef test_type::iter_type iter_type;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/numpunct/1.cc b/libstdc++-v3/testsuite/22_locale/numpunct/1.cc
deleted file mode 100644 (file)
index b4dc0d9..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-// { dg-do compile }
-// 2001-01-23  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003  Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.3  The numeric punctuation facet
-
-#include <locale>
-
-void test01()
-{
-  // Check for required base class.
-  typedef std::numpunct<char> test_type;
-  typedef std::locale::facet base_type;
-  const test_type& obj = std::use_facet<test_type>(std::locale()); 
-  const base_type* base __attribute__((unused)) = &obj;
-
-  // Check for required typedefs
-  typedef test_type::char_type char_type;
-  typedef test_type::string_type string_type;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/numpunct/2.cc b/libstdc++-v3/testsuite/22_locale/numpunct/2.cc
deleted file mode 100644 (file)
index 59aa3d9..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-// { dg-do compile }
-// 2001-01-23  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003  Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.3  The numeric punctuation facet
-
-#include <locale>
-
-// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_numpunct: public std::numpunct<unsigned char> 
-{ };
-
-void test02()
-{ 
-  gnu_numpunct facet01;
-}
-
-int main()
-{
-  test02();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/numpunct/requirements/base_classes.cc b/libstdc++-v3/testsuite/22_locale/numpunct/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..db5ce24
--- /dev/null
@@ -0,0 +1,33 @@
+// { dg-do compile }
+// 2001-01-23  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003  Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.3  The numeric punctuation facet
+
+#include <locale>
+
+void test01()
+{
+  // Check for required base class.
+  typedef std::numpunct<char> test_type;
+  typedef std::locale::facet base_type;
+  const test_type& obj = std::use_facet<test_type>(std::locale()); 
+  const base_type* base __attribute__((unused)) = &obj;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/numpunct/requirements/explicit_instantiations.cc b/libstdc++-v3/testsuite/22_locale/numpunct/requirements/explicit_instantiations.cc
new file mode 100644 (file)
index 0000000..279633a
--- /dev/null
@@ -0,0 +1,27 @@
+// { dg-do compile }
+// 2001-01-23  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003  Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.3  The numeric punctuation facet
+
+#include <locale>
+
+// Should be able to instantiate this for other types besides char, wchar_t
+template class std::numpunct<unsigned char>;
diff --git a/libstdc++-v3/testsuite/22_locale/numpunct/requirements/typedefs.cc b/libstdc++-v3/testsuite/22_locale/numpunct/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..e58fa1e
--- /dev/null
@@ -0,0 +1,32 @@
+// { dg-do compile }
+// 2001-01-23  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003  Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.3  The numeric punctuation facet
+
+#include <locale>
+
+void test01()
+{
+  // Check for required typedefs
+  typedef std::numpunct<char> test_type;
+  typedef test_type::char_type char_type;
+  typedef test_type::string_type string_type;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/numpunct_byname/1.cc b/libstdc++-v3/testsuite/22_locale/numpunct_byname/1.cc
deleted file mode 100644 (file)
index c417078..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-// { dg-do compile }
-// 2001-01-23  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003  Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.3  The numeric punctuation facet
-
-#include <locale>
-
-void test01()
-{
-  // Check for required base class.
-  typedef std::numpunct_byname<char> test_type;
-  typedef std::numpunct<char> base_type;
-  const test_type& obj = std::use_facet<test_type>(std::locale()); 
-  const base_type* base __attribute__((unused)) = &obj;
-
-  // Check for required typedefs
-  typedef test_type::char_type char_type;
-  typedef test_type::string_type string_type;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/base_classes.cc b/libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..9b79493
--- /dev/null
@@ -0,0 +1,33 @@
+// { dg-do compile }
+// 2001-01-23  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003  Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.3  The numeric punctuation facet
+
+#include <locale>
+
+void test01()
+{
+  // Check for required base class.
+  typedef std::numpunct_byname<char> test_type;
+  typedef std::numpunct<char> base_type;
+  const test_type& obj = std::use_facet<test_type>(std::locale()); 
+  const base_type* base __attribute__((unused)) = &obj;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/explicit_instantiations.cc b/libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/explicit_instantiations.cc
new file mode 100644 (file)
index 0000000..799541d
--- /dev/null
@@ -0,0 +1,27 @@
+// { dg-do compile }
+// 2001-01-23  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003  Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.3  The numeric punctuation facet
+
+#include <locale>
+
+// Should be able to instantiate this for other types besides char, wchar_t
+template class std::numpunct_byname<unsigned char>;
diff --git a/libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/typedefs.cc b/libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..d269996
--- /dev/null
@@ -0,0 +1,32 @@
+// { dg-do compile }
+// 2001-01-23  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003  Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.3  The numeric punctuation facet
+
+#include <locale>
+
+void test01()
+{
+  // Check for required typedefs
+  typedef std::numpunct_byname<char> test_type;
+  typedef test_type::char_type char_type;
+  typedef test_type::string_type string_type;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/1.cc b/libstdc++-v3/testsuite/22_locale/time_get/1.cc
deleted file mode 100644 (file)
index 1a68ce7..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-// { dg-do compile }
-// 2001-09-21  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.5.1  Template class time_get
-
-#include <locale>
-
-void test01()
-{
-  // Check for required base class.
-  typedef std::time_get<char> test_type;
-  typedef std::locale::facet base_type1;
-  typedef std::time_base base_type2;
-  const test_type& obj = std::use_facet<test_type>(std::locale()); 
-  const base_type1* base1 __attribute__((unused)) = &obj;
-  const base_type2* base2 __attribute__((unused)) = &obj;
-  
-  // Check for required typedefs
-  typedef test_type::char_type char_type;
-  typedef test_type::iter_type iter_type;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/2.cc b/libstdc++-v3/testsuite/22_locale/time_get/2.cc
deleted file mode 100644 (file)
index 19c145c..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-// { dg-do compile }
-// 2001-09-21  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.5.1  Template class time_get
-
-#include <locale>
-
-// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_time_get: public std::time_get<unsigned char> 
-{ };
-
-void test02()
-{ 
-  gnu_time_get facet01;
-}
-
-int main()
-{
-  test02();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/requirements/base_classes.cc b/libstdc++-v3/testsuite/22_locale/time_get/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..072db6d
--- /dev/null
@@ -0,0 +1,35 @@
+// { dg-do compile }
+// 2001-09-21  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.5.1  Template class time_get
+
+#include <locale>
+
+void test01()
+{
+  // Check for required base class.
+  typedef std::time_get<char> test_type;
+  typedef std::locale::facet base_type1;
+  typedef std::time_base base_type2;
+  const test_type& obj = std::use_facet<test_type>(std::locale()); 
+  const base_type1* base1 __attribute__((unused)) = &obj;
+  const base_type2* base2 __attribute__((unused)) = &obj;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/requirements/explicit_instantiations.cc b/libstdc++-v3/testsuite/22_locale/time_get/requirements/explicit_instantiations.cc
new file mode 100644 (file)
index 0000000..170e9e7
--- /dev/null
@@ -0,0 +1,27 @@
+// { dg-do compile }
+// 2001-09-21  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.5.1  Template class time_get
+
+#include <locale>
+
+// Should be able to instantiate this for other types besides char, wchar_t
+template class std::time_get<unsigned char>;
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/requirements/typedefs.cc b/libstdc++-v3/testsuite/22_locale/time_get/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..1d2afa6
--- /dev/null
@@ -0,0 +1,32 @@
+// { dg-do compile }
+// 2001-09-21  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.5.1  Template class time_get
+
+#include <locale>
+
+void test01()
+{
+  // Check for required typedefs
+  typedef std::time_get<char> test_type;
+  typedef test_type::char_type char_type;
+  typedef test_type::iter_type iter_type;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/time_put/1.cc b/libstdc++-v3/testsuite/22_locale/time_put/1.cc
deleted file mode 100644 (file)
index 69f24ae..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-// { dg-do compile }
-// 2001-09-17  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.5.3  Template class time_put
-
-#include <locale>
-
-void test01()
-{
-  // Check for required base class.
-  typedef std::time_put<char> test_type;
-  typedef std::locale::facet base_type;
-  const test_type& obj = std::use_facet<test_type>(std::locale()); 
-  const base_type* base __attribute__((unused)) = &obj;
-  
-  // Check for required typedefs
-  typedef test_type::char_type char_type;
-  typedef test_type::iter_type iter_type;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/time_put/2.cc b/libstdc++-v3/testsuite/22_locale/time_put/2.cc
deleted file mode 100644 (file)
index 5038355..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-// { dg-do compile }
-// 2001-09-17  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.5.3  Template class time_put
-
-#include <locale>
-
-// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_time_put: public std::time_put<unsigned char> 
-{ };
-
-void test02()
-{ 
-  gnu_time_put facet01;
-}
-
-int main()
-{
-  test02();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/22_locale/time_put/requirements/base_classes.cc b/libstdc++-v3/testsuite/22_locale/time_put/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..197fa6e
--- /dev/null
@@ -0,0 +1,33 @@
+// { dg-do compile }
+// 2001-09-17  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.5.3  Template class time_put
+
+#include <locale>
+
+void test01()
+{
+  // Check for required base class.
+  typedef std::time_put<char> test_type;
+  typedef std::locale::facet base_type;
+  const test_type& obj = std::use_facet<test_type>(std::locale()); 
+  const base_type* base __attribute__((unused)) = &obj;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/time_put/requirements/explicit_instantiations.cc b/libstdc++-v3/testsuite/22_locale/time_put/requirements/explicit_instantiations.cc
new file mode 100644 (file)
index 0000000..a1b365c
--- /dev/null
@@ -0,0 +1,27 @@
+// { dg-do compile }
+// 2001-09-17  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.5.3  Template class time_put
+
+#include <locale>
+
+// Should be able to instantiate this for other types besides char, wchar_t
+template class std::time_put<unsigned char>;
diff --git a/libstdc++-v3/testsuite/22_locale/time_put/requirements/typedefs.cc b/libstdc++-v3/testsuite/22_locale/time_put/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..69e7c4a
--- /dev/null
@@ -0,0 +1,32 @@
+// { dg-do compile }
+// 2001-09-17  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.5.3  Template class time_put
+
+#include <locale>
+
+void test01()
+{
+  // Check for required typedefs
+  typedef std::time_put<char> test_type;
+  typedef test_type::char_type char_type;
+  typedef test_type::iter_type iter_type;
+}
diff --git a/libstdc++-v3/testsuite/23_containers/bitset/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/bitset/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..bec170e
--- /dev/null
@@ -0,0 +1,34 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <bitset>
+
+template class std::bitset<10>;
diff --git a/libstdc++-v3/testsuite/23_containers/deque/1.cc b/libstdc++-v3/testsuite/23_containers/deque/1.cc
deleted file mode 100644 (file)
index 26882be..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests user specialization of library containers
-
-#include <deque>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-struct user_type {};
-
-namespace std 
-{
-  template<typename Allocator>
-    class deque<user_type, Allocator> {};
-}
diff --git a/libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/1.cc
deleted file mode 100644 (file)
index c6aef03..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <deque>
-
-// { dg-do compile }
-
-template class std::deque<int>;
diff --git a/libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/2.cc
deleted file mode 100644 (file)
index 6c1b9ad..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <deque>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-template class std::deque<__gnu_test::NonDefaultConstructible>;
diff --git a/libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/3.cc
deleted file mode 100644 (file)
index ca6cb6a..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <deque>
-
-// { dg-do compile }
-
-// libstdc++/21770
-template class std::deque<int, std::allocator<char> >;
diff --git a/libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..c6aef03
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <deque>
+
+// { dg-do compile }
+
+template class std::deque<int>;
diff --git a/libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/2.cc
new file mode 100644 (file)
index 0000000..6c1b9ad
--- /dev/null
@@ -0,0 +1,35 @@
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <deque>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+template class std::deque<__gnu_test::NonDefaultConstructible>;
diff --git a/libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc
new file mode 100644 (file)
index 0000000..ca6cb6a
--- /dev/null
@@ -0,0 +1,35 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <deque>
+
+// { dg-do compile }
+
+// libstdc++/21770
+template class std::deque<int, std::allocator<char> >;
diff --git a/libstdc++-v3/testsuite/23_containers/deque/requirements/partial_specialization/1.cc b/libstdc++-v3/testsuite/23_containers/deque/requirements/partial_specialization/1.cc
new file mode 100644 (file)
index 0000000..26882be
--- /dev/null
@@ -0,0 +1,41 @@
+// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests user specialization of library containers
+
+#include <deque>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+struct user_type {};
+
+namespace std 
+{
+  template<typename Allocator>
+    class deque<user_type, Allocator> {};
+}
diff --git a/libstdc++-v3/testsuite/23_containers/headers/bitset/synopsis.cc b/libstdc++-v3/testsuite/23_containers/headers/bitset/synopsis.cc
new file mode 100644 (file)
index 0000000..e0ba4d4
--- /dev/null
@@ -0,0 +1,43 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <bitset>
+
+namespace std {
+  template <size_t N> class bitset;
+
+  // 23.3.5.3 bitset operations:
+  template <size_t N>
+    bitset<N> operator&(const bitset<N>&, const bitset<N>&);
+
+  template <size_t N>
+    bitset<N> operator|(const bitset<N>&, const bitset<N>&);
+
+  template <size_t N>
+    bitset<N> operator^(const bitset<N>&, const bitset<N>&);
+
+  template <class charT, class traits, size_t N>
+    basic_istream<charT, traits>&
+    operator>>(basic_istream<charT, traits>& is, bitset<N>& x);
+
+  template <class charT, class traits, size_t N>
+    basic_ostream<charT, traits>&
+    operator<<(basic_ostream<charT, traits>& os, const bitset<N>& x);
+}
diff --git a/libstdc++-v3/testsuite/23_containers/headers/deque/synopsis.cc b/libstdc++-v3/testsuite/23_containers/headers/deque/synopsis.cc
new file mode 100644 (file)
index 0000000..832baf1
--- /dev/null
@@ -0,0 +1,46 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <deque>
+
+namespace std {
+  template <class T, class Allocator> class deque;
+
+  template <class T, class Allocator>
+    bool operator== (const deque<T,Allocator>& x, const deque<T,Allocator>& y);
+
+  template <class T, class Allocator>
+    bool operator< (const deque<T,Allocator>& x, const deque<T,Allocator>& y);
+
+  template <class T, class Allocator>
+    bool operator!= (const deque<T,Allocator>& x, const deque<T,Allocator>& y);
+
+  template <class T, class Allocator>
+    bool operator> (const deque<T,Allocator>& x, const deque<T,Allocator>& y);
+
+  template <class T, class Allocator>
+    bool operator>= (const deque<T,Allocator>& x, const deque<T,Allocator>& y);
+
+  template <class T, class Allocator>
+    bool operator<= (const deque<T,Allocator>& x, const deque<T,Allocator>& y);
+
+  template <class T, class Allocator>
+    void swap(deque<T,Allocator>& x, deque<T,Allocator>& y);
+}
diff --git a/libstdc++-v3/testsuite/23_containers/headers/list/synopsis.cc b/libstdc++-v3/testsuite/23_containers/headers/list/synopsis.cc
new file mode 100644 (file)
index 0000000..1b3fb40
--- /dev/null
@@ -0,0 +1,46 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <list>
+
+namespace std {
+  template <class T, class Allocator> class list;
+
+  template <class T, class Allocator>
+  bool operator==(const list<T,Allocator>& x, const list<T,Allocator>&);
+
+  template <class T, class Allocator>
+  bool operator< (const list<T,Allocator>& x, const list<T,Allocator>&);
+
+  template <class T, class Allocator>
+    bool operator!=(const list<T,Allocator>& x, const list<T,Allocator>&);
+
+  template <class T, class Allocator>
+    bool operator> (const list<T,Allocator>& x, const list<T,Allocator>&);
+
+  template <class T, class Allocator>
+    bool operator>=(const list<T,Allocator>& x, const list<T,Allocator>&);
+
+  template <class T, class Allocator>
+    bool operator<=(const list<T,Allocator>& x, const list<T,Allocator>&);
+
+  template <class T, class Allocator>
+    void swap(list<T,Allocator>& x, list<T,Allocator>& y);
+}
diff --git a/libstdc++-v3/testsuite/23_containers/headers/map/synopsis.cc b/libstdc++-v3/testsuite/23_containers/headers/map/synopsis.cc
new file mode 100644 (file)
index 0000000..a8129df
--- /dev/null
@@ -0,0 +1,71 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <map>
+
+namespace std {
+  template <class Key, class T, class Compare, class Allocator>
+    class map;
+  template <class Key, class T, class Compare, class Allocator>
+    bool operator==(const map<Key,T,Compare,Allocator>& x,
+                    const map<Key,T,Compare,Allocator>& y);
+  template <class Key, class T, class Compare, class Allocator>
+    bool operator< (const map<Key,T,Compare,Allocator>& x,
+                    const map<Key,T,Compare,Allocator>& y);
+  template <class Key, class T, class Compare, class Allocator>
+    bool operator!=(const map<Key,T,Compare,Allocator>& x,
+                    const map<Key,T,Compare,Allocator>& y);
+  template <class Key, class T, class Compare, class Allocator>
+    bool operator> (const map<Key,T,Compare,Allocator>& x,
+                    const map<Key,T,Compare,Allocator>& y);
+  template <class Key, class T, class Compare, class Allocator>
+    bool operator>=(const map<Key,T,Compare,Allocator>& x,
+                    const map<Key,T,Compare,Allocator>& y);
+  template <class Key, class T, class Compare, class Allocator>
+    bool operator<=(const map<Key,T,Compare,Allocator>& x,
+                    const map<Key,T,Compare,Allocator>& y);
+  template <class Key, class T, class Compare, class Allocator>
+    void swap(map<Key,T,Compare,Allocator>& x,
+              map<Key,T,Compare,Allocator>& y);
+
+  template <class Key, class T, class Compare, class Allocator>
+    class multimap;
+  template <class Key, class T, class Compare, class Allocator>
+    bool operator==(const multimap<Key,T,Compare,Allocator>& x,
+                    const multimap<Key,T,Compare,Allocator>& y);
+  template <class Key, class T, class Compare, class Allocator>
+    bool operator< (const multimap<Key,T,Compare,Allocator>& x,
+                    const multimap<Key,T,Compare,Allocator>& y);
+  template <class Key, class T, class Compare, class Allocator>
+    bool operator!=(const multimap<Key,T,Compare,Allocator>& x,
+                    const multimap<Key,T,Compare,Allocator>& y);
+  template <class Key, class T, class Compare, class Allocator>
+    bool operator> (const multimap<Key,T,Compare,Allocator>& x,
+                    const multimap<Key,T,Compare,Allocator>& y);
+  template <class Key, class T, class Compare, class Allocator>
+    bool operator>=(const multimap<Key,T,Compare,Allocator>& x,
+                    const multimap<Key,T,Compare,Allocator>& y);
+  template <class Key, class T, class Compare, class Allocator>
+    bool operator<=(const multimap<Key,T,Compare,Allocator>& x,
+                    const multimap<Key,T,Compare,Allocator>& y);
+  template <class Key, class T, class Compare, class Allocator>
+    void swap(multimap<Key,T,Compare,Allocator>& x,
+              multimap<Key,T,Compare,Allocator>& y);
+}
diff --git a/libstdc++-v3/testsuite/23_containers/headers/queue/synopsis.cc b/libstdc++-v3/testsuite/23_containers/headers/queue/synopsis.cc
new file mode 100644 (file)
index 0000000..67a99d2
--- /dev/null
@@ -0,0 +1,51 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <queue>
+
+namespace std {
+  template <class T, class Container> class queue;
+  template <class T, class Container>
+    bool operator==(const queue<T, Container>& x,
+                    const queue<T, Container>& y);
+
+  template <class T, class Container>
+    bool operator< (const queue<T, Container>& x,
+                    const queue<T, Container>& y);
+
+  template <class T, class Container>
+    bool operator!=(const queue<T, Container>& x,
+                    const queue<T, Container>& y);
+
+  template <class T, class Container>
+    bool operator> (const queue<T, Container>& x,
+                    const queue<T, Container>& y);
+
+  template <class T, class Container>
+    bool operator>=(const queue<T, Container>& x,
+                    const queue<T, Container>& y);
+
+  template <class T, class Container>
+    bool operator<=(const queue<T, Container>& x,
+                    const queue<T, Container>& y);
+
+  template <class T, class Container, class Compare>
+  class priority_queue;
+}
diff --git a/libstdc++-v3/testsuite/23_containers/headers/set/synopsis.cc b/libstdc++-v3/testsuite/23_containers/headers/set/synopsis.cc
new file mode 100644 (file)
index 0000000..e517bf4
--- /dev/null
@@ -0,0 +1,85 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <set>
+
+namespace std {
+  template <class Key, class Compare, class Allocator>
+    class set;
+
+  template <class Key, class Compare, class Allocator>
+    bool operator==(const set<Key,Compare,Allocator>& x,
+                    const set<Key,Compare,Allocator>& y);
+
+  template <class Key, class Compare, class Allocator>
+    bool operator< (const set<Key,Compare,Allocator>& x,
+                    const set<Key,Compare,Allocator>& y);
+
+  template <class Key, class Compare, class Allocator>
+    bool operator!=(const set<Key,Compare,Allocator>& x,
+                    const set<Key,Compare,Allocator>& y);
+
+  template <class Key, class Compare, class Allocator>
+    bool operator> (const set<Key,Compare,Allocator>& x,
+                    const set<Key,Compare,Allocator>& y);
+
+  template <class Key, class Compare, class Allocator>
+    bool operator>=(const set<Key,Compare,Allocator>& x,
+                    const set<Key,Compare,Allocator>& y);
+
+  template <class Key, class Compare, class Allocator>
+    bool operator<=(const set<Key,Compare,Allocator>& x,
+                    const set<Key,Compare,Allocator>& y);
+
+  template <class Key, class Compare, class Allocator>
+    void swap(set<Key,Compare,Allocator>& x,
+              set<Key,Compare,Allocator>& y);
+
+  template <class Key, class Compare, class Allocator>
+    class multiset;
+
+  template <class Key, class Compare, class Allocator>
+    bool operator==(const multiset<Key,Compare,Allocator>& x,
+                    const multiset<Key,Compare,Allocator>& y);
+
+  template <class Key, class Compare, class Allocator>
+    bool operator< (const multiset<Key,Compare,Allocator>& x,
+                    const multiset<Key,Compare,Allocator>& y);
+
+  template <class Key, class Compare, class Allocator>
+    bool operator!=(const multiset<Key,Compare,Allocator>& x,
+                    const multiset<Key,Compare,Allocator>& y);
+
+  template <class Key, class Compare, class Allocator>
+    bool operator> (const multiset<Key,Compare,Allocator>& x,
+                    const multiset<Key,Compare,Allocator>& y);
+
+  template <class Key, class Compare, class Allocator>
+    bool operator>=(const multiset<Key,Compare,Allocator>& x,
+                    const multiset<Key,Compare,Allocator>& y);
+
+  template <class Key, class Compare, class Allocator>
+    bool operator<=(const multiset<Key,Compare,Allocator>& x,
+                    const multiset<Key,Compare,Allocator>& y);
+
+  template <class Key, class Compare, class Allocator>
+    void swap(multiset<Key,Compare,Allocator>& x,
+              multiset<Key,Compare,Allocator>& y);
+}
diff --git a/libstdc++-v3/testsuite/23_containers/headers/stack/synopsis.cc b/libstdc++-v3/testsuite/23_containers/headers/stack/synopsis.cc
new file mode 100644 (file)
index 0000000..b6bea1e
--- /dev/null
@@ -0,0 +1,49 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <stack>
+
+namespace std {
+  template <class T, class Container> class stack;
+
+  template <class T, class Container>
+    bool operator==(const stack<T, Container>& x,
+                    const stack<T, Container>& y);
+
+  template <class T, class Container>
+    bool operator< (const stack<T, Container>& x,
+                    const stack<T, Container>& y);
+
+  template <class T, class Container>
+    bool operator!=(const stack<T, Container>& x,
+                    const stack<T, Container>& y);
+
+  template <class T, class Container>
+    bool operator> (const stack<T, Container>& x,
+                    const stack<T, Container>& y);
+
+  template <class T, class Container>
+    bool operator>=(const stack<T, Container>& x,
+                    const stack<T, Container>& y);
+
+  template <class T, class Container>
+    bool operator<=(const stack<T, Container>& x,
+                    const stack<T, Container>& y);
+}
diff --git a/libstdc++-v3/testsuite/23_containers/headers/vector/synopsis.cc b/libstdc++-v3/testsuite/23_containers/headers/vector/synopsis.cc
new file mode 100644 (file)
index 0000000..713fb79
--- /dev/null
@@ -0,0 +1,81 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <vector>
+
+namespace std {
+  template <class T, class Allocator> class vector;
+
+  template <class T, class Allocator>
+    bool operator==(const vector<T,Allocator>& x,
+                    const vector<T,Allocator>& y);
+
+  template <class T, class Allocator>
+    bool operator< (const vector<T,Allocator>& x,
+                    const vector<T,Allocator>& y);
+
+  template <class T, class Allocator>
+    bool operator!=(const vector<T,Allocator>& x,
+                    const vector<T,Allocator>& y);
+
+  template <class T, class Allocator>
+    bool operator> (const vector<T,Allocator>& x,
+                    const vector<T,Allocator>& y);
+
+  template <class T, class Allocator>
+    bool operator>=(const vector<T,Allocator>& x,
+                    const vector<T,Allocator>& y);
+
+  template <class T, class Allocator>
+    bool operator<=(const vector<T,Allocator>& x,
+                    const vector<T,Allocator>& y);
+
+  template <class T, class Allocator>
+    void swap(vector<T,Allocator>& x, vector<T,Allocator>& y);
+
+  template <class Allocator> class vector<bool,Allocator>;
+
+  template <class Allocator>
+    bool operator==(const vector<bool,Allocator>& x,
+                    const vector<bool,Allocator>& y);
+
+  template <class Allocator>
+    bool operator< (const vector<bool,Allocator>& x,
+                    const vector<bool,Allocator>& y);
+
+  template <class Allocator>
+    bool operator!=(const vector<bool,Allocator>& x,
+                    const vector<bool,Allocator>& y);
+
+  template <class Allocator>
+    bool operator> (const vector<bool,Allocator>& x,
+                    const vector<bool,Allocator>& y);
+
+  template <class Allocator>
+    bool operator>=(const vector<bool,Allocator>& x,
+                    const vector<bool,Allocator>& y);
+
+  template <class Allocator>
+    bool operator<=(const vector<bool,Allocator>& x,
+                    const vector<bool,Allocator>& y);
+
+  template <class Allocator>
+    void swap(vector<bool,Allocator>& x, vector<bool,Allocator>& y);
+}
diff --git a/libstdc++-v3/testsuite/23_containers/list/1.cc b/libstdc++-v3/testsuite/23_containers/list/1.cc
deleted file mode 100644 (file)
index 57b950b..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests user specialization of library containers
-
-#include <list>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-struct user_type {};
-
-namespace std 
-{
-  template<typename Allocator>
-    class list<user_type, Allocator> {};
-}
diff --git a/libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/1.cc
deleted file mode 100644 (file)
index 1bbc639..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <list>
-
-// { dg-do compile }
-
-template class std::list<int>;
diff --git a/libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/2.cc
deleted file mode 100644 (file)
index 8b27d10..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <list>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-template class std::list<__gnu_test::NonDefaultConstructible>;
diff --git a/libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/3.cc
deleted file mode 100644 (file)
index cdbec31..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <list>
-
-// { dg-do compile }
-
-// libstdc++/21770
-template class std::list<int, std::allocator<char> >;
diff --git a/libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..1bbc639
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <list>
+
+// { dg-do compile }
+
+template class std::list<int>;
diff --git a/libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/2.cc
new file mode 100644 (file)
index 0000000..8b27d10
--- /dev/null
@@ -0,0 +1,35 @@
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <list>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+template class std::list<__gnu_test::NonDefaultConstructible>;
diff --git a/libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/3.cc
new file mode 100644 (file)
index 0000000..cdbec31
--- /dev/null
@@ -0,0 +1,35 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <list>
+
+// { dg-do compile }
+
+// libstdc++/21770
+template class std::list<int, std::allocator<char> >;
diff --git a/libstdc++-v3/testsuite/23_containers/list/requirements/partial_specialization/1.cc b/libstdc++-v3/testsuite/23_containers/list/requirements/partial_specialization/1.cc
new file mode 100644 (file)
index 0000000..57b950b
--- /dev/null
@@ -0,0 +1,42 @@
+// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests user specialization of library containers
+
+#include <list>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+struct user_type {};
+
+namespace std 
+{
+  template<typename Allocator>
+    class list<user_type, Allocator> {};
+}
diff --git a/libstdc++-v3/testsuite/23_containers/map/1.cc b/libstdc++-v3/testsuite/23_containers/map/1.cc
deleted file mode 100644 (file)
index 3d20c1f..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests user specialization of library containers
-
-#include <map>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-struct user_type {};
-
-namespace std 
-{
-  template<typename Data, typename Allocator>
-    class map<user_type, Data, Allocator> {};
-}
diff --git a/libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/1.cc
deleted file mode 100644 (file)
index b898b4b..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <map>
-
-// { dg-do compile }
-
-template class std::map<int, double>;
diff --git a/libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/2.cc
deleted file mode 100644 (file)
index 4333494..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <map>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-// N.B. We cannot instantiate with T == NonDefaultConstructible
-// because of 23.3.1.2.
-template class std::map<__gnu_test::NonDefaultConstructible, double>;
diff --git a/libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/3.cc
deleted file mode 100644 (file)
index 0a8866d..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <map>
-
-// { dg-do compile }
-
-// libstdc++/21770
-template class std::map<int, double, std::less<int>, std::allocator<char> >;
diff --git a/libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..b898b4b
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <map>
+
+// { dg-do compile }
+
+template class std::map<int, double>;
diff --git a/libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/2.cc
new file mode 100644 (file)
index 0000000..4333494
--- /dev/null
@@ -0,0 +1,37 @@
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <map>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+// N.B. We cannot instantiate with T == NonDefaultConstructible
+// because of 23.3.1.2.
+template class std::map<__gnu_test::NonDefaultConstructible, double>;
diff --git a/libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/3.cc
new file mode 100644 (file)
index 0000000..0a8866d
--- /dev/null
@@ -0,0 +1,35 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <map>
+
+// { dg-do compile }
+
+// libstdc++/21770
+template class std::map<int, double, std::less<int>, std::allocator<char> >;
diff --git a/libstdc++-v3/testsuite/23_containers/map/requirements/partial_specialization/1.cc b/libstdc++-v3/testsuite/23_containers/map/requirements/partial_specialization/1.cc
new file mode 100644 (file)
index 0000000..3d20c1f
--- /dev/null
@@ -0,0 +1,41 @@
+// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests user specialization of library containers
+
+#include <map>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+struct user_type {};
+
+namespace std 
+{
+  template<typename Data, typename Allocator>
+    class map<user_type, Data, Allocator> {};
+}
diff --git a/libstdc++-v3/testsuite/23_containers/multimap/1.cc b/libstdc++-v3/testsuite/23_containers/multimap/1.cc
deleted file mode 100644 (file)
index 2b04d68..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests user specialization of library containers
-
-#include <map>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-struct user_type {};
-
-namespace std 
-{
-  template<typename Data, typename Allocator>
-    class multimap<user_type, Data, Allocator> {};
-}
diff --git a/libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/1.cc
deleted file mode 100644 (file)
index 05db935..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <map>
-
-// { dg-do compile }
-
-template class std::multimap<int, double>;
diff --git a/libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/2.cc
deleted file mode 100644 (file)
index 86527fd..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <map>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-template class std::multimap<__gnu_test::NonDefaultConstructible,
-                            __gnu_test::NonDefaultConstructible>;
diff --git a/libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/3.cc
deleted file mode 100644 (file)
index cdb7e96..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <map>
-
-// { dg-do compile }
-
-// libstdc++/21770
-template class std::multimap<int, double, std::less<int>, std::allocator<char> >;
diff --git a/libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..05db935
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <map>
+
+// { dg-do compile }
+
+template class std::multimap<int, double>;
diff --git a/libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/2.cc
new file mode 100644 (file)
index 0000000..86527fd
--- /dev/null
@@ -0,0 +1,36 @@
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <map>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+template class std::multimap<__gnu_test::NonDefaultConstructible,
+                            __gnu_test::NonDefaultConstructible>;
diff --git a/libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc
new file mode 100644 (file)
index 0000000..cdb7e96
--- /dev/null
@@ -0,0 +1,35 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <map>
+
+// { dg-do compile }
+
+// libstdc++/21770
+template class std::multimap<int, double, std::less<int>, std::allocator<char> >;
diff --git a/libstdc++-v3/testsuite/23_containers/multimap/requirements/partial_specialization/1.cc b/libstdc++-v3/testsuite/23_containers/multimap/requirements/partial_specialization/1.cc
new file mode 100644 (file)
index 0000000..2b04d68
--- /dev/null
@@ -0,0 +1,41 @@
+// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests user specialization of library containers
+
+#include <map>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+struct user_type {};
+
+namespace std 
+{
+  template<typename Data, typename Allocator>
+    class multimap<user_type, Data, Allocator> {};
+}
diff --git a/libstdc++-v3/testsuite/23_containers/multiset/1.cc b/libstdc++-v3/testsuite/23_containers/multiset/1.cc
deleted file mode 100644 (file)
index 2df195f..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests user specialization of library containers
-
-#include <set>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-struct user_type {};
-
-namespace std 
-{
-  template<typename Allocator>
-    class multiset<user_type, Allocator> {};
-}
diff --git a/libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/1.cc
deleted file mode 100644 (file)
index 3ed6701..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <set>
-
-// { dg-do compile }
-
-template class std::multiset<int>;
diff --git a/libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/2.cc
deleted file mode 100644 (file)
index c1e69b7..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <set>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-template class std::multiset<__gnu_test::NonDefaultConstructible>;
diff --git a/libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/3.cc
deleted file mode 100644 (file)
index 9478097..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <set>
-
-// { dg-do compile }
-
-// libstdc++/21770
-template class std::multiset<int, std::less<int>, std::allocator<char> >;
diff --git a/libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..3ed6701
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <set>
+
+// { dg-do compile }
+
+template class std::multiset<int>;
diff --git a/libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/2.cc
new file mode 100644 (file)
index 0000000..c1e69b7
--- /dev/null
@@ -0,0 +1,35 @@
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <set>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+template class std::multiset<__gnu_test::NonDefaultConstructible>;
diff --git a/libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc
new file mode 100644 (file)
index 0000000..9478097
--- /dev/null
@@ -0,0 +1,35 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <set>
+
+// { dg-do compile }
+
+// libstdc++/21770
+template class std::multiset<int, std::less<int>, std::allocator<char> >;
diff --git a/libstdc++-v3/testsuite/23_containers/multiset/requirements/partial_specialization/1.cc b/libstdc++-v3/testsuite/23_containers/multiset/requirements/partial_specialization/1.cc
new file mode 100644 (file)
index 0000000..2df195f
--- /dev/null
@@ -0,0 +1,41 @@
+// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests user specialization of library containers
+
+#include <set>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+struct user_type {};
+
+namespace std 
+{
+  template<typename Allocator>
+    class multiset<user_type, Allocator> {};
+}
diff --git a/libstdc++-v3/testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..648040d
--- /dev/null
@@ -0,0 +1,34 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <queue>
+
+template class std::priority_queue<int>;
diff --git a/libstdc++-v3/testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..081f73a
--- /dev/null
@@ -0,0 +1,34 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <queue>
+
+template class std::queue<int>;
diff --git a/libstdc++-v3/testsuite/23_containers/set/1.cc b/libstdc++-v3/testsuite/23_containers/set/1.cc
deleted file mode 100644 (file)
index 9a9a781..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests user specialization of library containers
-
-#include <set>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-struct user_type {};
-
-namespace std 
-{
-  template<typename Allocator>
-    class set<user_type, Allocator> {};
-}
diff --git a/libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/1.cc
deleted file mode 100644 (file)
index 7eb7248..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <set>
-
-// { dg-do compile }
-
-template class std::set<int>;
diff --git a/libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/2.cc
deleted file mode 100644 (file)
index 44bc5de..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <set>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-template class std::set<__gnu_test::NonDefaultConstructible>;
diff --git a/libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/3.cc
deleted file mode 100644 (file)
index 1f2c69b..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <set>
-
-// { dg-do compile }
-
-// libstdc++/21770
-template class std::set<int, std::less<int>, std::allocator<char> >;
diff --git a/libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..7eb7248
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <set>
+
+// { dg-do compile }
+
+template class std::set<int>;
diff --git a/libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/2.cc
new file mode 100644 (file)
index 0000000..44bc5de
--- /dev/null
@@ -0,0 +1,35 @@
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <set>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+template class std::set<__gnu_test::NonDefaultConstructible>;
diff --git a/libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/3.cc
new file mode 100644 (file)
index 0000000..1f2c69b
--- /dev/null
@@ -0,0 +1,35 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <set>
+
+// { dg-do compile }
+
+// libstdc++/21770
+template class std::set<int, std::less<int>, std::allocator<char> >;
diff --git a/libstdc++-v3/testsuite/23_containers/set/requirements/partial_specialization/1.cc b/libstdc++-v3/testsuite/23_containers/set/requirements/partial_specialization/1.cc
new file mode 100644 (file)
index 0000000..9a9a781
--- /dev/null
@@ -0,0 +1,41 @@
+// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests user specialization of library containers
+
+#include <set>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+struct user_type {};
+
+namespace std 
+{
+  template<typename Allocator>
+    class set<user_type, Allocator> {};
+}
diff --git a/libstdc++-v3/testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..ee0a244
--- /dev/null
@@ -0,0 +1,34 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <stack>
+
+template class std::stack<int>;
diff --git a/libstdc++-v3/testsuite/23_containers/vector/1.cc b/libstdc++-v3/testsuite/23_containers/vector/1.cc
deleted file mode 100644 (file)
index 074912d..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests user specialization of library containers
-
-#include <vector>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-struct user_type {};
-
-namespace std 
-{
-  template<typename Allocator>
-    class vector<user_type, Allocator> {};
-}
diff --git a/libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/1.cc
deleted file mode 100644 (file)
index 58de322..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <vector>
-
-// { dg-do compile }
-
-template class std::vector<int>;
diff --git a/libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/2.cc
deleted file mode 100644 (file)
index 0a48971..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <vector>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-template class std::vector<__gnu_test::NonDefaultConstructible>;
diff --git a/libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/3.cc
deleted file mode 100644 (file)
index 263a7c8..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <vector>
-
-// { dg-do compile }
-
-// libstdc++/21770
-template class std::vector<int, std::allocator<char> >;
diff --git a/libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..58de322
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <vector>
+
+// { dg-do compile }
+
+template class std::vector<int>;
diff --git a/libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/2.cc
new file mode 100644 (file)
index 0000000..0a48971
--- /dev/null
@@ -0,0 +1,35 @@
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <vector>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+template class std::vector<__gnu_test::NonDefaultConstructible>;
diff --git a/libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc
new file mode 100644 (file)
index 0000000..263a7c8
--- /dev/null
@@ -0,0 +1,35 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <vector>
+
+// { dg-do compile }
+
+// libstdc++/21770
+template class std::vector<int, std::allocator<char> >;
diff --git a/libstdc++-v3/testsuite/23_containers/vector/requirements/partial_specialization/1.cc b/libstdc++-v3/testsuite/23_containers/vector/requirements/partial_specialization/1.cc
new file mode 100644 (file)
index 0000000..074912d
--- /dev/null
@@ -0,0 +1,41 @@
+// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests user specialization of library containers
+
+#include <vector>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+struct user_type {};
+
+namespace std 
+{
+  template<typename Allocator>
+    class vector<user_type, Allocator> {};
+}
diff --git a/libstdc++-v3/testsuite/24_iterators/26020.cc b/libstdc++-v3/testsuite/24_iterators/26020.cc
deleted file mode 100644 (file)
index 80c4e71..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright (C) 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 24.3.4 Iterator operations
-
-#include <iterator>
-#include <list>
-#include <testsuite_hooks.h>
-
-//libstdc++/26020
-void test01()
-{
-  using namespace std;
-  bool test __attribute__((unused)) = true;  
-
-  list<int> ll;
-  ll.push_back(1);
-
-  list<int>::iterator it(ll.begin());
-
-  advance(it, 0.5);
-
-  VERIFY( it == ll.begin() );
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/24_iterators/back_insert_iterator.cc b/libstdc++-v3/testsuite/24_iterators/back_insert_iterator.cc
deleted file mode 100644 (file)
index 9105a55..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-// 2001-06-21  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 24.4.2.1 Template class back_insert_iterator
-
-#include <iterator>
-#include <list>
-
-void test01()
-{
-  using namespace std;
-
-  // Check for required base class.
-  list<int> l;
-  typedef back_insert_iterator<list<int> > test_iterator;
-  typedef iterator<output_iterator_tag, void, void, void, void> base_iterator;
-  test_iterator  r_it(l);
-  base_iterator* base __attribute__((unused)) = &r_it;
-
-  // Check for required typedefs
-  typedef test_iterator::value_type value_type;
-  typedef test_iterator::difference_type difference_type;
-  typedef test_iterator::pointer pointer;
-  typedef test_iterator::reference reference;
-  typedef test_iterator::iterator_category iteratory_category;
-  typedef test_iterator::container_type container_type;
-}
-
-
-// Make sure iterator can be instantiated.
-template class std::back_insert_iterator<std::list<int> >;
-
-void test02()
-{
-  typedef std::back_insert_iterator<std::list<int> > iterator_type;
-  std::list<int> li;
-  iterator_type it = std::back_inserter(li);
-}
-
-// Check data member 'container' accessible.
-class test_dm : public std::back_insert_iterator<std::list<int> >
-{
-  container_type l;
-  container_type* p;
-public:
-  test_dm():  std::back_insert_iterator<std::list<int> >(l), p(container) { }
-};
-
-int main() 
-{ 
-  test01();
-  test02();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/2.cc b/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/2.cc
new file mode 100644 (file)
index 0000000..ce2f1ff
--- /dev/null
@@ -0,0 +1,37 @@
+// 2001-06-21  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.2.1 Template class back_insert_iterator
+
+#include <iterator>
+#include <list>
+
+void test02()
+{
+  typedef std::back_insert_iterator<std::list<int> > iterator_type;
+  std::list<int> li;
+  iterator_type it = std::back_inserter(li);
+}
+
+int main() 
+{ 
+  test02();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc b/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..527301a
--- /dev/null
@@ -0,0 +1,37 @@
+// { dg-do compile }
+// 2001-06-21  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.2.1 Template class back_insert_iterator
+
+#include <iterator>
+#include <list>
+
+void test01()
+{
+  using namespace std;
+
+  // Check for required base class.
+  list<int> l;
+  typedef back_insert_iterator<list<int> > test_iterator;
+  typedef iterator<output_iterator_tag, void, void, void, void> base_iterator;
+  test_iterator  r_it(l);
+  base_iterator* base __attribute__((unused)) = &r_it;
+}
diff --git a/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/container.cc b/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/container.cc
new file mode 100644 (file)
index 0000000..1d2d4e0
--- /dev/null
@@ -0,0 +1,34 @@
+// { dg-do compile }
+// 2001-06-21  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.2.1 Template class back_insert_iterator
+
+#include <iterator>
+#include <list>
+
+// Check data member 'container' accessible.
+class test_dm : public std::back_insert_iterator<std::list<int> >
+{
+  container_type l;
+  container_type* p;
+public:
+  test_dm():  std::back_insert_iterator<std::list<int> >(l), p(container) { }
+};
diff --git a/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..dedcefb
--- /dev/null
@@ -0,0 +1,28 @@
+// { dg-do compile }
+// 2001-06-21  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.2.1 Template class back_insert_iterator
+
+#include <iterator>
+#include <list>
+
+// Make sure iterator can be instantiated.
+template class std::back_insert_iterator<std::list<int> >;
diff --git a/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/typedefs.cc b/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..3253d44
--- /dev/null
@@ -0,0 +1,39 @@
+// { dg-do compile }
+// 2001-06-21  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.2.1 Template class back_insert_iterator
+
+#include <iterator>
+#include <list>
+
+void test01()
+{
+  using namespace std;
+
+  // Check for required typedefs
+  typedef back_insert_iterator<list<int> > test_iterator;
+  typedef test_iterator::value_type value_type;
+  typedef test_iterator::difference_type difference_type;
+  typedef test_iterator::pointer pointer;
+  typedef test_iterator::reference reference;
+  typedef test_iterator::iterator_category iteratory_category;
+  typedef test_iterator::container_type container_type;
+}
diff --git a/libstdc++-v3/testsuite/24_iterators/front_insert_iterator.cc b/libstdc++-v3/testsuite/24_iterators/front_insert_iterator.cc
deleted file mode 100644 (file)
index bdd024c..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-// 2001-06-21  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 24.4.2.3 Template class front_insert_iterator
-
-#include <iterator>
-#include <list>
-
-void test01()
-{
-  using namespace std;
-
-  // Check for required base class.
-  list<int> l;
-  typedef front_insert_iterator<list<int> > test_iterator;
-  typedef iterator<output_iterator_tag, void, void, void, void> base_iterator;
-  test_iterator  r_it(l);
-  base_iterator* base __attribute__((unused)) = &r_it;
-
-  // Check for required typedefs
-  typedef test_iterator::value_type value_type;
-  typedef test_iterator::difference_type difference_type;
-  typedef test_iterator::pointer pointer;
-  typedef test_iterator::reference reference;
-  typedef test_iterator::iterator_category iteratory_category;
-  typedef test_iterator::container_type container_type;
-}
-
-// Make sure iterator can be instantiated.
-template class std::front_insert_iterator<std::list<int> >;
-
-void test02()
-{
-  typedef std::front_insert_iterator<std::list<int> > iterator_type;
-  std::list<int> li;
-  iterator_type it = std::front_inserter(li);
-}
-
-// Check data member 'container' accessible.
-class test_dm : public std::front_insert_iterator<std::list<int> >
-{
-  container_type l;
-  container_type* p;
-public:
-  test_dm(): std::front_insert_iterator<std::list<int> >(l), p(container) { }
-};
-
-int main() 
-{ 
-  test01();
-  test02();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/2.cc b/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/2.cc
new file mode 100644 (file)
index 0000000..fee624b
--- /dev/null
@@ -0,0 +1,37 @@
+// 2001-06-21  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.2.3 Template class front_insert_iterator
+
+#include <iterator>
+#include <list>
+
+void test02()
+{
+  typedef std::front_insert_iterator<std::list<int> > iterator_type;
+  std::list<int> li;
+  iterator_type it = std::front_inserter(li);
+}
+
+int main() 
+{ 
+  test02();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc b/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..f037f76
--- /dev/null
@@ -0,0 +1,37 @@
+// { dg-do compile }
+// 2001-06-21  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.2.3 Template class front_insert_iterator
+
+#include <iterator>
+#include <list>
+
+void test01()
+{
+  using namespace std;
+
+  // Check for required base class.
+  list<int> l;
+  typedef front_insert_iterator<list<int> > test_iterator;
+  typedef iterator<output_iterator_tag, void, void, void, void> base_iterator;
+  test_iterator  r_it(l);
+  base_iterator* base __attribute__((unused)) = &r_it;
+}
diff --git a/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/container.cc b/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/container.cc
new file mode 100644 (file)
index 0000000..696292d
--- /dev/null
@@ -0,0 +1,34 @@
+// { dg-do compile }
+// 2001-06-21  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.2.3 Template class front_insert_iterator
+
+#include <iterator>
+#include <list>
+
+// Check data member 'container' accessible.
+class test_dm : public std::front_insert_iterator<std::list<int> >
+{
+  container_type l;
+  container_type* p;
+public:
+  test_dm(): std::front_insert_iterator<std::list<int> >(l), p(container) { }
+};
diff --git a/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..b6f13b1
--- /dev/null
@@ -0,0 +1,28 @@
+// { dg-do compile }
+// 2001-06-21  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.2.3 Template class front_insert_iterator
+
+#include <iterator>
+#include <list>
+
+// Make sure iterator can be instantiated.
+template class std::front_insert_iterator<std::list<int> >;
diff --git a/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/typedefs.cc b/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..a3ce57e
--- /dev/null
@@ -0,0 +1,39 @@
+// { dg-do compile }
+// 2001-06-21  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.2.3 Template class front_insert_iterator
+
+#include <iterator>
+#include <list>
+
+void test01()
+{
+  using namespace std;
+
+  // Check for required typedefs
+  typedef front_insert_iterator<list<int> > test_iterator;
+  typedef test_iterator::value_type value_type;
+  typedef test_iterator::difference_type difference_type;
+  typedef test_iterator::pointer pointer;
+  typedef test_iterator::reference reference;
+  typedef test_iterator::iterator_category iteratory_category;
+  typedef test_iterator::container_type container_type;
+}
diff --git a/libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis.cc b/libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis.cc
new file mode 100644 (file)
index 0000000..fdb22f0
--- /dev/null
@@ -0,0 +1,128 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <iterator>
+
+namespace std {
+
+  // 24.3, primitives:
+  template<class Iterator> struct iterator_traits;
+  template<class T> struct iterator_traits<T*>;
+
+  template<class Category, class T, class Distance,
+          class Pointer, class Reference> struct iterator;
+
+  struct input_iterator_tag;
+  struct output_iterator_tag;
+  struct forward_iterator_tag;
+  struct bidirectional_iterator_tag;
+  struct random_access_iterator_tag;
+
+  // 24.3.4, iterator operations:
+  template <class InputIterator, class Distance>
+  void 
+  advance(InputIterator& i, Distance n);
+
+  template <class InputIterator>
+  typename iterator_traits<InputIterator>::difference_type
+  distance(InputIterator first, InputIterator last);
+
+  // 24.4, predefined iterators:
+  template <class Iterator> class reverse_iterator;
+
+  template <class Iterator>
+  bool operator==(const reverse_iterator<Iterator>& x,
+                 const reverse_iterator<Iterator>& y);
+
+  template <class Iterator>
+  bool operator<(const reverse_iterator<Iterator>& x,
+                const reverse_iterator<Iterator>& y);
+
+  template <class Iterator>
+  bool operator!=(const reverse_iterator<Iterator>& x,
+                 const reverse_iterator<Iterator>& y);
+
+  template <class Iterator>
+  bool operator>(const reverse_iterator<Iterator>& x,
+                const reverse_iterator<Iterator>& y);
+
+  template <class Iterator>
+  bool operator>=(const reverse_iterator<Iterator>& x,
+                 const reverse_iterator<Iterator>& y);
+
+  template <class Iterator>
+  bool operator<=(const reverse_iterator<Iterator>& x,
+                 const reverse_iterator<Iterator>& y);
+
+  template <class Iterator>
+  typename reverse_iterator<Iterator>::difference_type 
+  operator-(const reverse_iterator<Iterator>& x, 
+           const reverse_iterator<Iterator>& y);
+
+  template <class Iterator>
+  reverse_iterator<Iterator>
+  operator+(typename reverse_iterator<Iterator>::difference_type n,
+           const reverse_iterator<Iterator>& x);
+
+  template <class Container> class back_insert_iterator;
+  template <class Container>
+  back_insert_iterator<Container> back_inserter(Container& x);
+
+  template <class Container> class front_insert_iterator;
+
+  template <class Container>
+  front_insert_iterator<Container> front_inserter(Container& x);
+
+  template <class Container> class insert_iterator;
+
+  template <class Container, class Iterator>
+  insert_iterator<Container> inserter(Container& x, Iterator i);
+
+  // 24.5, stream iterators:
+  template <class T, class charT, class traits, class Distance>
+  class istream_iterator;
+
+  template <class T, class charT, class traits, class Distance>
+  bool operator==(const istream_iterator<T,charT,traits,Distance>& x,
+                 const istream_iterator<T,charT,traits,Distance>& y);
+
+  template <class T, class charT, class traits, class Distance>
+  bool operator!=(const istream_iterator<T,charT,traits,Distance>& x,
+                 const istream_iterator<T,charT,traits,Distance>& y);
+
+  template <class T, class charT, class traits>
+  class ostream_iterator;
+
+  template<class charT, class traits>
+  class istreambuf_iterator;
+
+  template <class charT, class traits>
+  bool 
+  operator==(const istreambuf_iterator<charT,traits>&, 
+            const istreambuf_iterator<charT,traits>&);
+
+  template <class charT, class traits>
+    bool operator!=(const istreambuf_iterator<charT,traits>&,
+                    const istreambuf_iterator<charT,traits>&);
+
+  template <class charT, class traits>
+    class ostreambuf_iterator;
+}
diff --git a/libstdc++-v3/testsuite/24_iterators/headers/iterator/types_std.cc b/libstdc++-v3/testsuite/24_iterators/headers/iterator/types_std.cc
new file mode 100644 (file)
index 0000000..0db2173
--- /dev/null
@@ -0,0 +1,30 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <iterator>
+
+namespace gnu
+{
+  typedef std::input_iterator_tag t1;
+  typedef std::output_iterator_tag t2;
+  typedef std::forward_iterator_tag t3;
+  typedef std::bidirectional_iterator_tag t4;
+  typedef std::random_access_iterator_tag t5;
+}
diff --git a/libstdc++-v3/testsuite/24_iterators/insert_iterator.cc b/libstdc++-v3/testsuite/24_iterators/insert_iterator.cc
deleted file mode 100644 (file)
index 951d329..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-// 2001-06-21  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 24.4.2.5 Template class insert_iterator
-
-#include <iterator>
-#include <list>
-
-void test01()
-{
-  using namespace std;
-
-  // Check for required base class.
-  list<int> l;
-  list<int>::iterator li = l.begin();
-
-  typedef insert_iterator<list<int> > test_iterator;
-  typedef iterator<output_iterator_tag, void, void, void, void> base_iterator;
-  test_iterator  r_it(l, li);
-  base_iterator* base __attribute__((unused)) = &r_it;
-
-  // Check for required typedefs
-  typedef test_iterator::value_type value_type;
-  typedef test_iterator::difference_type difference_type;
-  typedef test_iterator::pointer pointer;
-  typedef test_iterator::reference reference;
-  typedef test_iterator::iterator_category iteratory_category;
-  typedef test_iterator::container_type container_type;
-}
-
-
-
-// Make sure iterator can be instantiated.
-template class std::insert_iterator<std::list<int> >;
-
-void test02()
-{
-  typedef std::insert_iterator<std::list<int> > iterator_type;
-
-  std::list<int> li;
-  std::list<int>::iterator liit = li.begin();
-  iterator_type it01(li, liit);
-  iterator_type it02 = std::inserter(li, liit);
-}
-
-// Check data member 'container' accessible.
-class test_dm : public std::insert_iterator<std::list<int> >
-{
-  container_type l;
-  container_type::iterator i;
-  container_type* p;
-public:
-  test_dm(): std::insert_iterator<std::list<int> >(l, i), p(container) { }
-};
-
-int main() 
-{ 
-  test01();
-  test02();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/24_iterators/insert_iterator/2.cc b/libstdc++-v3/testsuite/24_iterators/insert_iterator/2.cc
new file mode 100644 (file)
index 0000000..4a8222a
--- /dev/null
@@ -0,0 +1,40 @@
+// 2001-06-21  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.2.5 Template class insert_iterator
+
+#include <iterator>
+#include <list>
+
+void test02()
+{
+  typedef std::insert_iterator<std::list<int> > iterator_type;
+
+  std::list<int> li;
+  std::list<int>::iterator liit = li.begin();
+  iterator_type it01(li, liit);
+  iterator_type it02 = std::inserter(li, liit);
+}
+
+int main() 
+{ 
+  test02();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/base_classes.cc b/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..5becd2e
--- /dev/null
@@ -0,0 +1,40 @@
+// { dg-do compile }
+// 2001-06-21  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.2.5 Template class insert_iterator
+
+#include <iterator>
+#include <list>
+
+void test01()
+{
+  using namespace std;
+
+  // Check for required base class.
+  list<int> l;
+  list<int>::iterator li = l.begin();
+
+  typedef insert_iterator<list<int> > test_iterator;
+  typedef iterator<output_iterator_tag, void, void, void, void> base_iterator;
+  test_iterator  r_it(l, li);
+  base_iterator* base __attribute__((unused)) = &r_it;
+}
+
diff --git a/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/container.cc b/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/container.cc
new file mode 100644 (file)
index 0000000..b4efd62
--- /dev/null
@@ -0,0 +1,35 @@
+// { dg-do compile }
+// 2001-06-21  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.2.5 Template class insert_iterator
+
+#include <iterator>
+#include <list>
+
+// Check data member 'container' accessible.
+class test_dm : public std::insert_iterator<std::list<int> >
+{
+  container_type l;
+  container_type::iterator i;
+  container_type* p;
+public:
+  test_dm(): std::insert_iterator<std::list<int> >(l, i), p(container) { }
+};
diff --git a/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..d056073
--- /dev/null
@@ -0,0 +1,28 @@
+// { dg-do compile }
+// 2001-06-21  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.2.5 Template class insert_iterator
+
+#include <iterator>
+#include <list>
+
+// Make sure iterator can be instantiated.
+template class std::insert_iterator<std::list<int> >;
diff --git a/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/typedefs.cc b/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..7ebed33
--- /dev/null
@@ -0,0 +1,40 @@
+// { dg-do compile }
+// 2001-06-21  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.2.5 Template class insert_iterator
+
+#include <iterator>
+#include <list>
+
+void test01()
+{
+  using namespace std;
+
+  // Check for required typedefs
+  typedef insert_iterator<list<int> > test_iterator;
+  typedef test_iterator::value_type value_type;
+  typedef test_iterator::difference_type difference_type;
+  typedef test_iterator::pointer pointer;
+  typedef test_iterator::reference reference;
+  typedef test_iterator::iterator_category iteratory_category;
+  typedef test_iterator::container_type container_type;
+}
+
diff --git a/libstdc++-v3/testsuite/24_iterators/istream_iterator.cc b/libstdc++-v3/testsuite/24_iterators/istream_iterator.cc
deleted file mode 100644 (file)
index db57f66..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-// 2001-06-25  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 24.5.1 Template class istream_iterator
-
-#include <iterator>
-#include <sstream>
-#include <testsuite_hooks.h>
-
-void test01()
-{
-  using namespace std;
-
-  // Check for required base class.
-  typedef istream_iterator<long> test_iterator;
-  typedef iterator<input_iterator_tag, long, ptrdiff_t, const long*, 
-                  const long&> base_iterator;
-  test_iterator  r_it;
-  base_iterator* base __attribute__((unused)) = &r_it;
-
-  // Check for required typedefs
-  typedef test_iterator::value_type value_type;
-  typedef test_iterator::difference_type difference_type;
-  typedef test_iterator::pointer pointer;
-  typedef test_iterator::reference reference;
-  typedef test_iterator::iterator_category iteratory_category;
-
-  typedef test_iterator::char_type char_type;
-  typedef test_iterator::traits_type traits_type;
-  typedef test_iterator::istream_type istream_type;
-}
-
-// Instantiate
-template class std::istream_iterator<char>;
-
-void test02()
-{
-  using namespace std;
-  bool test __attribute__((unused)) = true;
-
-  string st("R.Rorty");
-
-  string re_01, re_02, re_03;
-  re_02 = ",H.Putnam";
-  re_03 = "D.Dennett,xxx,H.Putnam";
-  
-  stringbuf sb_01(st);
-  istream is_01(&sb_01);
-  istream_iterator<char> inb_01(is_01);
-  istream_iterator<char> ine_01;
-  re_01.assign(inb_01, ine_01);
-  VERIFY( re_01 == "R.Rorty" );
-
-  stringbuf sb_02(st);
-  istream is_02(&sb_02);
-  istream_iterator<char> inb_02(is_02);
-  istream_iterator<char> ine_02;
-  re_02.insert(re_02.begin(), inb_02, ine_02);
-  VERIFY( re_02 == "R.Rorty,H.Putnam" );
-
-  stringbuf sb_03(st);
-  istream is_03(&sb_03);
-  istream_iterator<char> inb_03(is_03);
-  istream_iterator<char> ine_03;
-  re_03.replace(re_03.begin() + 10, re_03.begin() + 13,
-               inb_03, ine_03);
-  VERIFY( re_03 == "D.Dennett,R.Rorty,H.Putnam" );
-}
-
-int main() 
-{ 
-  test01();
-  test02();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/24_iterators/istream_iterator/2.cc b/libstdc++-v3/testsuite/24_iterators/istream_iterator/2.cc
new file mode 100644 (file)
index 0000000..ea26105
--- /dev/null
@@ -0,0 +1,65 @@
+// 2001-06-25  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.5.1 Template class istream_iterator
+
+#include <iterator>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+void test02()
+{
+  using namespace std;
+  bool test __attribute__((unused)) = true;
+
+  string st("R.Rorty");
+
+  string re_01, re_02, re_03;
+  re_02 = ",H.Putnam";
+  re_03 = "D.Dennett,xxx,H.Putnam";
+  
+  stringbuf sb_01(st);
+  istream is_01(&sb_01);
+  istream_iterator<char> inb_01(is_01);
+  istream_iterator<char> ine_01;
+  re_01.assign(inb_01, ine_01);
+  VERIFY( re_01 == "R.Rorty" );
+
+  stringbuf sb_02(st);
+  istream is_02(&sb_02);
+  istream_iterator<char> inb_02(is_02);
+  istream_iterator<char> ine_02;
+  re_02.insert(re_02.begin(), inb_02, ine_02);
+  VERIFY( re_02 == "R.Rorty,H.Putnam" );
+
+  stringbuf sb_03(st);
+  istream is_03(&sb_03);
+  istream_iterator<char> inb_03(is_03);
+  istream_iterator<char> ine_03;
+  re_03.replace(re_03.begin() + 10, re_03.begin() + 13,
+               inb_03, ine_03);
+  VERIFY( re_03 == "D.Dennett,R.Rorty,H.Putnam" );
+}
+
+int main() 
+{ 
+  test02();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/base_classes.cc b/libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..c51013e
--- /dev/null
@@ -0,0 +1,38 @@
+// { dg-do compile }
+// 2001-06-25  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.5.1 Template class istream_iterator
+
+#include <iterator>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+void test01()
+{
+  using namespace std;
+
+  // Check for required base class.
+  typedef istream_iterator<long> test_iterator;
+  typedef iterator<input_iterator_tag, long, ptrdiff_t, const long*, 
+                  const long&> base_iterator;
+  test_iterator  r_it;
+  base_iterator* base __attribute__((unused)) = &r_it;
+}
diff --git a/libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..04f7bd9
--- /dev/null
@@ -0,0 +1,29 @@
+// { dg-do compile }
+// 2001-06-25  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.5.1 Template class istream_iterator
+
+#include <iterator>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+// Instantiate
+template class std::istream_iterator<char>;
diff --git a/libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/typedefs.cc b/libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..17b540c
--- /dev/null
@@ -0,0 +1,43 @@
+// { dg-do compile }
+// 2001-06-25  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.5.1 Template class istream_iterator
+
+#include <iterator>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+void test01()
+{
+  using namespace std;
+
+  // Check for required typedefs
+  typedef istream_iterator<long> test_iterator;
+  typedef test_iterator::value_type value_type;
+  typedef test_iterator::difference_type difference_type;
+  typedef test_iterator::pointer pointer;
+  typedef test_iterator::reference reference;
+  typedef test_iterator::iterator_category iteratory_category;
+
+  typedef test_iterator::char_type char_type;
+  typedef test_iterator::traits_type traits_type;
+  typedef test_iterator::istream_type istream_type;
+}
diff --git a/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/1.cc b/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/1.cc
deleted file mode 100644 (file)
index 3d3fec4..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-// { dg-do compile }
-// 1999-06-28 bkoz
-
-// Copyright (C) 1999, 2001, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 24.5.3 template class istreambuf_iterator
-
-#include <sstream>
-#include <iterator>
-#include <testsuite_hooks.h>
-
-void test01()
-{
-  using namespace std;
-
-  // Check for required base class.
-  typedef istreambuf_iterator<char> test_iterator;
-  typedef char_traits<char>::off_type off_type;
-  typedef iterator<input_iterator_tag, char, off_type, char*, char&> base_iterator;
-
-  istringstream isstream("this tag");
-  test_iterator  r_it(isstream);
-  base_iterator* base __attribute__((unused)) = &r_it;
-
-  // Check for required typedefs
-  typedef test_iterator::value_type value_type;
-  typedef test_iterator::difference_type difference_type;
-  typedef test_iterator::pointer pointer;
-  typedef test_iterator::reference reference;
-  typedef test_iterator::iterator_category iteratory_category;
-
-  typedef test_iterator::char_type char_type;
-  typedef test_iterator::traits_type traits_type;
-  typedef test_iterator::istream_type istream_type;
-  typedef test_iterator::streambuf_type streambuf_type;
-}
diff --git a/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc b/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..c1ee75c
--- /dev/null
@@ -0,0 +1,40 @@
+// { dg-do compile }
+// 1999-06-28 bkoz
+
+// Copyright (C) 1999, 2001, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.5.3 template class istreambuf_iterator
+
+#include <sstream>
+#include <iterator>
+#include <testsuite_hooks.h>
+
+void test01()
+{
+  using namespace std;
+
+  // Check for required base class.
+  typedef istreambuf_iterator<char> test_iterator;
+  typedef char_traits<char>::off_type off_type;
+  typedef iterator<input_iterator_tag, char, off_type, char*, char&> base_iterator;
+
+  istringstream isstream("this tag");
+  test_iterator  r_it(isstream);
+  base_iterator* base __attribute__((unused)) = &r_it;
+}
diff --git a/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..a9560f0
--- /dev/null
@@ -0,0 +1,28 @@
+// { dg-do compile }
+// 1999-06-28 bkoz
+
+// Copyright (C) 1999, 2001, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.5.3 template class istreambuf_iterator
+
+#include <sstream>
+#include <iterator>
+#include <testsuite_hooks.h>
+
+template class std::istreambuf_iterator<char>;
diff --git a/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/typedefs.cc b/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..810163d
--- /dev/null
@@ -0,0 +1,44 @@
+// { dg-do compile }
+// 1999-06-28 bkoz
+
+// Copyright (C) 1999, 2001, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.5.3 template class istreambuf_iterator
+
+#include <sstream>
+#include <iterator>
+#include <testsuite_hooks.h>
+
+void test01()
+{
+  using namespace std;
+
+  // Check for required typedefs
+  typedef istreambuf_iterator<char> test_iterator;
+  typedef test_iterator::value_type value_type;
+  typedef test_iterator::difference_type difference_type;
+  typedef test_iterator::pointer pointer;
+  typedef test_iterator::reference reference;
+  typedef test_iterator::iterator_category iteratory_category;
+
+  typedef test_iterator::char_type char_type;
+  typedef test_iterator::traits_type traits_type;
+  typedef test_iterator::istream_type istream_type;
+  typedef test_iterator::streambuf_type streambuf_type;
+}
diff --git a/libstdc++-v3/testsuite/24_iterators/iterator.cc b/libstdc++-v3/testsuite/24_iterators/iterator.cc
deleted file mode 100644 (file)
index fb61d80..0000000
+++ /dev/null
@@ -1,608 +0,0 @@
-// 24.1.5 Random access iterators
-// 24.3.1 Iterator traits
-// (basic_string and vector implementations)
-//
-// Copyright (C) 1999, 2003, 2004, 2005 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 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       
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
-// USA
-
-
-#include <string>
-#include <vector>
-#include <testsuite_hooks.h>
-
-int 
-string_stuff()
-{
-   int failures(0);
-
-   std::string s("abcde");
-
-   std::string::iterator i1(s.begin());
-   if (*i1 != 'a')
-      ++failures;
-
-   ++i1;
-   if (*i1 != 'b')
-      ++failures;
-
-   if (*i1++ != 'b')
-       ++failures;
-   if (*i1 != 'c')
-      ++failures;
-
-   ++ ++i1;
-   if (*i1 != 'e')
-      ++failures;
-
-   --i1;
-   if (*i1 != 'd')
-      ++failures;
-
-   if (*i1-- != 'd')
-      ++failures;
-   if (*i1 != 'c')
-      ++failures;
-
-   -- --i1;
-   if (*i1 != 'a')
-      ++failures;
-
-   std::string::iterator i2;
-   i2 = s.end();
-   std::iterator_traits<std::string::iterator>::difference_type d1;
-   d1 = i2 - i1;
-   if (d1 != 5)
-      ++failures;
-
-   std::iterator_traits<std::string::iterator>::value_type v1;
-   v1 = i1[0];
-   if (v1 != 'a')
-      ++failures;
-
-   std::iterator_traits<std::string::iterator>::reference r1(i1[0]);
-   if (r1 != 'a')
-      ++failures;
-   r1 = 'x';
-   if (r1 != 'x')
-      ++failures;
-   r1 = 'a';
-
-   if ((i1 != i2) != true)
-      ++failures;
-   if ((i1 == i2) != false)
-      ++failures;
-   if ((i1 <  i2) != true)
-      ++failures;
-   if ((i1 >  i2) != false)
-      ++failures;
-   if ((i1 <= i2) != true)
-      ++failures;
-   if ((i1 >= i2) != false)
-      ++failures;
-
-   std::string::iterator i3;
-   i3 = i1;
-   if ((i3 == i1) != true)
-      ++failures;
-
-   i3 += 5;
-   if ((i3 == i2) != true)
-      ++failures;
-
-   i3 -= 5;
-   if ((i3 == i1) != true)
-      ++failures;
-
-   if (i3 + 5 != i2)
-      ++failures;
-
-   if (5 + i3 != i2)
-      ++failures;
-
-   if (i2 - 5 != i3)
-      ++failures;
-
-   if (i1[0] != 'a')
-      ++failures;
-
-   i1[4] = 'x';
-   if (i2[-1] != 'x')
-      ++failures;
-   i1[4] = 'e';
-
-   i1[2] = 'x';
-   if (i2[-3] != 'x')
-      ++failures;
-   i1[2] = 'c';
-
-   std::string::const_iterator ci1(s.begin());
-   if (*ci1 != 'a')
-      ++failures;
-
-   ++ci1;
-   if (*ci1 != 'b')
-      ++failures;
-
-   if (*ci1++ != 'b')
-      ++failures;
-   if (*ci1 != 'c')
-      ++failures;
-
-   ++ ++ci1;
-   if (*ci1 != 'e')
-      ++failures;
-
-   --ci1;
-   if (*ci1 != 'd')
-      ++failures;
-
-   if (*ci1-- != 'd')
-      ++failures;
-   if (*ci1 != 'c')
-      ++failures;
-
-   -- --ci1;
-   if (*ci1 != 'a')
-      ++failures;
-
-   std::string::const_iterator ci2;
-   ci2 = s.end();
-   std::iterator_traits<std::string::const_iterator>::difference_type d2;
-   d2 = ci2 - ci1;
-   if (d2 != 5)
-     ++failures;
-
-   std::iterator_traits<std::string::const_iterator>::value_type v2;
-   v2 = ci1[0];
-   if (v2 != 'a')
-     ++failures;
-
-   std::iterator_traits<std::string::const_iterator>::reference r2(ci1[0]);
-   if (r2 != 'a')
-      ++failures;
-
-   if ((ci1 != ci2) != true)
-      ++failures;
-   if ((ci1 == ci2) != false)
-      ++failures;
-   if ((ci1 <  ci2) != true)
-      ++failures;
-   if ((ci1 >  ci2) != false)
-      ++failures;
-   if ((ci1 <= ci2) != true)
-      ++failures;
-   if ((ci1 >= ci2) != false)
-      ++failures;
-
-   std::string::const_iterator ci3;
-   ci3 = ci1;
-   if ((ci3 == ci1) != true)
-      ++failures;
-
-   ci3 += 5;
-   if ((ci3 == ci2) != true)
-      ++failures;
-
-   ci3 -= 5;
-   if ((ci3 == ci1) != true)
-      ++failures;
-
-   if (ci3 + 5 != ci2)
-      ++failures;
-
-   if (5 + ci3 != ci2)
-      ++failures;
-
-   if (ci2 - 5 != ci3)
-      ++failures;
-
-   if (ci1[2] != 'c')
-      ++failures;
-
-   if (ci2[-1] != 'e')
-      ++failures;
-
-   // iterator and const_iterator
-   std::string::const_iterator ci4(i1);
-   if ((ci4 == i1) != true)
-      ++failures;
-   if ((ci4 != i1) != false)
-      ++failures;
-   if ((ci4 < i1)  != false)
-     ++failures;
-   if ((ci4 > i1)  != false)
-     ++failures;
-   if ((ci4 <= i1) != true)
-     ++failures;
-   if ((ci4 >= i1) != true)
-     ++failures;
-   ci4 = i2;
-   if ((i2 == ci4) != true)
-     ++failures;
-   if ((i2 < ci4)  != false)
-     ++failures;
-   if ((i2 > ci4)  != false)
-     ++failures;
-   if ((i2 <= ci4) != true)
-     ++failures;
-   if ((i2 >= ci4) != true)
-     ++failures;
-
-   const std::string cs("ABCDE");
-   std::string::const_iterator ci5(cs.begin());
-   if (ci5[0] != 'A')
-      ++failures;
-
-   return failures;
-}
-
-int 
-vector_stuff()
-{
-   int failures(0);
-
-   std::vector<int> v;
-   v.push_back(int(1));
-   v.push_back(int(2));
-   v.push_back(int(3));
-   v.push_back(int(4));
-   v.push_back(int(5));
-
-   std::vector<int>::iterator i1(v.begin());
-   if (*i1 != 1)
-      ++failures;
-
-   ++i1;
-   if (*i1 != 2)
-      ++failures;
-
-   if (*i1++ != 2)
-      ++failures;
-   if (*i1 != 3)
-      ++failures;
-
-   ++ ++i1;
-   if (*i1 != 5)
-      ++failures;
-
-   --i1;
-   if (*i1 != 4)
-      ++failures;
-
-   if (*i1-- != 4)
-      ++failures;
-   if (*i1 != 3)
-      ++failures;
-
-   -- --i1;
-   if (*i1 != 1)
-      ++failures;
-
-   std::vector<int>::iterator i2;
-   i2 = v.end();
-   std::iterator_traits<std::vector<int>::iterator>::difference_type d1;
-   d1 = i2 - i1;
-   if (d1 != 5)
-      ++failures;
-
-   std::iterator_traits<std::vector<int>::iterator>::value_type v1;
-   v1 = i1[0];
-   if (v1 != 1)
-      ++failures;
-
-   std::iterator_traits<std::vector<int>::iterator>::reference r1(i1[0]);
-   if (r1 != 1)
-      ++failures;
-   r1 = 9;
-   if (r1 != 9)
-      ++failures;
-   r1 = 1;
-
-   if ((i1 != i2) != true)
-      ++failures;
-   if ((i1 == i2) != false)
-      ++failures;
-   if ((i1 <  i2) != true)
-      ++failures;
-   if ((i1 >  i2) != false)
-      ++failures;
-   if ((i1 <= i2) != true)
-      ++failures;
-   if ((i1 >= i2) != false)
-      ++failures;
-
-   std::vector<int>::iterator i3;
-   i3 = i1;
-   if ((i3 == i1) != true)
-      ++failures;
-
-   i3 += 5;
-   if ((i3 == i2) != true)
-      ++failures;
-
-   i3 -= 5;
-   if ((i3 == i1) != true)
-      ++failures;
-
-   if (i3 + 5 != i2)
-      ++failures;
-
-   if (5 + i3 != i2)
-      ++failures;
-
-   if (i2 - 5 != i3)
-      ++failures;
-
-   if (i1[0] != 1)
-      ++failures;
-
-   i1[4] = 9;
-   if (i2[-1] != 9)
-      ++failures;
-   i1[4] = 5;
-
-   i1[2] = 9;
-   if (i2[-3] != 9)
-      ++failures;
-   i1[2] = 3;
-
-   std::vector<int>::const_iterator ci1(v.begin());
-   if (*ci1 != 1)
-      ++failures;
-
-   ++ci1;
-   if (*ci1 != 2)
-      ++failures;
-
-   if (*ci1++ != 2)
-      ++failures;
-   if (*ci1 != 3)
-      ++failures;
-
-   ++ ++ci1;
-   if (*ci1 != 5)
-      ++failures;
-
-   --ci1;
-   if (*ci1 != 4)
-      ++failures;
-
-   if (*ci1-- != 4)
-      ++failures;
-   if (*ci1 != 3)
-      ++failures;
-
-   -- --ci1;
-   if (*ci1 != 1)
-      ++failures;
-
-   std::vector<int>::const_iterator ci2;
-   ci2 = v.end();
-   std::iterator_traits<std::vector<int>::const_iterator>::difference_type d2;
-   d2 = ci2 - ci1;
-   if (d2 != 5)
-      ++failures;
-
-   std::iterator_traits<std::vector<int>::const_iterator>::value_type v2;
-   v2 = ci1[0];
-   if (v2 != 1)
-      ++failures;
-
-   std::iterator_traits<std::vector<int>::const_iterator>::reference
-      r2(ci1[0]);
-   if (r2 != 1)
-      ++failures;
-
-   if ((ci1 != ci2) != true)
-      ++failures;
-   if ((ci1 == ci2) != false)
-      ++failures;
-   if ((ci1 <  ci2) != true)
-      ++failures;
-   if ((ci1 >  ci2) != false)
-      ++failures;
-   if ((ci1 <= ci2) != true)
-      ++failures;
-   if ((ci1 >= ci2) != false)
-      ++failures;
-
-   std::vector<int>::const_iterator ci3;
-   ci3 = ci1;
-   if ((ci3 == ci1) != true)
-      ++failures;
-
-   ci3 += 5;
-   if ((ci3 == ci2) != true)
-      ++failures;
-
-   ci3 -= 5;
-   if ((ci3 == ci1) != true)
-      ++failures;
-
-   if (ci3 + 5 != ci2)
-      ++failures;
-
-   if (5 + ci3 != ci2)
-      ++failures;
-
-   if (ci2 - 5 != ci3)
-      ++failures;
-
-   if (ci1[2] != 3)
-      ++failures;
-
-   if (ci2[-1] != 5)
-      ++failures;
-
-   // iterator to const_iterator
-   std::vector<int>::const_iterator ci4(i1);
-   if ((ci4 == i1) != true)
-      ++failures;
-   if ((ci4 != i1) != false)
-      ++failures;
-   if ((ci4 < i1)  != false)
-     ++failures;
-   if ((ci4 > i1)  != false)
-     ++failures;
-   if ((ci4 <= i1) != true)
-     ++failures;
-   if ((ci4 >= i1) != true)
-     ++failures;
-   ci4 = i2;
-   if ((i2 == ci4) != true)
-     ++failures;
-   if ((i2 < ci4)  != false)
-     ++failures;
-   if ((i2 > ci4)  != false)
-     ++failures;
-   if ((i2 <= ci4) != true)
-     ++failures;
-   if ((i2 >= ci4) != true)
-     ++failures;
-
-   const std::vector<int> cv(v);
-   std::vector<int>::const_iterator ci5(cv.begin());
-   if (ci5[0] != 1)
-      ++failures;
-
-   std::vector<std::string> vs;
-   vs.push_back(std::string("abc"));
-   std::vector<std::string>::iterator ivs(vs.begin());
-   if (ivs->c_str()[1] != 'b')
-      ++failures;
-
-   return failures;
-}
-
-int 
-reverse_stuff()
-{
-   int failures(0);
-
-   std::string s("abcde");
-
-   std::string::reverse_iterator ri(s.rbegin());
-   if (*ri != 'e')
-      ++failures;
-
-   std::iterator_traits<std::string::reverse_iterator>::difference_type d;
-   d = s.rend() - ri;
-   if (d != 5)
-      ++failures;
-
-   const std::string cs("abcde");
-   std::string::const_reverse_iterator cri(cs.rend());
-   if (cri - 5 != cs.rbegin())
-      ++failures;
-
-   return failures;
-}
-
-// the following should be compiler errors
-// flag runtime errors in case they slip through the compiler
-int 
-wrong_stuff()
-{
-   int failures(0);
-
-#ifdef ITER24_F1
-   extern void f(std::vector<std::string*>::iterator);
-   std::vector<std::string*> vs[2];
-   f(vs);                       // address of array is not an iterator
-   failures++;
-#endif
-
-#ifdef ITER24_F2
-   std::string s;
-   char *i = s.begin();         // begin() doesn't return a pointer
-   failures++;
-#endif
-
-#ifdef ITER24_F3
-   std::string::const_iterator ci;
-   std::string::iterator i;
-   if (i - ci)                  // remove const_ is a warning
-      i++;
-   // failures++;  only a warning
-#endif
-
-#ifdef ITER24_F4
-   std::vector<char>::iterator iv;
-   std::string::iterator is(iv);// vector<char> is not string
-   failures++;
-#endif
-
-#ifdef ITER24_F5
-   std::vector<char>::iterator iv;
-   std::string::iterator is;
-   if (iv == is)                // vector<char> is not string
-      ++iv;
-   failures++;
-#endif
-
-#ifdef ITER24_F6
-   std::vector<char>::const_iterator ci;
-   std::vector<char>::iterator i = ci;  // remove const_ is a warning
-   ++i;
-   // failures++; only a warning
-#endif
-
-#ifdef ITER24_F7
-   std::vector<int> v(1);
-   std::vector<int>::const_iterator ci(v.begin());
-   *ci = 1;                     // cannot assign through const_iterator
-   failures++;
-#endif
-
-#ifdef ITER24_F8
-   std::vector<const int> v(1);
-   std::vector<const int>::reference r(v.begin()[0]);
-   r = 1;                       // cannot assign through reference to const
-   failures++;
-#endif
-
-   return failures;
-}
-
-// libstdc++/6642
-int
-test6642()
-{
-   std::string s;
-   std::string::iterator it = s.begin();
-   std::string::const_iterator cit = s.begin();
-
-   return it - cit;
-}
-
-int
-main()
-{
-   int failures(0);
-
-   failures += string_stuff();
-
-   failures += vector_stuff();
-
-   failures += reverse_stuff();
-
-   failures += wrong_stuff();
-
-   failures += test6642();
-
-   VERIFY(failures == 0);
-   return 0;
-}
diff --git a/libstdc++-v3/testsuite/24_iterators/ostream_iterator.cc b/libstdc++-v3/testsuite/24_iterators/ostream_iterator.cc
deleted file mode 100644 (file)
index 6e291f1..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-// 2001-06-25  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 24.5.4 Template class ostream_iterator
-
-#include <iterator>
-#include <ostream>
-#include <sstream>
-
-void test01()
-{
-  using namespace std;
-
-  // Check for required base class.
-  typedef ostream_iterator<long> test_iterator;
-  typedef iterator<output_iterator_tag, void, void, void, void> base_iterator;
-  ostringstream osstream("this tag");
-  test_iterator  r_it(osstream);
-  base_iterator* base __attribute__((unused)) = &r_it;
-
-  // Check for required typedefs
-  typedef test_iterator::value_type value_type;
-  typedef test_iterator::difference_type difference_type;
-  typedef test_iterator::pointer pointer;
-  typedef test_iterator::reference reference;
-  typedef test_iterator::iterator_category iteratory_category;
-
-  typedef test_iterator::char_type char_type;
-  typedef test_iterator::traits_type traits_type;
-  typedef test_iterator::ostream_type ostream_type;
-}
-
-// Instantiate
-template class std::ostream_iterator<char>;
-
-int main() 
-{ 
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc b/libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..f8980f3
--- /dev/null
@@ -0,0 +1,38 @@
+// { dg-do compile }
+// 2001-06-25  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.5.4 Template class ostream_iterator
+
+#include <iterator>
+#include <ostream>
+#include <sstream>
+
+void test01()
+{
+  using namespace std;
+
+  // Check for required base class.
+  typedef ostream_iterator<long> test_iterator;
+  typedef iterator<output_iterator_tag, void, void, void, void> base_iterator;
+  ostringstream osstream("this tag");
+  test_iterator  r_it(osstream);
+  base_iterator* base __attribute__((unused)) = &r_it;
+}
diff --git a/libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..0c7644c
--- /dev/null
@@ -0,0 +1,29 @@
+// { dg-do compile }
+// 2001-06-25  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.5.4 Template class ostream_iterator
+
+#include <iterator>
+#include <ostream>
+#include <sstream>
+
+// Instantiate
+template class std::ostream_iterator<char>;
diff --git a/libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/typedefs.cc b/libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..d7a0835
--- /dev/null
@@ -0,0 +1,43 @@
+// { dg-do compile }
+// 2001-06-25  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.5.4 Template class ostream_iterator
+
+#include <iterator>
+#include <ostream>
+#include <sstream>
+
+void test01()
+{
+  using namespace std;
+
+  // Check for required typedefs
+  typedef ostream_iterator<long> test_iterator;
+  typedef test_iterator::value_type value_type;
+  typedef test_iterator::difference_type difference_type;
+  typedef test_iterator::pointer pointer;
+  typedef test_iterator::reference reference;
+  typedef test_iterator::iterator_category iteratory_category;
+
+  typedef test_iterator::char_type char_type;
+  typedef test_iterator::traits_type traits_type;
+  typedef test_iterator::ostream_type ostream_type;
+}
diff --git a/libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/1.cc b/libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/1.cc
deleted file mode 100644 (file)
index e624134..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-// { dg-do compile }
-// 2001-04-30  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 24.5.4 template class ostreambuf_iterator
-
-#include <sstream>
-#include <iterator>
-#include <testsuite_hooks.h>
-
-void test01()
-{
-  using namespace std;
-
-  // Check for required base class.
-  typedef ostreambuf_iterator<char> test_iterator;
-  typedef iterator<output_iterator_tag, void, void, void, void> base_iterator;
-  ostringstream osstream("this tag");
-  test_iterator  r_it(osstream);
-  base_iterator* base __attribute__((unused)) = &r_it;
-
-  // Check for required typedefs
-  typedef test_iterator::value_type value_type;
-  typedef test_iterator::difference_type difference_type;
-  typedef test_iterator::pointer pointer;
-  typedef test_iterator::reference reference;
-  typedef test_iterator::iterator_category iteratory_category;
-
-  typedef test_iterator::char_type char_type;
-  typedef test_iterator::traits_type traits_type;
-  typedef test_iterator::ostream_type ostream_type;
-  typedef test_iterator::streambuf_type streambuf_type;
-}
diff --git a/libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc b/libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..1fe0a8f
--- /dev/null
@@ -0,0 +1,38 @@
+// { dg-do compile }
+// 2001-04-30  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.5.4 template class ostreambuf_iterator
+
+#include <sstream>
+#include <iterator>
+#include <testsuite_hooks.h>
+
+void test01()
+{
+  using namespace std;
+
+  // Check for required base class.
+  typedef ostreambuf_iterator<char> test_iterator;
+  typedef iterator<output_iterator_tag, void, void, void, void> base_iterator;
+  ostringstream osstream("this tag");
+  test_iterator  r_it(osstream);
+  base_iterator* base __attribute__((unused)) = &r_it;
+}
diff --git a/libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..c46caae
--- /dev/null
@@ -0,0 +1,35 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <iterator>
+#include <sstream>
+
+template class std::ostreambuf_iterator<char>;
diff --git a/libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/typedefs.cc b/libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..bc0266b
--- /dev/null
@@ -0,0 +1,44 @@
+// { dg-do compile }
+// 2001-04-30  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.5.4 template class ostreambuf_iterator
+
+#include <sstream>
+#include <iterator>
+#include <testsuite_hooks.h>
+
+void test01()
+{
+  using namespace std;
+
+  // Check for required typedefs
+  typedef ostreambuf_iterator<char> test_iterator;
+  typedef test_iterator::value_type value_type;
+  typedef test_iterator::difference_type difference_type;
+  typedef test_iterator::pointer pointer;
+  typedef test_iterator::reference reference;
+  typedef test_iterator::iterator_category iteratory_category;
+
+  typedef test_iterator::char_type char_type;
+  typedef test_iterator::traits_type traits_type;
+  typedef test_iterator::ostream_type ostream_type;
+  typedef test_iterator::streambuf_type streambuf_type;
+}
diff --git a/libstdc++-v3/testsuite/24_iterators/random_access_iterator/26020.cc b/libstdc++-v3/testsuite/24_iterators/random_access_iterator/26020.cc
new file mode 100644 (file)
index 0000000..80c4e71
--- /dev/null
@@ -0,0 +1,45 @@
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.3.4 Iterator operations
+
+#include <iterator>
+#include <list>
+#include <testsuite_hooks.h>
+
+//libstdc++/26020
+void test01()
+{
+  using namespace std;
+  bool test __attribute__((unused)) = true;  
+
+  list<int> ll;
+  ll.push_back(1);
+
+  list<int>::iterator it(ll.begin());
+
+  advance(it, 0.5);
+
+  VERIFY( it == ll.begin() );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/24_iterators/random_access_iterator/string_vector_iterators.cc b/libstdc++-v3/testsuite/24_iterators/random_access_iterator/string_vector_iterators.cc
new file mode 100644 (file)
index 0000000..fb61d80
--- /dev/null
@@ -0,0 +1,608 @@
+// 24.1.5 Random access iterators
+// 24.3.1 Iterator traits
+// (basic_string and vector implementations)
+//
+// Copyright (C) 1999, 2003, 2004, 2005 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 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       
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
+// USA
+
+
+#include <string>
+#include <vector>
+#include <testsuite_hooks.h>
+
+int 
+string_stuff()
+{
+   int failures(0);
+
+   std::string s("abcde");
+
+   std::string::iterator i1(s.begin());
+   if (*i1 != 'a')
+      ++failures;
+
+   ++i1;
+   if (*i1 != 'b')
+      ++failures;
+
+   if (*i1++ != 'b')
+       ++failures;
+   if (*i1 != 'c')
+      ++failures;
+
+   ++ ++i1;
+   if (*i1 != 'e')
+      ++failures;
+
+   --i1;
+   if (*i1 != 'd')
+      ++failures;
+
+   if (*i1-- != 'd')
+      ++failures;
+   if (*i1 != 'c')
+      ++failures;
+
+   -- --i1;
+   if (*i1 != 'a')
+      ++failures;
+
+   std::string::iterator i2;
+   i2 = s.end();
+   std::iterator_traits<std::string::iterator>::difference_type d1;
+   d1 = i2 - i1;
+   if (d1 != 5)
+      ++failures;
+
+   std::iterator_traits<std::string::iterator>::value_type v1;
+   v1 = i1[0];
+   if (v1 != 'a')
+      ++failures;
+
+   std::iterator_traits<std::string::iterator>::reference r1(i1[0]);
+   if (r1 != 'a')
+      ++failures;
+   r1 = 'x';
+   if (r1 != 'x')
+      ++failures;
+   r1 = 'a';
+
+   if ((i1 != i2) != true)
+      ++failures;
+   if ((i1 == i2) != false)
+      ++failures;
+   if ((i1 <  i2) != true)
+      ++failures;
+   if ((i1 >  i2) != false)
+      ++failures;
+   if ((i1 <= i2) != true)
+      ++failures;
+   if ((i1 >= i2) != false)
+      ++failures;
+
+   std::string::iterator i3;
+   i3 = i1;
+   if ((i3 == i1) != true)
+      ++failures;
+
+   i3 += 5;
+   if ((i3 == i2) != true)
+      ++failures;
+
+   i3 -= 5;
+   if ((i3 == i1) != true)
+      ++failures;
+
+   if (i3 + 5 != i2)
+      ++failures;
+
+   if (5 + i3 != i2)
+      ++failures;
+
+   if (i2 - 5 != i3)
+      ++failures;
+
+   if (i1[0] != 'a')
+      ++failures;
+
+   i1[4] = 'x';
+   if (i2[-1] != 'x')
+      ++failures;
+   i1[4] = 'e';
+
+   i1[2] = 'x';
+   if (i2[-3] != 'x')
+      ++failures;
+   i1[2] = 'c';
+
+   std::string::const_iterator ci1(s.begin());
+   if (*ci1 != 'a')
+      ++failures;
+
+   ++ci1;
+   if (*ci1 != 'b')
+      ++failures;
+
+   if (*ci1++ != 'b')
+      ++failures;
+   if (*ci1 != 'c')
+      ++failures;
+
+   ++ ++ci1;
+   if (*ci1 != 'e')
+      ++failures;
+
+   --ci1;
+   if (*ci1 != 'd')
+      ++failures;
+
+   if (*ci1-- != 'd')
+      ++failures;
+   if (*ci1 != 'c')
+      ++failures;
+
+   -- --ci1;
+   if (*ci1 != 'a')
+      ++failures;
+
+   std::string::const_iterator ci2;
+   ci2 = s.end();
+   std::iterator_traits<std::string::const_iterator>::difference_type d2;
+   d2 = ci2 - ci1;
+   if (d2 != 5)
+     ++failures;
+
+   std::iterator_traits<std::string::const_iterator>::value_type v2;
+   v2 = ci1[0];
+   if (v2 != 'a')
+     ++failures;
+
+   std::iterator_traits<std::string::const_iterator>::reference r2(ci1[0]);
+   if (r2 != 'a')
+      ++failures;
+
+   if ((ci1 != ci2) != true)
+      ++failures;
+   if ((ci1 == ci2) != false)
+      ++failures;
+   if ((ci1 <  ci2) != true)
+      ++failures;
+   if ((ci1 >  ci2) != false)
+      ++failures;
+   if ((ci1 <= ci2) != true)
+      ++failures;
+   if ((ci1 >= ci2) != false)
+      ++failures;
+
+   std::string::const_iterator ci3;
+   ci3 = ci1;
+   if ((ci3 == ci1) != true)
+      ++failures;
+
+   ci3 += 5;
+   if ((ci3 == ci2) != true)
+      ++failures;
+
+   ci3 -= 5;
+   if ((ci3 == ci1) != true)
+      ++failures;
+
+   if (ci3 + 5 != ci2)
+      ++failures;
+
+   if (5 + ci3 != ci2)
+      ++failures;
+
+   if (ci2 - 5 != ci3)
+      ++failures;
+
+   if (ci1[2] != 'c')
+      ++failures;
+
+   if (ci2[-1] != 'e')
+      ++failures;
+
+   // iterator and const_iterator
+   std::string::const_iterator ci4(i1);
+   if ((ci4 == i1) != true)
+      ++failures;
+   if ((ci4 != i1) != false)
+      ++failures;
+   if ((ci4 < i1)  != false)
+     ++failures;
+   if ((ci4 > i1)  != false)
+     ++failures;
+   if ((ci4 <= i1) != true)
+     ++failures;
+   if ((ci4 >= i1) != true)
+     ++failures;
+   ci4 = i2;
+   if ((i2 == ci4) != true)
+     ++failures;
+   if ((i2 < ci4)  != false)
+     ++failures;
+   if ((i2 > ci4)  != false)
+     ++failures;
+   if ((i2 <= ci4) != true)
+     ++failures;
+   if ((i2 >= ci4) != true)
+     ++failures;
+
+   const std::string cs("ABCDE");
+   std::string::const_iterator ci5(cs.begin());
+   if (ci5[0] != 'A')
+      ++failures;
+
+   return failures;
+}
+
+int 
+vector_stuff()
+{
+   int failures(0);
+
+   std::vector<int> v;
+   v.push_back(int(1));
+   v.push_back(int(2));
+   v.push_back(int(3));
+   v.push_back(int(4));
+   v.push_back(int(5));
+
+   std::vector<int>::iterator i1(v.begin());
+   if (*i1 != 1)
+      ++failures;
+
+   ++i1;
+   if (*i1 != 2)
+      ++failures;
+
+   if (*i1++ != 2)
+      ++failures;
+   if (*i1 != 3)
+      ++failures;
+
+   ++ ++i1;
+   if (*i1 != 5)
+      ++failures;
+
+   --i1;
+   if (*i1 != 4)
+      ++failures;
+
+   if (*i1-- != 4)
+      ++failures;
+   if (*i1 != 3)
+      ++failures;
+
+   -- --i1;
+   if (*i1 != 1)
+      ++failures;
+
+   std::vector<int>::iterator i2;
+   i2 = v.end();
+   std::iterator_traits<std::vector<int>::iterator>::difference_type d1;
+   d1 = i2 - i1;
+   if (d1 != 5)
+      ++failures;
+
+   std::iterator_traits<std::vector<int>::iterator>::value_type v1;
+   v1 = i1[0];
+   if (v1 != 1)
+      ++failures;
+
+   std::iterator_traits<std::vector<int>::iterator>::reference r1(i1[0]);
+   if (r1 != 1)
+      ++failures;
+   r1 = 9;
+   if (r1 != 9)
+      ++failures;
+   r1 = 1;
+
+   if ((i1 != i2) != true)
+      ++failures;
+   if ((i1 == i2) != false)
+      ++failures;
+   if ((i1 <  i2) != true)
+      ++failures;
+   if ((i1 >  i2) != false)
+      ++failures;
+   if ((i1 <= i2) != true)
+      ++failures;
+   if ((i1 >= i2) != false)
+      ++failures;
+
+   std::vector<int>::iterator i3;
+   i3 = i1;
+   if ((i3 == i1) != true)
+      ++failures;
+
+   i3 += 5;
+   if ((i3 == i2) != true)
+      ++failures;
+
+   i3 -= 5;
+   if ((i3 == i1) != true)
+      ++failures;
+
+   if (i3 + 5 != i2)
+      ++failures;
+
+   if (5 + i3 != i2)
+      ++failures;
+
+   if (i2 - 5 != i3)
+      ++failures;
+
+   if (i1[0] != 1)
+      ++failures;
+
+   i1[4] = 9;
+   if (i2[-1] != 9)
+      ++failures;
+   i1[4] = 5;
+
+   i1[2] = 9;
+   if (i2[-3] != 9)
+      ++failures;
+   i1[2] = 3;
+
+   std::vector<int>::const_iterator ci1(v.begin());
+   if (*ci1 != 1)
+      ++failures;
+
+   ++ci1;
+   if (*ci1 != 2)
+      ++failures;
+
+   if (*ci1++ != 2)
+      ++failures;
+   if (*ci1 != 3)
+      ++failures;
+
+   ++ ++ci1;
+   if (*ci1 != 5)
+      ++failures;
+
+   --ci1;
+   if (*ci1 != 4)
+      ++failures;
+
+   if (*ci1-- != 4)
+      ++failures;
+   if (*ci1 != 3)
+      ++failures;
+
+   -- --ci1;
+   if (*ci1 != 1)
+      ++failures;
+
+   std::vector<int>::const_iterator ci2;
+   ci2 = v.end();
+   std::iterator_traits<std::vector<int>::const_iterator>::difference_type d2;
+   d2 = ci2 - ci1;
+   if (d2 != 5)
+      ++failures;
+
+   std::iterator_traits<std::vector<int>::const_iterator>::value_type v2;
+   v2 = ci1[0];
+   if (v2 != 1)
+      ++failures;
+
+   std::iterator_traits<std::vector<int>::const_iterator>::reference
+      r2(ci1[0]);
+   if (r2 != 1)
+      ++failures;
+
+   if ((ci1 != ci2) != true)
+      ++failures;
+   if ((ci1 == ci2) != false)
+      ++failures;
+   if ((ci1 <  ci2) != true)
+      ++failures;
+   if ((ci1 >  ci2) != false)
+      ++failures;
+   if ((ci1 <= ci2) != true)
+      ++failures;
+   if ((ci1 >= ci2) != false)
+      ++failures;
+
+   std::vector<int>::const_iterator ci3;
+   ci3 = ci1;
+   if ((ci3 == ci1) != true)
+      ++failures;
+
+   ci3 += 5;
+   if ((ci3 == ci2) != true)
+      ++failures;
+
+   ci3 -= 5;
+   if ((ci3 == ci1) != true)
+      ++failures;
+
+   if (ci3 + 5 != ci2)
+      ++failures;
+
+   if (5 + ci3 != ci2)
+      ++failures;
+
+   if (ci2 - 5 != ci3)
+      ++failures;
+
+   if (ci1[2] != 3)
+      ++failures;
+
+   if (ci2[-1] != 5)
+      ++failures;
+
+   // iterator to const_iterator
+   std::vector<int>::const_iterator ci4(i1);
+   if ((ci4 == i1) != true)
+      ++failures;
+   if ((ci4 != i1) != false)
+      ++failures;
+   if ((ci4 < i1)  != false)
+     ++failures;
+   if ((ci4 > i1)  != false)
+     ++failures;
+   if ((ci4 <= i1) != true)
+     ++failures;
+   if ((ci4 >= i1) != true)
+     ++failures;
+   ci4 = i2;
+   if ((i2 == ci4) != true)
+     ++failures;
+   if ((i2 < ci4)  != false)
+     ++failures;
+   if ((i2 > ci4)  != false)
+     ++failures;
+   if ((i2 <= ci4) != true)
+     ++failures;
+   if ((i2 >= ci4) != true)
+     ++failures;
+
+   const std::vector<int> cv(v);
+   std::vector<int>::const_iterator ci5(cv.begin());
+   if (ci5[0] != 1)
+      ++failures;
+
+   std::vector<std::string> vs;
+   vs.push_back(std::string("abc"));
+   std::vector<std::string>::iterator ivs(vs.begin());
+   if (ivs->c_str()[1] != 'b')
+      ++failures;
+
+   return failures;
+}
+
+int 
+reverse_stuff()
+{
+   int failures(0);
+
+   std::string s("abcde");
+
+   std::string::reverse_iterator ri(s.rbegin());
+   if (*ri != 'e')
+      ++failures;
+
+   std::iterator_traits<std::string::reverse_iterator>::difference_type d;
+   d = s.rend() - ri;
+   if (d != 5)
+      ++failures;
+
+   const std::string cs("abcde");
+   std::string::const_reverse_iterator cri(cs.rend());
+   if (cri - 5 != cs.rbegin())
+      ++failures;
+
+   return failures;
+}
+
+// the following should be compiler errors
+// flag runtime errors in case they slip through the compiler
+int 
+wrong_stuff()
+{
+   int failures(0);
+
+#ifdef ITER24_F1
+   extern void f(std::vector<std::string*>::iterator);
+   std::vector<std::string*> vs[2];
+   f(vs);                       // address of array is not an iterator
+   failures++;
+#endif
+
+#ifdef ITER24_F2
+   std::string s;
+   char *i = s.begin();         // begin() doesn't return a pointer
+   failures++;
+#endif
+
+#ifdef ITER24_F3
+   std::string::const_iterator ci;
+   std::string::iterator i;
+   if (i - ci)                  // remove const_ is a warning
+      i++;
+   // failures++;  only a warning
+#endif
+
+#ifdef ITER24_F4
+   std::vector<char>::iterator iv;
+   std::string::iterator is(iv);// vector<char> is not string
+   failures++;
+#endif
+
+#ifdef ITER24_F5
+   std::vector<char>::iterator iv;
+   std::string::iterator is;
+   if (iv == is)                // vector<char> is not string
+      ++iv;
+   failures++;
+#endif
+
+#ifdef ITER24_F6
+   std::vector<char>::const_iterator ci;
+   std::vector<char>::iterator i = ci;  // remove const_ is a warning
+   ++i;
+   // failures++; only a warning
+#endif
+
+#ifdef ITER24_F7
+   std::vector<int> v(1);
+   std::vector<int>::const_iterator ci(v.begin());
+   *ci = 1;                     // cannot assign through const_iterator
+   failures++;
+#endif
+
+#ifdef ITER24_F8
+   std::vector<const int> v(1);
+   std::vector<const int>::reference r(v.begin()[0]);
+   r = 1;                       // cannot assign through reference to const
+   failures++;
+#endif
+
+   return failures;
+}
+
+// libstdc++/6642
+int
+test6642()
+{
+   std::string s;
+   std::string::iterator it = s.begin();
+   std::string::const_iterator cit = s.begin();
+
+   return it - cit;
+}
+
+int
+main()
+{
+   int failures(0);
+
+   failures += string_stuff();
+
+   failures += vector_stuff();
+
+   failures += reverse_stuff();
+
+   failures += wrong_stuff();
+
+   failures += test6642();
+
+   VERIFY(failures == 0);
+   return 0;
+}
diff --git a/libstdc++-v3/testsuite/24_iterators/reverse_iterator/1.cc b/libstdc++-v3/testsuite/24_iterators/reverse_iterator/1.cc
deleted file mode 100644 (file)
index 70c4e41..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-// { dg-do compile }
-// 2001-06-21  Benjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 24.4.1.2 Reverse iterators
-
-#include <iterator>
-
-void test01()
-{
-  using namespace std;
-
-  // Check for required base class.
-  long l;
-  typedef reverse_iterator<long*> test_iterator;
-  typedef iterator<iterator_traits<long*>::iterator_category,
-                  iterator_traits<long*>::value_type,
-                  iterator_traits<long*>::difference_type,
-                  iterator_traits<long*>::pointer,
-                   iterator_traits<long*>::reference>
-    base_iterator;
-  test_iterator  r_it(&l);
-  base_iterator* base __attribute__((unused)) = &r_it;
-
-  // Check for required typedefs
-  typedef test_iterator::value_type value_type;
-  typedef test_iterator::difference_type difference_type;
-  typedef test_iterator::pointer pointer;
-  typedef test_iterator::reference reference;
-  typedef test_iterator::iterator_category iteratory_category;
-}
-
-// Make sure iterator can be instantiated.
-template class std::reverse_iterator<int*>;
index 225390cd82c56478fdaafe596ef5ab9af001f0e6..481c209adf07557bb472e64892087966d1906833 100644 (file)
@@ -39,14 +39,6 @@ void test02()
   5 + it02;
 }
 
-// Check data member 'current' accessible.
-class test_dm : public std::reverse_iterator<int*>
-{
-  int* p;
-public:
-  test_dm(): p(current) { }
-};
-
 int main() 
 { 
   test02();
diff --git a/libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc b/libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..9029df0
--- /dev/null
@@ -0,0 +1,41 @@
+// { dg-do compile }
+// 2001-06-21  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.1.2 Reverse iterators
+
+#include <iterator>
+
+void test01()
+{
+  using namespace std;
+
+  // Check for required base class.
+  long l;
+  typedef reverse_iterator<long*> test_iterator;
+  typedef iterator<iterator_traits<long*>::iterator_category,
+                  iterator_traits<long*>::value_type,
+                  iterator_traits<long*>::difference_type,
+                  iterator_traits<long*>::pointer,
+                   iterator_traits<long*>::reference>
+    base_iterator;
+  test_iterator  r_it(&l);
+  base_iterator* base __attribute__((unused)) = &r_it;
+}
diff --git a/libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/current.cc b/libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/current.cc
new file mode 100644 (file)
index 0000000..0981dbf
--- /dev/null
@@ -0,0 +1,32 @@
+// { dg-do compile }
+// 2001-06-21  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.1.2 Reverse iterators
+
+#include <iterator>
+
+// Check data member 'current' accessible.
+class test_dm : public std::reverse_iterator<int*>
+{
+  int* p;
+public:
+  test_dm(): p(current) { }
+};
diff --git a/libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..f0e2351
--- /dev/null
@@ -0,0 +1,27 @@
+// { dg-do compile }
+// 2001-06-21  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.1.2 Reverse iterators
+
+#include <iterator>
+
+// Make sure iterator can be instantiated.
+template class std::reverse_iterator<int*>;
diff --git a/libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/typedefs.cc b/libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..d987044
--- /dev/null
@@ -0,0 +1,37 @@
+// { dg-do compile }
+// 2001-06-21  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.1.2 Reverse iterators
+
+#include <iterator>
+
+void test01()
+{
+  using namespace std;
+
+  // Check for required typedefs
+  typedef reverse_iterator<long*> test_iterator;
+  typedef test_iterator::value_type value_type;
+  typedef test_iterator::difference_type difference_type;
+  typedef test_iterator::pointer pointer;
+  typedef test_iterator::reference reference;
+  typedef test_iterator::iterator_category iteratory_category;
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/headers/algorithm/synopsis.cc b/libstdc++-v3/testsuite/25_algorithms/headers/algorithm/synopsis.cc
new file mode 100644 (file)
index 0000000..032fa31
--- /dev/null
@@ -0,0 +1,404 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <algorithm>
+
+namespace std {
+  // 25.1, non-modifying sequence operations:
+  template<class InputIterator, class Function>
+    Function for_each(InputIterator first, InputIterator last, Function f);
+  template<class InputIterator, class T>
+    InputIterator find(InputIterator first, InputIterator last,
+                               const T& value);
+  template<class InputIterator, class Predicate>
+    InputIterator find_if(InputIterator first, InputIterator last,
+                                   Predicate pred);
+  template<class ForwardIterator1, class ForwardIterator2>
+    ForwardIterator1
+       find_end(ForwardIterator1 first1, ForwardIterator1 last1,
+                    ForwardIterator2 first2, ForwardIterator2 last2);
+  template<class ForwardIterator1, class ForwardIterator2,
+               class BinaryPredicate>
+    ForwardIterator1
+       find_end(ForwardIterator1 first1, ForwardIterator1 last1,
+                    ForwardIterator2 first2, ForwardIterator2 last2,
+                    BinaryPredicate pred);
+  template<class ForwardIterator1, class ForwardIterator2>
+    ForwardIterator1
+       find_first_of(ForwardIterator1 first1, ForwardIterator1 last1,
+                           ForwardIterator2 first2, ForwardIterator2 last2);
+  template<class ForwardIterator1, class ForwardIterator2,
+               class BinaryPredicate>
+    ForwardIterator1
+       find_first_of(ForwardIterator1 first1, ForwardIterator1 last1,
+                    ForwardIterator2 first2, ForwardIterator2 last2,
+                    BinaryPredicate pred);
+
+template<class ForwardIterator>
+  ForwardIterator adjacent_find(ForwardIterator first,
+                                ForwardIterator last);
+
+template<class ForwardIterator, class BinaryPredicate>
+  ForwardIterator adjacent_find(ForwardIterator first,
+      ForwardIterator last, BinaryPredicate pred);
+
+template<class InputIterator, class T>
+  typename iterator_traits<InputIterator>::difference_type
+    count(InputIterator first, InputIterator last, const T& value);
+
+template<class InputIterator, class Predicate>
+  typename iterator_traits<InputIterator>::difference_type
+    count_if(InputIterator first, InputIterator last, Predicate pred);
+template<class InputIterator1, class InputIterator2>
+  pair<InputIterator1, InputIterator2>
+    mismatch(InputIterator1 first1, InputIterator1 last1,
+             InputIterator2 first2);
+template
+ <class InputIterator1, class InputIterator2, class BinaryPredicate>
+  pair<InputIterator1, InputIterator2>
+    mismatch(InputIterator1 first1, InputIterator1 last1,
+      InputIterator2 first2, BinaryPredicate pred);
+template<class InputIterator1, class InputIterator2>
+  bool equal(InputIterator1 first1, InputIterator1 last1,
+             InputIterator2 first2);
+template
+ <class InputIterator1, class InputIterator2, class BinaryPredicate>
+  bool equal(InputIterator1 first1, InputIterator1 last1,
+             InputIterator2 first2, BinaryPredicate pred);
+
+template<class ForwardIterator1, class ForwardIterator2>
+  ForwardIterator1 search
+    (ForwardIterator1 first1, ForwardIterator1 last1,
+     ForwardIterator2 first2, ForwardIterator2 last2);
+
+template<class ForwardIterator1, class ForwardIterator2,
+         class BinaryPredicate>
+  ForwardIterator1 search
+    (ForwardIterator1 first1, ForwardIterator1 last1,
+     ForwardIterator2 first2, ForwardIterator2 last2,
+                          BinaryPredicate pred);
+
+template<class ForwardIterator, class Size, class T>
+  ForwardIterator search_n(ForwardIterator first, ForwardIterator last,
+                          Size count, const T& value);
+
+template <class ForwardIterator, class Size, class T, class BinaryPredicate>
+  ForwardIterator search_n(ForwardIterator first, ForwardIterator last,
+                          Size count, const T& value,
+                          BinaryPredicate pred);
+
+// 25.2, modifying sequence operations:
+// 25.2.1, copy:
+template<class InputIterator, class OutputIterator>
+  OutputIterator copy(InputIterator first, InputIterator last,
+                               OutputIterator result);
+template<class BidirectionalIterator1, class BidirectionalIterator2>
+  BidirectionalIterator2
+     copy_backward
+         (BidirectionalIterator1 first, BidirectionalIterator1 last,
+          BidirectionalIterator2 result);
+// 25.2.2, swap:
+template<class T> void swap(T& a, T& b);
+template<class ForwardIterator1, class ForwardIterator2>
+  ForwardIterator2 swap_ranges(ForwardIterator1 first1,
+         ForwardIterator1 last1, ForwardIterator2 first2);
+template<class ForwardIterator1, class ForwardIterator2>
+  void iter_swap(ForwardIterator1 a, ForwardIterator2 b);
+template<class InputIterator, class OutputIterator, class UnaryOperation>
+  OutputIterator transform(InputIterator first, InputIterator last,
+                                      OutputIterator result, UnaryOperation op);
+template<class InputIterator1, class InputIterator2, class OutputIterator,
+             class BinaryOperation>
+  OutputIterator transform(InputIterator1 first1, InputIterator1 last1,
+                                      InputIterator2 first2, OutputIterator result,
+                                      BinaryOperation binary_op);
+template<class ForwardIterator, class T>
+  void replace(ForwardIterator first, ForwardIterator last,
+                     const T& old_value, const T& new_value);
+template<class ForwardIterator, class Predicate, class T>
+  void replace_if(ForwardIterator first, ForwardIterator last,
+                         Predicate pred, const T& new_value);
+template<class InputIterator, class OutputIterator, class T>
+  OutputIterator replace_copy(InputIterator first, InputIterator last,
+                                         OutputIterator result,
+                                         const T& old_value, const T& new_value);
+template<class Iterator, class OutputIterator, class Predicate, class T>
+  OutputIterator replace_copy_if(Iterator first, Iterator last,
+                                            OutputIterator result,
+                                            Predicate pred, const T& new_value);
+template<class ForwardIterator, class T>
+  void fill(ForwardIterator first, ForwardIterator last, const T& value);
+template<class OutputIterator, class Size, class T>
+  void fill_n(OutputIterator first, Size n, const T& value);
+template<class ForwardIterator, class Generator>
+  void generate(ForwardIterator first, ForwardIterator last,
+                       Generator gen);
+template<class OutputIterator, class Size, class Generator>
+  void generate_n(OutputIterator first, Size n, Generator gen);
+
+template<class ForwardIterator, class T>
+  ForwardIterator remove(ForwardIterator first, ForwardIterator last,
+                                const T& value);
+template<class ForwardIterator, class Predicate>
+  ForwardIterator remove_if(ForwardIterator first, ForwardIterator last,
+                                   Predicate pred);
+template<class InputIterator, class OutputIterator, class T>
+  OutputIterator remove_copy(InputIterator first, InputIterator last,
+                                    OutputIterator result, const T& value);
+template<class InputIterator, class OutputIterator, class Predicate>
+  OutputIterator remove_copy_if(InputIterator first, InputIterator last,
+                                       OutputIterator result, Predicate pred);
+template<class ForwardIterator>
+  ForwardIterator unique(ForwardIterator first, ForwardIterator last);
+template<class ForwardIterator, class BinaryPredicate>
+  ForwardIterator unique(ForwardIterator first, ForwardIterator last,
+                                BinaryPredicate pred);
+template<class InputIterator, class OutputIterator>
+  OutputIterator unique_copy(InputIterator first, InputIterator last,
+                                    OutputIterator result);
+template<class InputIterator, class OutputIterator, class BinaryPredicate>
+  OutputIterator unique_copy(InputIterator first, InputIterator last,
+                                    OutputIterator result, BinaryPredicate pred);
+template<class BidirectionalIterator>
+  void reverse(BidirectionalIterator first, BidirectionalIterator last);
+template<class BidirectionalIterator, class OutputIterator>
+  OutputIterator reverse_copy(BidirectionalIterator first,
+                                     BidirectionalIterator last,
+                                     OutputIterator result);
+template<class ForwardIterator>
+  void rotate(ForwardIterator first, ForwardIterator middle,
+                     ForwardIterator last);
+template<class ForwardIterator, class OutputIterator>
+  OutputIterator rotate_copy
+     (ForwardIterator first, ForwardIterator middle,
+       ForwardIterator last, OutputIterator result);
+template<class RandomAccessIterator>
+  void random_shuffle(RandomAccessIterator first,
+                             RandomAccessIterator last);
+template<class RandomAccessIterator, class RandomNumberGenerator>
+  void random_shuffle(RandomAccessIterator first,
+                             RandomAccessIterator last,
+                             RandomNumberGenerator& rand);
+// 25.2.12, partitions:
+template<class BidirectionalIterator, class Predicate>
+  BidirectionalIterator partition(BidirectionalIterator first,
+                                         BidirectionalIterator last,
+                                         Predicate pred);
+template<class BidirectionalIterator, class Predicate>
+  BidirectionalIterator stable_partition(BidirectionalIterator first,
+                                                 BidirectionalIterator last,
+                                                Predicate pred);
+// 25.3, sorting and related operations:
+// 25.3.1, sorting:
+template<class RandomAccessIterator>
+  void sort(RandomAccessIterator first, RandomAccessIterator last);
+template<class RandomAccessIterator, class Compare>
+  void sort(RandomAccessIterator first, RandomAccessIterator last,
+                  Compare comp);
+template<class RandomAccessIterator>
+  void stable_sort(RandomAccessIterator first, RandomAccessIterator last);
+template<class RandomAccessIterator, class Compare>
+  void stable_sort(RandomAccessIterator first, RandomAccessIterator last,
+                            Compare comp);
+template<class RandomAccessIterator>
+  void partial_sort(RandomAccessIterator first,
+                              RandomAccessIterator middle,
+                              RandomAccessIterator last);
+template<class RandomAccessIterator, class Compare>
+  void partial_sort(RandomAccessIterator first,
+                              RandomAccessIterator middle,
+                              RandomAccessIterator last, Compare comp);
+template<class InputIterator, class RandomAccessIterator>
+  RandomAccessIterator
+     partial_sort_copy(InputIterator first, InputIterator last,
+                                RandomAccessIterator result_first,
+                                RandomAccessIterator result_last);
+template<class InputIterator, class RandomAccessIterator, class Compare>
+  RandomAccessIterator
+     partial_sort_copy(InputIterator first, InputIterator last,
+                                RandomAccessIterator result_first,
+                                RandomAccessIterator result_last,
+                                Compare comp);
+template<class RandomAccessIterator>
+  void nth_element(RandomAccessIterator first, RandomAccessIterator nth,
+                            RandomAccessIterator last);
+template<class RandomAccessIterator, class Compare>
+  void nth_element(RandomAccessIterator first, RandomAccessIterator nth,
+                            RandomAccessIterator last, Compare comp);
+// 25.3.3, binary search:
+template<class ForwardIterator, class T>
+  ForwardIterator lower_bound(ForwardIterator first, ForwardIterator last,
+                                         const T& value);
+template<class ForwardIterator, class T, class Compare>
+  ForwardIterator lower_bound(ForwardIterator first, ForwardIterator last,
+                                         const T& value, Compare comp);
+template<class ForwardIterator, class T>
+  ForwardIterator upper_bound(ForwardIterator first, ForwardIterator last,
+                                         const T& value);
+template<class ForwardIterator, class T, class Compare>
+  ForwardIterator upper_bound(ForwardIterator first, ForwardIterator last,
+                                         const T& value, Compare comp);
+template<class ForwardIterator, class T>
+  pair<ForwardIterator, ForwardIterator>
+     equal_range(ForwardIterator first, ForwardIterator last,
+                        const T& value);
+template<class ForwardIterator, class T, class Compare>
+  pair<ForwardIterator, ForwardIterator>
+     equal_range(ForwardIterator first, ForwardIterator last,
+                        const T& value, Compare comp);
+template<class ForwardIterator, class T>
+  bool binary_search(ForwardIterator first, ForwardIterator last,
+                             const T& value);
+template<class ForwardIterator, class T, class Compare>
+  bool binary_search(ForwardIterator first, ForwardIterator last,
+                             const T& value, Compare comp);
+// 25.3.4, merge:
+template<class InputIterator1, class InputIterator2, class OutputIterator>
+  OutputIterator merge(InputIterator1 first1, InputIterator1 last1,
+                               InputIterator2 first2, InputIterator2 last2,
+                               OutputIterator result);
+template<class InputIterator1, class InputIterator2, class OutputIterator,
+             class Compare>
+  OutputIterator merge(InputIterator1 first1, InputIterator1 last1,
+                               InputIterator2 first2, InputIterator2 last2,
+                               OutputIterator result, Compare comp);
+template<class BidirectionalIterator>
+  void inplace_merge(BidirectionalIterator first,
+                             BidirectionalIterator middle,
+                             BidirectionalIterator last);
+template<class BidirectionalIterator, class Compare>
+  void inplace_merge(BidirectionalIterator first,
+                             BidirectionalIterator middle,
+                             BidirectionalIterator last, Compare comp);
+// 25.3.5, set operations:
+template<class InputIterator1, class InputIterator2>
+  bool includes(InputIterator1 first1, InputIterator1 last1,
+                        InputIterator2 first2, InputIterator2 last2);
+template<class InputIterator1, class InputIterator2, class Compare>
+  bool includes
+     (InputIterator1 first1, InputIterator1 last1,
+       InputIterator2 first2, InputIterator2 last2, Compare comp);
+template<class InputIterator1, class InputIterator2, class OutputIterator>
+  OutputIterator set_union(InputIterator1 first1, InputIterator1 last1,
+                                   InputIterator2 first2, InputIterator2 last2,
+                                   OutputIterator result);
+template<class InputIterator1, class InputIterator2, class OutputIterator,
+             class Compare>
+  OutputIterator set_union(InputIterator1 first1, InputIterator1 last1,
+                                   InputIterator2 first2, InputIterator2 last2,
+                                   OutputIterator result, Compare comp);
+template<class InputIterator1, class InputIterator2, class OutputIterator>
+  OutputIterator set_intersection
+        (InputIterator1 first1, InputIterator1 last1,
+          InputIterator2 first2, InputIterator2 last2,
+          OutputIterator result);
+template<class InputIterator1, class InputIterator2, class OutputIterator,
+             class Compare>
+  OutputIterator set_intersection
+        (InputIterator1 first1, InputIterator1 last1,
+          InputIterator2 first2, InputIterator2 last2,
+          OutputIterator result, Compare comp);
+template<class InputIterator1, class InputIterator2, class OutputIterator>
+  OutputIterator set_difference
+        (InputIterator1 first1, InputIterator1 last1,
+          InputIterator2 first2, InputIterator2 last2,
+          OutputIterator result);
+template<class InputIterator1, class InputIterator2, class OutputIterator,
+             class Compare>
+  OutputIterator set_difference
+        (InputIterator1 first1, InputIterator1 last1,
+          InputIterator2 first2, InputIterator2 last2,
+          OutputIterator result, Compare comp);
+template<class InputIterator1, class InputIterator2, class OutputIterator>
+  OutputIterator
+     set_symmetric_difference(InputIterator1 first1, InputIterator1 last1,
+                                    InputIterator2 first2, InputIterator2 last2,
+                                    OutputIterator result);
+template<class InputIterator1, class InputIterator2, class OutputIterator,
+              class Compare>
+  OutputIterator
+     set_symmetric_difference(InputIterator1 first1, InputIterator1 last1,
+                                    InputIterator2 first2, InputIterator2 last2,
+                                    OutputIterator result, Compare comp);
+// 25.3.6, heap operations:
+template<class RandomAccessIterator>
+  void push_heap(RandomAccessIterator first, RandomAccessIterator last);
+template<class RandomAccessIterator, class Compare>
+  void push_heap(RandomAccessIterator first, RandomAccessIterator last,
+                        Compare comp);
+template<class RandomAccessIterator>
+  void pop_heap(RandomAccessIterator first, RandomAccessIterator last);
+template<class RandomAccessIterator, class Compare>
+  void pop_heap(RandomAccessIterator first, RandomAccessIterator last,
+                       Compare comp);
+template<class RandomAccessIterator>
+  void make_heap(RandomAccessIterator first, RandomAccessIterator last);
+template<class RandomAccessIterator, class Compare>
+  void make_heap(RandomAccessIterator first, RandomAccessIterator last,
+                        Compare comp);
+template<class RandomAccessIterator>
+  void sort_heap(RandomAccessIterator first, RandomAccessIterator last);
+template<class RandomAccessIterator, class Compare>
+  void sort_heap(RandomAccessIterator first, RandomAccessIterator last,
+                        Compare comp);
+
+  // 25.3.7, minimum and maximum:
+  template<class T> const T& min(const T& a, const T& b);
+  template<class T, class Compare>
+    const T& min(const T& a, const T& b, Compare comp);
+  template<class T> const T& max(const T& a, const T& b);
+  template<class T, class Compare>
+    const T& max(const T& a, const T& b, Compare comp);
+  template<class ForwardIterator>
+    ForwardIterator min_element
+       (ForwardIterator first, ForwardIterator last);
+  template<class ForwardIterator, class Compare>
+    ForwardIterator min_element(ForwardIterator first, ForwardIterator last,
+                                     Compare comp);
+  template<class ForwardIterator>
+    ForwardIterator max_element
+       (ForwardIterator first, ForwardIterator last);
+  template<class ForwardIterator, class Compare>
+    ForwardIterator max_element(ForwardIterator first, ForwardIterator last,
+                                     Compare comp);
+  template<class InputIterator1, class InputIterator2>
+    bool lexicographical_compare
+          (InputIterator1 first1, InputIterator1 last1,
+            InputIterator2 first2, InputIterator2 last2);
+  template<class InputIterator1, class InputIterator2, class Compare>
+    bool lexicographical_compare
+          (InputIterator1 first1, InputIterator1 last1,
+            InputIterator2 first2, InputIterator2 last2,
+            Compare comp);
+
+  // 25.3.9, permutations
+  template<class BidirectionalIterator>
+    bool next_permutation(BidirectionalIterator first,
+                                 BidirectionalIterator last);
+  template<class BidirectionalIterator, class Compare>
+    bool next_permutation(BidirectionalIterator first,
+                                 BidirectionalIterator last, Compare comp);
+  template<class BidirectionalIterator>
+    bool prev_permutation(BidirectionalIterator first,
+                                 BidirectionalIterator last);
+  template<class BidirectionalIterator, class Compare>
+    bool prev_permutation(BidirectionalIterator first,
+                                 BidirectionalIterator last, Compare comp);
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/headers/cstdlib/functions_std.cc b/libstdc++-v3/testsuite/25_algorithms/headers/cstdlib/functions_std.cc
new file mode 100644 (file)
index 0000000..fcbf50b
--- /dev/null
@@ -0,0 +1,27 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstdlib>
+
+namespace gnu
+{
+  using std::bsearch;
+  using std::qsort;
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/cmath/19322.cc b/libstdc++-v3/testsuite/26_numerics/cmath/19322.cc
deleted file mode 100644 (file)
index f763b21..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-#include <cmath>
-#include <testsuite_hooks.h>
-
-#if _GLIBCXX_USE_C99_MATH
-// libstdc++/19322
-void test01()
-{
-  bool test __attribute__((unused)) = true;
-
-  VERIFY( !std::isnan(3.0) );
-}
-#endif
-
-int main()
-{
-#if _GLIBCXX_USE_C99_MATH
-  test01();
-#endif
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/26_numerics/cmath/c99_classification_macros_c++.cc b/libstdc++-v3/testsuite/26_numerics/cmath/c99_classification_macros_c++.cc
deleted file mode 100644 (file)
index 5455008..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-// 2001-04-06 gdr
-
-// Copyright (C) 2001, 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// { dg-do compile { xfail uclibc } }
-// { dg-excess-errors "" { target uclibc } }
-
-#include <cmath>
-
-void fpclassify() { }
-
-void isfinite() { }
-
-void isinf() { }
-
-void isnan() { }
-
-void isnormal() { }
-
-void signbit() { }
-
-void isgreater() { }
-
-void isgreaterequal() { }
-
-void isless() { }
-
-void islessequal() { }
-
-void islessgreater() { }
-
-void isunordered() { }
-
-#if _GLIBCXX_USE_C99_MATH
-template <typename _Tp>
-  void test_c99_classify()
-  {
-    bool test __attribute__((unused)) = true;
-
-    typedef _Tp fp_type;
-    fp_type f1 = 1.0;
-    fp_type f2 = 3.0;
-    int res = 0;
-    
-    res = std::fpclassify(f1);
-    res = std::isfinite(f2);
-    res = std::isinf(f1);
-    res = std::isnan(f2);
-    res = std::isnormal(f1);
-    res = std::signbit(f2);
-    res = std::isgreater(f1, f2);
-    res = std::isgreaterequal(f1, f2);
-    res = std::isless(f1, f2);
-    res = std::islessequal(f1,f2);
-    res = std::islessgreater(f1, f2);
-    res = std::isunordered(f1, f2);
-  }
-#endif
-
-int main()
-{
-#if _GLIBCXX_USE_C99_MATH
-  test_c99_classify<float>();
-  test_c99_classify<double>();
-#endif
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/26_numerics/cmath/c99_classification_macros_c.cc b/libstdc++-v3/testsuite/26_numerics/cmath/c99_classification_macros_c.cc
deleted file mode 100644 (file)
index a9cd058..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-// 2001-04-06 gdr
-
-// Copyright (C) 2001, 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// { dg-do compile { xfail { { *-*-linux* *-*-darwin* } || uclibc } } }
-// { dg-excess-errors "" { target { { *-*-linux* *-*-darwin* } || uclibc } } }
-
-#include <math.h>
-
-void fpclassify() { }
-
-void isfinite() { }
-
-void isinf() { }
-
-void isnan() { }
-
-void isnormal() { }
-
-void signbit() { }
-
-void isgreater() { }
-
-void isgreaterequal() { }
-
-void isless() { }
-
-void islessequal() { }
-
-void islessgreater() { }
-
-void isunordered() { }
-
diff --git a/libstdc++-v3/testsuite/26_numerics/cmath/c_math.cc b/libstdc++-v3/testsuite/26_numerics/cmath/c_math.cc
deleted file mode 100644 (file)
index fd0f7c9..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-// 1999-06-05
-// Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
-// Copyright (C) 2000, 1999 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-#include <cmath>
-#include <testsuite_hooks.h>
-
-// test compilation.
-int
-test01()
-{
-  float a = 1.f;
-  float b;
-  std::modf(a, &b);
-  return 0;
-}
-
-// need more extravagant checks than this, of course, but this used to core...
-int
-test02()
-{
-       std::sin(static_cast<float>(0));
-  return 0;
-}
-
-// as did this.
-int
-test03()
-{
-  double powtest __attribute__((unused)) = std::pow(2., 0);
-  return 0;
-}
-
-// this used to abort.
-int
-test04()
-{
-  bool test __attribute__((unused)) = true;
-  float x[2] = {1, 2};
-  float y = 3.4;
-  std::modf(y, &x[0]);
-  VERIFY(x[1] == 2);
-  return 0;
-}
-
-int 
-main()
-{
-  test01();
-  test02();
-  test03();
-  test04();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/26_numerics/cmath/c_math_dynamic.cc b/libstdc++-v3/testsuite/26_numerics/cmath/c_math_dynamic.cc
deleted file mode 100644 (file)
index b8f2f92..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-// Inspired by libstdc++/7680 & 26_numerics/c_math.cc, 2003-04-12 ljr
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// { dg-do link }
-// { dg-options "-D_XOPEN_SOURCE" { target *-*-freebsd* } }
-
-#include <cmath>
-
-int
-test01()
-{
-  float a = 1.f;
-  float b;
-  std::modf(a, &b);
-  return 0;
-}
-
-int
-test02 ()
-{
-  float a = 0.0f;
-  float b __attribute__((unused)) = std::acos(a);
-  return 0;
-}
-
-int
-main()
-{
-  test01();
-  test02();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/26_numerics/cmath/fabs_inline.cc b/libstdc++-v3/testsuite/26_numerics/cmath/fabs_inline.cc
deleted file mode 100644 (file)
index 742a3a9..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright (C) 1999, 2002 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// Test to see whether the host provides its own (inline) view of fabs.
-// Origin: Kurt Garloff <kurt@garloff.de>, 2001-05-24
-// dg-do link
-
-#include <cmath>
-#include <cstdio>
-
-typedef double (*realfn) (double);
-
-using std::fabs;
-
-int main ()
-{
-  double a = fabs (-2.4);
-  realfn myfn = fabs;
-  double b = myfn (-2.5);
-  std::printf ("%f, %f, %p\n", a, b, myfn);
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/26_numerics/cmath/overloads.cc b/libstdc++-v3/testsuite/26_numerics/cmath/overloads.cc
deleted file mode 100644 (file)
index 4d41a96..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-// PR 3181
-// Origin: pete@toyon.com
-
-#include <cmath>
-
-int main()
-{
-  int i = -1;
-  int j = 9;
-  double ans;
-  ans = std::acos(i);
-  ans = std::asin(i);
-  ans = std::atan(i);
-  ans = std::atan2(i, j);
-  ans = std::cos(i);
-  ans = std::cosh(i);
-  ans = std::exp(i);
-  ans = std::fabs(i);
-  ans = std::floor(i);
-  ans = std::log(i);
-  ans = std::log10(i);
-  ans = std::sqrt(i);
-  ans = std::sin(i);
-  ans = std::sinh(j);
-  ans = std::tan(i);
-  ans = std::tanh(i);
-}
diff --git a/libstdc++-v3/testsuite/26_numerics/cmath/powi.cc b/libstdc++-v3/testsuite/26_numerics/cmath/powi.cc
deleted file mode 100644 (file)
index 8a56f2f..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-// 2005-02-13  Paolo Carlini  <pcarlini@suse.de>
-
-// Copyright (C) 2005 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 26.5 C Library
-
-#include <cmath>
-#include <testsuite_hooks.h>
-
-template<typename T>
-  void test01_do()
-  {
-    using namespace std;
-    bool test __attribute__((unused)) = true;
-    
-    VERIFY( pow(T(1.0), 0) == T(1.0) );
-    VERIFY( pow(T(2.0), 0) == T(1.0) );
-    VERIFY( pow(T(-1.0), 0) == T(1.0) );
-    VERIFY( pow(T(-4.0), 0) == T(1.0) );
-
-    VERIFY( pow(T(1.0), 1) == T(1.0) );
-    VERIFY( pow(T(2.0), 1) == T(2.0) );
-    VERIFY( pow(T(-1.0), 1) == T(-1.0) );
-    VERIFY( pow(T(-4.0), 1) == T(-4.0) );
-
-    VERIFY( pow(T(1.0), -1) == T(1.0) / T(1.0) );
-    VERIFY( pow(T(2.0), -1) == T(1.0) / T(2.0) );
-    VERIFY( pow(T(-1.0), -1) == T(1.0) / T(-1.0) );
-    VERIFY( pow(T(-4.0), -1) == T(1.0) / T(-4.0) );
-
-    VERIFY( pow(T(1.0), 2) == T(1.0) * T(1.0) );
-    VERIFY( pow(T(2.0), 2) == T(2.0) * T(2.0) );
-    VERIFY( pow(T(-1.0), 2) == T(-1.0) * T(-1.0) );
-    VERIFY( pow(T(-4.0), 2) == T(-4.0) * T(-4.0) );
-  }
-
-void test01()
-{
-  test01_do<float>();
-  test01_do<double>();
-  test01_do<long double>();
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/26_numerics/cstdlib/13943.cc b/libstdc++-v3/testsuite/26_numerics/cstdlib/13943.cc
deleted file mode 100644 (file)
index 08ab36e..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-#include <cstdlib>
-#include <testsuite_hooks.h>
-
-#if _GLIBCXX_USE_C99
-// libstdc++/13943
-void test01()
-{
-  using namespace std;
-  bool test __attribute__((unused)) = true;
-
-  VERIFY( llabs(-3) == 3 );
-  
-  lldiv_t q = lldiv(6, 4);
-  VERIFY( q.quot == 1 );
-  VERIFY( q.rem == 2 );
-}
-#endif
-
-int main()
-{
-#if _GLIBCXX_USE_C99
-  test01();
-#endif
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cmath/19322.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/19322.cc
new file mode 100644 (file)
index 0000000..f763b21
--- /dev/null
@@ -0,0 +1,47 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <cmath>
+#include <testsuite_hooks.h>
+
+#if _GLIBCXX_USE_C99_MATH
+// libstdc++/19322
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  VERIFY( !std::isnan(3.0) );
+}
+#endif
+
+int main()
+{
+#if _GLIBCXX_USE_C99_MATH
+  test01();
+#endif
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c++.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c++.cc
new file mode 100644 (file)
index 0000000..5455008
--- /dev/null
@@ -0,0 +1,92 @@
+// 2001-04-06 gdr
+
+// Copyright (C) 2001, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// { dg-do compile { xfail uclibc } }
+// { dg-excess-errors "" { target uclibc } }
+
+#include <cmath>
+
+void fpclassify() { }
+
+void isfinite() { }
+
+void isinf() { }
+
+void isnan() { }
+
+void isnormal() { }
+
+void signbit() { }
+
+void isgreater() { }
+
+void isgreaterequal() { }
+
+void isless() { }
+
+void islessequal() { }
+
+void islessgreater() { }
+
+void isunordered() { }
+
+#if _GLIBCXX_USE_C99_MATH
+template <typename _Tp>
+  void test_c99_classify()
+  {
+    bool test __attribute__((unused)) = true;
+
+    typedef _Tp fp_type;
+    fp_type f1 = 1.0;
+    fp_type f2 = 3.0;
+    int res = 0;
+    
+    res = std::fpclassify(f1);
+    res = std::isfinite(f2);
+    res = std::isinf(f1);
+    res = std::isnan(f2);
+    res = std::isnormal(f1);
+    res = std::signbit(f2);
+    res = std::isgreater(f1, f2);
+    res = std::isgreaterequal(f1, f2);
+    res = std::isless(f1, f2);
+    res = std::islessequal(f1,f2);
+    res = std::islessgreater(f1, f2);
+    res = std::isunordered(f1, f2);
+  }
+#endif
+
+int main()
+{
+#if _GLIBCXX_USE_C99_MATH
+  test_c99_classify<float>();
+  test_c99_classify<double>();
+#endif
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc
new file mode 100644 (file)
index 0000000..a9cd058
--- /dev/null
@@ -0,0 +1,58 @@
+// 2001-04-06 gdr
+
+// Copyright (C) 2001, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// { dg-do compile { xfail { { *-*-linux* *-*-darwin* } || uclibc } } }
+// { dg-excess-errors "" { target { { *-*-linux* *-*-darwin* } || uclibc } } }
+
+#include <math.h>
+
+void fpclassify() { }
+
+void isfinite() { }
+
+void isinf() { }
+
+void isnan() { }
+
+void isnormal() { }
+
+void signbit() { }
+
+void isgreater() { }
+
+void isgreaterequal() { }
+
+void isless() { }
+
+void islessequal() { }
+
+void islessgreater() { }
+
+void isunordered() { }
+
diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cmath/c_math.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/c_math.cc
new file mode 100644 (file)
index 0000000..fd0f7c9
--- /dev/null
@@ -0,0 +1,71 @@
+// 1999-06-05
+// Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+// Copyright (C) 2000, 1999 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cmath>
+#include <testsuite_hooks.h>
+
+// test compilation.
+int
+test01()
+{
+  float a = 1.f;
+  float b;
+  std::modf(a, &b);
+  return 0;
+}
+
+// need more extravagant checks than this, of course, but this used to core...
+int
+test02()
+{
+       std::sin(static_cast<float>(0));
+  return 0;
+}
+
+// as did this.
+int
+test03()
+{
+  double powtest __attribute__((unused)) = std::pow(2., 0);
+  return 0;
+}
+
+// this used to abort.
+int
+test04()
+{
+  bool test __attribute__((unused)) = true;
+  float x[2] = {1, 2};
+  float y = 3.4;
+  std::modf(y, &x[0]);
+  VERIFY(x[1] == 2);
+  return 0;
+}
+
+int 
+main()
+{
+  test01();
+  test02();
+  test03();
+  test04();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cmath/c_math_dynamic.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/c_math_dynamic.cc
new file mode 100644 (file)
index 0000000..b8f2f92
--- /dev/null
@@ -0,0 +1,58 @@
+// Inspired by libstdc++/7680 & 26_numerics/c_math.cc, 2003-04-12 ljr
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// { dg-do link }
+// { dg-options "-D_XOPEN_SOURCE" { target *-*-freebsd* } }
+
+#include <cmath>
+
+int
+test01()
+{
+  float a = 1.f;
+  float b;
+  std::modf(a, &b);
+  return 0;
+}
+
+int
+test02 ()
+{
+  float a = 0.0f;
+  float b __attribute__((unused)) = std::acos(a);
+  return 0;
+}
+
+int
+main()
+{
+  test01();
+  test02();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cmath/fabs_inline.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/fabs_inline.cc
new file mode 100644 (file)
index 0000000..742a3a9
--- /dev/null
@@ -0,0 +1,37 @@
+// Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// Test to see whether the host provides its own (inline) view of fabs.
+// Origin: Kurt Garloff <kurt@garloff.de>, 2001-05-24
+// dg-do link
+
+#include <cmath>
+#include <cstdio>
+
+typedef double (*realfn) (double);
+
+using std::fabs;
+
+int main ()
+{
+  double a = fabs (-2.4);
+  realfn myfn = fabs;
+  double b = myfn (-2.5);
+  std::printf ("%f, %f, %p\n", a, b, myfn);
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std.cc
new file mode 100644 (file)
index 0000000..046b57f
--- /dev/null
@@ -0,0 +1,47 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cmath>
+
+namespace gnu
+{
+  using std::acos;
+  using std::asin;
+  using std::atan;
+  using std::atan2;
+  using std::ceil;
+  using std::cos;
+  using std::cosh;
+  using std::exp;
+  using std::fabs;
+  using std::floor;
+  using std::fmod;
+  using std::frexp;
+  using std::ldexp;
+  using std::log;
+  using std::log10;
+  using std::modf;
+  using std::pow;
+  using std::sin;
+  using std::sinh;
+  using std::sqrt;
+  using std::tan;
+  using std::tanh;
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cmath/macros.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/macros.cc
new file mode 100644 (file)
index 0000000..5b70b0e
--- /dev/null
@@ -0,0 +1,28 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cmath>
+
+namespace gnu
+{
+#ifndef HUGE_VAL
+    #error "HUGE_VAL_must_be_a_macro"
+#endif
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cmath/overloads.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/overloads.cc
new file mode 100644 (file)
index 0000000..4d41a96
--- /dev/null
@@ -0,0 +1,27 @@
+// PR 3181
+// Origin: pete@toyon.com
+
+#include <cmath>
+
+int main()
+{
+  int i = -1;
+  int j = 9;
+  double ans;
+  ans = std::acos(i);
+  ans = std::asin(i);
+  ans = std::atan(i);
+  ans = std::atan2(i, j);
+  ans = std::cos(i);
+  ans = std::cosh(i);
+  ans = std::exp(i);
+  ans = std::fabs(i);
+  ans = std::floor(i);
+  ans = std::log(i);
+  ans = std::log10(i);
+  ans = std::sqrt(i);
+  ans = std::sin(i);
+  ans = std::sinh(j);
+  ans = std::tan(i);
+  ans = std::tanh(i);
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cmath/powi.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/powi.cc
new file mode 100644 (file)
index 0000000..8a56f2f
--- /dev/null
@@ -0,0 +1,64 @@
+// 2005-02-13  Paolo Carlini  <pcarlini@suse.de>
+
+// Copyright (C) 2005 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 26.5 C Library
+
+#include <cmath>
+#include <testsuite_hooks.h>
+
+template<typename T>
+  void test01_do()
+  {
+    using namespace std;
+    bool test __attribute__((unused)) = true;
+    
+    VERIFY( pow(T(1.0), 0) == T(1.0) );
+    VERIFY( pow(T(2.0), 0) == T(1.0) );
+    VERIFY( pow(T(-1.0), 0) == T(1.0) );
+    VERIFY( pow(T(-4.0), 0) == T(1.0) );
+
+    VERIFY( pow(T(1.0), 1) == T(1.0) );
+    VERIFY( pow(T(2.0), 1) == T(2.0) );
+    VERIFY( pow(T(-1.0), 1) == T(-1.0) );
+    VERIFY( pow(T(-4.0), 1) == T(-4.0) );
+
+    VERIFY( pow(T(1.0), -1) == T(1.0) / T(1.0) );
+    VERIFY( pow(T(2.0), -1) == T(1.0) / T(2.0) );
+    VERIFY( pow(T(-1.0), -1) == T(1.0) / T(-1.0) );
+    VERIFY( pow(T(-4.0), -1) == T(1.0) / T(-4.0) );
+
+    VERIFY( pow(T(1.0), 2) == T(1.0) * T(1.0) );
+    VERIFY( pow(T(2.0), 2) == T(2.0) * T(2.0) );
+    VERIFY( pow(T(-1.0), 2) == T(-1.0) * T(-1.0) );
+    VERIFY( pow(T(-4.0), 2) == T(-4.0) * T(-4.0) );
+  }
+
+void test01()
+{
+  test01_do<float>();
+  test01_do<double>();
+  test01_do<long double>();
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/headers/complex/synopsis.cc b/libstdc++-v3/testsuite/26_numerics/headers/complex/synopsis.cc
new file mode 100644 (file)
index 0000000..8fba3a3
--- /dev/null
@@ -0,0 +1,88 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <complex>
+
+namespace std {
+  template<class T> class complex;
+  template<> class complex<float>;
+  template<> class complex<double>;
+  template<> class complex<long double>;
+
+  // 26.2.6 operators:
+  template<class T>
+    complex<T> operator+(const complex<T>&, const complex<T>&);
+  template<class T> complex<T> operator+(const complex<T>&, const T&);
+  template<class T> complex<T> operator+(const T&, const complex<T>&);
+  template<class T> complex<T> operator-
+    (const complex<T>&, const complex<T>&);
+  template<class T> complex<T> operator-(const complex<T>&, const T&);
+  template<class T> complex<T> operator-(const T&, const complex<T>&);
+  template<class T> complex<T> operator*
+    (const complex<T>&, const complex<T>&);
+  template<class T> complex<T> operator*(const complex<T>&, const T&);
+  template<class T> complex<T> operator*(const T&, const complex<T>&);
+  template<class T> complex<T> operator/
+    (const complex<T>&, const complex<T>&);
+  template<class T> complex<T> operator/(const complex<T>&, const T&);
+  template<class T> complex<T> operator/(const T&, const complex<T>&);
+  template<class T> complex<T> operator+(const complex<T>&);
+  template<class T> complex<T> operator-(const complex<T>&);
+  template<class T> bool operator==
+    (const complex<T>&, const complex<T>&);
+  template<class T> bool operator==(const complex<T>&, const T&);
+  template<class T> bool operator==(const T&, const complex<T>&);
+
+
+  template<class T> bool operator!=(const complex<T>&, const complex<T>&);
+  template<class T> bool operator!=(const complex<T>&, const T&);
+  template<class T> bool operator!=(const T&, const complex<T>&);
+  template<class T, class charT, class traits>
+  basic_istream<charT, traits>&
+  operator>>(basic_istream<charT, traits>&, complex<T>&);
+  template<class T, class charT, class traits>
+  basic_ostream<charT, traits>&
+  operator<<(basic_ostream<charT, traits>&, const complex<T>&);
+
+  // 26.2.7 values:
+  template<class T> T real(const complex<T>&);
+  template<class T> T imag(const complex<T>&);
+  template<class T> T abs(const complex<T>&);
+  template<class T> T arg(const complex<T>&);
+  template<class T> T norm(const complex<T>&);
+  template<class T> complex<T> conj(const complex<T>&);
+  template<class T> complex<T> polar(const T& rho, const T& theta = 0);
+
+  // 26.2.8 transcendentals:
+  template<class T> complex<T> cos(const  complex<T>&);
+  template<class T> complex<T> cosh(const complex<T>&);
+  template<class T> complex<T> exp(const  complex<T>&);
+  template<class T> complex<T> log(const  complex<T>&);
+  template<class T> complex<T> log10(const complex<T>&);
+  template<class T> complex<T> pow(const complex<T>&, int);
+  template<class T> complex<T> pow(const complex<T>&, const T&);
+  template<class T> complex<T> pow(const complex<T>&, const complex<T>&);
+  template<class T> complex<T> pow(const T&, const complex<T>&);
+  template<class T> complex<T> sin (const complex<T>&);
+  template<class T> complex<T> sinh(const complex<T>&);
+  template<class T> complex<T> sqrt(const complex<T>&);
+  template<class T> complex<T> tan(const complex<T>&);
+  template<class T> complex<T> tanh(const complex<T>&);
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/13943.cc b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/13943.cc
new file mode 100644 (file)
index 0000000..08ab36e
--- /dev/null
@@ -0,0 +1,52 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <cstdlib>
+#include <testsuite_hooks.h>
+
+#if _GLIBCXX_USE_C99
+// libstdc++/13943
+void test01()
+{
+  using namespace std;
+  bool test __attribute__((unused)) = true;
+
+  VERIFY( llabs(-3) == 3 );
+  
+  lldiv_t q = lldiv(6, 4);
+  VERIFY( q.quot == 1 );
+  VERIFY( q.rem == 2 );
+}
+#endif
+
+int main()
+{
+#if _GLIBCXX_USE_C99
+  test01();
+#endif
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/2190.cc b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/2190.cc
new file mode 100644 (file)
index 0000000..badcece
--- /dev/null
@@ -0,0 +1,37 @@
+// 2000-01-01 bkoz
+
+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 17.4.1.2 Headers, cstdlib
+
+#include <cstdlib>
+
+// libstdc++/2190
+void test01()
+{
+  long a __attribute__((unused)) = std::abs(1L);
+  std::div(2L, 1L);
+  std::ldiv_t b __attribute__((unused));
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/functions_std.cc b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/functions_std.cc
new file mode 100644 (file)
index 0000000..6b5d308
--- /dev/null
@@ -0,0 +1,31 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstdlib>
+
+namespace gnu
+{
+  using std::abs;
+  using std::div;
+  using std::labs;
+  using std::ldiv;
+  using std::srand;
+  using std::rand;
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/macros.cc b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/macros.cc
new file mode 100644 (file)
index 0000000..dc8231a
--- /dev/null
@@ -0,0 +1,28 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstdlib>
+
+namespace gnu
+{
+#ifndef RAND_MAX
+    #error "RAND_MAX_must_be_a_macro"
+#endif
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/types_std.cc b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/types_std.cc
new file mode 100644 (file)
index 0000000..6af857d
--- /dev/null
@@ -0,0 +1,27 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstdlib>
+
+namespace gnu
+{
+  std::div_t d;
+  std::ldiv_t ld;
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/headers/numeric/synopsis.cc b/libstdc++-v3/testsuite/26_numerics/headers/numeric/synopsis.cc
new file mode 100644 (file)
index 0000000..c322c61
--- /dev/null
@@ -0,0 +1,65 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <numeric>
+
+namespace std {
+  template <class InputIterator, class T>
+    T accumulate(InputIterator first, InputIterator last, T init);
+
+  template <class InputIterator, class T, class BinaryOperation>
+    T accumulate(InputIterator first, InputIterator last, T init,
+                 BinaryOperation binary_op);
+
+  template <class InputIterator1, class InputIterator2, class T>
+    T inner_product(InputIterator1 first1, InputIterator1 last1,
+                    InputIterator2 first2, T init);
+
+  template <class InputIterator1, class InputIterator2, class T,
+            class BinaryOperation1, class BinaryOperation2>
+    T inner_product(InputIterator1 first1, InputIterator1 last1,
+                    InputIterator2 first2, T init,
+                    BinaryOperation1 binary_op1,
+                    BinaryOperation2 binary_op2);
+
+  template <class InputIterator, class OutputIterator>
+    OutputIterator partial_sum(InputIterator first,
+                               InputIterator last,
+                               OutputIterator result);
+
+  template <class InputIterator, class OutputIterator,
+            class BinaryOperation>
+    OutputIterator partial_sum(InputIterator first,
+                               InputIterator last,
+                               OutputIterator result,
+                               BinaryOperation binary_op);
+
+  template <class InputIterator, class OutputIterator>
+    OutputIterator adjacent_difference(InputIterator first,
+                                       InputIterator last,
+                                       OutputIterator result);
+
+  template <class InputIterator, class OutputIterator,
+            class BinaryOperation>
+    OutputIterator adjacent_difference(InputIterator first,
+                                       InputIterator last,
+                                       OutputIterator result,
+                                       BinaryOperation binary_op);
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/headers/valarray/synopsis.cc b/libstdc++-v3/testsuite/26_numerics/headers/valarray/synopsis.cc
new file mode 100644 (file)
index 0000000..90a542b
--- /dev/null
@@ -0,0 +1,128 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <valarray>
+
+namespace std {
+  template<class T> class valarray;
+
+  class slice;
+  template<class T> class slice_array;
+
+  class gslice;
+  template<class T> class gslice_array;
+  template<class T> class mask_array;
+  template<class T> class indirect_array;
+  template<class T> valarray<T> operator*
+    (const valarray<T>&, const valarray<T>&);
+  template<class T> valarray<T> operator* (const valarray<T>&, const T&);
+  template<class T> valarray<T> operator* (const T&, const valarray<T>&);
+
+template<class T> valarray<T> operator/
+  (const valarray<T>&, const valarray<T>&);
+template<class T> valarray<T> operator/ (const valarray<T>&, const T&);
+template<class T> valarray<T> operator/ (const T&, const valarray<T>&);
+template<class T> valarray<T> operator%
+  (const valarray<T>&, const valarray<T>&);
+template<class T> valarray<T> operator% (const valarray<T>&, const T&);
+template<class T> valarray<T> operator% (const T&, const valarray<T>&);
+template<class T> valarray<T> operator+
+  (const valarray<T>&, const valarray<T>&);
+template<class T> valarray<T> operator+ (const valarray<T>&, const T&);
+template<class T> valarray<T> operator+ (const T&, const valarray<T>&);
+template<class T> valarray<T> operator-
+  (const valarray<T>&, const valarray<T>&);
+template<class T> valarray<T> operator- (const valarray<T>&, const T&);
+template<class T> valarray<T> operator- (const T&, const valarray<T>&);
+template<class T> valarray<T> operator^
+  (const valarray<T>&, const valarray<T>&);
+template<class T> valarray<T> operator^ (const valarray<T>&, const T&);
+template<class T> valarray<T> operator^ (const T&, const valarray<T>&);
+template<class T> valarray<T> operator&
+  (const valarray<T>&, const valarray<T>&);
+template<class T> valarray<T> operator& (const valarray<T>&, const T&);
+template<class T> valarray<T> operator& (const T&, const valarray<T>&);
+template<class T> valarray<T> operator|
+  (const valarray<T>&, const valarray<T>&);
+template<class T> valarray<T> operator| (const valarray<T>&, const T&);
+template<class T> valarray<T> operator| (const T&, const valarray<T>&);
+template<class T> valarray<T> operator<<
+  (const valarray<T>&, const valarray<T>&);
+template<class T> valarray<T> operator<<(const valarray<T>&, const T&);
+template<class T> valarray<T> operator<<(const T&, const valarray<T>&);
+template<class T> valarray<T> operator>>
+  (const valarray<T>&, const valarray<T>&);
+template<class T> valarray<T> operator>>(const valarray<T>&, const T&);
+template<class T> valarray<T> operator>>(const T&, const valarray<T>&);
+template<class T> valarray<bool> operator&&
+  (const valarray<T>&, const valarray<T>&);
+template<class T> valarray<bool> operator&&(const valarray<T>&, const T&);
+template<class T> valarray<bool> operator&&(const T&, const valarray<T>&);
+template<class T> valarray<bool> operator||
+  (const valarray<T>&, const valarray<T>&);
+template<class T> valarray<bool> operator||(const valarray<T>&, const T&);
+template<class T> valarray<bool> operator||(const T&, const valarray<T>&);
+
+  template<class T>
+    valarray<bool> operator==(const valarray<T>&, const valarray<T>&);
+  template<class T> valarray<bool> operator==(const valarray<T>&, const T&);
+  template<class T> valarray<bool> operator==(const T&, const valarray<T>&);
+  template<class T>
+    valarray<bool> operator!=(const valarray<T>&, const valarray<T>&);
+  template<class T> valarray<bool> operator!=(const valarray<T>&, const T&);
+  template<class T> valarray<bool> operator!=(const T&, const valarray<T>&);
+  template<class T>
+    valarray<bool> operator< (const valarray<T>&, const valarray<T>&);
+  template<class T> valarray<bool> operator< (const valarray<T>&, const T&);
+  template<class T> valarray<bool> operator< (const T&, const valarray<T>&);
+  template<class T>
+    valarray<bool> operator> (const valarray<T>&, const valarray<T>&);
+  template<class T> valarray<bool> operator> (const valarray<T>&, const T&);
+  template<class T> valarray<bool> operator> (const T&, const valarray<T>&);
+  template<class T>
+    valarray<bool> operator<=(const valarray<T>&, const valarray<T>&);
+  template<class T> valarray<bool> operator<=(const valarray<T>&, const T&);
+  template<class T> valarray<bool> operator<=(const T&, const valarray<T>&);
+  template<class T>
+    valarray<bool> operator>=(const valarray<T>&, const valarray<T>&);
+  template<class T> valarray<bool> operator>=(const valarray<T>&, const T&);
+  template<class T> valarray<bool> operator>=(const T&, const valarray<T>&);
+  template<class T> valarray<T> abs  (const valarray<T>&);
+  template<class T> valarray<T> acos (const valarray<T>&);
+  template<class T> valarray<T> asin (const valarray<T>&);
+  template<class T> valarray<T> atan (const valarray<T>&);
+  template<class T> valarray<T> atan2
+    (const valarray<T>&, const valarray<T>&);
+  template<class T> valarray<T> atan2(const valarray<T>&, const T&);
+  template<class T> valarray<T> atan2(const T&, const valarray<T>&);
+  template<class T> valarray<T> cos (const  valarray<T>&);
+  template<class T> valarray<T> cosh (const valarray<T>&);
+  template<class T> valarray<T> exp (const  valarray<T>&);
+  template<class T> valarray<T> log (const  valarray<T>&);
+  template<class T> valarray<T> log10(const valarray<T>&);
+  template<class T> valarray<T> pow(const valarray<T>&, const valarray<T>&);
+  template<class T> valarray<T> pow(const valarray<T>&, const T&);
+  template<class T> valarray<T> pow(const T&, const valarray<T>&);
+  template<class T> valarray<T> sin  (const valarray<T>&);
+  template<class T> valarray<T> sinh (const valarray<T>&);
+  template<class T> valarray<T> sqrt (const valarray<T>&);
+  template<class T> valarray<T> tan  (const valarray<T>&);
+  template<class T> valarray<T> tanh (const valarray<T>&);
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/headers/valarray/types_std.cc b/libstdc++-v3/testsuite/26_numerics/headers/valarray/types_std.cc
new file mode 100644 (file)
index 0000000..38824dc
--- /dev/null
@@ -0,0 +1,27 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <valarray>
+
+namespace gnu
+{
+  typedef std::slice t1;
+  typedef std::gslice t2;
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/numeric/sum_diff.cc b/libstdc++-v3/testsuite/26_numerics/numeric/sum_diff.cc
deleted file mode 100644 (file)
index e5af462..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-// Copyright (C) 2001, 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 26.4.3 [lib.partial.sum]
-// 26.4.4 [lib.adjacent.difference]
-
-#include <algorithm>
-#include <numeric>
-#include <testsuite_hooks.h>
-
-int A[] = {1, 4, 9, 16, 25, 36, 49, 64, 81, 100};
-int B[] = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19};
-const int N = sizeof(A) / sizeof(int);
-
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-
-  int D[N];
-
-  std::adjacent_difference(A, A + N, D);
-  VERIFY( std::equal(D, D + N, B) );
-  
-  std::partial_sum(D, D + N, D);
-  VERIFY( std::equal(D, D + N, A) );
-}
-
-int
-main()
-{
-    test01();
-    return 0;
-}
diff --git a/libstdc++-v3/testsuite/26_numerics/numeric_arrays/27867.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/27867.cc
new file mode 100644 (file)
index 0000000..7c208f4
--- /dev/null
@@ -0,0 +1,53 @@
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <valarray>
+#include <testsuite_hooks.h>
+
+// libstdc++/27867
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  std::valarray<int> v1(100, 1);
+  std::valarray<int> v2(100, 1);
+  std::valarray<bool> v3(true, 1);
+
+  std::valarray<bool> resl(1);
+  resl = ((v1 == v2) == v3);
+  VERIFY( resl[0] == true );
+
+  std::valarray<bool> resr(1);
+  resr = (v3 == (v1 == v2));
+  VERIFY( resr[0] == true );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/numeric_arrays/28277.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/28277.cc
new file mode 100644 (file)
index 0000000..52f4c71
--- /dev/null
@@ -0,0 +1,44 @@
+// 2006-07-15  Paolo Carlini  <pcarlini@suse.de>
+
+// Copyright (C) 2006 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <valarray>
+#include <testsuite_hooks.h>
+
+// libstdc++/28277
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  const std::valarray<int> v1(1, 5000000);
+
+  const std::valarray<int> v2 = v1.shift(1);
+  VERIFY( v2.size() == v1.size() );
+  VERIFY( v2[v1.size() - 1] == 0 );
+
+  const std::valarray<int> v3 = v2.cshift(-1);
+  VERIFY( v3.size() == v2.size() );
+  VERIFY( v3[0] == 0 );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/numeric_arrays/30416.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/30416.cc
new file mode 100644 (file)
index 0000000..c513292
--- /dev/null
@@ -0,0 +1,190 @@
+// 2007-01-11  Paolo Carlini  <pcarlini@suse.de>
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <valarray>
+#include <testsuite_hooks.h>
+
+bool
+comp_vala(const std::valarray<int>& v1, const std::valarray<int>& v2)
+{
+  if (v1.size() == v2.size())
+    {
+      for (size_t i = 0; i < v1.size(); ++i)
+       if (v1[i] != v2[i])
+         return false;
+      return true;
+    }
+  return false;
+}
+
+void
+init_vala(std::valarray<int>& v, size_t first, size_t last, int val)
+{
+  for (size_t i = first; i <= last; ++i)
+    v[i] = val++;
+}
+
+// libstdc++/30416
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+  using namespace std;
+
+  // shift
+  valarray<int> v1;
+  valarray<int> v1_ris(v1.shift(0));
+  VERIFY( comp_vala(v1, v1_ris) );
+  
+  valarray<int> v2;
+  valarray<int> v2_ris(v2.shift(10));
+  VERIFY( comp_vala(v2, v2_ris) );
+  
+  valarray<int> v3;
+  valarray<int> v3_ris(v3.shift(-10));
+  VERIFY( comp_vala(v3, v3_ris) );
+  
+  valarray<int> v4(10);
+  valarray<int> v4_ris(v4.shift(0));
+  VERIFY( comp_vala(v4, v4_ris) );
+  
+  valarray<int> v5(10);
+  init_vala(v5, 0, 9, 1);
+  valarray<int> v5_ref(10);  
+  
+  valarray<int> v5_ris(v5.shift(16));
+  VERIFY( comp_vala(v5_ris, v5_ref) );
+  
+  valarray<int> v6(10);
+  init_vala(v6, 0, 9, 1);
+  valarray<int> v6_ref(10);
+  
+  valarray<int> v6_ris(v6.shift(-16));
+  VERIFY( comp_vala(v6_ris, v6_ref) );
+
+  valarray<int> v7(10);
+  init_vala(v7, 0, 9, 1);
+  valarray<int> v7_ref(10);  
+  
+  valarray<int> v7_ris(v7.shift(10));
+  VERIFY( comp_vala(v7_ris, v7_ref) );
+  
+  valarray<int> v8(10);
+  init_vala(v8, 0, 9, 1);
+  valarray<int> v8_ref(10);
+  
+  valarray<int> v8_ris(v8.shift(-10));
+  VERIFY( comp_vala(v8_ris, v8_ref) );
+
+  valarray<int> v9(10);
+  init_vala(v9, 0, 9, 1);
+  valarray<int> v9_ref(10);  
+  init_vala(v9_ref, 0, 3, 7);
+  
+  valarray<int> v9_ris(v9.shift(6));
+  VERIFY( comp_vala(v9_ris, v9_ref) );
+  
+  valarray<int> v10(10);
+  init_vala(v10, 0, 9, 1);
+  valarray<int> v10_ref(10);
+  init_vala(v10_ref, 6, 9, 1);
+
+  valarray<int> v10_ris(v10.shift(-6));
+  VERIFY( comp_vala(v10_ris, v10_ref) );
+
+  // cshift
+  valarray<int> v11;
+  valarray<int> v11_ris(v11.cshift(0));
+  VERIFY( comp_vala(v11, v11_ris) );
+  
+  valarray<int> v12;
+  valarray<int> v12_ris(v12.cshift(10));
+  VERIFY( comp_vala(v12, v12_ris) );
+  
+  valarray<int> v13;
+  valarray<int> v13_ris(v13.cshift(-10));
+  VERIFY( comp_vala(v13, v13_ris) );
+  
+  valarray<int> v14(10);
+  valarray<int> v14_ris(v14.cshift(0));
+  VERIFY( comp_vala(v14, v14_ris) );
+  
+  valarray<int> v15(10);
+  init_vala(v15, 0, 9, 1);
+  valarray<int> v15_ref(10);
+  init_vala(v15_ref, 0, 3, 7);
+  init_vala(v15_ref, 4, 9, 1);
+  
+  valarray<int> v15_ris(v15.cshift(16));
+  VERIFY( comp_vala(v15_ris, v15_ref) );
+
+  valarray<int> v16(10);
+  init_vala(v16, 0, 9, 1);
+  valarray<int> v16_ref(10);
+  init_vala(v16_ref, 0, 5, 5);
+  init_vala(v16_ref, 6, 9, 1);
+  
+  valarray<int> v16_ris(v16.cshift(-16));
+  VERIFY( comp_vala(v16_ris, v16_ref) );
+
+  valarray<int> v17(10);
+  init_vala(v17, 0, 9, 1);
+  
+  valarray<int> v17_ris(v15.cshift(10));
+  VERIFY( comp_vala(v17, v17_ris) );
+  
+  valarray<int> v18(10);
+  init_vala(v18, 0, 9, 1);
+  
+  valarray<int> v18_ris(v18.cshift(-10));
+  VERIFY( comp_vala(v18, v18_ris) );
+
+  valarray<int> v19(10);
+  init_vala(v19, 0, 9, 1);
+  valarray<int> v19_ref(10);
+  init_vala(v19_ref, 0, 3, 7);
+  init_vala(v19_ref, 4, 9, 1);
+  
+  valarray<int> v19_ris(v15.cshift(6));
+  VERIFY( comp_vala(v19_ris, v19_ref) );
+  
+  valarray<int> v20(10);
+  init_vala(v20, 0, 9, 1);
+  valarray<int> v20_ref(10);
+  init_vala(v20_ref, 0, 5, 5);
+  init_vala(v20_ref, 6, 9, 1);
+  
+  valarray<int> v20_ris(v20.cshift(-6));
+  VERIFY( comp_vala(v20_ris, v20_ref) );
+}
+
+int main()
+{
+  test01();
+  return 0;
+} 
diff --git a/libstdc++-v3/testsuite/26_numerics/numeric_arrays/binary_closure.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/binary_closure.cc
new file mode 100644 (file)
index 0000000..7dbcfbd
--- /dev/null
@@ -0,0 +1,37 @@
+// 19990805 gdr
+//
+// XXX: to impove later.
+// Origin: Andreas Amann <amann@physik.tu-berlin.de>
+// CXXFLAGS: -g
+
+#include <iostream>
+#include <valarray>
+
+
+int main()
+{
+    std::valarray<double> a(10), b(10), c(10), d(10);
+
+    a = 1.2;
+    b = 3.1;
+
+    c = 4.0;
+
+    d = ( 2.0 * b + a );  // works
+    std::cout << "d[4] = " << d[4] << std::endl;
+
+    d = (a * 2.0 + b ); // works
+    std::cout << "d[4] = " << d[4] << std::endl;
+
+    d = (a + b * 2.0 ); // segfaults!
+    std::cout << "d[4] = " << d[4] << std::endl;
+    d = (a + 2.0* b );
+
+    std::cout << "d[4] = " << d[4] << std::endl;
+    d = (a + 2.0* b );
+    std::cout << "d[4] = " << d[4] << std::endl;
+    d = (a + 2.0* b );
+
+    std::cout << "d[4] = " << d[4] << std::endl;
+    return 0;
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/numeric_arrays/dr543.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/dr543.cc
new file mode 100644 (file)
index 0000000..9afa93a
--- /dev/null
@@ -0,0 +1,40 @@
+// Copyright (C) 2006 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <valarray>
+#include <testsuite_hooks.h>
+
+// DR 543. valarray slice default constructor
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  std::valarray<int> v1(10);
+  std::valarray<int> v2 = v1[std::slice()];
+  VERIFY( v2.size() == 0 );
+
+  std::valarray<int> v3(10);
+  std::valarray<int> v4 = v3[std::gslice()];
+  VERIFY( v4.size() == 0 );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/numeric_arrays/slice.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/slice.cc
new file mode 100644 (file)
index 0000000..d7ad877
--- /dev/null
@@ -0,0 +1,64 @@
+// 20020717 gdr
+
+// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// Test slice class invariants
+
+#include <valarray>
+#include <cstdlib>
+#include <testsuite_hooks.h>
+
+bool
+construction(std::size_t start, std::size_t size, std::size_t stride)
+{
+  std::slice s(start, size, stride);
+  return s.start() == start && s.size() == size && s.stride() == stride;
+}
+
+bool
+copy(std::size_t start, std::size_t size, std::size_t stride)
+{
+  std::slice s(start, size, stride);
+  std::slice t = s;
+  return t.start() == start && t.size() == size && t.stride() == stride;
+}
+
+bool
+assignment(std::size_t start, std::size_t size, std::size_t stride)
+{
+  std::slice s(start, size, stride);
+  std::slice t;
+  t = s;
+  return t.start() == start && t.size() == size && t.stride() == stride;
+}
+
+
+int main()
+{
+  bool test __attribute__((unused)) = true;
+  std::srand(20020717);         
+  using std::rand;
+  VERIFY(construction(rand(), rand(), rand()));
+
+  VERIFY(copy(rand(), rand(), rand()));
+
+  VERIFY(assignment(rand(), rand(), rand()));
+
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/numeric_arrays/slice_array_assignment.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/slice_array_assignment.cc
new file mode 100644 (file)
index 0000000..34888be
--- /dev/null
@@ -0,0 +1,51 @@
+// 20010613 gdr
+
+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+
+// This is DR-253.  Test for accessible assignment-operators.
+#include <valarray>
+#include <testsuite_hooks.h>
+
+int main()
+{
+  bool test __attribute__((unused)) = true;
+  using std::valarray;
+  using std::slice;
+  valarray<int> v(1, 10), w(2, 10);
+
+  w[slice(0, 3, 3)] = v[slice(2, 3, 3)];
+
+  VERIFY(v[0] == 1 && w[0] == 1);
+  VERIFY(v[3] == 1 && w[3] == 1);
+  VERIFY(v[6] == 1 && w[6] == 1);
+
+  std::slice_array<int> t = v[slice(0, 10, 1)];
+  
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray.cc
new file mode 100644 (file)
index 0000000..3c206e3
--- /dev/null
@@ -0,0 +1,43 @@
+// 19990404 gdr
+
+// Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <valarray>
+
+int main()
+{
+  // 01: instantiation
+  std::valarray<double> a(20);
+
+  // 02: algo
+  using std::valarray;
+  valarray<double> b, c;
+  double m __attribute__((unused)) = std::abs(b - c).max();
+
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray_const_bracket.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray_const_bracket.cc
new file mode 100644 (file)
index 0000000..512cbaf
--- /dev/null
@@ -0,0 +1,48 @@
+// 20010518 gdr
+
+// Copyright (C) 2001 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <valarray>
+
+// dg-do compile
+
+template<typename P>
+  void copy(P, std::size_t) { }
+
+template<typename T>
+  void test(const std::valarray<T>& v)
+  {
+     copy(&v[0], v.size());
+  }
+
+int main()
+{
+  std::valarray<double> v(190);
+  test(v);
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray_name_lookup.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray_name_lookup.cc
new file mode 100644 (file)
index 0000000..735f65f
--- /dev/null
@@ -0,0 +1,142 @@
+// 2002-08-02 gdr
+
+// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// Test name lookup resolutions for standard functions applied to an
+// array expression.
+// { dg-do compile }
+
+#include <valarray>
+
+namespace My
+{
+  struct Number 
+  { 
+    operator bool() const;
+  };
+  
+  Number operator+(Number);
+  Number operator-(Number);
+  Number operator~(Number);
+
+  bool operator!(Number);
+  
+  Number operator+(Number, Number);
+  Number operator-(Number, Number);
+  Number operator*(Number, Number);
+  Number operator/(Number, Number);
+  Number operator%(Number, Number);
+
+  Number operator^(Number, Number);
+  Number operator&(Number, Number);
+  Number operator|(Number, Number);
+
+  Number operator<<(Number, Number);
+  Number operator>>(Number, Number);
+
+  bool operator==(Number, Number);
+  bool operator!=(Number, Number);
+  bool operator<(Number, Number);
+  bool operator<=(Number, Number);
+  bool operator>(Number, Number);
+  bool operator>=(Number, Number);
+
+  Number abs(Number);
+
+  Number cos(Number);
+  Number cosh(Number);
+  Number acos(Number);
+
+  Number sin(Number);
+  Number sinh(Number);
+  Number asin(Number);
+  
+  Number tan(Number);
+  Number tanh(Number);
+  Number atan(Number);
+
+  Number exp(Number);
+  Number log(Number);
+  Number log10(Number);
+  Number sqrt(Number);
+
+  Number atan2(Number, Number);
+  Number pow(Number, Number);
+}
+
+int main()
+{
+  typedef std::valarray<My::Number> Array;
+  Array u(10), v(10);
+  v = +u;
+  v = -u;
+  v = ~u;
+  std::valarray<bool> z = !u;
+
+  v = abs(u);
+  
+  v = cos(u);
+  v = cosh(u);
+  v = acos(u);
+
+  v = sin(u);
+  v = sinh(u);
+  v = asin(u);
+
+  v = tan(u);
+  v = tanh(u);
+  v = atan(u);
+
+  v = exp(u);
+  v = log(u);
+  v = log10(u);
+  v = sqrt(u);  
+
+  Array w = u + v;
+  w = u - v;
+  w = u * v;
+  w = u / v;
+  w = u % v;
+
+  w = u ^ v;
+  w = u & v;
+  w = u | v;
+
+  w = u << v;
+  w = u >> v;
+
+  z = u == v;
+  z = u != v;
+  z = u < v;
+  z = u <= v;
+  z = u > v;
+  z = u >= v;
+
+  w = atan2(u, v);
+  w = pow(u, v);
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray_operators.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray_operators.cc
new file mode 100644 (file)
index 0000000..70ad0b0
--- /dev/null
@@ -0,0 +1,69 @@
+// { dg-do run }
+// 2003-02-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+// Copyright (C) 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <valarray>
+#include <testsuite_hooks.h>
+
+void test01() // check unary operators
+{
+  bool test __attribute__((unused)) = true;
+  std::valarray<int> u(1);
+  u[0]=1;
+
+  VERIFY( (+u)[0] == +1 );
+  VERIFY( (-u)[0] == -1 );
+  VERIFY( (!u)[0] == !1 );
+  VERIFY( (~u)[0] == ~1 );
+}
+
+void test02() // check binary operators
+{
+  bool test __attribute__((unused)) = true;
+  std::valarray<int> u(1), v(1);
+  u[0]=1;
+  v[0]=3;
+
+  VERIFY( (u+ v)[0] == (1+ 3) );
+  VERIFY( (u- v)[0] == (1- 3) );
+  VERIFY( (u* v)[0] == (1* 3) );
+  VERIFY( (u/ v)[0] == (1/ 3) );
+  VERIFY( (u% v)[0] == (1% 3) );
+  VERIFY( (u^ v)[0] == (1^ 3) );
+  VERIFY( (u& v)[0] == (1& 3) );
+  VERIFY( (u| v)[0] == (1| 3) );
+  VERIFY( (u<<v)[0] == (1<<3) );
+  VERIFY( (u>>v)[0] == (1>>3) );
+  VERIFY( (u&&v)[0] == (1&&3) );
+  VERIFY( (u||v)[0] == (1||3) );
+  VERIFY( (u==v)[0] == (1==3) );
+  VERIFY( (u!=v)[0] == (1!=3) );
+  VERIFY( (u< v)[0] == (1< 3) );
+  VERIFY( (u> v)[0] == (1> 3) );
+  VERIFY( (u<=v)[0] == (1<=3) );
+  VERIFY( (u>=v)[0] == (1>=3) );
+}
+
+int main()
+{
+  test01();
+  test02();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray_subset_assignment.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray_subset_assignment.cc
new file mode 100644 (file)
index 0000000..4ce22af
--- /dev/null
@@ -0,0 +1,87 @@
+// 2004-01-03  Jerry Quinn  <jlquinn@optonline.net>
+
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// PR 3247
+
+// This is DR-253.  Test for accessible assignment-operators.
+#include <valarray>
+#include <testsuite_hooks.h>
+
+bool check_array(std::valarray<double>& a, double b[])
+{
+  for (unsigned int i=0; i < a.size(); i++)
+    if (a[i] != b[i]) return false;
+  return true;
+}
+
+int main()
+{
+  std::valarray<double> val_d(10);  //  0 1 2 3 4 5 6 7 8 9 
+  std::valarray<double> val_d1(10); // 10 9 8 7 6 5 4 3 2 1
+
+  for (int i=0; i< 10; i++) { val_d[i] = 10;  val_d1[i] = i; }
+  std::valarray<double> val_c(val_d);
+  std::valarray<double> val_f(val_d);
+  std::valarray<double> val_g(val_d);
+
+  std::slice slc(1, 3, 3);     // 1 4 7
+  val_d[slc] = val_d1[slc];
+
+  double ans1[10] = {10, 1, 10, 10, 4, 10, 10, 7, 10, 10};
+  VERIFY(check_array(val_d, ans1));
+
+  std::valarray<std::size_t> val_size(2);
+  std::valarray<std::size_t> val_stride(2);
+  val_size[0] = 2;   val_size[1] = 3;
+  val_stride[0] = 4; val_stride[1] = 1;
+
+  std::gslice gslc(1, val_size, val_stride);
+  val_c[gslc] = val_d1[gslc];
+
+  double ans2[10] = {10, 1, 2, 3, 10, 5, 6, 7, 10, 10};
+  VERIFY(check_array(val_c, ans2));
+
+  std::valarray<bool> val_b(false, 10);
+  val_b[2] = val_b[6] = val_b[9] = true;
+  val_f[val_b] = val_d1[val_b];
+
+  double ans3[10] = {10, 10, 2, 10, 10, 10, 6, 10, 10, 9};
+  VERIFY(check_array(val_f, ans3));
+
+  size_t addr[] = {1, 2, 3, 4, 5};
+  size_t addr1[] = {2, 7, 1, 9, 4};
+  std::valarray<std::size_t> val_indirect(addr, 5);
+  std::valarray<std::size_t> val_indirect1(addr1, 5);
+  val_g[val_indirect] = val_d1[val_indirect1];
+
+  double ans4[10] = {10, 2, 7, 1, 9, 4, 10, 10, 10, 10};
+  VERIFY(check_array(val_g, ans4));
+
+  return 0;
+};
diff --git a/libstdc++-v3/testsuite/26_numerics/numeric_operations/sum_diff.cc b/libstdc++-v3/testsuite/26_numerics/numeric_operations/sum_diff.cc
new file mode 100644 (file)
index 0000000..e5af462
--- /dev/null
@@ -0,0 +1,49 @@
+// Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 26.4.3 [lib.partial.sum]
+// 26.4.4 [lib.adjacent.difference]
+
+#include <algorithm>
+#include <numeric>
+#include <testsuite_hooks.h>
+
+int A[] = {1, 4, 9, 16, 25, 36, 49, 64, 81, 100};
+int B[] = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19};
+const int N = sizeof(A) / sizeof(int);
+
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  int D[N];
+
+  std::adjacent_difference(A, A + N, D);
+  VERIFY( std::equal(D, D + N, B) );
+  
+  std::partial_sum(D, D + N, D);
+  VERIFY( std::equal(D, D + N, A) );
+}
+
+int
+main()
+{
+    test01();
+    return 0;
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/27867.cc b/libstdc++-v3/testsuite/26_numerics/valarray/27867.cc
deleted file mode 100644 (file)
index 7c208f4..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright (C) 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-#include <valarray>
-#include <testsuite_hooks.h>
-
-// libstdc++/27867
-void test01()
-{
-  bool test __attribute__((unused)) = true;
-
-  std::valarray<int> v1(100, 1);
-  std::valarray<int> v2(100, 1);
-  std::valarray<bool> v3(true, 1);
-
-  std::valarray<bool> resl(1);
-  resl = ((v1 == v2) == v3);
-  VERIFY( resl[0] == true );
-
-  std::valarray<bool> resr(1);
-  resr = (v3 == (v1 == v2));
-  VERIFY( resr[0] == true );
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/28277.cc b/libstdc++-v3/testsuite/26_numerics/valarray/28277.cc
deleted file mode 100644 (file)
index 52f4c71..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-// 2006-07-15  Paolo Carlini  <pcarlini@suse.de>
-
-// Copyright (C) 2006 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-#include <valarray>
-#include <testsuite_hooks.h>
-
-// libstdc++/28277
-void test01()
-{
-  bool test __attribute__((unused)) = true;
-
-  const std::valarray<int> v1(1, 5000000);
-
-  const std::valarray<int> v2 = v1.shift(1);
-  VERIFY( v2.size() == v1.size() );
-  VERIFY( v2[v1.size() - 1] == 0 );
-
-  const std::valarray<int> v3 = v2.cshift(-1);
-  VERIFY( v3.size() == v2.size() );
-  VERIFY( v3[0] == 0 );
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/30416.cc b/libstdc++-v3/testsuite/26_numerics/valarray/30416.cc
deleted file mode 100644 (file)
index c513292..0000000
+++ /dev/null
@@ -1,190 +0,0 @@
-// 2007-01-11  Paolo Carlini  <pcarlini@suse.de>
-
-// Copyright (C) 2007 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-#include <valarray>
-#include <testsuite_hooks.h>
-
-bool
-comp_vala(const std::valarray<int>& v1, const std::valarray<int>& v2)
-{
-  if (v1.size() == v2.size())
-    {
-      for (size_t i = 0; i < v1.size(); ++i)
-       if (v1[i] != v2[i])
-         return false;
-      return true;
-    }
-  return false;
-}
-
-void
-init_vala(std::valarray<int>& v, size_t first, size_t last, int val)
-{
-  for (size_t i = first; i <= last; ++i)
-    v[i] = val++;
-}
-
-// libstdc++/30416
-void test01()
-{
-  bool test __attribute__((unused)) = true;
-  using namespace std;
-
-  // shift
-  valarray<int> v1;
-  valarray<int> v1_ris(v1.shift(0));
-  VERIFY( comp_vala(v1, v1_ris) );
-  
-  valarray<int> v2;
-  valarray<int> v2_ris(v2.shift(10));
-  VERIFY( comp_vala(v2, v2_ris) );
-  
-  valarray<int> v3;
-  valarray<int> v3_ris(v3.shift(-10));
-  VERIFY( comp_vala(v3, v3_ris) );
-  
-  valarray<int> v4(10);
-  valarray<int> v4_ris(v4.shift(0));
-  VERIFY( comp_vala(v4, v4_ris) );
-  
-  valarray<int> v5(10);
-  init_vala(v5, 0, 9, 1);
-  valarray<int> v5_ref(10);  
-  
-  valarray<int> v5_ris(v5.shift(16));
-  VERIFY( comp_vala(v5_ris, v5_ref) );
-  
-  valarray<int> v6(10);
-  init_vala(v6, 0, 9, 1);
-  valarray<int> v6_ref(10);
-  
-  valarray<int> v6_ris(v6.shift(-16));
-  VERIFY( comp_vala(v6_ris, v6_ref) );
-
-  valarray<int> v7(10);
-  init_vala(v7, 0, 9, 1);
-  valarray<int> v7_ref(10);  
-  
-  valarray<int> v7_ris(v7.shift(10));
-  VERIFY( comp_vala(v7_ris, v7_ref) );
-  
-  valarray<int> v8(10);
-  init_vala(v8, 0, 9, 1);
-  valarray<int> v8_ref(10);
-  
-  valarray<int> v8_ris(v8.shift(-10));
-  VERIFY( comp_vala(v8_ris, v8_ref) );
-
-  valarray<int> v9(10);
-  init_vala(v9, 0, 9, 1);
-  valarray<int> v9_ref(10);  
-  init_vala(v9_ref, 0, 3, 7);
-  
-  valarray<int> v9_ris(v9.shift(6));
-  VERIFY( comp_vala(v9_ris, v9_ref) );
-  
-  valarray<int> v10(10);
-  init_vala(v10, 0, 9, 1);
-  valarray<int> v10_ref(10);
-  init_vala(v10_ref, 6, 9, 1);
-
-  valarray<int> v10_ris(v10.shift(-6));
-  VERIFY( comp_vala(v10_ris, v10_ref) );
-
-  // cshift
-  valarray<int> v11;
-  valarray<int> v11_ris(v11.cshift(0));
-  VERIFY( comp_vala(v11, v11_ris) );
-  
-  valarray<int> v12;
-  valarray<int> v12_ris(v12.cshift(10));
-  VERIFY( comp_vala(v12, v12_ris) );
-  
-  valarray<int> v13;
-  valarray<int> v13_ris(v13.cshift(-10));
-  VERIFY( comp_vala(v13, v13_ris) );
-  
-  valarray<int> v14(10);
-  valarray<int> v14_ris(v14.cshift(0));
-  VERIFY( comp_vala(v14, v14_ris) );
-  
-  valarray<int> v15(10);
-  init_vala(v15, 0, 9, 1);
-  valarray<int> v15_ref(10);
-  init_vala(v15_ref, 0, 3, 7);
-  init_vala(v15_ref, 4, 9, 1);
-  
-  valarray<int> v15_ris(v15.cshift(16));
-  VERIFY( comp_vala(v15_ris, v15_ref) );
-
-  valarray<int> v16(10);
-  init_vala(v16, 0, 9, 1);
-  valarray<int> v16_ref(10);
-  init_vala(v16_ref, 0, 5, 5);
-  init_vala(v16_ref, 6, 9, 1);
-  
-  valarray<int> v16_ris(v16.cshift(-16));
-  VERIFY( comp_vala(v16_ris, v16_ref) );
-
-  valarray<int> v17(10);
-  init_vala(v17, 0, 9, 1);
-  
-  valarray<int> v17_ris(v15.cshift(10));
-  VERIFY( comp_vala(v17, v17_ris) );
-  
-  valarray<int> v18(10);
-  init_vala(v18, 0, 9, 1);
-  
-  valarray<int> v18_ris(v18.cshift(-10));
-  VERIFY( comp_vala(v18, v18_ris) );
-
-  valarray<int> v19(10);
-  init_vala(v19, 0, 9, 1);
-  valarray<int> v19_ref(10);
-  init_vala(v19_ref, 0, 3, 7);
-  init_vala(v19_ref, 4, 9, 1);
-  
-  valarray<int> v19_ris(v15.cshift(6));
-  VERIFY( comp_vala(v19_ris, v19_ref) );
-  
-  valarray<int> v20(10);
-  init_vala(v20, 0, 9, 1);
-  valarray<int> v20_ref(10);
-  init_vala(v20_ref, 0, 5, 5);
-  init_vala(v20_ref, 6, 9, 1);
-  
-  valarray<int> v20_ris(v20.cshift(-6));
-  VERIFY( comp_vala(v20_ris, v20_ref) );
-}
-
-int main()
-{
-  test01();
-  return 0;
-} 
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/binary_closure.cc b/libstdc++-v3/testsuite/26_numerics/valarray/binary_closure.cc
deleted file mode 100644 (file)
index 7dbcfbd..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-// 19990805 gdr
-//
-// XXX: to impove later.
-// Origin: Andreas Amann <amann@physik.tu-berlin.de>
-// CXXFLAGS: -g
-
-#include <iostream>
-#include <valarray>
-
-
-int main()
-{
-    std::valarray<double> a(10), b(10), c(10), d(10);
-
-    a = 1.2;
-    b = 3.1;
-
-    c = 4.0;
-
-    d = ( 2.0 * b + a );  // works
-    std::cout << "d[4] = " << d[4] << std::endl;
-
-    d = (a * 2.0 + b ); // works
-    std::cout << "d[4] = " << d[4] << std::endl;
-
-    d = (a + b * 2.0 ); // segfaults!
-    std::cout << "d[4] = " << d[4] << std::endl;
-    d = (a + 2.0* b );
-
-    std::cout << "d[4] = " << d[4] << std::endl;
-    d = (a + 2.0* b );
-    std::cout << "d[4] = " << d[4] << std::endl;
-    d = (a + 2.0* b );
-
-    std::cout << "d[4] = " << d[4] << std::endl;
-    return 0;
-}
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/dr543.cc b/libstdc++-v3/testsuite/26_numerics/valarray/dr543.cc
deleted file mode 100644 (file)
index 9afa93a..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright (C) 2006 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-#include <valarray>
-#include <testsuite_hooks.h>
-
-// DR 543. valarray slice default constructor
-void test01()
-{
-  bool test __attribute__((unused)) = true;
-
-  std::valarray<int> v1(10);
-  std::valarray<int> v2 = v1[std::slice()];
-  VERIFY( v2.size() == 0 );
-
-  std::valarray<int> v3(10);
-  std::valarray<int> v4 = v3[std::gslice()];
-  VERIFY( v4.size() == 0 );
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/slice.cc b/libstdc++-v3/testsuite/26_numerics/valarray/slice.cc
deleted file mode 100644 (file)
index d7ad877..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-// 20020717 gdr
-
-// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// Test slice class invariants
-
-#include <valarray>
-#include <cstdlib>
-#include <testsuite_hooks.h>
-
-bool
-construction(std::size_t start, std::size_t size, std::size_t stride)
-{
-  std::slice s(start, size, stride);
-  return s.start() == start && s.size() == size && s.stride() == stride;
-}
-
-bool
-copy(std::size_t start, std::size_t size, std::size_t stride)
-{
-  std::slice s(start, size, stride);
-  std::slice t = s;
-  return t.start() == start && t.size() == size && t.stride() == stride;
-}
-
-bool
-assignment(std::size_t start, std::size_t size, std::size_t stride)
-{
-  std::slice s(start, size, stride);
-  std::slice t;
-  t = s;
-  return t.start() == start && t.size() == size && t.stride() == stride;
-}
-
-
-int main()
-{
-  bool test __attribute__((unused)) = true;
-  std::srand(20020717);         
-  using std::rand;
-  VERIFY(construction(rand(), rand(), rand()));
-
-  VERIFY(copy(rand(), rand(), rand()));
-
-  VERIFY(assignment(rand(), rand(), rand()));
-
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/slice_array_assignment.cc b/libstdc++-v3/testsuite/26_numerics/valarray/slice_array_assignment.cc
deleted file mode 100644 (file)
index 34888be..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-// 20010613 gdr
-
-// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-
-// This is DR-253.  Test for accessible assignment-operators.
-#include <valarray>
-#include <testsuite_hooks.h>
-
-int main()
-{
-  bool test __attribute__((unused)) = true;
-  using std::valarray;
-  using std::slice;
-  valarray<int> v(1, 10), w(2, 10);
-
-  w[slice(0, 3, 3)] = v[slice(2, 3, 3)];
-
-  VERIFY(v[0] == 1 && w[0] == 1);
-  VERIFY(v[3] == 1 && w[3] == 1);
-  VERIFY(v[6] == 1 && w[6] == 1);
-
-  std::slice_array<int> t = v[slice(0, 10, 1)];
-  
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/valarray.cc b/libstdc++-v3/testsuite/26_numerics/valarray/valarray.cc
deleted file mode 100644 (file)
index 3c206e3..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-// 19990404 gdr
-
-// Copyright (C) 1999, 2000 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-#include <valarray>
-
-int main()
-{
-  // 01: instantiation
-  std::valarray<double> a(20);
-
-  // 02: algo
-  using std::valarray;
-  valarray<double> b, c;
-  double m __attribute__((unused)) = std::abs(b - c).max();
-
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/valarray_const_bracket.cc b/libstdc++-v3/testsuite/26_numerics/valarray/valarray_const_bracket.cc
deleted file mode 100644 (file)
index 512cbaf..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-// 20010518 gdr
-
-// Copyright (C) 2001 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-#include <valarray>
-
-// dg-do compile
-
-template<typename P>
-  void copy(P, std::size_t) { }
-
-template<typename T>
-  void test(const std::valarray<T>& v)
-  {
-     copy(&v[0], v.size());
-  }
-
-int main()
-{
-  std::valarray<double> v(190);
-  test(v);
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/valarray_name_lookup.cc b/libstdc++-v3/testsuite/26_numerics/valarray/valarray_name_lookup.cc
deleted file mode 100644 (file)
index 735f65f..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-// 2002-08-02 gdr
-
-// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Test name lookup resolutions for standard functions applied to an
-// array expression.
-// { dg-do compile }
-
-#include <valarray>
-
-namespace My
-{
-  struct Number 
-  { 
-    operator bool() const;
-  };
-  
-  Number operator+(Number);
-  Number operator-(Number);
-  Number operator~(Number);
-
-  bool operator!(Number);
-  
-  Number operator+(Number, Number);
-  Number operator-(Number, Number);
-  Number operator*(Number, Number);
-  Number operator/(Number, Number);
-  Number operator%(Number, Number);
-
-  Number operator^(Number, Number);
-  Number operator&(Number, Number);
-  Number operator|(Number, Number);
-
-  Number operator<<(Number, Number);
-  Number operator>>(Number, Number);
-
-  bool operator==(Number, Number);
-  bool operator!=(Number, Number);
-  bool operator<(Number, Number);
-  bool operator<=(Number, Number);
-  bool operator>(Number, Number);
-  bool operator>=(Number, Number);
-
-  Number abs(Number);
-
-  Number cos(Number);
-  Number cosh(Number);
-  Number acos(Number);
-
-  Number sin(Number);
-  Number sinh(Number);
-  Number asin(Number);
-  
-  Number tan(Number);
-  Number tanh(Number);
-  Number atan(Number);
-
-  Number exp(Number);
-  Number log(Number);
-  Number log10(Number);
-  Number sqrt(Number);
-
-  Number atan2(Number, Number);
-  Number pow(Number, Number);
-}
-
-int main()
-{
-  typedef std::valarray<My::Number> Array;
-  Array u(10), v(10);
-  v = +u;
-  v = -u;
-  v = ~u;
-  std::valarray<bool> z = !u;
-
-  v = abs(u);
-  
-  v = cos(u);
-  v = cosh(u);
-  v = acos(u);
-
-  v = sin(u);
-  v = sinh(u);
-  v = asin(u);
-
-  v = tan(u);
-  v = tanh(u);
-  v = atan(u);
-
-  v = exp(u);
-  v = log(u);
-  v = log10(u);
-  v = sqrt(u);  
-
-  Array w = u + v;
-  w = u - v;
-  w = u * v;
-  w = u / v;
-  w = u % v;
-
-  w = u ^ v;
-  w = u & v;
-  w = u | v;
-
-  w = u << v;
-  w = u >> v;
-
-  z = u == v;
-  z = u != v;
-  z = u < v;
-  z = u <= v;
-  z = u > v;
-  z = u >= v;
-
-  w = atan2(u, v);
-  w = pow(u, v);
-}
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/valarray_operators.cc b/libstdc++-v3/testsuite/26_numerics/valarray/valarray_operators.cc
deleted file mode 100644 (file)
index 70ad0b0..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-// { dg-do run }
-// 2003-02-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
-
-// Copyright (C) 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-#include <valarray>
-#include <testsuite_hooks.h>
-
-void test01() // check unary operators
-{
-  bool test __attribute__((unused)) = true;
-  std::valarray<int> u(1);
-  u[0]=1;
-
-  VERIFY( (+u)[0] == +1 );
-  VERIFY( (-u)[0] == -1 );
-  VERIFY( (!u)[0] == !1 );
-  VERIFY( (~u)[0] == ~1 );
-}
-
-void test02() // check binary operators
-{
-  bool test __attribute__((unused)) = true;
-  std::valarray<int> u(1), v(1);
-  u[0]=1;
-  v[0]=3;
-
-  VERIFY( (u+ v)[0] == (1+ 3) );
-  VERIFY( (u- v)[0] == (1- 3) );
-  VERIFY( (u* v)[0] == (1* 3) );
-  VERIFY( (u/ v)[0] == (1/ 3) );
-  VERIFY( (u% v)[0] == (1% 3) );
-  VERIFY( (u^ v)[0] == (1^ 3) );
-  VERIFY( (u& v)[0] == (1& 3) );
-  VERIFY( (u| v)[0] == (1| 3) );
-  VERIFY( (u<<v)[0] == (1<<3) );
-  VERIFY( (u>>v)[0] == (1>>3) );
-  VERIFY( (u&&v)[0] == (1&&3) );
-  VERIFY( (u||v)[0] == (1||3) );
-  VERIFY( (u==v)[0] == (1==3) );
-  VERIFY( (u!=v)[0] == (1!=3) );
-  VERIFY( (u< v)[0] == (1< 3) );
-  VERIFY( (u> v)[0] == (1> 3) );
-  VERIFY( (u<=v)[0] == (1<=3) );
-  VERIFY( (u>=v)[0] == (1>=3) );
-}
-
-int main()
-{
-  test01();
-  test02();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/valarray_subset_assignment.cc b/libstdc++-v3/testsuite/26_numerics/valarray/valarray_subset_assignment.cc
deleted file mode 100644 (file)
index 4ce22af..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-// 2004-01-03  Jerry Quinn  <jlquinn@optonline.net>
-
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// PR 3247
-
-// This is DR-253.  Test for accessible assignment-operators.
-#include <valarray>
-#include <testsuite_hooks.h>
-
-bool check_array(std::valarray<double>& a, double b[])
-{
-  for (unsigned int i=0; i < a.size(); i++)
-    if (a[i] != b[i]) return false;
-  return true;
-}
-
-int main()
-{
-  std::valarray<double> val_d(10);  //  0 1 2 3 4 5 6 7 8 9 
-  std::valarray<double> val_d1(10); // 10 9 8 7 6 5 4 3 2 1
-
-  for (int i=0; i< 10; i++) { val_d[i] = 10;  val_d1[i] = i; }
-  std::valarray<double> val_c(val_d);
-  std::valarray<double> val_f(val_d);
-  std::valarray<double> val_g(val_d);
-
-  std::slice slc(1, 3, 3);     // 1 4 7
-  val_d[slc] = val_d1[slc];
-
-  double ans1[10] = {10, 1, 10, 10, 4, 10, 10, 7, 10, 10};
-  VERIFY(check_array(val_d, ans1));
-
-  std::valarray<std::size_t> val_size(2);
-  std::valarray<std::size_t> val_stride(2);
-  val_size[0] = 2;   val_size[1] = 3;
-  val_stride[0] = 4; val_stride[1] = 1;
-
-  std::gslice gslc(1, val_size, val_stride);
-  val_c[gslc] = val_d1[gslc];
-
-  double ans2[10] = {10, 1, 2, 3, 10, 5, 6, 7, 10, 10};
-  VERIFY(check_array(val_c, ans2));
-
-  std::valarray<bool> val_b(false, 10);
-  val_b[2] = val_b[6] = val_b[9] = true;
-  val_f[val_b] = val_d1[val_b];
-
-  double ans3[10] = {10, 10, 2, 10, 10, 10, 6, 10, 10, 9};
-  VERIFY(check_array(val_f, ans3));
-
-  size_t addr[] = {1, 2, 3, 4, 5};
-  size_t addr1[] = {2, 7, 1, 9, 4};
-  std::valarray<std::size_t> val_indirect(addr, 5);
-  std::valarray<std::size_t> val_indirect1(addr1, 5);
-  val_g[val_indirect] = val_d1[val_indirect1];
-
-  double ans4[10] = {10, 2, 7, 1, 9, 4, 10, 10, 10, 10};
-  VERIFY(check_array(val_g, ans4));
-
-  return 0;
-};
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/1.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/1.cc
deleted file mode 100644 (file)
index baa349e..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf 
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <fstream>
-
-// { dg-do compile }
-
-// libstdc++/7216
-void test01()
-{
-  // Check for required typedefs
-  typedef std::filebuf test_type;
-  typedef test_type::char_type char_type;
-  typedef test_type::traits_type traits_type;
-  typedef test_type::int_type int_type;
-  typedef test_type::pos_type pos_type;
-  typedef test_type::off_type off_type;
-}
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/2.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/2.cc
deleted file mode 100644 (file)
index 17c5429..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf 
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <fstream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// { dg-do compile }
-
-// test05
-// libstdc++/1886
-// should be able to instantiate basic_filebuf for non-standard types.
-namespace std
-{
-  using __gnu_test::pod_char;
-  typedef short type_t;
-  template class basic_filebuf<type_t, char_traits<type_t> >;
-  template class basic_filebuf<pod_char, char_traits<pod_char> >;
-} // test
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/3.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/3.cc
deleted file mode 100644 (file)
index 8ead347..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf 
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <fstream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// libstdc++/2020
-// should be able to use custom char_type, custom traits type
-void test07()
-{
-  bool test __attribute__((unused)) = true;
-  typedef std::basic_filebuf<__gnu_test::pod_ushort> gnu_filebuf;
-  
-  try
-    { gnu_filebuf obj; }
-  catch(std::exception& obj)
-    { 
-      test = false; 
-      VERIFY( test );
-    }
-}
-
-int main() 
-{
-  test07();
-  return 0;
-}
-
-
-
-// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/4.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/4.cc
deleted file mode 100644 (file)
index cef8732..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-// 2003-03-26 B enjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf 
-
-#include <fstream>
-
-void test01()
-{
-  // Check for required base class.
-  typedef std::filebuf test_type;
-  typedef std::streambuf base_type;
-  const test_type& obj = *new test_type();
-  const base_type* base __attribute__((unused)) = &obj;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/cons/2020.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/cons/2020.cc
new file mode 100644 (file)
index 0000000..8ead347
--- /dev/null
@@ -0,0 +1,53 @@
+// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf 
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <fstream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// libstdc++/2020
+// should be able to use custom char_type, custom traits type
+void test07()
+{
+  bool test __attribute__((unused)) = true;
+  typedef std::basic_filebuf<__gnu_test::pod_ushort> gnu_filebuf;
+  
+  try
+    { gnu_filebuf obj; }
+  catch(std::exception& obj)
+    { 
+      test = false; 
+      VERIFY( test );
+    }
+}
+
+int main() 
+{
+  test07();
+  return 0;
+}
+
+
+
+// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/base_classes.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..9166a1a
--- /dev/null
@@ -0,0 +1,44 @@
+// { dg-do compile }
+// 2003-03-26 B enjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf 
+
+#include <fstream>
+
+void test01()
+{
+  // Check for required base class.
+  typedef std::filebuf test_type;
+  typedef std::streambuf base_type;
+  const test_type& obj = *new test_type();
+  const base_type* base __attribute__((unused)) = &obj;
+}
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..f6d3a1c
--- /dev/null
@@ -0,0 +1,50 @@
+// { dg-do compile }
+// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf 
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <fstream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// test05
+// libstdc++/1886
+// should be able to instantiate basic_filebuf for non-standard types.
+namespace std
+{
+  using __gnu_test::pod_char;
+  typedef short type_t;
+  template class basic_filebuf<type_t, char_traits<type_t> >;
+  template class basic_filebuf<pod_char, char_traits<pod_char> >;
+} // test
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/typedefs.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..45dcf59
--- /dev/null
@@ -0,0 +1,49 @@
+// { dg-do compile }
+// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf 
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <fstream>
+
+// libstdc++/7216
+void test01()
+{
+  // Check for required typedefs
+  typedef std::filebuf test_type;
+  typedef test_type::char_type char_type;
+  typedef test_type::traits_type traits_type;
+  typedef test_type::int_type int_type;
+  typedef test_type::pos_type pos_type;
+  typedef test_type::off_type off_type;
+}
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
diff --git a/libstdc++-v3/testsuite/27_io/basic_fstream/1.cc b/libstdc++-v3/testsuite/27_io/basic_fstream/1.cc
deleted file mode 100644 (file)
index 6c294f2..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.8.1.11 - Template class basic_fstream
-// NB: This file is for testing basic_fstream with NO OTHER INCLUDES.
-
-#include <fstream>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-// libstdc++/7216
-void test01()
-{
-  // Check for required typedefs
-  typedef std::fstream test_type;
-  typedef test_type::char_type char_type;
-  typedef test_type::traits_type traits_type;
-  typedef test_type::int_type int_type;
-  typedef test_type::pos_type pos_type;
-  typedef test_type::off_type off_type;
-}
diff --git a/libstdc++-v3/testsuite/27_io/basic_fstream/2.cc b/libstdc++-v3/testsuite/27_io/basic_fstream/2.cc
deleted file mode 100644 (file)
index 66e40c8..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.8.1.11 - Template class basic_fstream
-// NB: This file is for testing basic_fstream with NO OTHER INCLUDES.
-
-#include <fstream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// { dg-do compile }
-
-namespace std
-{
-  using __gnu_test::pod_char;
-  typedef short type_t;
-  template class basic_fstream<type_t, char_traits<type_t> >;
-  template class basic_fstream<pod_char, char_traits<pod_char> >;
-} // test
-
diff --git a/libstdc++-v3/testsuite/27_io/basic_fstream/3.cc b/libstdc++-v3/testsuite/27_io/basic_fstream/3.cc
deleted file mode 100644 (file)
index 4b01bd1..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf 
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <fstream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// libstdc++/2020
-// should be able to use custom char_type, custom traits type
-void test07()
-{
-  bool test __attribute__((unused)) = true;
-  typedef std::basic_fstream<__gnu_test::pod_ushort> gnu_fstr;
-
-  try
-    { 
-      gnu_fstr obj;
-    }
-  catch(std::exception& obj)
-    { 
-      test = false; 
-      VERIFY( test );
-    }
-}
-
-int main() 
-{
-  test07();
-  return 0;
-}
-
-
-
-// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_fstream/4.cc b/libstdc++-v3/testsuite/27_io/basic_fstream/4.cc
deleted file mode 100644 (file)
index be994f2..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-// 2003-03-26 B enjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf 
-
-#include <iostream>
-#include <fstream>
-
-void test01()
-{
-  // Check for required base class.
-  typedef std::fstream test_type;
-  typedef std::iostream base_type;
-  const test_type& obj = *new test_type();
-  const base_type* base __attribute__((unused)) = &obj;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
diff --git a/libstdc++-v3/testsuite/27_io/basic_fstream/cons/3.cc b/libstdc++-v3/testsuite/27_io/basic_fstream/cons/3.cc
new file mode 100644 (file)
index 0000000..4b01bd1
--- /dev/null
@@ -0,0 +1,55 @@
+// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf 
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <fstream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// libstdc++/2020
+// should be able to use custom char_type, custom traits type
+void test07()
+{
+  bool test __attribute__((unused)) = true;
+  typedef std::basic_fstream<__gnu_test::pod_ushort> gnu_fstr;
+
+  try
+    { 
+      gnu_fstr obj;
+    }
+  catch(std::exception& obj)
+    { 
+      test = false; 
+      VERIFY( test );
+    }
+}
+
+int main() 
+{
+  test07();
+  return 0;
+}
+
+
+
+// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_fstream/requirements/base_classes.cc b/libstdc++-v3/testsuite/27_io/basic_fstream/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..71089a3
--- /dev/null
@@ -0,0 +1,45 @@
+// { dg-do compile }
+// 2003-03-26 Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf 
+
+#include <iostream>
+#include <fstream>
+
+void test01()
+{
+  // Check for required base class.
+  typedef std::fstream test_type;
+  typedef std::iostream base_type;
+  const test_type& obj = *new test_type();
+  const base_type* base __attribute__((unused)) = &obj;
+}
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
diff --git a/libstdc++-v3/testsuite/27_io/basic_fstream/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/27_io/basic_fstream/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..d3ddedc
--- /dev/null
@@ -0,0 +1,45 @@
+// { dg-do compile }
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.8.1.11 - Template class basic_fstream
+// NB: This file is for testing basic_fstream with NO OTHER INCLUDES.
+
+#include <fstream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+namespace std
+{
+  using __gnu_test::pod_char;
+  typedef short type_t;
+  template class basic_fstream<type_t, char_traits<type_t> >;
+  template class basic_fstream<pod_char, char_traits<pod_char> >;
+} // test
+
diff --git a/libstdc++-v3/testsuite/27_io/basic_fstream/requirements/typedefs.cc b/libstdc++-v3/testsuite/27_io/basic_fstream/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..a858ae8
--- /dev/null
@@ -0,0 +1,47 @@
+// { dg-do compile }
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.8.1.11 - Template class basic_fstream
+// NB: This file is for testing basic_fstream with NO OTHER INCLUDES.
+
+#include <fstream>
+#include <testsuite_hooks.h>
+
+// libstdc++/7216
+void test01()
+{
+  // Check for required typedefs
+  typedef std::fstream test_type;
+  typedef test_type::char_type char_type;
+  typedef test_type::traits_type traits_type;
+  typedef test_type::int_type int_type;
+  typedef test_type::pos_type pos_type;
+  typedef test_type::off_type off_type;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ifstream/1.cc b/libstdc++-v3/testsuite/27_io/basic_ifstream/1.cc
deleted file mode 100644 (file)
index 2a6482a..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.8.1.5 - Template class basic_ifstream
-// NB: This file is for testing basic_ifstream with NO OTHER INCLUDES.
-
-#include <fstream>
-
-// { dg-do compile }
-
-// libstdc++/7216
-void test01()
-{
-  // Check for required typedefs
-  typedef std::ifstream test_type;
-  typedef test_type::char_type char_type;
-  typedef test_type::traits_type traits_type;
-  typedef test_type::int_type int_type;
-  typedef test_type::pos_type pos_type;
-  typedef test_type::off_type off_type;
-}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ifstream/2.cc b/libstdc++-v3/testsuite/27_io/basic_ifstream/2.cc
deleted file mode 100644 (file)
index 191ef1f..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.8.1.5 - Template class basic_ifstream
-// NB: This file is for testing basic_ifstream with NO OTHER INCLUDES.
-
-#include <fstream>
-
-// { dg-do compile }
-
-namespace std
-{
-  typedef short type_t;
-  template class basic_ifstream<type_t, char_traits<type_t> >;
-} // test
diff --git a/libstdc++-v3/testsuite/27_io/basic_ifstream/3.cc b/libstdc++-v3/testsuite/27_io/basic_ifstream/3.cc
deleted file mode 100644 (file)
index 896e702..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf 
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <fstream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// libstdc++/2020
-// should be able to use custom char_type, custom traits type
-void test07()
-{
-  bool test __attribute__((unused)) = true;
-  typedef std::basic_ifstream<__gnu_test::pod_ushort> gnu_ifstr;
-
-  try
-    { 
-      gnu_ifstr obj;
-    }
-  catch(std::exception& obj)
-    { 
-      test = false; 
-      VERIFY( test );
-    }
-}
-
-int main() 
-{
-  test07();
-  return 0;
-}
-
-
-
-// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_ifstream/4.cc b/libstdc++-v3/testsuite/27_io/basic_ifstream/4.cc
deleted file mode 100644 (file)
index 626da50..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-// 2003-03-26 B enjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf 
-
-#include <istream>
-#include <fstream>
-
-void test01()
-{
-  // Check for required base class.
-  typedef std::ifstream test_type;
-  typedef std::istream base_type;
-  const test_type& obj = *new test_type();
-  const base_type* base __attribute__((unused)) = &obj;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
diff --git a/libstdc++-v3/testsuite/27_io/basic_ifstream/cons/2020.cc b/libstdc++-v3/testsuite/27_io/basic_ifstream/cons/2020.cc
new file mode 100644 (file)
index 0000000..896e702
--- /dev/null
@@ -0,0 +1,55 @@
+// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf 
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <fstream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// libstdc++/2020
+// should be able to use custom char_type, custom traits type
+void test07()
+{
+  bool test __attribute__((unused)) = true;
+  typedef std::basic_ifstream<__gnu_test::pod_ushort> gnu_ifstr;
+
+  try
+    { 
+      gnu_ifstr obj;
+    }
+  catch(std::exception& obj)
+    { 
+      test = false; 
+      VERIFY( test );
+    }
+}
+
+int main() 
+{
+  test07();
+  return 0;
+}
+
+
+
+// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/base_classes.cc b/libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..444c85b
--- /dev/null
@@ -0,0 +1,45 @@
+// { dg-do compile }
+// 2003-03-26 B enjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf 
+
+#include <istream>
+#include <fstream>
+
+void test01()
+{
+  // Check for required base class.
+  typedef std::ifstream test_type;
+  typedef std::istream base_type;
+  const test_type& obj = *new test_type();
+  const base_type* base __attribute__((unused)) = &obj;
+}
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
diff --git a/libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..630f426
--- /dev/null
@@ -0,0 +1,40 @@
+// { dg-do compile }
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.8.1.5 - Template class basic_ifstream
+// NB: This file is for testing basic_ifstream with NO OTHER INCLUDES.
+
+#include <fstream>
+
+namespace std
+{
+  typedef short type_t;
+  template class basic_ifstream<type_t, char_traits<type_t> >;
+} // test
diff --git a/libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/typedefs.cc b/libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..e0e32c3
--- /dev/null
@@ -0,0 +1,46 @@
+// { dg-do compile }
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.8.1.5 - Template class basic_ifstream
+// NB: This file is for testing basic_ifstream with NO OTHER INCLUDES.
+
+#include <fstream>
+
+// libstdc++/7216
+void test01()
+{
+  // Check for required typedefs
+  typedef std::ifstream test_type;
+  typedef test_type::char_type char_type;
+  typedef test_type::traits_type traits_type;
+  typedef test_type::int_type int_type;
+  typedef test_type::pos_type pos_type;
+  typedef test_type::off_type off_type;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ios/1.cc b/libstdc++-v3/testsuite/27_io/basic_ios/1.cc
deleted file mode 100644 (file)
index 6481c71..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.4.4 - Template class basic_ios
-// NB: This file is for testing basic_ios with NO OTHER INCLUDES.
-
-#include <ios>
-
-// { dg-do compile }
-
-// libstdc++/7216
-void test01()
-{
-  // Check for required typedefs
-  typedef std::ios test_type;
-  typedef test_type::char_type char_type;
-  typedef test_type::traits_type traits_type;
-  typedef test_type::int_type int_type;
-  typedef test_type::pos_type pos_type;
-  typedef test_type::off_type off_type;
-}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ios/2.cc b/libstdc++-v3/testsuite/27_io/basic_ios/2.cc
deleted file mode 100644 (file)
index 89c71e6..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.4.4 - Template class basic_ios
-// NB: This file is for testing basic_ios with NO OTHER INCLUDES.
-
-#include <ios>
-
-// { dg-do compile }
-
-namespace std
-{
-  typedef short type_t;
-  template class basic_ios<type_t, char_traits<type_t> >;
-} // test
diff --git a/libstdc++-v3/testsuite/27_io/basic_ios/3.cc b/libstdc++-v3/testsuite/27_io/basic_ios/3.cc
deleted file mode 100644 (file)
index 6b3f700..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf 
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <ios>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// libstdc++/2020
-// should be able to use custom char_type, custom traits type
-class gnu_ios: public std::basic_ios<__gnu_test::pod_ushort>
-{ };
-
-void test07()
-{
-  bool test __attribute__((unused)) = true;
-  
-  try
-    { gnu_ios obj; }
-  catch(std::exception& obj)
-    { 
-      test = false; 
-      VERIFY( test );
-    }
-}
-
-int main() 
-{
-  test07();
-  return 0;
-}
-
-
-
-// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_ios/4.cc b/libstdc++-v3/testsuite/27_io/basic_ios/4.cc
deleted file mode 100644 (file)
index de7b549..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-// 2003-03-26 B enjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf 
-
-#include <ios>
-#include <sstream>
-
-void test01()
-{
-  // Check for required base class.
-  typedef std::ios test_type;
-  typedef std::ios_base base_type;
-  
-  std::stringbuf buf;
-  const test_type& obj = *new test_type(&buf);
-  const base_type* base __attribute__((unused)) = &obj;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
diff --git a/libstdc++-v3/testsuite/27_io/basic_ios/cons/2020.cc b/libstdc++-v3/testsuite/27_io/basic_ios/cons/2020.cc
new file mode 100644 (file)
index 0000000..6b3f700
--- /dev/null
@@ -0,0 +1,55 @@
+// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf 
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <ios>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// libstdc++/2020
+// should be able to use custom char_type, custom traits type
+class gnu_ios: public std::basic_ios<__gnu_test::pod_ushort>
+{ };
+
+void test07()
+{
+  bool test __attribute__((unused)) = true;
+  
+  try
+    { gnu_ios obj; }
+  catch(std::exception& obj)
+    { 
+      test = false; 
+      VERIFY( test );
+    }
+}
+
+int main() 
+{
+  test07();
+  return 0;
+}
+
+
+
+// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_ios/requirements/base_classes.cc b/libstdc++-v3/testsuite/27_io/basic_ios/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..f748ece
--- /dev/null
@@ -0,0 +1,47 @@
+// { dg-do compile }
+// 2003-03-26 Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf 
+
+#include <ios>
+#include <sstream>
+
+void test01()
+{
+  // Check for required base class.
+  typedef std::ios test_type;
+  typedef std::ios_base base_type;
+  
+  std::stringbuf buf;
+  const test_type& obj = *new test_type(&buf);
+  const base_type* base __attribute__((unused)) = &obj;
+}
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
diff --git a/libstdc++-v3/testsuite/27_io/basic_ios/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/27_io/basic_ios/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..581bff6
--- /dev/null
@@ -0,0 +1,40 @@
+// { dg-do compile }
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.4.4 - Template class basic_ios
+// NB: This file is for testing basic_ios with NO OTHER INCLUDES.
+
+#include <ios>
+
+namespace std
+{
+  typedef short type_t;
+  template class basic_ios<type_t, char_traits<type_t> >;
+} // test
diff --git a/libstdc++-v3/testsuite/27_io/basic_ios/requirements/typedefs.cc b/libstdc++-v3/testsuite/27_io/basic_ios/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..818a159
--- /dev/null
@@ -0,0 +1,46 @@
+// { dg-do compile }
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.4.4 - Template class basic_ios
+// NB: This file is for testing basic_ios with NO OTHER INCLUDES.
+
+#include <ios>
+
+// libstdc++/7216
+void test01()
+{
+  // Check for required typedefs
+  typedef std::ios test_type;
+  typedef test_type::char_type char_type;
+  typedef test_type::traits_type traits_type;
+  typedef test_type::int_type int_type;
+  typedef test_type::pos_type pos_type;
+  typedef test_type::off_type off_type;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_iostream/1.cc b/libstdc++-v3/testsuite/27_io/basic_iostream/1.cc
deleted file mode 100644 (file)
index e860d4f..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-// 2002-01-08 bkoz
-
-// Copyright (C) 2002 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.6.1.5 - Template class basic_iostream
-// NB: This file is for testing iostream with NO OTHER INCLUDES.
-
-// { dg-do compile }
-
-#include <istream>
-
-// libstdc++/7216
-void test01()
-{
-  // Check for required typedefs
-  typedef std::iostream test_type;
-  typedef test_type::char_type char_type;
-  typedef test_type::traits_type traits_type;
-  typedef test_type::int_type int_type;
-  typedef test_type::pos_type pos_type;
-  typedef test_type::off_type off_type;
-}
diff --git a/libstdc++-v3/testsuite/27_io/basic_iostream/2.cc b/libstdc++-v3/testsuite/27_io/basic_iostream/2.cc
deleted file mode 100644 (file)
index e5c7236..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-// 2002-01-08 bkoz
-
-// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.6.1.5 - Template class basic_iostream
-// NB: This file is for testing iostream with NO OTHER INCLUDES.
-
-// { dg-do compile }
-
-#include <istream>
-
-namespace std
-{
-  typedef short type_t;
-  template class basic_iostream<type_t, char_traits<type_t> >;
-} // test
diff --git a/libstdc++-v3/testsuite/27_io/basic_iostream/3.cc b/libstdc++-v3/testsuite/27_io/basic_iostream/3.cc
deleted file mode 100644 (file)
index e0af3eb..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf 
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <iostream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// libstdc++/2020
-// should be able to use custom char_type, custom traits type
-void test07()
-{
-  bool test __attribute__((unused)) = true;
-  typedef std::basic_iostream<__gnu_test::pod_ushort> gnu_iostr;
-
-  try
-    { 
-      gnu_iostr obj(NULL); 
-    }
-  catch(std::exception& obj)
-    { 
-      test = false; 
-      VERIFY( test );
-    }
-}
-
-int main() 
-{
-  test07();
-  return 0;
-}
-
-
-
-// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_iostream/4.cc b/libstdc++-v3/testsuite/27_io/basic_iostream/4.cc
deleted file mode 100644 (file)
index 26b5fa1..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-// 2003-03-26 B enjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf 
-
-#include <iostream>
-#include <sstream>
-
-void test01()
-{
-  // Check for required base class.
-  typedef std::iostream test_type;
-  typedef std::istream base_type1;
-  typedef std::ostream base_type2;
-
-  std::stringbuf buf;
-  const test_type& obj = *new test_type(&buf);
-  const base_type1* base1 __attribute__((unused)) = &obj;
-  const base_type2* base2 __attribute__((unused)) = &obj;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
diff --git a/libstdc++-v3/testsuite/27_io/basic_iostream/cons/2020.cc b/libstdc++-v3/testsuite/27_io/basic_iostream/cons/2020.cc
new file mode 100644 (file)
index 0000000..e0af3eb
--- /dev/null
@@ -0,0 +1,55 @@
+// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf 
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <iostream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// libstdc++/2020
+// should be able to use custom char_type, custom traits type
+void test07()
+{
+  bool test __attribute__((unused)) = true;
+  typedef std::basic_iostream<__gnu_test::pod_ushort> gnu_iostr;
+
+  try
+    { 
+      gnu_iostr obj(NULL); 
+    }
+  catch(std::exception& obj)
+    { 
+      test = false; 
+      VERIFY( test );
+    }
+}
+
+int main() 
+{
+  test07();
+  return 0;
+}
+
+
+
+// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_iostream/requirements/base_classes.cc b/libstdc++-v3/testsuite/27_io/basic_iostream/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..63fffa5
--- /dev/null
@@ -0,0 +1,49 @@
+// { dg-do compile }
+// 2003-03-26 B enjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf 
+
+#include <iostream>
+#include <sstream>
+
+void test01()
+{
+  // Check for required base class.
+  typedef std::iostream test_type;
+  typedef std::istream base_type1;
+  typedef std::ostream base_type2;
+
+  std::stringbuf buf;
+  const test_type& obj = *new test_type(&buf);
+  const base_type1* base1 __attribute__((unused)) = &obj;
+  const base_type2* base2 __attribute__((unused)) = &obj;
+}
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
diff --git a/libstdc++-v3/testsuite/27_io/basic_iostream/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/27_io/basic_iostream/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..6b8e0e0
--- /dev/null
@@ -0,0 +1,40 @@
+// { dg-do compile }
+// 2002-01-08 bkoz
+
+// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.6.1.5 - Template class basic_iostream
+// NB: This file is for testing iostream with NO OTHER INCLUDES.
+
+#include <istream>
+
+namespace std
+{
+  typedef short type_t;
+  template class basic_iostream<type_t, char_traits<type_t> >;
+} // test
diff --git a/libstdc++-v3/testsuite/27_io/basic_iostream/requirements/typedefs.cc b/libstdc++-v3/testsuite/27_io/basic_iostream/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..6ff836a
--- /dev/null
@@ -0,0 +1,46 @@
+// { dg-do compile }
+// 2002-01-08 bkoz
+
+// Copyright (C) 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.6.1.5 - Template class basic_iostream
+// NB: This file is for testing iostream with NO OTHER INCLUDES.
+
+#include <istream>
+
+// libstdc++/7216
+void test01()
+{
+  // Check for required typedefs
+  typedef std::iostream test_type;
+  typedef test_type::char_type char_type;
+  typedef test_type::traits_type traits_type;
+  typedef test_type::int_type int_type;
+  typedef test_type::pos_type pos_type;
+  typedef test_type::off_type off_type;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/1.cc b/libstdc++-v3/testsuite/27_io/basic_istream/1.cc
deleted file mode 100644 (file)
index 0250f12..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-// 1999-09-20 bkoz
-
-// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.6.1.1 basic_istream
-// NB: This file is for testing istream with NO OTHER INCLUDES.
-
-#include <istream>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-// libstdc++/7216
-void test01()
-{
-  // Check for required typedefs
-  typedef std::istream test_type;
-  typedef test_type::char_type char_type;
-  typedef test_type::traits_type traits_type;
-  typedef test_type::int_type int_type;
-  typedef test_type::pos_type pos_type;
-  typedef test_type::off_type off_type;
-}
diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/2.cc b/libstdc++-v3/testsuite/27_io/basic_istream/2.cc
deleted file mode 100644 (file)
index f0cb801..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-// 1999-09-20 bkoz
-
-// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.6.1.1 basic_istream
-// NB: This file is for testing istream with NO OTHER INCLUDES.
-
-#include <istream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// { dg-do compile }
-
-namespace std
-{
-  using __gnu_test::pod_char;
-  typedef short type_t;
-  template class basic_istream<type_t, char_traits<type_t> >;
-  template class basic_istream<pod_char, char_traits<pod_char> >;
-} // test
diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/3.cc b/libstdc++-v3/testsuite/27_io/basic_istream/3.cc
deleted file mode 100644 (file)
index a2cadef..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf 
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <istream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// libstdc++/2020
-// should be able to use custom char_type, custom traits type
-void test07()
-{
-  bool test __attribute__((unused)) = true;
-  typedef std::basic_istream<__gnu_test::pod_ushort> gnu_istr;
-
-  try
-    { gnu_istr obj(NULL); }
-  catch(std::exception& obj)
-    { 
-      test = false; 
-      VERIFY( test );
-    }
-}
-
-int main() 
-{
-  test07();
-  return 0;
-}
-
-
-
-// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/4.cc b/libstdc++-v3/testsuite/27_io/basic_istream/4.cc
deleted file mode 100644 (file)
index 3c796f5..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-// 2003-03-26 B enjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf 
-
-#include <istream>
-#include <sstream>
-
-void test01()
-{
-  // Check for required base class.
-  typedef std::istream test_type;
-  typedef std::ios base_type;
-  
-  std::stringbuf buf;
-  const test_type& obj = *new test_type(&buf);
-  const base_type* base __attribute__((unused)) = &obj;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/cons/3.cc b/libstdc++-v3/testsuite/27_io/basic_istream/cons/3.cc
new file mode 100644 (file)
index 0000000..a2cadef
--- /dev/null
@@ -0,0 +1,53 @@
+// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf 
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <istream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// libstdc++/2020
+// should be able to use custom char_type, custom traits type
+void test07()
+{
+  bool test __attribute__((unused)) = true;
+  typedef std::basic_istream<__gnu_test::pod_ushort> gnu_istr;
+
+  try
+    { gnu_istr obj(NULL); }
+  catch(std::exception& obj)
+    { 
+      test = false; 
+      VERIFY( test );
+    }
+}
+
+int main() 
+{
+  test07();
+  return 0;
+}
+
+
+
+// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/requirements/base_classes.cc b/libstdc++-v3/testsuite/27_io/basic_istream/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..b6372d7
--- /dev/null
@@ -0,0 +1,47 @@
+// { dg-do compile }
+// 2003-03-26 B enjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf 
+
+#include <istream>
+#include <sstream>
+
+void test01()
+{
+  // Check for required base class.
+  typedef std::istream test_type;
+  typedef std::ios base_type;
+  
+  std::stringbuf buf;
+  const test_type& obj = *new test_type(&buf);
+  const base_type* base __attribute__((unused)) = &obj;
+}
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/27_io/basic_istream/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..9fb06d0
--- /dev/null
@@ -0,0 +1,45 @@
+// { dg-do compile }
+// 1999-09-20 bkoz
+
+// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.6.1.1 basic_istream
+// NB: This file is for testing istream with NO OTHER INCLUDES.
+
+#include <istream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+namespace std
+{
+  using __gnu_test::pod_char;
+  typedef short type_t;
+  template class basic_istream<type_t, char_traits<type_t> >;
+  template class basic_istream<pod_char, char_traits<pod_char> >;
+} // test
diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/requirements/typedefs.cc b/libstdc++-v3/testsuite/27_io/basic_istream/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..932c68e
--- /dev/null
@@ -0,0 +1,47 @@
+// { dg-do compile }
+// 1999-09-20 bkoz
+
+// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.6.1.1 basic_istream
+// NB: This file is for testing istream with NO OTHER INCLUDES.
+
+#include <istream>
+#include <testsuite_hooks.h>
+
+// libstdc++/7216
+void test01()
+{
+  // Check for required typedefs
+  typedef std::istream test_type;
+  typedef test_type::char_type char_type;
+  typedef test_type::traits_type traits_type;
+  typedef test_type::int_type int_type;
+  typedef test_type::pos_type pos_type;
+  typedef test_type::off_type off_type;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_istringstream/1.cc b/libstdc++-v3/testsuite/27_io/basic_istringstream/1.cc
deleted file mode 100644 (file)
index b87fb24..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.7.2 - Template class basic_istringstream
-// NB: This file is for testing basic_istringstream with NO OTHER INCLUDES.
-
-#include <sstream>
-
-// { dg-do compile }
-
-// libstdc++/7216
-void test01()
-{
-  // Check for required typedefs
-  typedef std::istringstream test_type;
-  typedef test_type::char_type char_type;
-  typedef test_type::traits_type traits_type;
-  typedef test_type::int_type int_type;
-  typedef test_type::pos_type pos_type;
-  typedef test_type::off_type off_type;
-}
diff --git a/libstdc++-v3/testsuite/27_io/basic_istringstream/2.cc b/libstdc++-v3/testsuite/27_io/basic_istringstream/2.cc
deleted file mode 100644 (file)
index 7f7f9f9..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.7.2 - Template class basic_istringstream
-// NB: This file is for testing basic_istringstream with NO OTHER INCLUDES.
-
-#include <sstream>
-
-// { dg-do compile }
-
-namespace std
-{
-  typedef short type_t;
-  template class basic_istringstream<type_t, char_traits<type_t> >;
-} // test
diff --git a/libstdc++-v3/testsuite/27_io/basic_istringstream/3.cc b/libstdc++-v3/testsuite/27_io/basic_istringstream/3.cc
deleted file mode 100644 (file)
index 9f5285a..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf 
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <sstream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// libstdc++/2020
-// should be able to use custom char_type, custom traits type
-void test07()
-{
-  bool test __attribute__((unused)) = true;
-  typedef std::basic_istringstream<__gnu_test::pod_ushort> gnu_isstr;
-
-  try
-    { 
-      gnu_isstr obj;
-    }
-  catch(std::exception& obj)
-    { 
-      test = false; 
-      VERIFY( test );
-    }
-}
-
-int main() 
-{
-  test07();
-  return 0;
-}
-
-
-
-// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_istringstream/4.cc b/libstdc++-v3/testsuite/27_io/basic_istringstream/4.cc
deleted file mode 100644 (file)
index da0845f..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-// 2003-03-26 B enjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf 
-
-#include <istream>
-#include <sstream>
-
-void test01()
-{
-  // Check for required base class.
-  typedef std::istringstream test_type;
-  typedef std::istream base_type;
-  const test_type& obj = *new test_type();
-  const base_type* base __attribute__((unused)) = &obj;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
diff --git a/libstdc++-v3/testsuite/27_io/basic_istringstream/cons/2020.cc b/libstdc++-v3/testsuite/27_io/basic_istringstream/cons/2020.cc
new file mode 100644 (file)
index 0000000..9f5285a
--- /dev/null
@@ -0,0 +1,55 @@
+// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf 
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <sstream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// libstdc++/2020
+// should be able to use custom char_type, custom traits type
+void test07()
+{
+  bool test __attribute__((unused)) = true;
+  typedef std::basic_istringstream<__gnu_test::pod_ushort> gnu_isstr;
+
+  try
+    { 
+      gnu_isstr obj;
+    }
+  catch(std::exception& obj)
+    { 
+      test = false; 
+      VERIFY( test );
+    }
+}
+
+int main() 
+{
+  test07();
+  return 0;
+}
+
+
+
+// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/base_classes.cc b/libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..38e50e4
--- /dev/null
@@ -0,0 +1,45 @@
+// { dg-do compile }
+// 2003-03-26 B enjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf 
+
+#include <istream>
+#include <sstream>
+
+void test01()
+{
+  // Check for required base class.
+  typedef std::istringstream test_type;
+  typedef std::istream base_type;
+  const test_type& obj = *new test_type();
+  const base_type* base __attribute__((unused)) = &obj;
+}
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
diff --git a/libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..9ad96d9
--- /dev/null
@@ -0,0 +1,40 @@
+// { dg-do compile }
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.7.2 - Template class basic_istringstream
+// NB: This file is for testing basic_istringstream with NO OTHER INCLUDES.
+
+#include <sstream>
+
+namespace std
+{
+  typedef short type_t;
+  template class basic_istringstream<type_t, char_traits<type_t> >;
+} // test
diff --git a/libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/typedefs.cc b/libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..5999c59
--- /dev/null
@@ -0,0 +1,46 @@
+// { dg-do compile }
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.7.2 - Template class basic_istringstream
+// NB: This file is for testing basic_istringstream with NO OTHER INCLUDES.
+
+#include <sstream>
+
+// libstdc++/7216
+void test01()
+{
+  // Check for required typedefs
+  typedef std::istringstream test_type;
+  typedef test_type::char_type char_type;
+  typedef test_type::traits_type traits_type;
+  typedef test_type::int_type int_type;
+  typedef test_type::pos_type pos_type;
+  typedef test_type::off_type off_type;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ofstream/1.cc b/libstdc++-v3/testsuite/27_io/basic_ofstream/1.cc
deleted file mode 100644 (file)
index 83a9cd1..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.8.1.8 - Template class basic_ofstream
-// NB: This file is for testing basic_ofstream with NO OTHER INCLUDES.
-
-#include <fstream>
-
-// { dg-do compile }
-
-// libstdc++/7216
-void test01()
-{
-  // Check for required typedefs
-  typedef std::ifstream test_type;
-  typedef test_type::char_type char_type;
-  typedef test_type::traits_type traits_type;
-  typedef test_type::int_type int_type;
-  typedef test_type::pos_type pos_type;
-  typedef test_type::off_type off_type;
-}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ofstream/2.cc b/libstdc++-v3/testsuite/27_io/basic_ofstream/2.cc
deleted file mode 100644 (file)
index 4f1dfc0..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.8.1.8 - Template class basic_ofstream
-// NB: This file is for testing basic_ofstream with NO OTHER INCLUDES.
-
-#include <fstream>
-
-// { dg-do compile }
-
-namespace std
-{
-  typedef short type_t;
-  template class basic_ifstream<type_t, char_traits<type_t> >;
-} // test
diff --git a/libstdc++-v3/testsuite/27_io/basic_ofstream/3.cc b/libstdc++-v3/testsuite/27_io/basic_ofstream/3.cc
deleted file mode 100644 (file)
index 8ef6508..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf 
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <fstream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// libstdc++/2020
-// should be able to use custom char_type, custom traits type
-void test07()
-{
-  bool test __attribute__((unused)) = true;
-  typedef std::basic_ofstream<__gnu_test::pod_ushort> gnu_ofstr;
-
-  try
-    { 
-      gnu_ofstr obj;
-    }
-  catch(std::exception& obj)
-    { 
-      test = false; 
-      VERIFY( test );
-    }
-}
-
-int main() 
-{
-  test07();
-  return 0;
-}
-
-
-
-// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_ofstream/4.cc b/libstdc++-v3/testsuite/27_io/basic_ofstream/4.cc
deleted file mode 100644 (file)
index ae5b727..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-// 2003-03-26 B enjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf 
-
-#include <ostream>
-#include <fstream>
-
-void test01()
-{
-  // Check for required base class.
-  typedef std::ofstream test_type;
-  typedef std::ostream base_type;
-  const test_type& obj = *new test_type();
-  const base_type* base __attribute__((unused)) = &obj;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
diff --git a/libstdc++-v3/testsuite/27_io/basic_ofstream/cons/2020.cc b/libstdc++-v3/testsuite/27_io/basic_ofstream/cons/2020.cc
new file mode 100644 (file)
index 0000000..8ef6508
--- /dev/null
@@ -0,0 +1,55 @@
+// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf 
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <fstream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// libstdc++/2020
+// should be able to use custom char_type, custom traits type
+void test07()
+{
+  bool test __attribute__((unused)) = true;
+  typedef std::basic_ofstream<__gnu_test::pod_ushort> gnu_ofstr;
+
+  try
+    { 
+      gnu_ofstr obj;
+    }
+  catch(std::exception& obj)
+    { 
+      test = false; 
+      VERIFY( test );
+    }
+}
+
+int main() 
+{
+  test07();
+  return 0;
+}
+
+
+
+// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/base_classes.cc b/libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..fe22829
--- /dev/null
@@ -0,0 +1,45 @@
+// { dg-do compile }
+// 2003-03-26 B enjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf 
+
+#include <ostream>
+#include <fstream>
+
+void test01()
+{
+  // Check for required base class.
+  typedef std::ofstream test_type;
+  typedef std::ostream base_type;
+  const test_type& obj = *new test_type();
+  const base_type* base __attribute__((unused)) = &obj;
+}
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
diff --git a/libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/explicit_instantiations.cc b/libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/explicit_instantiations.cc
new file mode 100644 (file)
index 0000000..f1395e9
--- /dev/null
@@ -0,0 +1,40 @@
+// { dg-do compile }
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.8.1.8 - Template class basic_ofstream
+// NB: This file is for testing basic_ofstream with NO OTHER INCLUDES.
+
+#include <fstream>
+
+namespace std
+{
+  typedef short type_t;
+  template class basic_ifstream<type_t, char_traits<type_t> >;
+} // test
diff --git a/libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/typedefs.cc b/libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..3c8df7f
--- /dev/null
@@ -0,0 +1,46 @@
+// { dg-do compile }
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.8.1.8 - Template class basic_ofstream
+// NB: This file is for testing basic_ofstream with NO OTHER INCLUDES.
+
+#include <fstream>
+
+// libstdc++/7216
+void test01()
+{
+  // Check for required typedefs
+  typedef std::ifstream test_type;
+  typedef test_type::char_type char_type;
+  typedef test_type::traits_type traits_type;
+  typedef test_type::int_type int_type;
+  typedef test_type::pos_type pos_type;
+  typedef test_type::off_type off_type;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/1.cc
deleted file mode 100644 (file)
index f72ab12..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-// 1999-09-20 bkoz
-
-// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.6.2.1 basic_ostream
-// NB: This file is for testing ostream with NO OTHER INCLUDES.
-
-#include <ostream>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-// libstdc++/7216
-void test01()
-{
-  // Check for required typedefs
-  typedef std::ostream test_type;
-  typedef test_type::char_type char_type;
-  typedef test_type::traits_type traits_type;
-  typedef test_type::int_type int_type;
-  typedef test_type::pos_type pos_type;
-  typedef test_type::off_type off_type;
-}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/2.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/2.cc
deleted file mode 100644 (file)
index 6b1f712..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-// 1999-09-20 bkoz
-
-// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.6.2.1 basic_ostream
-// NB: This file is for testing ostream with NO OTHER INCLUDES.
-
-#include <ostream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// { dg-do compile }
-
-namespace std
-{
-  using __gnu_test::pod_char;
-  typedef short type_t;
-  template class basic_ostream<type_t, char_traits<type_t> >;
-  template class basic_ostream<pod_char, char_traits<pod_char> >;
-} // test
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/3.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/3.cc
deleted file mode 100644 (file)
index 5171766..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf 
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <ostream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// libstdc++/2020
-// should be able to use custom char_type, custom traits type
-void test07()
-{
-  bool test __attribute__((unused)) = true;
-  typedef std::basic_ostream<__gnu_test::pod_ushort> gnu_ostr;
-
-  try
-    { 
-      gnu_ostr obj(NULL); 
-    }
-  catch(std::exception& obj)
-    { 
-      test = false; 
-      VERIFY( test );
-    }
-}
-
-int main() 
-{
-  test07();
-  return 0;
-}
-
-
-
-// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/4.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/4.cc
deleted file mode 100644 (file)
index a365762..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-// 2003-03-26 B enjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf 
-
-#include <ostream>
-#include <sstream>
-
-void test01()
-{
-  // Check for required base class.
-  typedef std::ostream test_type;
-  typedef std::ios base_type;
-  
-  std::stringbuf buf;
-  const test_type& obj = *new test_type(&buf);
-  const base_type* base __attribute__((unused)) = &obj;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/cons/2020.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/cons/2020.cc
new file mode 100644 (file)
index 0000000..5171766
--- /dev/null
@@ -0,0 +1,55 @@
+// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf 
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <ostream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// libstdc++/2020
+// should be able to use custom char_type, custom traits type
+void test07()
+{
+  bool test __attribute__((unused)) = true;
+  typedef std::basic_ostream<__gnu_test::pod_ushort> gnu_ostr;
+
+  try
+    { 
+      gnu_ostr obj(NULL); 
+    }
+  catch(std::exception& obj)
+    { 
+      test = false; 
+      VERIFY( test );
+    }
+}
+
+int main() 
+{
+  test07();
+  return 0;
+}
+
+
+
+// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/requirements/base_classes.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..a366997
--- /dev/null
@@ -0,0 +1,47 @@
+// { dg-do compile }
+// 2003-03-26 B enjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf 
+
+#include <ostream>
+#include <sstream>
+
+void test01()
+{
+  // Check for required base class.
+  typedef std::ostream test_type;
+  typedef std::ios base_type;
+  
+  std::stringbuf buf;
+  const test_type& obj = *new test_type(&buf);
+  const base_type* base __attribute__((unused)) = &obj;
+}
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..27e72a6
--- /dev/null
@@ -0,0 +1,45 @@
+// { dg-do compile }
+// 1999-09-20 bkoz
+
+// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.6.2.1 basic_ostream
+// NB: This file is for testing ostream with NO OTHER INCLUDES.
+
+#include <ostream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+namespace std
+{
+  using __gnu_test::pod_char;
+  typedef short type_t;
+  template class basic_ostream<type_t, char_traits<type_t> >;
+  template class basic_ostream<pod_char, char_traits<pod_char> >;
+} // test
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/requirements/typedefs.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..5cac045
--- /dev/null
@@ -0,0 +1,47 @@
+// { dg-do compile }
+// 1999-09-20 bkoz
+
+// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.6.2.1 basic_ostream
+// NB: This file is for testing ostream with NO OTHER INCLUDES.
+
+#include <ostream>
+#include <testsuite_hooks.h>
+
+// libstdc++/7216
+void test01()
+{
+  // Check for required typedefs
+  typedef std::ostream test_type;
+  typedef test_type::char_type char_type;
+  typedef test_type::traits_type traits_type;
+  typedef test_type::int_type int_type;
+  typedef test_type::pos_type pos_type;
+  typedef test_type::off_type off_type;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostringstream/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostringstream/1.cc
deleted file mode 100644 (file)
index fa4ae5e..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.7.3 - Class basic_ostringstream
-// NB: This file is for testing basic_ostringstream with NO OTHER INCLUDES.
-
-#include <sstream>
-
-// { dg-do compile }
-
-// libstdc++/7216
-void test01()
-{
-  // Check for required typedefs
-  typedef std::ostringstream test_type;
-  typedef test_type::char_type char_type;
-  typedef test_type::traits_type traits_type;
-  typedef test_type::int_type int_type;
-  typedef test_type::pos_type pos_type;
-  typedef test_type::off_type off_type;
-}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostringstream/2.cc b/libstdc++-v3/testsuite/27_io/basic_ostringstream/2.cc
deleted file mode 100644 (file)
index 1053189..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.7.3 - Class basic_ostringstream
-// NB: This file is for testing basic_ostringstream with NO OTHER INCLUDES.
-
-#include <sstream>
-
-// { dg-do compile }
-
-namespace std
-{
-  typedef short type_t;
-  template class basic_ostringstream<type_t, char_traits<type_t> >;
-} // test
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostringstream/3.cc b/libstdc++-v3/testsuite/27_io/basic_ostringstream/3.cc
deleted file mode 100644 (file)
index e68ea0e..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf 
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <sstream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// libstdc++/2020
-// should be able to use custom char_type, custom traits type
-void test07()
-{
-  bool test __attribute__((unused)) = true;
-  typedef std::basic_ostringstream<__gnu_test::pod_ushort> gnu_osstr;
-
-  try
-    { 
-      gnu_osstr obj;
-    }
-  catch(std::exception& obj)
-    { 
-      test = false; 
-      VERIFY( test );
-    }
-}
-
-int main() 
-{
-  test07();
-  return 0;
-}
-
-
-
-// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostringstream/4.cc b/libstdc++-v3/testsuite/27_io/basic_ostringstream/4.cc
deleted file mode 100644 (file)
index 5a3c403..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-// 2003-03-26 B enjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf 
-
-#include <ostream>
-#include <sstream>
-
-void test01()
-{
-  // Check for required base class.
-  typedef std::ostringstream test_type;
-  typedef std::ostream base_type;
-  const test_type& obj = *new test_type();
-  const base_type* base __attribute__((unused)) = &obj;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/2020.cc b/libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/2020.cc
new file mode 100644 (file)
index 0000000..e68ea0e
--- /dev/null
@@ -0,0 +1,55 @@
+// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf 
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <sstream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// libstdc++/2020
+// should be able to use custom char_type, custom traits type
+void test07()
+{
+  bool test __attribute__((unused)) = true;
+  typedef std::basic_ostringstream<__gnu_test::pod_ushort> gnu_osstr;
+
+  try
+    { 
+      gnu_osstr obj;
+    }
+  catch(std::exception& obj)
+    { 
+      test = false; 
+      VERIFY( test );
+    }
+}
+
+int main() 
+{
+  test07();
+  return 0;
+}
+
+
+
+// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/base_classes.cc b/libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..b4fbe04
--- /dev/null
@@ -0,0 +1,45 @@
+// { dg-do compile }
+// 2003-03-26 B enjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf 
+
+#include <ostream>
+#include <sstream>
+
+void test01()
+{
+  // Check for required base class.
+  typedef std::ostringstream test_type;
+  typedef std::ostream base_type;
+  const test_type& obj = *new test_type();
+  const base_type* base __attribute__((unused)) = &obj;
+}
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..dc509b8
--- /dev/null
@@ -0,0 +1,40 @@
+// { dg-do compile }
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.7.3 - Class basic_ostringstream
+// NB: This file is for testing basic_ostringstream with NO OTHER INCLUDES.
+
+#include <sstream>
+
+namespace std
+{
+  typedef short type_t;
+  template class basic_ostringstream<type_t, char_traits<type_t> >;
+} // test
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/typedefs.cc b/libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..3fbaa4f
--- /dev/null
@@ -0,0 +1,46 @@
+// { dg-do compile }
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.7.3 - Class basic_ostringstream
+// NB: This file is for testing basic_ostringstream with NO OTHER INCLUDES.
+
+#include <sstream>
+
+// libstdc++/7216
+void test01()
+{
+  // Check for required typedefs
+  typedef std::ostringstream test_type;
+  typedef test_type::char_type char_type;
+  typedef test_type::traits_type traits_type;
+  typedef test_type::int_type int_type;
+  typedef test_type::pos_type pos_type;
+  typedef test_type::off_type off_type;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_streambuf/1.cc b/libstdc++-v3/testsuite/27_io/basic_streambuf/1.cc
deleted file mode 100644 (file)
index cf16738..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.5.2 - Template class basic_streambuf
-// NB: This file is for testing basic_streambuf with NO OTHER INCLUDES.
-
-#include <streambuf>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-// libstdc++/7216
-void test01()
-{
-  // Check for required typedefs
-  typedef std::streambuf test_type;
-  typedef test_type::char_type char_type;
-  typedef test_type::traits_type traits_type;
-  typedef test_type::int_type int_type;
-  typedef test_type::pos_type pos_type;
-  typedef test_type::off_type off_type;
-}
diff --git a/libstdc++-v3/testsuite/27_io/basic_streambuf/2.cc b/libstdc++-v3/testsuite/27_io/basic_streambuf/2.cc
deleted file mode 100644 (file)
index da7866c..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.5.2 - Template class basic_streambuf
-// NB: This file is for testing basic_streambuf with NO OTHER INCLUDES.
-
-#include <streambuf>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// { dg-do compile }
-
-namespace std
-{
-  using __gnu_test::pod_char;
-  typedef short type_t;
-  template class basic_streambuf<type_t, char_traits<type_t> >;
-  template class basic_streambuf<pod_char, char_traits<pod_char> >;
-} // test
diff --git a/libstdc++-v3/testsuite/27_io/basic_streambuf/3.cc b/libstdc++-v3/testsuite/27_io/basic_streambuf/3.cc
deleted file mode 100644 (file)
index 765ca16..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf 
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <fstream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// libstdc++/2020
-// should be able to use custom char_type, custom traits type
-class gnu_sbuf: public std::basic_streambuf<__gnu_test::pod_ushort>
-{ };
-
-void test07()
-{
-  bool test __attribute__((unused)) = true;
-  
-  try
-    { gnu_sbuf obj; }
-  catch(std::exception& obj)
-    { 
-      test = false; 
-      VERIFY( test );
-    }
-}
-
-int main() 
-{
-  test07();
-  return 0;
-}
-
-
-
-// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_streambuf/cons/2020.cc b/libstdc++-v3/testsuite/27_io/basic_streambuf/cons/2020.cc
new file mode 100644 (file)
index 0000000..765ca16
--- /dev/null
@@ -0,0 +1,55 @@
+// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf 
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <fstream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// libstdc++/2020
+// should be able to use custom char_type, custom traits type
+class gnu_sbuf: public std::basic_streambuf<__gnu_test::pod_ushort>
+{ };
+
+void test07()
+{
+  bool test __attribute__((unused)) = true;
+  
+  try
+    { gnu_sbuf obj; }
+  catch(std::exception& obj)
+    { 
+      test = false; 
+      VERIFY( test );
+    }
+}
+
+int main() 
+{
+  test07();
+  return 0;
+}
+
+
+
+// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_streambuf/requirements/base_classes.cc b/libstdc++-v3/testsuite/27_io/basic_streambuf/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..da7866c
--- /dev/null
@@ -0,0 +1,45 @@
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.5.2 - Template class basic_streambuf
+// NB: This file is for testing basic_streambuf with NO OTHER INCLUDES.
+
+#include <streambuf>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// { dg-do compile }
+
+namespace std
+{
+  using __gnu_test::pod_char;
+  typedef short type_t;
+  template class basic_streambuf<type_t, char_traits<type_t> >;
+  template class basic_streambuf<pod_char, char_traits<pod_char> >;
+} // test
diff --git a/libstdc++-v3/testsuite/27_io/basic_streambuf/requirements/typedefs.cc b/libstdc++-v3/testsuite/27_io/basic_streambuf/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..cf16738
--- /dev/null
@@ -0,0 +1,48 @@
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.5.2 - Template class basic_streambuf
+// NB: This file is for testing basic_streambuf with NO OTHER INCLUDES.
+
+#include <streambuf>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+// libstdc++/7216
+void test01()
+{
+  // Check for required typedefs
+  typedef std::streambuf test_type;
+  typedef test_type::char_type char_type;
+  typedef test_type::traits_type traits_type;
+  typedef test_type::int_type int_type;
+  typedef test_type::pos_type pos_type;
+  typedef test_type::off_type off_type;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringbuf/1.cc b/libstdc++-v3/testsuite/27_io/basic_stringbuf/1.cc
deleted file mode 100644 (file)
index a2da405..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.7.1 - Template class basic_stringbuf
-// NB: This file is for testing basic_stringbuf with NO OTHER INCLUDES.
-
-#include <sstream>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-// libstdc++/7216
-void test01()
-{
-  // Check for required typedefs
-  typedef std::stringbuf test_type;
-  typedef test_type::char_type char_type;
-  typedef test_type::traits_type traits_type;
-  typedef test_type::int_type int_type;
-  typedef test_type::pos_type pos_type;
-  typedef test_type::off_type off_type;
-}
-
-int main() 
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringbuf/2.cc b/libstdc++-v3/testsuite/27_io/basic_stringbuf/2.cc
deleted file mode 100644 (file)
index 354e227..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.7.1 - Template class basic_stringbuf
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <sstream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// { dg-do compile }
-
-// test05
-// libstdc++/1886
-// should be able to instantiate basic_stringbuf for non-standard types.
-namespace std
-{
-  using __gnu_test::pod_char;
-  typedef short type_t;
-  template class basic_stringbuf<type_t, char_traits<type_t> >;
-  template class basic_stringbuf<pod_char, char_traits<pod_char> >;
-} // std
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringbuf/3.cc b/libstdc++-v3/testsuite/27_io/basic_stringbuf/3.cc
deleted file mode 100644 (file)
index ced07b5..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.7.1 - Template class basic_stringbuf
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <sstream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// libstdc++/2020
-// should be able to use custom char_type, custom traits type
-void test07()
-{
-  bool test __attribute__((unused)) = true;
-  typedef std::basic_stringbuf<__gnu_test::pod_ushort> gnu_ssbuf;
-  
-  try
-    { gnu_ssbuf obj; }
-  catch(std::exception& obj)
-    { 
-      test = false; 
-      VERIFY( test );
-    }
-}
-
-int main() 
-{
-  test07();
-  return 0;
-}
-
-
-
-// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringbuf/4.cc b/libstdc++-v3/testsuite/27_io/basic_stringbuf/4.cc
deleted file mode 100644 (file)
index d4412cd..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-// 2003-04-07 bkoz
-
-// Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.7.1 - Template class basic_stringbuf
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <sstream>
-#include <testsuite_hooks.h>
-#include <testsuite_allocator.h>
-#include <testsuite_character.h>
-
-// { dg-do compile }
-
-namespace std
-{
-  using __gnu_test::pod_char;
-  typedef __gnu_test::tracker_allocator<char> alloc_type;
-  template class basic_stringbuf<char, char_traits<char>, alloc_type>;
-} // test
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringbuf/5.cc b/libstdc++-v3/testsuite/27_io/basic_stringbuf/5.cc
deleted file mode 100644 (file)
index b341b09..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-// 2003-03-26 B enjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.7.1 - Template class basic_stringbuf
-
-#include <sstream>
-
-void test01()
-{
-  // Check for required base class.
-  typedef std::stringbuf test_type;
-  typedef std::streambuf base_type;
-  const test_type& obj = *new test_type();
-  const base_type* base __attribute__((unused)) = &obj;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/2020.cc b/libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/2020.cc
new file mode 100644 (file)
index 0000000..ced07b5
--- /dev/null
@@ -0,0 +1,53 @@
+// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.7.1 - Template class basic_stringbuf
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <sstream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// libstdc++/2020
+// should be able to use custom char_type, custom traits type
+void test07()
+{
+  bool test __attribute__((unused)) = true;
+  typedef std::basic_stringbuf<__gnu_test::pod_ushort> gnu_ssbuf;
+  
+  try
+    { gnu_ssbuf obj; }
+  catch(std::exception& obj)
+    { 
+      test = false; 
+      VERIFY( test );
+    }
+}
+
+int main() 
+{
+  test07();
+  return 0;
+}
+
+
+
+// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/base_classes.cc b/libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..b1ab8f1
--- /dev/null
@@ -0,0 +1,44 @@
+// { dg-do compile }
+// 2003-03-26 B enjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.7.1 - Template class basic_stringbuf
+
+#include <sstream>
+
+void test01()
+{
+  // Check for required base class.
+  typedef std::stringbuf test_type;
+  typedef std::streambuf base_type;
+  const test_type& obj = *new test_type();
+  const base_type* base __attribute__((unused)) = &obj;
+}
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/explicit_instantiation/2.cc
new file mode 100644 (file)
index 0000000..696a493
--- /dev/null
@@ -0,0 +1,50 @@
+// { dg-do compile }
+// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.7.1 - Template class basic_stringbuf
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <sstream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// test05
+// libstdc++/1886
+// should be able to instantiate basic_stringbuf for non-standard types.
+namespace std
+{
+  using __gnu_test::pod_char;
+  typedef short type_t;
+  template class basic_stringbuf<type_t, char_traits<type_t> >;
+  template class basic_stringbuf<pod_char, char_traits<pod_char> >;
+} // std
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/explicit_instantiation/4.cc b/libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/explicit_instantiation/4.cc
new file mode 100644 (file)
index 0000000..0a2c031
--- /dev/null
@@ -0,0 +1,46 @@
+// { dg-do compile }
+// 2003-04-07 bkoz
+
+// Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.7.1 - Template class basic_stringbuf
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <sstream>
+#include <testsuite_hooks.h>
+#include <testsuite_allocator.h>
+#include <testsuite_character.h>
+
+namespace std
+{
+  using __gnu_test::pod_char;
+  typedef __gnu_test::tracker_allocator<char> alloc_type;
+  template class basic_stringbuf<char, char_traits<char>, alloc_type>;
+} // test
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/typedefs.cc b/libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..34999e4
--- /dev/null
@@ -0,0 +1,47 @@
+// { dg-do compile }
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.7.1 - Template class basic_stringbuf
+// NB: This file is for testing basic_stringbuf with NO OTHER INCLUDES.
+
+#include <sstream>
+#include <testsuite_hooks.h>
+
+// libstdc++/7216
+void test01()
+{
+  // Check for required typedefs
+  typedef std::stringbuf test_type;
+  typedef test_type::char_type char_type;
+  typedef test_type::traits_type traits_type;
+  typedef test_type::int_type int_type;
+  typedef test_type::pos_type pos_type;
+  typedef test_type::off_type off_type;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringstream/1.cc b/libstdc++-v3/testsuite/27_io/basic_stringstream/1.cc
deleted file mode 100644 (file)
index 294e7a2..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.7.4 - Template class basic_stringstream
-// NB: This file is for testing basic_stringstream with NO OTHER INCLUDES.
-
-#include <sstream>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-// libstdc++/7216
-void test01()
-{
-  // Check for required typedefs
-  typedef std::stringstream test_type;
-  typedef test_type::char_type char_type;
-  typedef test_type::traits_type traits_type;
-  typedef test_type::int_type int_type;
-  typedef test_type::pos_type pos_type;
-  typedef test_type::off_type off_type;
-}
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringstream/2.cc b/libstdc++-v3/testsuite/27_io/basic_stringstream/2.cc
deleted file mode 100644 (file)
index 97a1ea8..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.7.4 - Template class basic_stringstream
-// NB: This file is for testing basic_stringstream with NO OTHER INCLUDES.
-
-#include <sstream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// { dg-do compile }
-
-namespace std
-{
-  using __gnu_test::pod_char;
-  typedef short type_t;
-  template class basic_stringstream<type_t, char_traits<type_t> >;
-  template class basic_stringstream<pod_char, char_traits<pod_char> >;
-} // std
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringstream/3.cc b/libstdc++-v3/testsuite/27_io/basic_stringstream/3.cc
deleted file mode 100644 (file)
index d47a67a..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf 
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <sstream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// libstdc++/2020
-// should be able to use custom char_type, custom traits type
-void test07()
-{
-  bool test __attribute__((unused)) = true;
-  typedef std::basic_stringstream<__gnu_test::pod_ushort> gnu_sstr;
-
-  try
-    { 
-      gnu_sstr obj;
-    }
-  catch(std::exception& obj)
-    { 
-      test = false; 
-      VERIFY( test );
-    }
-}
-
-int main() 
-{
-  test07();
-  return 0;
-}
-
-
-
-// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringstream/4.cc b/libstdc++-v3/testsuite/27_io/basic_stringstream/4.cc
deleted file mode 100644 (file)
index 43eecf9..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-// 2003-03-26 B enjamin Kosnik  <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf 
-
-#include <iostream>
-#include <sstream>
-
-void test01()
-{
-  // Check for required base class.
-  typedef std::stringstream test_type;
-  typedef std::iostream base_type;
-  const test_type& obj = *new test_type();
-  const base_type* base __attribute__((unused)) = &obj;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringstream/cons/2020.cc b/libstdc++-v3/testsuite/27_io/basic_stringstream/cons/2020.cc
new file mode 100644 (file)
index 0000000..d47a67a
--- /dev/null
@@ -0,0 +1,55 @@
+// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf 
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <sstream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// libstdc++/2020
+// should be able to use custom char_type, custom traits type
+void test07()
+{
+  bool test __attribute__((unused)) = true;
+  typedef std::basic_stringstream<__gnu_test::pod_ushort> gnu_sstr;
+
+  try
+    { 
+      gnu_sstr obj;
+    }
+  catch(std::exception& obj)
+    { 
+      test = false; 
+      VERIFY( test );
+    }
+}
+
+int main() 
+{
+  test07();
+  return 0;
+}
+
+
+
+// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/base_classes.cc b/libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..a6c0371
--- /dev/null
@@ -0,0 +1,45 @@
+// { dg-do compile }
+// 2003-03-26 B enjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf 
+
+#include <iostream>
+#include <sstream>
+
+void test01()
+{
+  // Check for required base class.
+  typedef std::stringstream test_type;
+  typedef std::iostream base_type;
+  const test_type& obj = *new test_type();
+  const base_type* base __attribute__((unused)) = &obj;
+}
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..6279e42
--- /dev/null
@@ -0,0 +1,44 @@
+// { dg-do compile }
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.7.4 - Template class basic_stringstream
+// NB: This file is for testing basic_stringstream with NO OTHER INCLUDES.
+
+#include <sstream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+namespace std
+{
+  using __gnu_test::pod_char;
+  typedef short type_t;
+  template class basic_stringstream<type_t, char_traits<type_t> >;
+  template class basic_stringstream<pod_char, char_traits<pod_char> >;
+} // std
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/typedefs.cc b/libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..6b44601
--- /dev/null
@@ -0,0 +1,47 @@
+// { dg-do compile }
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.7.4 - Template class basic_stringstream
+// NB: This file is for testing basic_stringstream with NO OTHER INCLUDES.
+
+#include <sstream>
+#include <testsuite_hooks.h>
+
+// libstdc++/7216
+void test01()
+{
+  // Check for required typedefs
+  typedef std::stringstream test_type;
+  typedef test_type::char_type char_type;
+  typedef test_type::traits_type traits_type;
+  typedef test_type::int_type int_type;
+  typedef test_type::pos_type pos_type;
+  typedef test_type::off_type off_type;
+}
diff --git a/libstdc++-v3/testsuite/27_io/fpos/1.cc b/libstdc++-v3/testsuite/27_io/fpos/1.cc
deleted file mode 100644 (file)
index 588ac19..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright (C) 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.4.3 fpos
-// NB: This file is for testing fpos with NO OTHER INCLUDES.
-
-#include <ios>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// { dg-do compile }
-
-namespace std
-{
-  using __gnu_test::pod_char;
-  typedef short type_t;
-  template class fpos<type_t>;
-  template class fpos<pod_char>;
-} // std
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
diff --git a/libstdc++-v3/testsuite/27_io/fpos/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/27_io/fpos/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..588ac19
--- /dev/null
@@ -0,0 +1,46 @@
+// Copyright (C) 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.4.3 fpos
+// NB: This file is for testing fpos with NO OTHER INCLUDES.
+
+#include <ios>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// { dg-do compile }
+
+namespace std
+{
+  using __gnu_test::pod_char;
+  typedef short type_t;
+  template class fpos<type_t>;
+  template class fpos<pod_char>;
+} // std
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
diff --git a/libstdc++-v3/testsuite/27_io/headers/cstdio/functions_std.cc b/libstdc++-v3/testsuite/27_io/headers/cstdio/functions_std.cc
new file mode 100644 (file)
index 0000000..c3da4ca
--- /dev/null
@@ -0,0 +1,66 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstdio>
+
+namespace gnu
+{
+  using std::clearerr; 
+  using std::tmpfile; 
+  using std::fgets; 
+  using std::fscanf; 
+  using std::gets; 
+  using std::rename;
+  using std::fclose; 
+  using std::fopen; 
+  using std::fseek; 
+  using std::perror; 
+  using std::rewind; 
+  using std::tmpnam; 
+  using std::feof; 
+  using std::fprintf; 
+  using std::fsetpos; 
+  using std::printf; 
+  using std::scanf; 
+  using std::ungetc; 
+  using std::ferror; 
+  using std::vfprintf; 
+  using std::fputc; 
+  using std::ftell; 
+  using std::putc; 
+  using std::setbuf; 
+  using std::fflush; 
+  using std::vprintf; 
+  using std::fputs; 
+  using std::fwrite; 
+  using std::putchar; 
+  using std::setvbuf; 
+  using std::fgetc; 
+  using std::vsprintf; 
+  using std::fread; 
+  using std::getc; 
+  using std::puts; 
+  using std::sprintf; 
+  using std::fgetpos; 
+  using std::freopen; 
+  using std::getchar; 
+  using std::remove; 
+  using std::sscanf;
+}
diff --git a/libstdc++-v3/testsuite/27_io/headers/cstdio/macros.cc b/libstdc++-v3/testsuite/27_io/headers/cstdio/macros.cc
new file mode 100644 (file)
index 0000000..4c15f4f
--- /dev/null
@@ -0,0 +1,88 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstdio>
+
+namespace gnu
+{
+#ifndef NULL
+    #error "NULL_must_be_a_macro"
+#endif
+
+#ifndef BUFSIZ
+    #error "BUFSIZ_must_be_a_macro"
+#endif
+
+#ifndef EOF
+    #error "EOF_must_be_a_macro"
+#endif
+
+#ifndef FILENAME_MAX
+    #error "FILENAME_MAX_must_be_a_macro"
+#endif
+
+#ifndef L_tmpnam
+    #error "L_tmpnam_must_be_a_macro"
+#endif
+
+#ifndef FOPEN_MAX
+    #error "FOPEN_MAX_must_be_a_macro"
+#endif
+
+#ifndef SEEK_CUR
+    #error "SEEK_CUR_must_be_a_macro"
+#endif
+
+#ifndef SEEK_END
+    #error "SEEK_END_must_be_a_macro"
+#endif
+
+#ifndef SEEK_SET
+    #error "SEEK_SET_must_be_a_macro"
+#endif
+
+#ifndef TMP_MAX
+    #error "TMP_MAX_must_be_a_macro"
+#endif
+
+#ifndef _IOFBF
+    #error "_IOFBF_must_be_a_macro"
+#endif
+
+#ifndef _IOLBF
+    #error "_IOLBF_must_be_a_macro"
+#endif
+
+#ifndef _IONBF
+    #error "_IONBF_must_be_a_macro"
+#endif
+
+#ifndef stderr
+    #error "stderr_must_be_a_macro"
+#endif
+
+#ifndef stdin
+    #error "stdin_must_be_a_macro"
+#endif
+
+#ifndef stdout
+    #error "stdout_must_be_a_macro"
+#endif
+}
diff --git a/libstdc++-v3/testsuite/27_io/headers/cstdio/types_std.cc b/libstdc++-v3/testsuite/27_io/headers/cstdio/types_std.cc
new file mode 100644 (file)
index 0000000..0ad9807
--- /dev/null
@@ -0,0 +1,28 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstdio>
+
+namespace gnu
+{
+  std::size_t s;
+  std::FILE f;
+  std::FILE fpos_t;
+}
diff --git a/libstdc++-v3/testsuite/27_io/headers/fstream/synopsis.cc b/libstdc++-v3/testsuite/27_io/headers/fstream/synopsis.cc
new file mode 100644 (file)
index 0000000..9b8dae6
--- /dev/null
@@ -0,0 +1,43 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <fstream>
+
+namespace std {
+  template <class charT, class traits>
+    class basic_filebuf;
+  typedef basic_filebuf<char>    filebuf;
+  typedef basic_filebuf<wchar_t> wfilebuf;
+
+  template <class charT, class traits>
+    class basic_ifstream;
+  typedef basic_ifstream<char>    ifstream;
+  typedef basic_ifstream<wchar_t> wifstream;
+
+  template <class charT, class traits>
+    class basic_ofstream;
+  typedef basic_ofstream<char>    ofstream;
+  typedef basic_ofstream<wchar_t> wofstream;
+
+  template <class charT, class traits>
+    class basic_fstream;
+  typedef basic_fstream<char>     fstream;
+  typedef basic_fstream<wchar_t> wfstream;
+}
diff --git a/libstdc++-v3/testsuite/27_io/headers/fstream/types_std.cc b/libstdc++-v3/testsuite/27_io/headers/fstream/types_std.cc
new file mode 100644 (file)
index 0000000..9707680
--- /dev/null
@@ -0,0 +1,36 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <fstream>
+
+namespace gnu
+{
+  typedef std::filebuf t1;
+  typedef std::wfilebuf t2;
+
+  typedef std::ifstream t3;
+  typedef std::wifstream t4;
+
+  typedef std::ofstream t5;
+  typedef std::wofstream t6;
+
+  typedef std::fstream t7;
+  typedef std::wfstream t8;
+}
diff --git a/libstdc++-v3/testsuite/27_io/headers/iomanip/synopsis.cc b/libstdc++-v3/testsuite/27_io/headers/iomanip/synopsis.cc
new file mode 100644 (file)
index 0000000..79d0550
--- /dev/null
@@ -0,0 +1,33 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <iomanip>
+
+namespace std {
+#if 0
+    // Types T1, T2, ... are unspecified implementation types
+    T1 resetiosflags(ios_base::fmtflags mask);
+    T2 setiosflags (ios_base::fmtflags mask);
+    T3 setbase(int base);
+    template<charT> T4 setfill(charT c);
+    T5 setprecision(int n);
+    T6 setw(int n);
+#endif
+}
diff --git a/libstdc++-v3/testsuite/27_io/headers/ios/synopsis.cc b/libstdc++-v3/testsuite/27_io/headers/ios/synopsis.cc
new file mode 100644 (file)
index 0000000..a8f27d9
--- /dev/null
@@ -0,0 +1,60 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <ios>
+
+namespace std {
+#if 0
+  typedef OFF_T streamoff;
+  typedef SZ_T streamsize;
+#endif
+
+  template <class stateT> class fpos;
+  class ios_base;
+  template <class charT, class traits>
+     class basic_ios;
+
+  // 27.4.5, manipulators:
+  ios_base& boolalpha (ios_base& str);
+  ios_base& noboolalpha(ios_base& str);
+  ios_base& showbase     (ios_base& str);
+  ios_base& noshowbase (ios_base& str);
+  ios_base& showpoint (ios_base& str);
+  ios_base& noshowpoint(ios_base& str);
+  ios_base& showpos      (ios_base& str);
+  ios_base& noshowpos    (ios_base& str);
+  ios_base& skipws       (ios_base& str);
+  ios_base& noskipws     (ios_base& str);
+  ios_base& uppercase (ios_base& str);
+  ios_base& nouppercase(ios_base& str);
+  ios_base& unitbuf      (ios_base& str);
+  ios_base& nounitbuf    (ios_base& str);
+  // 27.4.5.2 adjustfield:
+  ios_base& internal     (ios_base& str);
+  ios_base& left         (ios_base& str);
+  ios_base& right        (ios_base& str);
+  // 27.4.5.3 basefield:
+  ios_base& dec          (ios_base& str);
+  ios_base& hex          (ios_base& str);
+  ios_base& oct          (ios_base& str);
+  // 27.4.5.4 floatfield:
+  ios_base& fixed        (ios_base& str);
+  ios_base& scientific (ios_base& str);
+}
diff --git a/libstdc++-v3/testsuite/27_io/headers/ios/types_std.cc b/libstdc++-v3/testsuite/27_io/headers/ios/types_std.cc
new file mode 100644 (file)
index 0000000..b96720a
--- /dev/null
@@ -0,0 +1,28 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <ios>
+
+namespace gnu
+{
+  typedef std::streamoff t1;
+  typedef std::streamsize t2;
+  typedef std::ios_base t3;
+}
diff --git a/libstdc++-v3/testsuite/27_io/headers/iostream/synopsis.cc b/libstdc++-v3/testsuite/27_io/headers/iostream/synopsis.cc
new file mode 100644 (file)
index 0000000..b2f0e2f
--- /dev/null
@@ -0,0 +1,32 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <iostream>
+
+namespace std {
+  extern istream  cin;
+  extern ostream  cout;
+  extern ostream  cerr;
+  extern ostream  clog;
+  extern wistream  wcin;
+  extern wostream  wcout;
+  extern wostream  wcerr;
+  extern wostream  wclog;
+}
diff --git a/libstdc++-v3/testsuite/27_io/headers/iostream/types_std.cc b/libstdc++-v3/testsuite/27_io/headers/iostream/types_std.cc
new file mode 100644 (file)
index 0000000..881b52b
--- /dev/null
@@ -0,0 +1,34 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <iostream>
+
+namespace gnu
+{
+  using std::cout;
+  using std::cerr;
+  using std::cin;
+  using std::clog;
+
+  using std::wcout;
+  using std::wcerr;
+  using std::wcin;
+  using std::wclog;
+}
diff --git a/libstdc++-v3/testsuite/27_io/headers/istream/synopsis.cc b/libstdc++-v3/testsuite/27_io/headers/istream/synopsis.cc
new file mode 100644 (file)
index 0000000..22ef87e
--- /dev/null
@@ -0,0 +1,34 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <istream>
+
+namespace std {
+  template <class charT, class traits >
+    class basic_istream;
+  typedef basic_istream<char>     istream;
+  typedef basic_istream<wchar_t> wistream;
+  template <class charT, class traits >
+    class basic_iostream;
+  typedef basic_iostream<char>    iostream;
+  typedef basic_iostream<wchar_t> wiostream;
+  template <class charT, class traits>
+    basic_istream<charT,traits>& ws(basic_istream<charT,traits>& is);
+}
diff --git a/libstdc++-v3/testsuite/27_io/headers/istream/types_std.cc b/libstdc++-v3/testsuite/27_io/headers/istream/types_std.cc
new file mode 100644 (file)
index 0000000..16f9680
--- /dev/null
@@ -0,0 +1,30 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <istream>
+
+namespace gnu
+{
+  typedef std::istream t1;
+  typedef std::wistream t2;
+
+  typedef std::iostream t3;
+  typedef std::wiostream t4;
+}
diff --git a/libstdc++-v3/testsuite/27_io/headers/ostream/synopsis.cc b/libstdc++-v3/testsuite/27_io/headers/ostream/synopsis.cc
new file mode 100644 (file)
index 0000000..cfb75fe
--- /dev/null
@@ -0,0 +1,34 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <ostream>
+
+namespace std {
+  template <class charT, class traits>
+    class basic_ostream;
+  typedef basic_ostream<char>     ostream;
+  typedef basic_ostream<wchar_t> wostream;
+  template <class charT, class traits>
+    basic_ostream<charT,traits>& endl(basic_ostream<charT,traits>& os);
+  template <class charT, class traits>
+    basic_ostream<charT,traits>& ends(basic_ostream<charT,traits>& os);
+  template <class charT, class traits>
+    basic_ostream<charT,traits>& flush(basic_ostream<charT,traits>& os);
+}
diff --git a/libstdc++-v3/testsuite/27_io/headers/ostream/types_std.cc b/libstdc++-v3/testsuite/27_io/headers/ostream/types_std.cc
new file mode 100644 (file)
index 0000000..973b2a0
--- /dev/null
@@ -0,0 +1,27 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <ostream>
+
+namespace gnu
+{
+  typedef std::ostream t1;
+  typedef std::wostream t2;
+}
diff --git a/libstdc++-v3/testsuite/27_io/headers/sstream/synopsis.cc b/libstdc++-v3/testsuite/27_io/headers/sstream/synopsis.cc
new file mode 100644 (file)
index 0000000..5fd2186
--- /dev/null
@@ -0,0 +1,43 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <sstream>
+
+namespace std {
+  template <class charT, class traits, class Allocator>
+    class basic_stringbuf;
+  typedef basic_stringbuf<char>     stringbuf;
+  typedef basic_stringbuf<wchar_t> wstringbuf;
+
+  template <class charT, class traits, class Allocator>
+    class basic_istringstream;
+  typedef basic_istringstream<char>     istringstream;
+  typedef basic_istringstream<wchar_t> wistringstream;
+
+  template <class charT, class traits, class Allocator>
+    class basic_ostringstream;
+  typedef basic_ostringstream<char>     ostringstream;
+  typedef basic_ostringstream<wchar_t> wostringstream;
+
+  template <class charT, class traits, class Allocator>
+    class basic_stringstream;
+  typedef basic_stringstream<char>     stringstream;
+  typedef basic_stringstream<wchar_t> wstringstream;
+}
diff --git a/libstdc++-v3/testsuite/27_io/headers/sstream/types_std.cc b/libstdc++-v3/testsuite/27_io/headers/sstream/types_std.cc
new file mode 100644 (file)
index 0000000..c6ebcbb
--- /dev/null
@@ -0,0 +1,36 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <sstream>
+
+namespace gnu
+{
+  typedef std::stringbuf t1;
+  typedef std::wstringbuf t2;
+
+  typedef std::istringstream t3;
+  typedef std::wistringstream t4;
+
+  typedef std::ostringstream t5;
+  typedef std::wostringstream t6;
+
+  typedef std::stringstream t7;
+  typedef std::wstringstream t8;
+}
diff --git a/libstdc++-v3/testsuite/27_io/headers/streambuf/synopsis.cc b/libstdc++-v3/testsuite/27_io/headers/streambuf/synopsis.cc
new file mode 100644 (file)
index 0000000..a8a0730
--- /dev/null
@@ -0,0 +1,28 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <streambuf>
+
+namespace std {
+  template <class charT, class traits>
+    class basic_streambuf;
+  typedef basic_streambuf<char>     streambuf;
+  typedef basic_streambuf<wchar_t> wstreambuf;
+}
diff --git a/libstdc++-v3/testsuite/27_io/headers/streambuf/types_std.cc b/libstdc++-v3/testsuite/27_io/headers/streambuf/types_std.cc
new file mode 100644 (file)
index 0000000..ca11254
--- /dev/null
@@ -0,0 +1,27 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <streambuf>
+
+namespace gnu
+{
+  typedef std::streambuf t1;
+  typedef std::wstreambuf t2;
+}
diff --git a/libstdc++-v3/testsuite/ext/debug_allocator/explicit_instantiation.cc b/libstdc++-v3/testsuite/ext/debug_allocator/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..74731df
--- /dev/null
@@ -0,0 +1,29 @@
+// { dg-do compile }
+
+// 2001-11-25  Phil Edwards  <pme@gcc.gnu.org>
+//
+// Copyright (C) 2001, 2003, 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 20.4.1.1 allocator members
+
+#include <cstdlib>
+#include <ext/debug_allocator.h>
+#include <ext/malloc_allocator.h>
+
+template class __gnu_cxx::debug_allocator<__gnu_cxx::malloc_allocator<int> >;
diff --git a/libstdc++-v3/testsuite/ext/debug_allocator/instantiate.cc b/libstdc++-v3/testsuite/ext/debug_allocator/instantiate.cc
deleted file mode 100644 (file)
index 74731df..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-// { dg-do compile }
-
-// 2001-11-25  Phil Edwards  <pme@gcc.gnu.org>
-//
-// Copyright (C) 2001, 2003, 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 20.4.1.1 allocator members
-
-#include <cstdlib>
-#include <ext/debug_allocator.h>
-#include <ext/malloc_allocator.h>
-
-template class __gnu_cxx::debug_allocator<__gnu_cxx::malloc_allocator<int> >;
diff --git a/libstdc++-v3/testsuite/ext/hash_map/instantiate.cc b/libstdc++-v3/testsuite/ext/hash_map/instantiate.cc
deleted file mode 100644 (file)
index 85f1ba2..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <ext/hash_map>
-
-// { dg-do compile }
-
-template class __gnu_cxx::hash_map<int, char>;
diff --git a/libstdc++-v3/testsuite/ext/hash_map/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/ext/hash_map/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..85f1ba2
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <ext/hash_map>
+
+// { dg-do compile }
+
+template class __gnu_cxx::hash_map<int, char>;
diff --git a/libstdc++-v3/testsuite/ext/hash_set/instantiate.cc b/libstdc++-v3/testsuite/ext/hash_set/instantiate.cc
deleted file mode 100644 (file)
index 9d6f398..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <ext/hash_set>
-
-// { dg-do compile }
-
-template class __gnu_cxx::hash_set<int>;
diff --git a/libstdc++-v3/testsuite/ext/hash_set/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/ext/hash_set/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..9d6f398
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <ext/hash_set>
+
+// { dg-do compile }
+
+template class __gnu_cxx::hash_set<int>;
index ec95fb95264831dd02d02939a2c88d3980c02a22..af66604377e4c6ccf8deb51b04a7b66723668ea3 100644 (file)
 // subdirectory that are meant to be directly included.
 
 #include <ext/algorithm>
+#include <ext/array_allocator.h>
+#include <ext/atomicity.h>
+#include <ext/bitmap_allocator.h>
+#include <ext/codecvt_specializations.h>
+#include <ext/concurrence.h>
+#include <ext/debug_allocator.h>
+#include <ext/enc_filebuf.h>
 #include <ext/functional>
 #include <ext/hash_map>
 #include <ext/hash_set>
 #include <ext/iterator>
+#include <ext/malloc_allocator.h>
 #include <ext/memory>
+#include <ext/mt_allocator.h>
+#include <ext/new_allocator.h>
 #include <ext/numeric>
+#include <ext/pod_char_traits.h>
+#include <ext/pool_allocator.h>
 #include <ext/rb_tree>
 #include <ext/rope>
 #include <ext/slist>
-#include <ext/debug_allocator.h>
-#include <ext/malloc_allocator.h>
-#include <ext/new_allocator.h>
-#include <ext/array_allocator.h>
-#include <ext/mt_allocator.h>
-#include <ext/pool_allocator.h>
 #include <ext/stdio_filebuf.h>
 #include <ext/stdio_sync_filebuf.h>
-
+#include <ext/throw_allocator.h>
+#include <ext/typelist.h>
+#include <ext/type_traits.h>
+#include <ext/vstring.h>
+#include <ext/pb_ds/assoc_container.hpp>
+#include <ext/pb_ds/priority_queue.hpp>
+#include <ext/pb_ds/exception.hpp>
+#include <ext/pb_ds/hash_policy.hpp>
+#include <ext/pb_ds/list_update_policy.hpp>
+#include <ext/pb_ds/tree_policy.hpp>
+#include <ext/pb_ds/trie_policy.hpp>
diff --git a/libstdc++-v3/testsuite/ext/malloc_allocator/explicit_instantiation.cc b/libstdc++-v3/testsuite/ext/malloc_allocator/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..ec48840
--- /dev/null
@@ -0,0 +1,28 @@
+// { dg-do compile }
+
+// 2001-11-25  Phil Edwards  <pme@gcc.gnu.org>
+//
+// Copyright (C) 2001, 2003, 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 20.4.1.1 allocator members
+
+#include <cstdlib>
+#include <ext/malloc_allocator.h>
+
+template class __gnu_cxx::malloc_allocator<int>;
diff --git a/libstdc++-v3/testsuite/ext/malloc_allocator/instantiate.cc b/libstdc++-v3/testsuite/ext/malloc_allocator/instantiate.cc
deleted file mode 100644 (file)
index ec48840..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-// { dg-do compile }
-
-// 2001-11-25  Phil Edwards  <pme@gcc.gnu.org>
-//
-// Copyright (C) 2001, 2003, 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 20.4.1.1 allocator members
-
-#include <cstdlib>
-#include <ext/malloc_allocator.h>
-
-template class __gnu_cxx::malloc_allocator<int>;
diff --git a/libstdc++-v3/testsuite/ext/mt_allocator/explicit_instantiation.cc b/libstdc++-v3/testsuite/ext/mt_allocator/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..4855226
--- /dev/null
@@ -0,0 +1,35 @@
+// { dg-do compile }
+
+// 2001-11-25  Phil Edwards  <pme@gcc.gnu.org>
+//
+// Copyright (C) 2001, 2003, 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 20.4.1.1 allocator members
+
+#include <cstdlib>
+#include <ext/mt_allocator.h>
+
+using namespace __gnu_cxx;
+template class __mt_alloc<int>;
+template class __mt_alloc<short, __common_pool_policy<__pool, false> >;
+template class __mt_alloc<short, __per_type_pool_policy<short, __pool, false> >;
+#ifdef __GTHREADS
+template class __mt_alloc<short, __common_pool_policy<__pool, true> >;
+template class __mt_alloc<short, __per_type_pool_policy<short, __pool, true> >;
+#endif
diff --git a/libstdc++-v3/testsuite/ext/mt_allocator/instantiate.cc b/libstdc++-v3/testsuite/ext/mt_allocator/instantiate.cc
deleted file mode 100644 (file)
index 4855226..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// { dg-do compile }
-
-// 2001-11-25  Phil Edwards  <pme@gcc.gnu.org>
-//
-// Copyright (C) 2001, 2003, 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 20.4.1.1 allocator members
-
-#include <cstdlib>
-#include <ext/mt_allocator.h>
-
-using namespace __gnu_cxx;
-template class __mt_alloc<int>;
-template class __mt_alloc<short, __common_pool_policy<__pool, false> >;
-template class __mt_alloc<short, __per_type_pool_policy<short, __pool, false> >;
-#ifdef __GTHREADS
-template class __mt_alloc<short, __common_pool_policy<__pool, true> >;
-template class __mt_alloc<short, __per_type_pool_policy<short, __pool, true> >;
-#endif
diff --git a/libstdc++-v3/testsuite/ext/pool_allocator/explicit_instantiation.cc b/libstdc++-v3/testsuite/ext/pool_allocator/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..a52ca38
--- /dev/null
@@ -0,0 +1,28 @@
+// { dg-do compile }
+
+// 2001-11-25  Phil Edwards  <pme@gcc.gnu.org>
+//
+// Copyright (C) 2001, 2003, 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 20.4.1.1 allocator members
+
+#include <cstdlib>
+#include <ext/pool_allocator.h>
+
+template class __gnu_cxx::__pool_alloc<int>;
diff --git a/libstdc++-v3/testsuite/ext/pool_allocator/instantiate.cc b/libstdc++-v3/testsuite/ext/pool_allocator/instantiate.cc
deleted file mode 100644 (file)
index a52ca38..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-// { dg-do compile }
-
-// 2001-11-25  Phil Edwards  <pme@gcc.gnu.org>
-//
-// Copyright (C) 2001, 2003, 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 20.4.1.1 allocator members
-
-#include <cstdlib>
-#include <ext/pool_allocator.h>
-
-template class __gnu_cxx::__pool_alloc<int>;
diff --git a/libstdc++-v3/testsuite/ext/slist/instantiate.cc b/libstdc++-v3/testsuite/ext/slist/instantiate.cc
deleted file mode 100644 (file)
index a4dff11..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <ext/slist>
-
-// { dg-do compile }
-
-template class __gnu_cxx::slist<int>;
diff --git a/libstdc++-v3/testsuite/ext/slist/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/ext/slist/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..a4dff11
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <ext/slist>
+
+// { dg-do compile }
+
+template class __gnu_cxx::slist<int>;
diff --git a/libstdc++-v3/testsuite/ext/stdio_filebuf/char/1.cc b/libstdc++-v3/testsuite/ext/stdio_filebuf/char/1.cc
deleted file mode 100644 (file)
index 8ec2a13..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// 2003-02-11  Paolo Carlini  <pcarlini@unitus.it>
-
-// Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// stdio_filebuf.h
-
-#include <ext/stdio_filebuf.h>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// { dg-do compile }
-
-// libstdc++/9320
-namespace __gnu_cxx
-{
-  typedef short type_t;
-  template class stdio_filebuf<type_t, std::char_traits<type_t> >;
-  template class stdio_filebuf<__gnu_test::pod_char, std::char_traits<__gnu_test::pod_char> >;
-} // __gnu_cxx
diff --git a/libstdc++-v3/testsuite/ext/stdio_filebuf/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/ext/stdio_filebuf/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..8ec2a13
--- /dev/null
@@ -0,0 +1,35 @@
+// 2003-02-11  Paolo Carlini  <pcarlini@unitus.it>
+
+// Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// stdio_filebuf.h
+
+#include <ext/stdio_filebuf.h>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// { dg-do compile }
+
+// libstdc++/9320
+namespace __gnu_cxx
+{
+  typedef short type_t;
+  template class stdio_filebuf<type_t, std::char_traits<type_t> >;
+  template class stdio_filebuf<__gnu_test::pod_char, std::char_traits<__gnu_test::pod_char> >;
+} // __gnu_cxx
diff --git a/libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/1.cc
deleted file mode 100644 (file)
index 0bb95ad..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of __versa_string
-
-#include <ext/vstring.h>
-
-// { dg-do compile }
-
-// libstdc++/21770
-template class __gnu_cxx::__versa_string<int, std::char_traits<int>,
-                                        std::allocator<char> >;
diff --git a/libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/2.cc
deleted file mode 100644 (file)
index ee22b8b..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of __versa_string
-
-#include <ext/vstring.h>
-
-// { dg-do compile }
-
-// libstdc++/21770
-template class __gnu_cxx::__versa_string<int, std::char_traits<int>,
-                                        std::allocator<char>,
-                                        __gnu_cxx::__sso_string_base>;
-
-template class __gnu_cxx::__versa_string<int, std::char_traits<int>,
-                                        std::allocator<char>,
-                                        __gnu_cxx::__rc_string_base>;
diff --git a/libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/char/1.cc b/libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/char/1.cc
deleted file mode 100644 (file)
index 5d840e5..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of __versa_string
-
-#include <ext/vstring.h>
-
-// { dg-do compile }
-
-template class __gnu_cxx::__versa_string<char, std::char_traits<char>,
-                                        std::allocator<char>,
-                                        __gnu_cxx::__sso_string_base>;
-
-template class __gnu_cxx::__versa_string<char, std::char_traits<char>,
-                                        std::allocator<char>,
-                                        __gnu_cxx::__rc_string_base>;
diff --git a/libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/wchar_t/1.cc b/libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/wchar_t/1.cc
deleted file mode 100644 (file)
index 7893c33..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of __versa_string
-
-#include <ext/vstring.h>
-
-// { dg-do compile }
-
-template class __gnu_cxx::__versa_string<wchar_t, std::char_traits<wchar_t>,
-                                        std::allocator<wchar_t>,
-                                        __gnu_cxx::__sso_string_base>;
-
-template class __gnu_cxx::__versa_string<wchar_t, std::char_traits<wchar_t>,
-                                        std::allocator<wchar_t>,
-                                        __gnu_cxx::__rc_string_base>;
diff --git a/libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..0bb95ad
--- /dev/null
@@ -0,0 +1,36 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of __versa_string
+
+#include <ext/vstring.h>
+
+// { dg-do compile }
+
+// libstdc++/21770
+template class __gnu_cxx::__versa_string<int, std::char_traits<int>,
+                                        std::allocator<char> >;
diff --git a/libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/2.cc
new file mode 100644 (file)
index 0000000..ee22b8b
--- /dev/null
@@ -0,0 +1,41 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of __versa_string
+
+#include <ext/vstring.h>
+
+// { dg-do compile }
+
+// libstdc++/21770
+template class __gnu_cxx::__versa_string<int, std::char_traits<int>,
+                                        std::allocator<char>,
+                                        __gnu_cxx::__sso_string_base>;
+
+template class __gnu_cxx::__versa_string<int, std::char_traits<int>,
+                                        std::allocator<char>,
+                                        __gnu_cxx::__rc_string_base>;
diff --git a/libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/char/1.cc b/libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/char/1.cc
new file mode 100644 (file)
index 0000000..5d840e5
--- /dev/null
@@ -0,0 +1,40 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of __versa_string
+
+#include <ext/vstring.h>
+
+// { dg-do compile }
+
+template class __gnu_cxx::__versa_string<char, std::char_traits<char>,
+                                        std::allocator<char>,
+                                        __gnu_cxx::__sso_string_base>;
+
+template class __gnu_cxx::__versa_string<char, std::char_traits<char>,
+                                        std::allocator<char>,
+                                        __gnu_cxx::__rc_string_base>;
diff --git a/libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/wchar_t/1.cc b/libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/wchar_t/1.cc
new file mode 100644 (file)
index 0000000..7893c33
--- /dev/null
@@ -0,0 +1,40 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of __versa_string
+
+#include <ext/vstring.h>
+
+// { dg-do compile }
+
+template class __gnu_cxx::__versa_string<wchar_t, std::char_traits<wchar_t>,
+                                        std::allocator<wchar_t>,
+                                        __gnu_cxx::__sso_string_base>;
+
+template class __gnu_cxx::__versa_string<wchar_t, std::char_traits<wchar_t>,
+                                        std::allocator<wchar_t>,
+                                        __gnu_cxx::__rc_string_base>;
diff --git a/libstdc++-v3/testsuite/tr1/2_general_utilities/headers/functional/synopsis.cc b/libstdc++-v3/testsuite/tr1/2_general_utilities/headers/functional/synopsis.cc
new file mode 100644 (file)
index 0000000..cd6e2b0
--- /dev/null
@@ -0,0 +1,35 @@
+// { dg-do compile }
+
+// 2007-02-04  Benjamin Kosnik  <bkoz@redhat.com>
+//
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include <tr1/functional>
+
+namespace std {
+namespace tr1 {
+
+  template <class T> class reference_wrapper;
+  template <class T> reference_wrapper<T> ref(T&);
+  template <class T> reference_wrapper<const T> cref(const T&);
+  template <class T> reference_wrapper<T> ref(reference_wrapper<T>);
+  template <class T> reference_wrapper<const T> cref(reference_wrapper<T>);
+
+} // namespace tr1
+} // namespace std
diff --git a/libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/synopsis.cc b/libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/synopsis.cc
new file mode 100644 (file)
index 0000000..d3f1520
--- /dev/null
@@ -0,0 +1,66 @@
+// { dg-do compile }
+
+// 2007-02-04  Benjamin Kosnik  <bkoz@redhat.com>
+//
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include <tr1/memory>
+
+namespace std {
+namespace tr1 {
+
+  // [2.2.2] Class bad_weak_ptr
+  class bad_weak_ptr;
+
+  // [2.2.3] Class template shared_ptr
+  template<class T> class shared_ptr;
+
+  // [2.2.3.6] shared_ptr comparisons
+  template<class T, class U> bool operator==(shared_ptr<T> const& a, shared_ptr<U> const& b);
+  template<class T, class U> bool operator!=(shared_ptr<T> const& a, shared_ptr<U> const& b);
+  template<class T, class U> bool operator<(shared_ptr<T> const& a, shared_ptr<U> const& b);
+
+  // [2.2.3.8] shared_ptr specialized algorithms
+  template<class T> void swap(shared_ptr<T>& a, shared_ptr<T>& b);
+
+  // [2.2.3.9] shared_ptr casts
+  template<class T, class U> shared_ptr<T> static_pointer_cast(shared_ptr<U> const& r);
+  template<class T, class U> shared_ptr<T> dynamic_pointer_cast(shared_ptr<U> const& r);
+  template<class T, class U> shared_ptr<T> const_pointer_cast(shared_ptr<U> const& r);
+
+  // [2.2.3.7] shared_ptr I/O
+  template<class E, class T, class Y>
+     basic_ostream<E, T>& operator<< (basic_ostream<E, T>& os, shared_ptr<Y> const& p);
+
+  // [2.2.3.10] shared_ptr get_deleter
+  template<class D, class T> D* get_deleter(shared_ptr<T> const& p);
+
+  // [2.2.4] Class template weak_ptr
+  template<class T> class weak_ptr;
+
+  // [2.2.4.6] weak_ptr comparison
+  template<class T, class U> bool operator<(weak_ptr<T> const& a, weak_ptr<U> const& b);
+
+  // [2.2.4.7] weak_ptr specialized algorithms
+  template<class T> void swap(weak_ptr<T>& a, weak_ptr<T>& b);
+
+  // [2.2.5] Class enable_shared_from_this
+  template<class T> class enable_shared_from_this;
+} // namespace tr1
+} // namespace std
diff --git a/libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/types_std_tr1.cc b/libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/types_std_tr1.cc
new file mode 100644 (file)
index 0000000..3a3717a
--- /dev/null
@@ -0,0 +1,26 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <tr1/memory>
+
+namespace gnu
+{
+  using std::tr1::bad_weak_ptr;
+}
diff --git a/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/enable_shared_from_this/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/enable_shared_from_this/explicit_instantiation/1.cc
deleted file mode 100644 (file)
index b497ebb..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (C) 2006 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// TR1 2.2.5 Template class enable_shared_from_this [tr.util.smartptr.enab]
-
-#include <tr1/memory>
-#include <testsuite_tr1.h>
-
-// { dg-do compile }
-
-using namespace __gnu_test;
-using std::tr1::enable_shared_from_this;
-template class enable_shared_from_this<int>;
-template class enable_shared_from_this<void>;
-template class enable_shared_from_this<ClassType>;
-template class enable_shared_from_this<IncompleteClass>;
diff --git a/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/enable_shared_from_this/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/enable_shared_from_this/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..b497ebb
--- /dev/null
@@ -0,0 +1,31 @@
+// Copyright (C) 2006 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// TR1 2.2.5 Template class enable_shared_from_this [tr.util.smartptr.enab]
+
+#include <tr1/memory>
+#include <testsuite_tr1.h>
+
+// { dg-do compile }
+
+using namespace __gnu_test;
+using std::tr1::enable_shared_from_this;
+template class enable_shared_from_this<int>;
+template class enable_shared_from_this<void>;
+template class enable_shared_from_this<ClassType>;
+template class enable_shared_from_this<IncompleteClass>;
diff --git a/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/shared_ptr/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/shared_ptr/explicit_instantiation/1.cc
deleted file mode 100644 (file)
index 015e22e..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (C) 2006 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// TR1 2.2.2 Template class shared_ptr [tr.util.smartptr.shared]
-
-#include <tr1/memory>
-#include <testsuite_tr1.h>
-
-// { dg-do compile }
-
-using namespace __gnu_test;
-using std::tr1::shared_ptr;
-template class shared_ptr<int>;
-template class shared_ptr<void>;
-template class shared_ptr<ClassType>;
-template class shared_ptr<IncompleteClass>;
diff --git a/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/shared_ptr/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/shared_ptr/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..015e22e
--- /dev/null
@@ -0,0 +1,31 @@
+// Copyright (C) 2006 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// TR1 2.2.2 Template class shared_ptr [tr.util.smartptr.shared]
+
+#include <tr1/memory>
+#include <testsuite_tr1.h>
+
+// { dg-do compile }
+
+using namespace __gnu_test;
+using std::tr1::shared_ptr;
+template class shared_ptr<int>;
+template class shared_ptr<void>;
+template class shared_ptr<ClassType>;
+template class shared_ptr<IncompleteClass>;
diff --git a/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/weak_ptr/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/weak_ptr/explicit_instantiation/1.cc
deleted file mode 100644 (file)
index 6c22459..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (C) 2006 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// TR1 2.2.4 Template class weak_ptr [tr.util.smartptr.weak]
-
-#include <tr1/memory>
-#include <testsuite_tr1.h>
-
-// { dg-do compile }
-
-using namespace __gnu_test;
-using std::tr1::weak_ptr;
-template class weak_ptr<int>;
-template class weak_ptr<void>;
-template class weak_ptr<ClassType>;
-template class weak_ptr<IncompleteClass>;
diff --git a/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/weak_ptr/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/weak_ptr/requirements/explicit_instantiation/1.cc
new file mode 100644 (file)
index 0000000..6c22459
--- /dev/null
@@ -0,0 +1,31 @@
+// Copyright (C) 2006 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// TR1 2.2.4 Template class weak_ptr [tr.util.smartptr.weak]
+
+#include <tr1/memory>
+#include <testsuite_tr1.h>
+
+// { dg-do compile }
+
+using namespace __gnu_test;
+using std::tr1::weak_ptr;
+template class weak_ptr<int>;
+template class weak_ptr<void>;
+template class weak_ptr<ClassType>;
+template class weak_ptr<IncompleteClass>;
diff --git a/libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/synopsis.cc b/libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/synopsis.cc
new file mode 100644 (file)
index 0000000..836c670
--- /dev/null
@@ -0,0 +1,80 @@
+// { dg-do compile }
+
+// 2007-02-04  Benjamin Kosnik  <bkoz@redhat.com>
+//
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include <tr1/functional>
+
+namespace std {
+namespace tr1 {
+
+  // [3.4] class template result_of
+  template <class FunctionCallType> class result_of;
+
+#if 0
+  // [3.5] function template mem_fn
+  template<class R, class T> unspecified mem_fn(R T::* pm);
+#endif
+
+  // [3.6] function object binders
+  template<class T> struct is_bind_expression;
+  template<class T> struct is_placeholder;
+
+#if 0
+  template<class F, class T1, ..., class TN> 
+  unspecified bind(F f, T1 t1, ..., TN tN);
+
+  template<class R, class F, class T1, ..., class Tn > 
+  unspecified bind(F f, T1 t1, ..., TN tN);
+
+  namespace placeholders {
+     // M is the implementation-defined number of placeholders
+     extern unspecified _1;
+     extern unspecified _2;
+                     .
+                     .
+                     .
+     extern unspecified _M;
+  }
+#endif
+
+  // [3.7] polymorphic function wrappers
+  class bad_function_call;
+  template<class Function> class function;
+  template<class Function>
+     void swap(function<Function>&, function<Function>&);
+  template<class Function1, class Function2>
+     void operator==(const function<Function1>&, const function<Function2>&);
+  template<class Function1, class Function2>
+     void operator!=(const function<Function1>&, const function<Function2>&);
+
+#if 0
+  template <class Function>
+     bool operator==(const function<Function>&, unspecified-null-pointer-type);
+  template <class Function>
+     bool operator==(unspecified-null-pointer-type, const function<Function>&);
+  template <class Function>
+     bool operator!=(const function<Function>&, unspecified-null-pointer-type);
+  template <class Function>
+     bool operator!=(unspecified-null-pointer-type, const function<Function>&);
+#endif
+
+} // namespace tr1
+} // namespace std
diff --git a/libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/types_std_tr1.cc b/libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/types_std_tr1.cc
new file mode 100644 (file)
index 0000000..b61e5f2
--- /dev/null
@@ -0,0 +1,26 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <tr1/functional>
+
+namespace gnu
+{
+  using std::tr1::bad_function_call;
+}
diff --git a/libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/using_namespace_std_tr1_placeholders.cc b/libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/using_namespace_std_tr1_placeholders.cc
new file mode 100644 (file)
index 0000000..faddc0d
--- /dev/null
@@ -0,0 +1,26 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <tr1/tuple>
+
+namespace gnu
+{
+  using namespace std::tr1::placeholders;
+}
diff --git a/libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/synopsis.cc b/libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/synopsis.cc
new file mode 100644 (file)
index 0000000..83ea1ac
--- /dev/null
@@ -0,0 +1,104 @@
+// { dg-do compile }
+
+// 2007-02-04  Benjamin Kosnik  <bkoz@redhat.com>
+//
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include <tr1/type_traits>
+
+namespace std {
+namespace tr1 {
+
+  // [4.3] helper class:
+  template <class T, T v> struct integral_constant;
+  typedef integral_constant<bool, true> true_type;
+  typedef integral_constant<bool, false> false_type;
+
+  // [4.5.1] primary type categories:
+  template <class T> struct is_void;
+  template <class T> struct is_integral;
+  template <class T> struct is_floating_point;
+  template <class T> struct is_array;
+  template <class T> struct is_pointer;
+  template <class T> struct is_reference;
+  template <class T> struct is_member_object_pointer;
+  template <class T> struct is_member_function_pointer;
+  template <class T> struct is_enum;
+  template <class T> struct is_union;
+  template <class T> struct is_class;
+  template <class T> struct is_function;
+
+  // [4.5.2] composite type categories:
+  template <class T> struct is_arithmetic;
+  template <class T> struct is_fundamental;
+  template <class T> struct is_object;
+  template <class T> struct is_scalar;
+  template <class T> struct is_compound;
+  template <class T> struct is_member_pointer;
+
+  // [4.5.3] type properties:
+  template <class T> struct is_const;
+  template <class T> struct is_volatile;
+  template <class T> struct is_pod;
+  template <class T> struct is_empty;
+  template <class T> struct is_polymorphic;
+  template <class T> struct is_abstract;
+  template <class T> struct has_trivial_constructor;
+  template <class T> struct has_trivial_copy;
+  template <class T> struct has_trivial_assign;
+  template <class T> struct has_trivial_destructor;
+  template <class T> struct has_nothrow_constructor;
+  template <class T> struct has_nothrow_copy;
+  template <class T> struct has_nothrow_assign;
+  template <class T> struct has_virtual_destructor;
+  template <class T> struct is_signed;
+  template <class T> struct is_unsigned;
+  template <class T> struct alignment_of;
+  template <class T> struct rank;
+  template <class T, unsigned I> struct extent;
+
+  // [4.6] type relations:
+  template <class T, class U> struct is_same;
+  template <class Base, class Derived> struct is_base_of;
+  template <class From, class To> struct is_convertible;
+
+  // [4.7.1] const-volatile modifications:
+  template <class T> struct remove_const;
+  template <class T> struct remove_volatile;
+  template <class T> struct remove_cv;
+  template <class T> struct add_const;
+  template <class T> struct add_volatile;
+  template <class T> struct add_cv;
+
+  // [4.7.2] reference modifications:
+  template <class T> struct remove_reference;
+  template <class T> struct add_reference;
+
+  // [4.7.3] array modifications:
+  template <class T> struct remove_extent;
+  template <class T> struct remove_all_extents;
+
+  // [4.7.4] pointer modifications:
+  template <class T> struct remove_pointer;
+  template <class T> struct add_pointer;
+
+  // [4.8] other transformations:
+  template <std::size_t Len, std::size_t Align> struct aligned_storage;
+} // namespace tr1
+} // namespace std
diff --git a/libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/types_std_tr1.cc b/libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/types_std_tr1.cc
new file mode 100644 (file)
index 0000000..bdb3a6e
--- /dev/null
@@ -0,0 +1,27 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <tr1/type_traits>
+
+namespace gnu
+{
+  using std::tr1::true_type;
+  using std::tr1::false_type;
+}
diff --git a/libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/synopsis.cc b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/synopsis.cc
new file mode 100644 (file)
index 0000000..fe0c2df
--- /dev/null
@@ -0,0 +1,97 @@
+// { dg-do compile }
+
+// 2007-02-04  Benjamin Kosnik  <bkoz@redhat.com>
+//
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include <tr1/random>
+
+namespace std {
+namespace tr1 {
+
+  // [5.1.3] Class template variate_generator
+  template<class UniformRandomNumberGenerator, class Distribution>
+  class variate_generator;
+
+  // [5.1.4.1] Class template linear_congruential
+  template<class IntType, IntType a, IntType c, IntType m>
+  class linear_congruential;
+
+  // [5.1.4.2] Class template mersenne_twister
+  template<class UIntType, int w, int n, int m, int r,
+          UIntType a, int u, int s, UIntType b, int t, UIntType c, int l>
+  class mersenne_twister;
+
+  // [5.1.4.3] Class template subtract_with_carry
+  template<class IntType, IntType m, int s, int r>
+  class subtract_with_carry;
+
+  // [5.1.4.4] Class template subtract_with_carry_01
+  template<class RealType, int w, int s, int r>
+  class subtract_with_carry_01;
+
+  // [5.1.4.5] Class template discard_block
+  template<class UniformRandomNumberGenerator, int p, int r>
+  class discard_block;
+
+  // [5.1.4.6] Class template xor_combine
+  template<class UniformRandomNumberGenerator1, int s1,
+          class UniformRandomNumberGenerator2, int s2>
+  class xor_combine;
+
+  // [5.1.6] Class random_device
+  class random_device;
+
+  // [5.1.7.1] Class template uniform_int
+  template<class IntType>
+  class uniform_int;
+
+  // [5.1.7.2] Class bernoulli_distribution
+  class bernoulli_distribution;
+
+  // [5.1.7.3] Class template geometric_distribution
+  template<class IntType, class RealType>
+  class geometric_distribution;
+
+  // [5.1.7.4] Class template poisson_distribution
+  template<class IntType, class RealType>
+  class poisson_distribution;
+
+  // [5.1.7.5] Class template binomial_distribution
+  template<class IntType, class RealType>
+  class binomial_distribution;
+
+  // [5.1.7.6] Class template uniform_real
+  template<class RealType>
+  class uniform_real;
+
+  // [5.1.7.7] Class template exponential_distribution
+  template<class RealType>
+  class exponential_distribution;
+
+  // [5.1.7.8] Class template normal_distribution
+  template<class RealType>
+  class normal_distribution;
+
+  // [5.1.7.9] Class template gamma_distribution
+  template<class RealType>
+  class gamma_distribution;
+
+} // namespace tr1
+} // namespace std
diff --git a/libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/types_std_tr1.cc b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/types_std_tr1.cc
new file mode 100644 (file)
index 0000000..2fd2149
--- /dev/null
@@ -0,0 +1,27 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <tr1/random>
+
+namespace gnu
+{
+  using std::tr1::random_device;
+  using std::tr1::bernoulli_distribution;
+}
diff --git a/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/requirements/requirements.cc b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/requirements/requirements.cc
deleted file mode 100644 (file)
index ced6ba1..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-// { dg-do compile }
-//
-// 2006-06-04  Stephen M. Webb <stephen.webb@bregmasoft.com>
-//
-// Copyright (C) 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 5.1.4.5 Class template linear_congruential
-// 5.1.1 [1] Table 15
-
-#include <tr1/random>
-
-void
-test01() 
-{ 
-  using namespace std::tr1;
-  
-  typedef discard_block
-    <
-    subtract_with_carry<long, (1 << 24), 10, 24>,
-    389, 24
-    > test_type;
-  
-  typedef test_type::result_type result_type;
-}
diff --git a/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/requirements/typedefs.cc b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/requirements/typedefs.cc
new file mode 100644 (file)
index 0000000..ced6ba1
--- /dev/null
@@ -0,0 +1,40 @@
+// { dg-do compile }
+//
+// 2006-06-04  Stephen M. Webb <stephen.webb@bregmasoft.com>
+//
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 5.1.4.5 Class template linear_congruential
+// 5.1.1 [1] Table 15
+
+#include <tr1/random>
+
+void
+test01() 
+{ 
+  using namespace std::tr1;
+  
+  typedef discard_block
+    <
+    subtract_with_carry<long, (1 << 24), 10, 24>,
+    389, 24
+    > test_type;
+  
+  typedef test_type::result_type result_type;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/array/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/tr1/6_containers/array/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..7ab5c2a
--- /dev/null
@@ -0,0 +1,36 @@
+// { dg-do compile }
+
+// 2004-10-20  Benjamin Kosnik  <bkoz@redhat.com>
+//
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 6.2.2 Class template array
+
+#include <tr1/array>
+
+template class std::tr1::array<int, 5>;
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/array/requirements/instantiate.cc b/libstdc++-v3/testsuite/tr1/6_containers/array/requirements/instantiate.cc
deleted file mode 100644 (file)
index 7ab5c2a..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-// { dg-do compile }
-
-// 2004-10-20  Benjamin Kosnik  <bkoz@redhat.com>
-//
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 6.2.2 Class template array
-
-#include <tr1/array>
-
-template class std::tr1::array<int, 5>;
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/hash/24799.cc b/libstdc++-v3/testsuite/tr1/6_containers/hash/24799.cc
new file mode 100644 (file)
index 0000000..90a336b
--- /dev/null
@@ -0,0 +1,74 @@
+// 2005-11-11  Paolo Carlini  <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.3 Class template hash
+
+#include <tr1/functional>
+#include <string>
+#include <tr1/type_traits>
+#include <testsuite_tr1.h>
+#include <testsuite_hooks.h>
+
+template<typename T>
+  void
+  do_test()
+  {
+    bool test __attribute__((unused)) = true;
+
+    using std::tr1::is_same;
+    using __gnu_test::test_relationship;
+    
+    typedef typename std::tr1::hash<T>::argument_type  argument_type;
+    typedef typename std::tr1::hash<T>::result_type    result_type;
+    
+    VERIFY( (test_relationship<is_same, argument_type, T>(true)) );
+    VERIFY( (test_relationship<is_same, result_type, std::size_t>(true)) );
+  }
+  
+// libstdc++/24799
+void test01()
+{
+  do_test<bool>();
+  do_test<char>();
+  do_test<signed char>();
+  do_test<unsigned char>();
+  do_test<short>();
+  do_test<int>();
+  do_test<long>();
+  do_test<unsigned short>();
+  do_test<unsigned int>();
+  do_test<unsigned long>();
+  do_test<int*>();
+  do_test<std::string>();
+  do_test<float>();
+  do_test<double>();
+  do_test<long double>();
+
+#ifdef _GLIBCXX_USE_WCHAR_T
+  do_test<wchar_t>();
+  do_test<std::wstring>();
+#endif
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/base_classes.cc b/libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/base_classes.cc
new file mode 100644 (file)
index 0000000..4a4916c
--- /dev/null
@@ -0,0 +1,33 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <tr1/functional>
+
+void test01()
+{
+  // Check for required base class.
+  typedef long value_type;
+  typedef std::tr1::hash<value_type> test_type;
+  typedef std::unary_function<value_type, std::size_t> base_type;
+  
+  test_type b;
+  const test_type& obj = b;
+  const base_type* base __attribute__((unused)) = &obj;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..382d69f
--- /dev/null
@@ -0,0 +1,51 @@
+// { dg-do compile }
+
+// 2005-02-17  Matt Austern  <austern@apple.com>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.3 class template hash
+
+#include <string>
+#include <tr1/functional>
+
+using namespace std::tr1;
+
+// Verify that we can instantiate hash for every required type.
+template class hash<bool>;
+template class hash<char>;
+template class hash<signed char>;
+template class hash<unsigned char>;
+template class hash<short>;
+template class hash<int>;
+template class hash<long>;
+template class hash<unsigned short>;
+template class hash<unsigned int>;
+template class hash<unsigned long>;
+template class hash<float>;
+template class hash<double>;
+template class hash<long double>;
+template class hash<void*>;
+template class hash<std::string>;
+
+#ifdef _GLIBCXX_USE_WCHAR_T
+template class hash<wchar_t>;
+template class hash<std::wstring>;
+#endif
+
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/headers/array/synopsis.cc b/libstdc++-v3/testsuite/tr1/6_containers/headers/array/synopsis.cc
new file mode 100644 (file)
index 0000000..463f3ac
--- /dev/null
@@ -0,0 +1,52 @@
+// { dg-do compile }
+
+// 2007-02-04  Benjamin Kosnik  <bkoz@redhat.com>
+//
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include <tr1/array>
+
+namespace std {
+namespace tr1 {
+
+  // [6.2.2] Class template array
+  template <class T, size_t N > struct array;
+
+  // Array comparisons
+  template <class T, size_t N>  bool  operator==(const array<T,N>& x, const array<T,N>& y);
+  template <class T,  size_t N>  bool  operator!=(const array<T,N>& x, const array<T,N>& y);
+  template <class T,  size_t N>  bool  operator<(const array<T,N>& x, const array<T,N>& y);
+  template <class T,  size_t N>  bool  operator>(const array<T,N>& x, const array<T,N>& y);
+  template <class T,  size_t N>  bool  operator<=(const array<T,N>& x, const array<T,N>& y);
+  template <class T,  size_t N>  bool  operator>=(const array<T,N>& x, const array<T,N>& y);
+
+  // [6.2.2.2] Specialized algorithms
+  template <class T, size_t N > void swap(array<T,N>& x, array<T,N>& y);
+
+  // [6.2.2.5] Tuple interface to class template array
+  template <class T> class tuple_size; // forward declaration
+  template <int I, class T> class tuple_element; // forward declaration
+  template <class T, size_t N>  struct tuple_size<array<T, N> >;
+  template <int I, class T, size_t N> struct tuple_element<I, array<T, N> >;
+  template <int I, class T, size_t N> T& get(array<T, N>&);
+  template <int I, class T, size_t N> const T& get(const array<T, N>&);
+
+} // namespace tr1
+} // namespace std
+
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/headers/functional/synopsis.cc b/libstdc++-v3/testsuite/tr1/6_containers/headers/functional/synopsis.cc
new file mode 100644 (file)
index 0000000..682593c
--- /dev/null
@@ -0,0 +1,51 @@
+// { dg-do compile }
+
+// 2007-02-04  Benjamin Kosnik  <bkoz@redhat.com>
+//
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include <tr1/functional>
+
+namespace std {
+namespace tr1 {
+
+  // [6.3.3] Hash function base template
+  template <class T> struct hash;
+
+  // Hash function specializations
+  template <> struct hash<bool>;
+  template <> struct hash<char>;
+  template <> struct hash<signed char>;
+  template <> struct hash<unsigned char>;
+  template <> struct hash<wchar_t>;
+  template <> struct hash<short>;
+  template <> struct hash<unsigned short>;
+  template <> struct hash<int>;
+  template <> struct hash<unsigned int>;
+  template <> struct hash<long>;
+  template <> struct hash<unsigned long>;
+  template <> struct hash<float>;
+  template <> struct hash<double>;
+  template <> struct hash<long double>;
+  template<class T> struct hash<T*>;
+  template <> struct hash<std::string>;
+  template <> struct hash<std::wstring>;
+
+} // namespace tr1
+} // namespace std
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/synopsis.cc b/libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/synopsis.cc
new file mode 100644 (file)
index 0000000..72fb929
--- /dev/null
@@ -0,0 +1,71 @@
+// { dg-do compile }
+
+// 2007-02-04  Benjamin Kosnik  <bkoz@redhat.com>
+//
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include <tr1/tuple>
+
+namespace std {
+namespace tr1 {
+
+#if 0
+  // [6.1.3] Class template tuple
+  template <class T1 = unspecified ,
+           class T2 = unspecified ,
+           ...,
+           class TM = unspecified > class tuple;
+
+  // [6.1.3.2] Tuple creation functions
+  const unspecified ignore;
+  template<class T1, class T2, ..., class TN>
+  tuple<V1, V2, ..., VN> make_tuple(const T1&, const T2& , ..., const TN&);
+
+  template<class T1, class T2, ..., class TN>
+  tuple<T1&, T2&, ..., TN&> tie(T1&, T2& , ..., TN&);
+#endif
+
+  // [6.1.3.3] Tuple helper classes
+  template <class T> class tuple_size;
+  template <int I, class T> class tuple_element;
+
+#if 0
+  // [6.1.3.4] Element access
+  template <int I, class T1, class T2, ..., class TN>
+  RJ get(tuple<T1, T2, ..., TN>&);
+  template <int I, class T1, class T2, ..., class TN>
+  PJ get(const tuple<T1, T2, ..., TN>&);
+
+  // [6.1.3.5] relational operators
+  template<class T1, class T2, ..., class TM, class U1, class U2, ..., class UM>
+  bool operator==(const tuple<T1, T2, ..., TM>&, const tuple<U1, U2, ..., UM>&);
+  template<class T1, class T2, ..., class TM, class U1, class U2, ..., class UM>
+  bool operator<(const tuple<T1, T2, ..., TM>&, const tuple<U1, U2, ..., UM>&);
+  template<class T1, class T2, ..., class TM, class U1, class U2, ..., class UM>
+  bool operator!=(const tuple<T1, T2, ..., TM>&, const tuple<U1, U2, ..., UM>&);
+  template<class T1, class T2, ..., class TM, class U1, class U2, ..., class UM>
+  bool operator>(const tuple<T1, T2, ..., TM>&, const tuple<U1, U2, ..., UM>&);
+  template<class T1, class T2, ..., class TM, class U1, class U2, ..., class UM>
+  bool operator<=(const tuple<T1, T2, ..., TM>&, const tuple<U1, U2, ..., UM>&);
+  template<class T1, class T2, ..., class TM, class U1, class U2, ..., class UM>
+  bool operator>=(const tuple<T1, T2, ..., TM>&, const tuple<U1, U2, ..., UM>&);
+#endif
+
+} // namespace tr1
+} // namespace std
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/types_std_tr1.cc b/libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/types_std_tr1.cc
new file mode 100644 (file)
index 0000000..2c543f0
--- /dev/null
@@ -0,0 +1,26 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <tr1/tuple>
+
+namespace gnu
+{
+  using std::tr1::ignore;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_map/synopsis.cc b/libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_map/synopsis.cc
new file mode 100644 (file)
index 0000000..45080fc
--- /dev/null
@@ -0,0 +1,54 @@
+// { dg-do compile { xfail *-*-* } }
+// { dg-excess-errors "" }
+
+// 2007-02-04  Benjamin Kosnik  <bkoz@redhat.com>
+//
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include <tr1/unordered_map>
+
+namespace std {
+namespace tr1 {
+
+  // [6.3.4.4] Class template unordered_map
+  template <class Key,
+           class T,
+           class Hash,
+           class Pred,
+           class Alloc>
+  class unordered_map;
+
+  // [6.3.4.6] Class template unordered_multimap
+  template <class Key,
+           class T,
+           class Hash,
+           class Pred,
+           class Alloc>
+  class unordered_multimap;
+
+template <class Key, class T, class Hash, class Pred, class Alloc>
+  void swap(unordered_map<Key, T, Hash, Pred, Alloc>& x,
+            unordered_map<Key, T, Hash, Pred, Alloc>& y);
+template <class Key, class T, class Hash, class Pred, class Alloc>
+  void swap(unordered_multimap<Key, T, Hash, Pred, Alloc>& x,
+            unordered_multimap<Key, T, Hash, Pred, Alloc>& y);
+
+} // namespace tr1
+} // namespace std
+
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_set/synopsis.cc b/libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_set/synopsis.cc
new file mode 100644 (file)
index 0000000..29cced0
--- /dev/null
@@ -0,0 +1,53 @@
+// { dg-do compile { xfail *-*-* } }
+// { dg-excess-errors "" }
+
+// 2007-02-04  Benjamin Kosnik  <bkoz@redhat.com>
+//
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include <tr1/unordered_set>
+
+namespace std {
+namespace tr1 {
+
+  // [6.3.4.3] Class template unordered_set
+  template <class Value,
+           class Hash,
+           class Pred,
+           class Alloc>
+     class unordered_set;
+
+  // [6.3.4.5] Class template unordered_multiset
+  template <class Value,
+           class Hash,
+           class Pred,
+           class Alloc>
+     class unordered_multiset;
+
+  template <class Value, class Hash, class Pred, class Alloc>
+     void swap(unordered_set<Value, Hash, Pred, Alloc>& x,
+              unordered_set<Value, Hash, Pred, Alloc>& y);
+
+  template <class Value, class Hash, class Pred, class Alloc>
+     void swap(unordered_multiset<Value, Hash, Pred, Alloc>& x,
+              unordered_multiset<Value, Hash, Pred, Alloc>& y);
+
+} // namespace tr1
+} // namespace std
+
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/tuple/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/tr1/6_containers/tuple/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..c2a2321
--- /dev/null
@@ -0,0 +1,34 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <tr1/tuple>
+
+template class std::tr1::tuple<short, int, double>;
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/23781.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/23781.cc
deleted file mode 100644 (file)
index a547993..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-// 2005-09-10  Paolo Carlini  <pcarlini@suse.de>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-//
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// { dg-do compile }
-
-// libstdc++/23781
-#include <tr1/unordered_map>
-#include <tr1/unordered_set>
-
-std::tr1::unordered_map<int, int>::iterator it1 = NULL; // { dg-error "conversion" }
-std::tr1::unordered_map<int, int>::const_iterator cit1 = NULL; // { dg-error "conversion" }
-std::tr1::unordered_multimap<int, int>::iterator it2 = NULL; // { dg-error "conversion" }
-std::tr1::unordered_multimap<int, int>::const_iterator cit2 = NULL; // { dg-error "conversion" }
-std::tr1::unordered_multiset<int>::iterator it3 = NULL; // { dg-error "conversion" }
-std::tr1::unordered_multiset<int>::const_iterator cit3 = NULL; // { dg-error "conversion" }
-std::tr1::unordered_set<int>::iterator it4 = NULL; // { dg-error "conversion" }
-std::tr1::unordered_set<int>::const_iterator cit4 = NULL; // { dg-error "conversion" }
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-map.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-map.cc
deleted file mode 100644 (file)
index 459ace4..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright (C) 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without Pred 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.4  Class template unordered_map
-
-#include <tr1/unordered_map>
-#include <testsuite_hooks.h>
-
-// libstdc++/29134
-void test01()
-{
-  bool test __attribute__((unused)) = true;
-
-  std::tr1::unordered_map<int, int> um;
-
-  VERIFY( um.max_size() == um.get_allocator().max_size() );
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-multimap.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-multimap.cc
deleted file mode 100644 (file)
index af41fa1..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright (C) 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without Pred 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.6  Class template unordered_multimap
-
-#include <tr1/unordered_map>
-#include <testsuite_hooks.h>
-
-// libstdc++/29134
-void test01()
-{
-  bool test __attribute__((unused)) = true;
-
-  std::tr1::unordered_multimap<int, int> umm;
-
-  VERIFY( umm.max_size() == umm.get_allocator().max_size() );
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-multiset.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-multiset.cc
deleted file mode 100644 (file)
index 923af9b..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright (C) 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without Pred 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.5  Class template unordered_multiset
-
-#include <tr1/unordered_set>
-#include <testsuite_hooks.h>
-
-// libstdc++/29134
-void test01()
-{
-  bool test __attribute__((unused)) = true;
-
-  std::tr1::unordered_multiset<int> ums;
-
-  VERIFY( ums.max_size() == ums.get_allocator().max_size() );
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-set.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-set.cc
deleted file mode 100644 (file)
index 5822341..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright (C) 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without Pred 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.3  Class template unordered_set
-
-#include <tr1/unordered_set>
-#include <testsuite_hooks.h>
-
-// libstdc++/29134
-void test01()
-{
-  bool test __attribute__((unused)) = true;
-
-  std::tr1::unordered_set<int> us;
-
-  VERIFY( us.max_size() == us.get_allocator().max_size() );
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-map.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-map.cc
deleted file mode 100644 (file)
index 9289b65..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-// 2005-10-08  Paolo Carlini  <pcarlini@suse.de> 
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.4  Class template unordered_map
-
-#include <tr1/unordered_map>
-#include <string>
-#include <testsuite_hooks.h>
-
-// libstdc++/24061
-void test01()
-{
-  bool test __attribute__((unused)) = true;
-  
-  typedef std::tr1::unordered_map<std::string, int> Map;
-  typedef Map::iterator       iterator;
-  typedef Map::const_iterator const_iterator;
-  typedef Map::value_type     value_type;
-  
-  Map m1;
-
-  m1.insert(value_type("all the love in the world", 1));
-  m1.insert(value_type("you know what you are?", 2));
-  m1.insert(value_type("the collector", 3));
-  m1.insert(value_type("the hand that feeds", 4));
-  m1.insert(value_type("love is not enough", 5));
-  m1.insert(value_type("every day is exactly the same", 6));
-  m1.insert(value_type("with teeth", 7));
-  m1.insert(value_type("only", 8));
-  m1.insert(value_type("getting smaller", 9));
-  m1.insert(value_type("sunspots", 10)); 
-  VERIFY( m1.size() == 10 );
-
-  iterator it1 = m1.begin();
-  ++it1;
-  iterator it2 = it1;
-  ++it2;
-  iterator it3 = m1.erase(it1);
-  VERIFY( m1.size() == 9 );
-  VERIFY( it3 == it2 );
-  VERIFY( *it3 == *it2 );
-
-  iterator it4 = m1.begin();
-  ++it4;
-  ++it4;
-  ++it4;
-  iterator it5 = it4;
-  ++it5;
-  ++it5;
-  iterator it6 = m1.erase(it4, it5);
-  VERIFY( m1.size() == 7 );
-  VERIFY( it6 == it5 );
-  VERIFY( *it6 == *it5 );
-
-  const_iterator it7 = m1.begin();
-  ++it7;
-  ++it7;
-  ++it7;
-  const_iterator it8 = it7;
-  ++it8;
-  const_iterator it9 = m1.erase(it7);
-  VERIFY( m1.size() == 6 );
-  VERIFY( it9 == it8 );
-  VERIFY( *it9 == *it8 );
-
-  const_iterator it10 = m1.begin();
-  ++it10;
-  const_iterator it11 = it10;
-  ++it11;
-  ++it11;
-  ++it11;
-  ++it11;
-  const_iterator it12 = m1.erase(it10, it11);
-  VERIFY( m1.size() == 2 );
-  VERIFY( it12 == it11 );
-  VERIFY( *it12 == *it11 );
-  VERIFY( ++it12 == m1.end() );
-
-  iterator it13 = m1.erase(m1.begin(), m1.end());
-  VERIFY( m1.size() == 0 );
-  VERIFY( it13 == it12 );
-  VERIFY( it13 == m1.begin() );
-}
-  
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-multimap.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-multimap.cc
deleted file mode 100644 (file)
index b9980b7..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-// 2005-10-08  Paolo Carlini  <pcarlini@suse.de> 
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.6  Class template unordered_multimap
-
-#include <tr1/unordered_map>
-#include <string>
-#include <testsuite_hooks.h>
-
-// libstdc++/24061
-void test01()
-{
-  bool test __attribute__((unused)) = true;
-  
-  typedef std::tr1::unordered_multimap<std::string, int> Mmap;
-  typedef Mmap::iterator       iterator;
-  typedef Mmap::const_iterator const_iterator;
-  typedef Mmap::value_type     value_type;
-  
-  Mmap mm1;
-
-  mm1.insert(value_type("all the love in the world", 1));
-  mm1.insert(value_type("you know what you are?", 2));
-  mm1.insert(value_type("the collector", 3));
-  mm1.insert(value_type("the hand that feeds", 4));
-  mm1.insert(value_type("love is not enough", 5));
-  mm1.insert(value_type("every day is exactly the same", 6));
-  mm1.insert(value_type("with teeth", 7));
-  mm1.insert(value_type("only", 8));
-  mm1.insert(value_type("getting smaller", 9));
-  mm1.insert(value_type("sunspots", 10));
-
-  mm1.insert(value_type("you know what you are?", 5));
-  mm1.insert(value_type("the collector", 6));
-  mm1.insert(value_type("the hand that feeds", 7));
-  VERIFY( mm1.size() == 13 );
-
-  iterator it1 = mm1.begin();
-  ++it1;
-  iterator it2 = it1;
-  ++it2;
-  iterator it3 = mm1.erase(it1);
-  VERIFY( mm1.size() == 12 );
-  VERIFY( it3 == it2 );
-  VERIFY( *it3 == *it2 );
-
-  iterator it4 = mm1.begin();
-  ++it4;
-  ++it4;
-  ++it4;
-  iterator it5 = it4;
-  ++it5;
-  ++it5;
-  iterator it6 = mm1.erase(it4, it5);
-  VERIFY( mm1.size() == 10 );
-  VERIFY( it6 == it5 );
-  VERIFY( *it6 == *it5 );
-
-  const_iterator it7 = mm1.begin();
-  ++it7;
-  ++it7;
-  ++it7;
-  const_iterator it8 = it7;
-  ++it8;
-  const_iterator it9 = mm1.erase(it7);
-  VERIFY( mm1.size() == 9 );
-  VERIFY( it9 == it8 );
-  VERIFY( *it9 == *it8 );
-
-  const_iterator it10 = mm1.begin();
-  ++it10;
-  const_iterator it11 = it10;
-  ++it11;
-  ++it11;
-  ++it11;
-  ++it11;
-  const_iterator it12 = mm1.erase(it10, it11);
-  VERIFY( mm1.size() == 5 );
-  VERIFY( it12 == it11 );
-  VERIFY( *it12 == *it11 );
-
-  iterator it13 = mm1.erase(mm1.begin(), mm1.end());
-  VERIFY( mm1.size() == 0 );
-  VERIFY( it13 == mm1.end() );
-  VERIFY( it13 == mm1.begin() );
-}
-  
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-multiset.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-multiset.cc
deleted file mode 100644 (file)
index a00beab..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-// 2005-10-08  Paolo Carlini  <pcarlini@suse.de> 
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.5  Class template unordered_multiset
-
-#include <tr1/unordered_set>
-#include <string>
-#include <testsuite_hooks.h>
-
-// libstdc++/24061
-void test01()
-{
-  bool test __attribute__((unused)) = true;
-  
-  typedef std::tr1::unordered_multiset<std::string> Mset;
-  typedef Mset::iterator       iterator;
-  typedef Mset::const_iterator const_iterator;
-
-  Mset ms1;
-  
-  ms1.insert("all the love in the world");
-  ms1.insert("you know what you are?");
-  ms1.insert("the collector");
-  ms1.insert("the hand that feeds");
-  ms1.insert("love is not enough");
-  ms1.insert("every day is exactly the same");
-  ms1.insert("with teeth");
-  ms1.insert("only");
-  ms1.insert("getting smaller");
-  ms1.insert("sunspots");
-
-  ms1.insert("the hand that feeds");
-  ms1.insert("love is not enough");
-  ms1.insert("every day is exactly the same");
-  VERIFY( ms1.size() == 13 );
-
-  iterator it1 = ms1.begin();
-  ++it1;
-  iterator it2 = it1;
-  ++it2;
-  iterator it3 = ms1.erase(it1);
-  VERIFY( ms1.size() == 12 );
-  VERIFY( it3 == it2 );
-  VERIFY( *it3 == *it2 );
-
-  iterator it4 = ms1.begin();
-  ++it4;
-  ++it4;
-  ++it4;
-  iterator it5 = it4;
-  ++it5;
-  ++it5;
-  iterator it6 = ms1.erase(it4, it5);
-  VERIFY( ms1.size() == 10 );
-  VERIFY( it6 == it5 );
-  VERIFY( *it6 == *it5 );
-
-  const_iterator it7 = ms1.begin();
-  ++it7;
-  ++it7;
-  ++it7;
-  const_iterator it8 = it7;
-  ++it8;
-  const_iterator it9 = ms1.erase(it7);
-  VERIFY( ms1.size() == 9 );
-  VERIFY( it9 == it8 );
-  VERIFY( *it9 == *it8 );
-
-  const_iterator it10 = ms1.begin();
-  ++it10;
-  const_iterator it11 = it10;
-  ++it11;
-  ++it11;
-  ++it11;
-  ++it11;
-  const_iterator it12 = ms1.erase(it10, it11);
-  VERIFY( ms1.size() == 5 );
-  VERIFY( it12 == it11 );
-  VERIFY( *it12 == *it11 );
-
-  iterator it13 = ms1.erase(ms1.begin(), ms1.end());
-  VERIFY( ms1.size() == 0 );
-  VERIFY( it13 == ms1.end() );
-  VERIFY( it13 == ms1.begin() );
-}
-  
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-set.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-set.cc
deleted file mode 100644 (file)
index 202a21d..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-// 2005-10-08  Paolo Carlini  <pcarlini@suse.de> 
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.3  Class template unordered_set
-
-#include <tr1/unordered_set>
-#include <string>
-#include <testsuite_hooks.h>
-
-// libstdc++/24061
-void test01()
-{
-  bool test __attribute__((unused)) = true;
-  
-  typedef std::tr1::unordered_set<std::string> Set;
-  typedef Set::iterator       iterator;
-  typedef Set::const_iterator const_iterator;
-
-  Set s1;
-  
-  s1.insert("all the love in the world");
-  s1.insert("you know what you are?");
-  s1.insert("the collector");
-  s1.insert("the hand that feeds");
-  s1.insert("love is not enough");
-  s1.insert("every day is exactly the same");
-  s1.insert("with teeth");
-  s1.insert("only");
-  s1.insert("getting smaller");
-  s1.insert("sunspots");
-  VERIFY( s1.size() == 10 );
-
-  iterator it1 = s1.begin();
-  ++it1;
-  iterator it2 = it1;
-  ++it2;
-  iterator it3 = s1.erase(it1);
-  VERIFY( s1.size() == 9 );
-  VERIFY( it3 == it2 );
-  VERIFY( *it3 == *it2 );
-
-  iterator it4 = s1.begin();
-  ++it4;
-  ++it4;
-  ++it4;
-  iterator it5 = it4;
-  ++it5;
-  ++it5;
-  iterator it6 = s1.erase(it4, it5);
-  VERIFY( s1.size() == 7 );
-  VERIFY( it6 == it5 );
-  VERIFY( *it6 == *it5 );
-
-  const_iterator it7 = s1.begin();
-  ++it7;
-  ++it7;
-  ++it7;
-  const_iterator it8 = it7;
-  ++it8;
-  const_iterator it9 = s1.erase(it7);
-  VERIFY( s1.size() == 6 );
-  VERIFY( it9 == it8 );
-  VERIFY( *it9 == *it8 );
-
-  const_iterator it10 = s1.begin();
-  ++it10;
-  const_iterator it11 = it10;
-  ++it11;
-  ++it11;
-  ++it11;
-  ++it11;
-  const_iterator it12 = s1.erase(it10, it11);
-  VERIFY( s1.size() == 2 );
-  VERIFY( it12 == it11 );
-  VERIFY( *it12 == *it11 );
-  VERIFY( ++it12 == s1.end() );
-
-  iterator it13 = s1.erase(s1.begin(), s1.end());
-  VERIFY( s1.size() == 0 );
-  VERIFY( it13 == s1.end() );
-  VERIFY( it13 == s1.begin() );
-}
-  
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/map1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/map1.cc
deleted file mode 100644 (file)
index 8ff05d2..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-// { dg-do run }
-
-// 2005-2-18  Matt Austern  <austern@apple.com>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.4 unordered_map
-// find, equal_range, count
-
-#include <string>
-#include <iterator>
-#include <algorithm>
-#include <utility>
-#include <tr1/unordered_map>
-#include "testsuite_hooks.h"
-
-bool test __attribute__((unused)) = true;
-
-void test01()
-{
-  typedef std::tr1::unordered_map<std::string, int> Map;
-  typedef std::pair<const std::string, int> Pair;
-
-  Map m;
-  VERIFY(m.empty());
-
-  std::pair<Map::iterator, bool> tmp = m.insert(Pair("grape", 3));
-  Map::iterator i = tmp.first;
-  VERIFY(tmp.second);
-
-  Map::iterator i2 = m.find("grape");
-  VERIFY(i2 != m.end());
-  VERIFY(i2 == i);
-  VERIFY(i2->first == "grape");
-  VERIFY(i2->second == 3);
-
-  Map::iterator i3 = m.find("lime");
-  VERIFY(i3 == m.end());
-
-  std::pair<Map::iterator, Map::iterator> p = m.equal_range("grape");
-  VERIFY(std::distance(p.first, p.second) == 1);
-  VERIFY(p.first == i2);
-
-  std::pair<Map::iterator, Map::iterator> p2 = m.equal_range("lime");
-  VERIFY(p2.first == p2.second);
-
-  VERIFY(m.count("grape") == 1);
-  VERIFY(m.count("lime") == 0);
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/multimap1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/multimap1.cc
deleted file mode 100644 (file)
index 1fc3e18..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-// { dg-do run }
-
-// 2005-2-18  Matt Austern  <austern@apple.com>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.6 unordered_multimap
-// find, equal_range, count
-
-#include <string>
-#include <iterator>
-#include <algorithm>
-#include <utility>
-#include <tr1/unordered_map>
-#include "testsuite_hooks.h"
-
-bool test __attribute__((unused)) = true;
-
-void test01()
-{
-  typedef std::tr1::unordered_multimap<std::string, int> Map;
-  typedef std::pair<const std::string, int> Pair;
-
-  Map m;
-  VERIFY(m.empty());
-
-  m.insert(Pair("grape", 3));
-  m.insert(Pair("durian", 8));
-  m.insert(Pair("grape", 7));
-
-  Map::iterator i1 = m.find("grape");
-  Map::iterator i2 = m.find("durian");
-  Map::iterator i3 = m.find("kiwi");
-
-  VERIFY(i1 != m.end());
-  VERIFY(i1->first == "grape");
-  VERIFY(i1->second == 3 || i2->second == 7);
-  VERIFY(i2 != m.end());
-  VERIFY(i2->first == "durian");
-  VERIFY(i2->second == 8);
-  VERIFY(i3 == m.end());
-
-  std::pair<Map::iterator, Map::iterator> p1 = m.equal_range("grape");
-  VERIFY(std::distance(p1.first, p1.second) == 2);
-  Map::iterator tmp = p1.first;
-  ++tmp;
-  VERIFY(p1.first->first == "grape");
-  VERIFY(tmp->first == "grape");
-  VERIFY((p1.first->second == 3 && tmp->second == 7) ||
-        (p1.first->second == 7 && tmp->second == 3));
-
-  std::pair<Map::iterator, Map::iterator> p2 = m.equal_range("durian");
-  VERIFY(std::distance(p2.first, p2.second) == 1);
-  VERIFY(p2.first->first == "durian");
-  VERIFY(p2.first->second == 8);
-
-  std::pair<Map::iterator, Map::iterator> p3 = m.equal_range("kiwi");
-  VERIFY(p3.first == p3.second);
-
-  VERIFY(m.count("grape") == 2);
-  VERIFY(m.count("durian") == 1);
-  VERIFY(m.count("kiwi") == 0);
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/multiset1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/multiset1.cc
deleted file mode 100644 (file)
index b06d511..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-// { dg-do run }
-
-// 2005-2-18  Matt Austern  <austern@apple.com>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.5 unordered_set
-// find, equal_range, count
-
-#include <string>
-#include <iterator>
-#include <algorithm>
-#include <tr1/unordered_set>
-#include "testsuite_hooks.h"
-
-bool test __attribute__((unused)) = true;
-
-void test01()
-{
-  typedef std::tr1::unordered_multiset<std::string> Set;
-  Set s;
-  VERIFY(s.empty());
-
-  s.insert("grape");
-  s.insert("banana");
-  s.insert("grape");
-
-  Set::iterator i2 = s.find("banana");
-  VERIFY(i2 != s.end());
-  VERIFY(*i2 == "banana");
-  
-  std::pair<Set::iterator, Set::iterator> p = s.equal_range("grape");
-  VERIFY(std::distance(p.first, p.second) == 2);
-  Set::iterator i3 = p.first;
-  ++i3;
-  VERIFY(*p.first == "grape");
-  VERIFY(*i3 == "grape");
-
-  Set::iterator i4 = s.find("lime");
-  VERIFY(i4 == s.end());  
-
-  VERIFY(s.count("grape") == 2);
-  VERIFY(s.count("banana") == 1);
-  VERIFY(s.count("lime") == 0);
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/set1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/set1.cc
deleted file mode 100644 (file)
index a39612a..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-// { dg-do run }
-
-// 2005-2-18  Matt Austern  <austern@apple.com>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.3 unordered_set
-// find, equal_range, count
-
-#include <string>
-#include <iterator>
-#include <algorithm>
-#include <tr1/unordered_set>
-#include "testsuite_hooks.h"
-
-bool test __attribute__((unused)) = true;
-
-void test01()
-{
-  typedef std::tr1::unordered_set<std::string> Set;
-  Set s;
-  VERIFY(s.empty());
-
-  std::pair<Set::iterator, bool> tmp = s.insert("grape");
-  Set::iterator i = tmp.first;
-
-  Set::iterator i2 = s.find("grape");
-  VERIFY(i2 != s.end());
-  VERIFY(i2 == i);
-  VERIFY(*i2 == "grape");
-
-  std::pair<Set::iterator, Set::iterator> p = s.equal_range("grape");
-  VERIFY(p.first == i2);
-  VERIFY(std::distance(p.first, p.second) == 1);
-
-  Set::iterator i3 = s.find("lime");
-  VERIFY(i3 == s.end());  
-
-  std::pair<Set::iterator, Set::iterator> p2 = s.equal_range("lime");
-  VERIFY(p2.first == p2.second);
-
-  VERIFY(s.count("grape") == 1);
-  VERIFY(s.count("lime") == 0);
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hash/24799.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/hash/24799.cc
deleted file mode 100644 (file)
index 90a336b..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-// 2005-11-11  Paolo Carlini  <pcarlini@suse.de>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.3 Class template hash
-
-#include <tr1/functional>
-#include <string>
-#include <tr1/type_traits>
-#include <testsuite_tr1.h>
-#include <testsuite_hooks.h>
-
-template<typename T>
-  void
-  do_test()
-  {
-    bool test __attribute__((unused)) = true;
-
-    using std::tr1::is_same;
-    using __gnu_test::test_relationship;
-    
-    typedef typename std::tr1::hash<T>::argument_type  argument_type;
-    typedef typename std::tr1::hash<T>::result_type    result_type;
-    
-    VERIFY( (test_relationship<is_same, argument_type, T>(true)) );
-    VERIFY( (test_relationship<is_same, result_type, std::size_t>(true)) );
-  }
-  
-// libstdc++/24799
-void test01()
-{
-  do_test<bool>();
-  do_test<char>();
-  do_test<signed char>();
-  do_test<unsigned char>();
-  do_test<short>();
-  do_test<int>();
-  do_test<long>();
-  do_test<unsigned short>();
-  do_test<unsigned int>();
-  do_test<unsigned long>();
-  do_test<int*>();
-  do_test<std::string>();
-  do_test<float>();
-  do_test<double>();
-  do_test<long double>();
-
-#ifdef _GLIBCXX_USE_WCHAR_T
-  do_test<wchar_t>();
-  do_test<std::wstring>();
-#endif
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/23053.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/23053.cc
deleted file mode 100644 (file)
index 8d93c4f..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-// { dg-do compile }
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3 Unordered associative containers
-
-#include <tr1/unordered_set>
-
-// libstdc++/23053
-void test01()
-{
-  std::tr1::unordered_set<int> s;
-
-  const std::tr1::unordered_set<int> &s_ref = s;
-
-  s_ref.find(27);
-}  
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/23465.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/23465.cc
deleted file mode 100644 (file)
index 35e52c2..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3 Unordered associative containers
-
-#include <tr1/unordered_set>
-#include <testsuite_hooks.h>
-
-// libstdc++/23465
-void test01()
-{
-  bool test __attribute__((unused)) = true;
-
-  for (float lf = 0.1; lf < 101.0; lf *= 10.0)
-    for (int size = 1; size <= 6561; size *= 3)
-      {
-       std::tr1::unordered_set<int> us1, us2;
-       typedef std::tr1::unordered_set<int>::local_iterator local_iterator;
-       typedef std::tr1::unordered_set<int>::size_type      size_type;
-       
-       us1.max_load_factor(lf);
-
-       for (int i = 0; i < size; ++i)
-         us1.insert(i);
-       
-       us2 = us1;
-       
-       VERIFY( us2.size() == us1.size() );
-       VERIFY( us2.bucket_count() == us1.bucket_count() );
-       
-       for (size_type b = 0; b < us1.bucket_count(); ++b)
-         {
-           size_type cnt = 0;
-           for (local_iterator it1 = us1.begin(b), it2 = us2.begin(b);
-                it1 != us1.end(b) && it2 != us2.end(b); ++it1, ++it2)
-             {
-               VERIFY( *it1 == *it2 );
-               ++cnt;
-             }
-           VERIFY( cnt == us1.bucket_size(b) );
-         }
-      }
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/24054.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/24054.cc
deleted file mode 100644 (file)
index 073d240..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3 Unordered associative containers
-
-#include <tr1/unordered_set>
-#include <string>
-#include <testsuite_hooks.h>
-
-// libstdc++/24054
-void test01()
-{
-  bool test __attribute__((unused)) = true;
-
-  typedef std::tr1::unordered_multiset<std::string> Set;
-
-  Set s;
-
-  s.insert("etaoin");
-  s.insert("etaoin");
-  s.insert("etaoin");
-  s.insert("shrdlu");
-
-  VERIFY( s.erase("") == 0 );
-  VERIFY( s.size() == 4 );
-
-  VERIFY( s.erase("etaoin") == 3 );
-  VERIFY( s.size() == 1 );
-
-  VERIFY( s.erase("shrdlu") == 1 );
-  VERIFY( s.size() == 0 );
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/24064.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/24064.cc
deleted file mode 100644 (file)
index 74eabbf..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3 Unordered associative containers
-
-#include <tr1/unordered_map>
-#include <testsuite_hooks.h>
-
-// libstdc++/24064
-void test01()
-{
-  bool test __attribute__((unused)) = true;
-
-  using namespace std;
-  using namespace tr1;
-
-  unordered_map<int, char, hash<int>, equal_to<int>,
-    allocator<pair<const int, char> >, true> m;
-  for (int i = 0; i < 1000; ++i)
-    m[i] = '0' + i % 9;
-               
-  for (int i = 0; i < 1000; ++i)
-    VERIFY( ++m.find(i)->second == '1' + i % 9 );
-}
-  
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/26127.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/26127.cc
deleted file mode 100644 (file)
index d14a625..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-// { dg-do compile }
-
-// Copyright (C) 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3 Unordered associative containers
-
-#include <tr1/unordered_set>
-
-// libstdc++/26127
-void test01()
-{
-  std::tr1::unordered_set<int> s;
-
-  s.bucket(42);
-  s.key_eq();
-  s.max_load_factor();  
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/26132.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/26132.cc
deleted file mode 100644 (file)
index 9d0076e..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-// 2006-02-22  Paolo Carlini  <pcarlini@suse.de>
-//
-// Copyright (C) 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3 Unordered associative containers
-
-#include <tr1/unordered_set>
-#include <testsuite_hooks.h>
-
-// libstdc++/26132
-void test01()
-{
-  bool test __attribute__((unused)) = true;
-
-  for (float lf = 1.0; lf < 101.0; lf *= 10.0)
-    for (int size = 1; size <= 6561; size *= 3)
-      {
-       std::tr1::unordered_set<int> us1;
-       typedef std::tr1::unordered_set<int>::size_type size_type;
-       
-       us1.max_load_factor(10.0);
-
-       for (int i = 0; i < size; ++i)
-         us1.insert(i);
-
-       us1.max_load_factor(lf);
-
-       for (int i = 1; i <= 6561; i *= 81)
-         {
-           const size_type n = size * 81 / i;
-           us1.rehash(n);
-           VERIFY( us1.bucket_count() > us1.size() / us1.max_load_factor() );
-           VERIFY( us1.bucket_count() >= n );
-         }
-      }
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/iterators_default_constructor.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/iterators_default_constructor.cc
deleted file mode 100644 (file)
index 17705ae..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-// { dg-do compile }
-
-// Copyright (C) 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3 Unordered associative containers
-
-#include <tr1/unordered_set>
-
-void
-test01()
-{
-  std::tr1::unordered_set<int>::iterator                it;
-  std::tr1::unordered_set<int>::const_iterator         cit;
-  std::tr1::unordered_set<int>::local_iterator         lit;
-  std::tr1::unordered_set<int>::const_local_iterator  clit;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-map.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-map.cc
deleted file mode 100644 (file)
index 8e290af..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-// 2005-10-08  Paolo Carlini  <pcarlini@suse.de> 
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.4  Class template unordered_map
-
-#include <tr1/unordered_map>
-#include <string>
-#include <testsuite_hooks.h>
-
-// libstdc++/24061
-void test01()
-{
-  bool test __attribute__((unused)) = true;
-  
-  typedef std::tr1::unordered_map<std::string, int> Map;
-  typedef Map::iterator       iterator;
-  typedef Map::const_iterator const_iterator;
-  typedef Map::value_type     value_type;
-
-  Map m1;
-  
-  iterator it1 = m1.insert(m1.begin(),
-                          value_type("all the love in the world", 1));
-  VERIFY( m1.size() == 1 );
-  VERIFY( *it1 == value_type("all the love in the world", 1) );
-  
-  const_iterator cit1(it1);
-  const_iterator cit2 = m1.insert(cit1,
-                                 value_type("you know what you are?", 2));
-  VERIFY( m1.size() == 2 );
-  VERIFY( cit2 != cit1 );
-  VERIFY( *cit2 == value_type("you know what you are?", 2) );
-
-  iterator it2 = m1.insert(it1, value_type("all the love in the world", 3));
-  VERIFY( m1.size() == 2 );
-  VERIFY( it2 == it1 );
-  VERIFY( *it2 == value_type("all the love in the world", 1) );
-}
-  
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-multimap.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-multimap.cc
deleted file mode 100644 (file)
index a744c8b..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-// 2005-10-08  Paolo Carlini  <pcarlini@suse.de> 
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.6  Class template unordered_multimap
-
-#include <tr1/unordered_map>
-#include <string>
-#include <testsuite_hooks.h>
-
-// libstdc++/24061
-void test01()
-{
-  bool test __attribute__((unused)) = true;
-  
-  typedef std::tr1::unordered_multimap<std::string, int> Mmap;
-  typedef Mmap::iterator       iterator;
-  typedef Mmap::const_iterator const_iterator;
-  typedef Mmap::value_type     value_type;
-
-  Mmap mm1;
-  
-  iterator it1 = mm1.insert(mm1.begin(),
-                           value_type("all the love in the world", 1));
-  VERIFY( mm1.size() == 1 );
-  VERIFY( *it1 == value_type("all the love in the world", 1) );
-  
-  const_iterator cit1(it1);
-  const_iterator cit2 = mm1.insert(cit1,
-                                  value_type("you know what you are?", 2));
-  VERIFY( mm1.size() == 2 );
-  VERIFY( cit2 != cit1 );
-  VERIFY( *cit2 == value_type("you know what you are?", 2) );
-
-  iterator it2 = mm1.insert(it1, value_type("all the love in the world", 3));
-  VERIFY( mm1.size() == 3 );
-  VERIFY( it2 != it1 );
-  VERIFY( *it2 == value_type("all the love in the world", 3) );
-}
-  
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-multiset.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-multiset.cc
deleted file mode 100644 (file)
index 9467f41..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-// 2005-10-08  Paolo Carlini  <pcarlini@suse.de> 
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.5  Class template unordered_multiset
-
-#include <tr1/unordered_set>
-#include <string>
-#include <testsuite_hooks.h>
-
-// libstdc++/24061
-void test01()
-{
-  bool test __attribute__((unused)) = true;
-  
-  typedef std::tr1::unordered_multiset<std::string> Mset;
-  typedef Mset::iterator       iterator;
-  typedef Mset::const_iterator const_iterator;
-
-  Mset ms1;
-  
-  iterator it1 = ms1.insert(ms1.begin(), "all the love in the world");
-  VERIFY( ms1.size() == 1 );
-  VERIFY( *it1 == "all the love in the world" );
-  
-  const_iterator cit1(it1);
-  const_iterator cit2 = ms1.insert(cit1, "you know what you are?");
-  VERIFY( ms1.size() == 2 );
-  VERIFY( cit2 != cit1 );
-  VERIFY( *cit2 == "you know what you are?" );
-
-  iterator it2 = ms1.insert(it1, "all the love in the world");
-  VERIFY( ms1.size() == 3 );
-  VERIFY( it2 != it1 );
-  VERIFY( *it2 == "all the love in the world" );
-}
-  
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-set.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-set.cc
deleted file mode 100644 (file)
index c7d670c..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-// 2005-10-08  Paolo Carlini  <pcarlini@suse.de> 
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.3  Class template unordered_set
-
-#include <tr1/unordered_set>
-#include <string>
-#include <testsuite_hooks.h>
-
-// libstdc++/24061
-void test01()
-{
-  bool test __attribute__((unused)) = true;
-  
-  typedef std::tr1::unordered_set<std::string> Set;
-  typedef Set::iterator       iterator;
-  typedef Set::const_iterator const_iterator;
-
-  Set s1;
-  
-  iterator it1 = s1.insert(s1.begin(), "all the love in the world");
-  VERIFY( s1.size() == 1 );
-  VERIFY( *it1 == "all the love in the world" );
-  
-  const_iterator cit1(it1);
-  const_iterator cit2 = s1.insert(cit1, "you know what you are?");
-  VERIFY( s1.size() == 2 );
-  VERIFY( cit2 != cit1 );
-  VERIFY( *cit2 == "you know what you are?" );
-
-  iterator it2 = s1.insert(it1, "all the love in the world");
-  VERIFY( s1.size() == 2 );
-  VERIFY( it2 == it1 );
-  VERIFY( *it2 == "all the love in the world" );
-}
-  
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/array_syntax.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/array_syntax.cc
deleted file mode 100644 (file)
index 2664d76..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-// { dg-do run }
-
-// 2005-2-17  Matt Austern  <austern@apple.com>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.4 unordered_map
-// Array version of insert
-
-#include <string>
-#include <iterator>
-#include <tr1/unordered_map>
-#include "testsuite_hooks.h"
-
-bool test __attribute__((unused)) = true;
-
-void test01()
-{
-  typedef std::tr1::unordered_map<std::string, int> Map;
-  typedef std::pair<const std::string, int> Pair;
-
-  Map m;
-  VERIFY(m.empty());
-
-  m["red"] = 17;
-  VERIFY(m.size() == 1);
-  VERIFY(m.begin()->first == "red");
-  VERIFY(m.begin()->second == 17);
-  VERIFY(m["red"] == 17);
-
-  m["blue"] = 9;
-  VERIFY(m.size() == 2);
-  VERIFY(m["blue"] == 9);
-
-  m["red"] = 5;
-  VERIFY(m.size() == 2);
-  VERIFY(m["red"] == 5);
-  VERIFY(m["blue"] == 9);
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/map_range.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/map_range.cc
deleted file mode 100644 (file)
index 424cfb3..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-// { dg-do run }
-
-// 2005-2-17  Matt Austern  <austern@apple.com>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.4 unordered_map
-// range insert
-
-#include <string>
-#include <iterator>
-#include <algorithm>
-#include <tr1/unordered_map>
-#include "testsuite_hooks.h"
-
-bool test __attribute__((unused)) = true;
-
-void test01()
-{
-  typedef std::tr1::unordered_map<std::string, int> Map;
-  typedef std::pair<const std::string, int> Pair;
-
-  Map m;
-  VERIFY(m.empty());
-
-  Pair A[5] =
-    {
-      Pair("red", 5),
-      Pair("green", 9),
-      Pair("blue", 3),
-      Pair("cyan", 8),
-      Pair("magenta", 7)
-    };
-
-  m.insert(A+0, A+5);
-  VERIFY(m.size() == 5);
-  VERIFY(std::distance(m.begin(), m.end()) == 5);
-
-  VERIFY(m["red"] == 5);
-  VERIFY(m["green"] == 9);
-  VERIFY(m["blue"] == 3);
-  VERIFY(m["cyan"] == 8);
-  VERIFY(m["magenta"] == 7);
-}
-
-void test02()
-{
-  typedef std::tr1::unordered_map<std::string, int> Map;
-  typedef std::pair<const std::string, int> Pair;
-
-  Map m;
-  VERIFY(m.empty());
-
-  Pair A[9] =
-    {
-      Pair("red", 5),
-      Pair("green", 9),
-      Pair("red", 19),
-      Pair("blue", 3),
-      Pair("blue", 60),
-      Pair("cyan", 8),
-      Pair("magenta", 7),
-      Pair("blue", 99),
-      Pair("green", 33)
-    };
-
-  m.insert(A+0, A+9);
-  VERIFY(m.size() == 5);
-  VERIFY(std::distance(m.begin(), m.end()) == 5);
-
-  VERIFY(m["red"] == 5);
-  VERIFY(m["green"] == 9);
-  VERIFY(m["blue"] == 3);
-  VERIFY(m["cyan"] == 8);
-  VERIFY(m["magenta"] == 7);
-}
-
-int main()
-{
-  test01();
-  test02();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/map_single.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/map_single.cc
deleted file mode 100644 (file)
index a4b02e8..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-// { dg-do run }
-
-// 2005-2-17  Matt Austern  <austern@apple.com>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.4 unordered_map
-// Single-element insert
-
-#include <string>
-#include <iterator>
-#include <tr1/unordered_map>
-#include "testsuite_hooks.h"
-
-bool test __attribute__((unused)) = true;
-
-void test01()
-{
-  typedef std::tr1::unordered_map<std::string, int> Map;
-  typedef std::pair<const std::string, int> Pair;
-
-  Map m;
-  VERIFY(m.empty());
-
-  std::pair<Map::iterator, bool> p = m.insert(Pair("abcde", 3));
-  VERIFY(p.second);
-  VERIFY(m.size() == 1);
-  VERIFY(std::distance(m.begin(), m.end()) == 1);
-  VERIFY(p.first == m.begin());
-  VERIFY(p.first->first == "abcde");
-  VERIFY(p.first->second == 3);
-}
-
-void test02()
-{
-  typedef std::tr1::unordered_map<std::string, int> Map;
-  typedef std::pair<const std::string, int> Pair;
-
-  Map m;
-  VERIFY(m.empty());
-
-  std::pair<Map::iterator, bool> p1 = m.insert(Pair("abcde", 3));
-  std::pair<Map::iterator, bool> p2 = m.insert(Pair("abcde", 7));
-
-  VERIFY(p1.second);
-  VERIFY(!p2.second);
-  VERIFY(m.size() == 1);
-  VERIFY(p1.first == p2.first);
-  VERIFY(p1.first->first == "abcde");
-  VERIFY(p2.first->second == 3);
-}
-
-int main()
-{
-  test01();
-  test02();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multimap_range.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multimap_range.cc
deleted file mode 100644 (file)
index 6296c4f..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-// { dg-do run }
-
-// 2005-2-17  Matt Austern  <austern@apple.com>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.6 unordered_multimap
-// range insert
-
-#include <string>
-#include <iterator>
-#include <algorithm>
-#include <tr1/unordered_map>
-#include "testsuite_hooks.h"
-
-bool test __attribute__((unused)) = true;
-
-void test01()
-{
-  typedef std::tr1::unordered_multimap<std::string, int> Map;
-  typedef std::pair<const std::string, int> Pair;
-
-  Map m;
-  VERIFY(m.empty());
-
-  Pair A[5] =
-    {
-      Pair("red", 5),
-      Pair("green", 9),
-      Pair("blue", 3),
-      Pair("cyan", 8),
-      Pair("magenta", 7)
-    };
-
-  m.insert(A+0, A+5);
-  VERIFY(m.size() == 5);
-  VERIFY(std::distance(m.begin(), m.end()) == 5);
-
-  for (int i = 0; i < 5; ++i)
-    VERIFY(std::find(m.begin(), m.end(), A[i]) != m.end());
-}
-
-void test02()
-{
-  typedef std::tr1::unordered_multimap<std::string, int> Map;
-  typedef std::pair<const std::string, int> Pair;
-
-  Map m;
-  VERIFY(m.empty());
-
-  Pair A[9] =
-    {
-      Pair("red", 5),
-      Pair("green", 9),
-      Pair("red", 19),
-      Pair("blue", 3),
-      Pair("blue", 60),
-      Pair("cyan", 8),
-      Pair("magenta", 7),
-      Pair("blue", 99),
-      Pair("green", 33)
-    };
-
-  m.insert(A+0, A+9);
-  VERIFY(m.size() == 9);
-  VERIFY(std::distance(m.begin(), m.end()) == 9);
-
-  for (int i = 0; i < 9; ++i)
-    VERIFY(std::find(m.begin(), m.end(), A[i]) != m.end());
-}
-
-int main()
-{
-  test01();
-  test02();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multimap_single.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multimap_single.cc
deleted file mode 100644 (file)
index 815b864..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-// { dg-do run }
-
-// 2005-2-17  Matt Austern  <austern@apple.com>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.6 unordered_multimap
-// Single-element insert
-
-#include <string>
-#include <iterator>
-#include <tr1/unordered_map>
-#include "testsuite_hooks.h"
-
-bool test __attribute__((unused)) = true;
-
-void test01()
-{
-  typedef std::tr1::unordered_multimap<std::string, int> Map;
-  typedef std::pair<const std::string, int> Pair;
-
-  Map m;
-  VERIFY(m.empty());
-
-  Map::iterator i = m.insert(Pair("abcde", 3));
-  VERIFY(m.size() == 1);
-  VERIFY(std::distance(m.begin(), m.end()) == 1);
-  VERIFY(i == m.begin());
-  VERIFY(i->first == "abcde");
-  VERIFY(i->second == 3);
-}
-
-void test02()
-{
-  typedef std::tr1::unordered_multimap<std::string, int> Map;
-  typedef std::pair<const std::string, int> Pair;
-
-  Map m;
-  VERIFY(m.empty());
-
-  m.insert(Pair("abcde", 3));
-  m.insert(Pair("abcde", 7));
-
-  VERIFY(m.size() == 2);
-  VERIFY(std::distance(m.begin(), m.end()) == 2);
-
-  Map::iterator i1 = m.begin();
-  Map::iterator i2 = i1;
-  ++i2;
-
-  VERIFY(i1->first == "abcde");
-  VERIFY(i2->first == "abcde");
-  VERIFY((i1->second == 3 && i2->second == 7) ||
-        (i1->second == 7 && i2->second == 3));
-}
-
-int main()
-{
-  test01();
-  test02();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multiset_range.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multiset_range.cc
deleted file mode 100644 (file)
index a83fce3..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-// { dg-do run }
-
-// 2005-2-17  Matt Austern  <austern@apple.com>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.5 unordered_multiset
-// range insert
-
-#include <string>
-#include <iterator>
-#include <algorithm>
-#include <tr1/unordered_set>
-#include <testsuite_hooks.h>
-
-bool test __attribute__((unused)) = true;
-
-void test01()
-{
-  typedef std::tr1::unordered_multiset<std::string> Set;
-  Set s;
-  VERIFY(s.empty());
-
-  const int N = 10;
-  const std::string A[N] = { "red", "green", "blue", "violet", "cyan",
-                            "magenta", "yellow", "orange", "pink", "gray" };
-
-  s.insert(A+0, A+N);
-  VERIFY(s.size() == static_cast<unsigned int>(N));
-  VERIFY(std::distance(s.begin(), s.end()) == N);
-
-  for (int i = 0; i < N; ++i) {
-    std::string str = A[i];
-    Set::iterator it = std::find(s.begin(), s.end(), str);
-    VERIFY(it != s.end());
-  }
-}
-
-void test02()
-{
-  typedef std::tr1::unordered_multiset<int> Set;
-  Set s;
-  VERIFY(s.empty());
-
-  const int N = 8;
-  const int A[N] = { 3, 7, 4, 8, 2, 4, 6, 7 };
-
-  s.insert(A+0, A+N);
-  VERIFY(s.size() == static_cast<unsigned int>(N));
-  VERIFY(std::distance(s.begin(), s.end()) == N);
-
-  VERIFY(std::count(s.begin(), s.end(), 2) == 1);
-  VERIFY(std::count(s.begin(), s.end(), 3) == 1);
-  VERIFY(std::count(s.begin(), s.end(), 4) == 2);
-  VERIFY(std::count(s.begin(), s.end(), 6) == 1);
-  VERIFY(std::count(s.begin(), s.end(), 7) == 2);
-  VERIFY(std::count(s.begin(), s.end(), 8) == 1);
-}
-
-int main()
-{
-  test01();
-  test02();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multiset_single.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multiset_single.cc
deleted file mode 100644 (file)
index 48fd1d4..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-// { dg-do run }
-
-// 2005-2-17  Matt Austern  <austern@apple.com>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.5 unordered_multiset
-// Single-element insert
-
-#include <string>
-#include <iterator>
-#include <tr1/unordered_set>
-#include "testsuite_hooks.h"
-
-bool test __attribute__((unused)) = true;
-
-void test01()
-{
-  typedef std::tr1::unordered_multiset<std::string> Set;
-  Set s;
-  VERIFY(s.empty());
-
-  Set::iterator i = s.insert("abcde");
-  VERIFY(s.size() == 1);
-  VERIFY(std::distance(s.begin(), s.end()) == 1);
-  VERIFY(i == s.begin());
-  VERIFY(*i == "abcde");
-}
-
-void test02()
-{
-  typedef std::tr1::unordered_multiset<std::string> Set;
-  Set s;
-  VERIFY(s.empty());
-
-  s.insert("abcde");
-  Set::iterator i = s.insert("abcde");
-  VERIFY(s.size() == 2);
-  VERIFY(std::distance(s.begin(), s.end()) == 2);
-  VERIFY(*i == "abcde");
-  
-  Set::iterator i2 = s.begin();
-  ++i2;
-  VERIFY(i == s.begin() || i == i2);
-  VERIFY(*(s.begin()) == "abcde" && *i2 == "abcde");
-}
-
-int main()
-{
-  test01();
-  test02();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/set_range.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/set_range.cc
deleted file mode 100644 (file)
index bfa4f73..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-// { dg-do run }
-
-// 2005-2-17  Matt Austern  <austern@apple.com>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.3 unordered_set
-// range insert
-
-#include <string>
-#include <iterator>
-#include <algorithm>
-#include <tr1/unordered_set>
-#include <testsuite_hooks.h>
-
-bool test __attribute__((unused)) = true;
-
-void test01()
-{
-  typedef std::tr1::unordered_set<std::string> Set;
-  Set s;
-  VERIFY(s.empty());
-
-  const int N = 10;
-  const std::string A[N] = { "red", "green", "blue", "violet", "cyan",
-                            "magenta", "yellow", "orange", "pink", "gray" };
-
-  s.insert(A+0, A+N);
-  VERIFY(s.size() == static_cast<unsigned int>(N));
-  VERIFY(std::distance(s.begin(), s.end()) == N);
-
-  for (int i = 0; i < N; ++i) {
-    std::string str = A[i];
-    Set::iterator it = std::find(s.begin(), s.end(), str);
-    VERIFY(it != s.end());
-  }
-}
-
-void test02()
-{
-  typedef std::tr1::unordered_set<int> Set;
-  Set s;
-  VERIFY(s.empty());
-
-  const int N = 8;
-  const int A[N] = { 3, 7, 4, 8, 2, 4, 6, 7 };
-
-  s.insert(A+0, A+N);
-  VERIFY(s.size() == 6);
-  VERIFY(std::distance(s.begin(), s.end()) == 6);
-
-  VERIFY(std::count(s.begin(), s.end(), 2) == 1);
-  VERIFY(std::count(s.begin(), s.end(), 3) == 1);
-  VERIFY(std::count(s.begin(), s.end(), 4) == 1);
-  VERIFY(std::count(s.begin(), s.end(), 6) == 1);
-  VERIFY(std::count(s.begin(), s.end(), 7) == 1);
-  VERIFY(std::count(s.begin(), s.end(), 8) == 1);
-}
-
-int main()
-{
-  test01();
-  test02();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/set_single.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/set_single.cc
deleted file mode 100644 (file)
index ab3d68a..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-// { dg-do run }
-
-// 2005-2-17  Matt Austern  <austern@apple.com>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.3 unordered_set
-// Single-element insert
-
-#include <string>
-#include <iterator>
-#include <tr1/unordered_set>
-#include "testsuite_hooks.h"
-
-bool test __attribute__((unused)) = true;
-
-void test01()
-{
-  typedef std::tr1::unordered_set<std::string> Set;
-  Set s;
-  VERIFY(s.empty());
-
-  std::pair<Set::iterator, bool> p = s.insert("abcde");
-  VERIFY(p.second);
-  VERIFY(s.size() == 1);
-  VERIFY(std::distance(s.begin(), s.end()) == 1);
-  VERIFY(p.first == s.begin());
-  VERIFY(*p.first == "abcde");
-}
-
-void test02()
-{
-  typedef std::tr1::unordered_set<std::string> Set;
-  Set s;
-  VERIFY(s.empty());
-
-  std::pair<Set::iterator, bool> p1 = s.insert("abcde");
-  std::pair<Set::iterator, bool> p2 = s.insert("abcde");  
-  VERIFY(p1.second);
-  VERIFY(!p2.second);
-  VERIFY(s.size() == 1);
-  VERIFY(p1.first == p2.first);
-  VERIFY(*p1.first == "abcde");
-}
-
-int main()
-{
-  test01();
-  test02();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/hash.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/hash.cc
deleted file mode 100644 (file)
index 382d69f..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-// { dg-do compile }
-
-// 2005-02-17  Matt Austern  <austern@apple.com>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.3 class template hash
-
-#include <string>
-#include <tr1/functional>
-
-using namespace std::tr1;
-
-// Verify that we can instantiate hash for every required type.
-template class hash<bool>;
-template class hash<char>;
-template class hash<signed char>;
-template class hash<unsigned char>;
-template class hash<short>;
-template class hash<int>;
-template class hash<long>;
-template class hash<unsigned short>;
-template class hash<unsigned int>;
-template class hash<unsigned long>;
-template class hash<float>;
-template class hash<double>;
-template class hash<long double>;
-template class hash<void*>;
-template class hash<std::string>;
-
-#ifdef _GLIBCXX_USE_WCHAR_T
-template class hash<wchar_t>;
-template class hash<std::wstring>;
-#endif
-
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/map.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/map.cc
deleted file mode 100644 (file)
index 41ce95d..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-// { dg-do compile }
-
-// 2005-02-17  Matt Austern  <austern@apple.com>
-//
-// Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.4 unordered_map
-
-#include <string>
-#include <tr1/unordered_map>
-
-using namespace std;
-using namespace std::tr1;
-
-template class unordered_map<string, float>;
-template class unordered_map<string, float,
-                            hash<string>, equal_to<string>, 
-                            allocator<pair<const string, float> >, true>;
-template class unordered_map<string, float,
-                            hash<string>, equal_to<string>, 
-                            allocator<char>, false>;
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/multimap.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/multimap.cc
deleted file mode 100644 (file)
index d48aef8..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-// { dg-do compile }
-
-// 2005-02-17  Matt Austern  <austern@apple.com>
-//
-// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.6 unordered_multimap
-
-#include <string>
-#include <tr1/unordered_map>
-
-using namespace std;
-using namespace std::tr1;
-
-template class unordered_multimap<string, float>;
-template class unordered_multimap<string, float,
-                                 hash<string>, equal_to<string>, 
-                                 allocator<pair<const string, float> >, true>;
-template class unordered_multimap<string, float,
-                                 hash<string>, equal_to<string>, 
-                                 allocator<char>, false>;
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/multiset.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/multiset.cc
deleted file mode 100644 (file)
index 5d1e871..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-// { dg-do compile }
-
-// 2005-02-17  Matt Austern  <austern@apple.com>
-//
-// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.5 unordered_multiset
-
-#include <tr1/unordered_set>
-
-using namespace std;
-using namespace std::tr1;
-
-template class unordered_multiset<int>;
-template class unordered_multiset<int, hash<int>, equal_to<int>,
-                                 allocator<int>, true>;
-template class unordered_multiset<int, hash<int>, equal_to<int>,
-                                 allocator<char>, false>;
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/set.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/set.cc
deleted file mode 100644 (file)
index ae3214f..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-// { dg-do compile }
-
-// 2005-02-17  Matt Austern  <austern@apple.com>
-//
-// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.3 unordered_set
-
-#include <tr1/unordered_set>
-
-using namespace std;
-using namespace std::tr1;
-
-template class unordered_set<int>;
-template class unordered_set<int, hash<int>, equal_to<int>,
-                            allocator<int>, true>;
-template class unordered_set<int, hash<int>, equal_to<int>,
-                            allocator<char>, false>;
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_map/1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_map/1.cc
deleted file mode 100644 (file)
index d379774..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-// 2005-12-20  Paolo Carlini  <pcarlini@suse.de>
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-// USA.
-
-// 6.3.4.4 unordered_map::swap
-
-#include <tr1/unordered_map>
-#include <map>
-#include <testsuite_hooks.h>
-#include <testsuite_allocator.h>
-
-// uneq_allocator as a non-empty allocator.
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-  using namespace std;
-  using namespace tr1;
-
-  typedef pair<const char, int> my_pair;
-  typedef __gnu_test::uneq_allocator<my_pair> my_alloc;
-  typedef unordered_map<char, int, hash<char>, equal_to<char>, my_alloc>
-    my_umap;
-  
-  const char title01[] = "Rivers of sand";
-  const char title02[] = "Concret PH";
-  const char title03[] = "Sonatas and Interludes for Prepared Piano";
-  const char title04[] = "never as tired as when i'm waking up";
-
-  const size_t N1 = sizeof(title01);
-  const size_t N2 = sizeof(title02);
-  const size_t N3 = sizeof(title03);
-  const size_t N4 = sizeof(title04);
-
-  typedef map<char, int> my_map;
-  my_map map01_ref;
-  for (size_t i = 0; i < N1; ++i)
-    map01_ref.insert(my_pair(title01[i], i));
-  my_map map02_ref;
-  for (size_t i = 0; i < N2; ++i)
-    map02_ref.insert(my_pair(title02[i], i));
-  my_map map03_ref;
-  for (size_t i = 0; i < N3; ++i)
-    map03_ref.insert(my_pair(title03[i], i));
-  my_map map04_ref;
-  for (size_t i = 0; i < N4; ++i)
-    map04_ref.insert(my_pair(title04[i], i));
-
-  my_umap::size_type size01, size02;
-
-  my_alloc alloc01(1);
-
-  my_umap umap01(10, hash<char>(), equal_to<char>(), alloc01);
-  size01 = umap01.size();
-  my_umap umap02(10, hash<char>(), equal_to<char>(), alloc01);
-  size02 = umap02.size();
-  
-  umap01.swap(umap02);
-  VERIFY( umap01.size() == size02 );
-  VERIFY( umap01.empty() );
-  VERIFY( umap02.size() == size01 );
-  VERIFY( umap02.empty() );
-
-  my_umap umap03(10, hash<char>(), equal_to<char>(), alloc01);
-  size01 = umap03.size();
-  my_umap umap04(map02_ref.begin(), map02_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size02 = umap04.size();
-
-  umap03.swap(umap04);
-  VERIFY( umap03.size() == size02 );
-  VERIFY( my_map(umap03.begin(), umap03.end()) == map02_ref );
-  VERIFY( umap04.size() == size01 );
-  VERIFY( umap04.empty() );
-  
-  my_umap umap05(map01_ref.begin(), map01_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size01 = umap05.size();
-  my_umap umap06(map02_ref.begin(), map02_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size02 = umap06.size();
-
-  umap05.swap(umap06);
-  VERIFY( umap05.size() == size02 );
-  VERIFY( my_map(umap05.begin(), umap05.end()) == map02_ref );
-  VERIFY( umap06.size() == size01 );
-  VERIFY( my_map(umap06.begin(), umap06.end()) == map01_ref );
-
-  my_umap umap07(map01_ref.begin(), map01_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size01 = umap07.size();
-  my_umap umap08(map03_ref.begin(), map03_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size02 = umap08.size();
-
-  umap07.swap(umap08);
-  VERIFY( umap07.size() == size02 );
-  VERIFY( my_map(umap07.begin(), umap07.end()) == map03_ref );
-  VERIFY( umap08.size() == size01 );
-  VERIFY( my_map(umap08.begin(), umap08.end()) == map01_ref );
-
-  my_umap umap09(map03_ref.begin(), map03_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size01 = umap09.size();
-  my_umap umap10(map04_ref.begin(), map04_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size02 = umap10.size();
-
-  umap09.swap(umap10);
-  VERIFY( umap09.size() == size02 );
-  VERIFY( my_map(umap09.begin(), umap09.end()) == map04_ref );
-  VERIFY( umap10.size() == size01 );
-  VERIFY( my_map(umap10.begin(), umap10.end()) == map03_ref );
-
-  my_umap umap11(map04_ref.begin(), map04_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size01 = umap11.size();
-  my_umap umap12(map01_ref.begin(), map01_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size02 = umap12.size();
-
-  umap11.swap(umap12);
-  VERIFY( umap11.size() == size02 );
-  VERIFY( my_map(umap11.begin(), umap11.end()) == map01_ref );
-  VERIFY( umap12.size() == size01 );
-  VERIFY( my_map(umap12.begin(), umap12.end()) == map04_ref );
-
-  my_umap umap13(map03_ref.begin(), map03_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size01 = umap13.size();
-  my_umap umap14(map03_ref.begin(), map03_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size02 = umap14.size();
-
-  umap13.swap(umap14);
-  VERIFY( umap13.size() == size02 );
-  VERIFY( my_map(umap13.begin(), umap13.end()) == map03_ref );
-  VERIFY( umap14.size() == size01 );
-  VERIFY( my_map(umap14.begin(), umap14.end()) == map03_ref );
-}
-
-int main()
-{ 
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_map/2.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_map/2.cc
deleted file mode 100644 (file)
index 8d70829..0000000
+++ /dev/null
@@ -1,191 +0,0 @@
-// 2005-12-20  Paolo Carlini  <pcarlini@suse.de>
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-// USA.
-
-// 6.3.4.4 unordered_map::swap
-
-#include <tr1/unordered_map>
-#include <map>
-#include <testsuite_hooks.h>
-#include <testsuite_allocator.h>
-
-// uneq_allocator, two different personalities.
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-  using namespace std;
-  using namespace tr1;
-
-  typedef pair<const char, int> my_pair;
-  typedef __gnu_test::uneq_allocator<my_pair> my_alloc;
-  typedef unordered_map<char, int, hash<char>, equal_to<char>, my_alloc>
-    my_umap;
-
-  const char title01[] = "Rivers of sand";
-  const char title02[] = "Concret PH";
-  const char title03[] = "Sonatas and Interludes for Prepared Piano";
-  const char title04[] = "never as tired as when i'm waking up";
-
-  const size_t N1 = sizeof(title01);
-  const size_t N2 = sizeof(title02);
-  const size_t N3 = sizeof(title03);
-  const size_t N4 = sizeof(title04);
-
-  typedef map<char, int> my_map;
-  my_map map01_ref;
-  for (size_t i = 0; i < N1; ++i)
-    map01_ref.insert(my_pair(title01[i], i));
-  my_map map02_ref;
-  for (size_t i = 0; i < N2; ++i)
-    map02_ref.insert(my_pair(title02[i], i));
-  my_map map03_ref;
-  for (size_t i = 0; i < N3; ++i)
-    map03_ref.insert(my_pair(title03[i], i));
-  my_map map04_ref;
-  for (size_t i = 0; i < N4; ++i)
-    map04_ref.insert(my_pair(title04[i], i));
-
-  my_umap::size_type size01, size02;
-
-  my_alloc alloc01(1), alloc02(2);
-  int personality01, personality02;
-
-  my_umap umap01(10, hash<char>(), equal_to<char>(), alloc01);
-  size01 = umap01.size();
-  personality01 = umap01.get_allocator().get_personality();
-  my_umap umap02(10, hash<char>(), equal_to<char>(), alloc02);
-  size02 = umap02.size();
-  personality02 = umap02.get_allocator().get_personality();
-
-  umap01.swap(umap02);
-  VERIFY( umap01.size() == size02 );
-  VERIFY( umap01.empty() );
-  VERIFY( umap02.size() == size01 );
-  VERIFY( umap02.empty() );
-  VERIFY( umap01.get_allocator().get_personality() == personality02 );
-  VERIFY( umap02.get_allocator().get_personality() == personality01 );
-
-  my_umap umap03(10, hash<char>(), equal_to<char>(), alloc02);
-  size01 = umap03.size();
-  personality01 = umap03.get_allocator().get_personality();
-  my_umap umap04(map02_ref.begin(), map02_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size02 = umap04.size();
-  personality02 = umap04.get_allocator().get_personality();
-
-  umap03.swap(umap04);
-  VERIFY( umap03.size() == size02 );
-  VERIFY( my_map(umap03.begin(), umap03.end()) == map02_ref );
-  VERIFY( umap04.size() == size01 );
-  VERIFY( umap04.empty() );
-  VERIFY( umap03.get_allocator().get_personality() == personality02 );
-  VERIFY( umap04.get_allocator().get_personality() == personality01 );
-  
-  my_umap umap05(map01_ref.begin(), map01_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size01 = umap05.size();
-  personality01 = umap05.get_allocator().get_personality();
-  my_umap umap06(map02_ref.begin(), map02_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc02);
-  size02 = umap06.size();
-  personality02 = umap06.get_allocator().get_personality();
-
-  umap05.swap(umap06);
-  VERIFY( umap05.size() == size02 );
-  VERIFY( my_map(umap05.begin(), umap05.end()) == map02_ref );
-  VERIFY( umap06.size() == size01 );
-  VERIFY( my_map(umap06.begin(), umap06.end()) == map01_ref );
-  VERIFY( umap05.get_allocator().get_personality() == personality02 );
-  VERIFY( umap06.get_allocator().get_personality() == personality01 );
-
-  my_umap umap07(map01_ref.begin(), map01_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc02);
-  size01 = umap07.size();
-  personality01 = umap07.get_allocator().get_personality();
-  my_umap umap08(map03_ref.begin(), map03_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size02 = umap08.size();
-  personality02 = umap08.get_allocator().get_personality();
-
-  umap07.swap(umap08);
-  VERIFY( umap07.size() == size02 );
-  VERIFY( my_map(umap07.begin(), umap07.end()) == map03_ref );
-  VERIFY( umap08.size() == size01 );
-  VERIFY( my_map(umap08.begin(), umap08.end()) == map01_ref );
-  VERIFY( umap07.get_allocator().get_personality() == personality02 );
-  VERIFY( umap08.get_allocator().get_personality() == personality01 );
-
-  my_umap umap09(map03_ref.begin(), map03_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size01 = umap09.size();
-  personality01 = umap09.get_allocator().get_personality();
-  my_umap umap10(map04_ref.begin(), map04_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc02);
-  size02 = umap10.size();
-  personality02 = umap10.get_allocator().get_personality();
-
-  umap09.swap(umap10);
-  VERIFY( umap09.size() == size02 );
-  VERIFY( my_map(umap09.begin(), umap09.end()) == map04_ref );
-  VERIFY( umap10.size() == size01 );
-  VERIFY( my_map(umap10.begin(), umap10.end()) == map03_ref );
-  VERIFY( umap09.get_allocator().get_personality() == personality02 );
-  VERIFY( umap10.get_allocator().get_personality() == personality01 );
-
-  my_umap umap11(map04_ref.begin(), map04_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc02);
-  size01 = umap11.size();
-  personality01 = umap11.get_allocator().get_personality();
-  my_umap umap12(map01_ref.begin(), map01_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size02 = umap12.size();
-  personality02 = umap12.get_allocator().get_personality();
-
-  umap11.swap(umap12);
-  VERIFY( umap11.size() == size02 );
-  VERIFY( my_map(umap11.begin(), umap11.end()) == map01_ref );
-  VERIFY( umap12.size() == size01 );
-  VERIFY( my_map(umap12.begin(), umap12.end()) == map04_ref );
-  VERIFY( umap11.get_allocator().get_personality() == personality02 );
-  VERIFY( umap12.get_allocator().get_personality() == personality01 );
-
-  my_umap umap13(map03_ref.begin(), map03_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size01 = umap13.size();
-  personality01 = umap13.get_allocator().get_personality();
-  my_umap umap14(map03_ref.begin(), map03_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc02);
-  size02 = umap14.size();
-  personality02 = umap14.get_allocator().get_personality();
-
-  umap13.swap(umap14);
-  VERIFY( umap13.size() == size02 );
-  VERIFY( my_map(umap13.begin(), umap13.end()) == map03_ref );
-  VERIFY( umap14.size() == size01 );
-  VERIFY( my_map(umap14.begin(), umap14.end()) == map03_ref );
-  VERIFY( umap13.get_allocator().get_personality() == personality02 );
-  VERIFY( umap14.get_allocator().get_personality() == personality01 );
-}
-
-int main()
-{ 
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multimap/1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multimap/1.cc
deleted file mode 100644 (file)
index 7648e08..0000000
+++ /dev/null
@@ -1,175 +0,0 @@
-// 2005-12-20  Paolo Carlini  <pcarlini@suse.de>
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-// USA.
-
-// 6.3.4.6 unordered_multimap::swap
-
-#include <tr1/unordered_map>
-#include <map>
-#include <testsuite_hooks.h>
-#include <testsuite_allocator.h>
-
-// uneq_allocator as a non-empty allocator.
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-  using namespace std;
-  using namespace tr1;
-
-  typedef pair<const char, int> my_pair;
-  typedef __gnu_test::uneq_allocator<my_pair> my_alloc;
-  typedef unordered_multimap<char, int, hash<char>, equal_to<char>, my_alloc>
-    my_ummap;
-  
-  const char title01[] = "Rivers of sand";
-  const char title02[] = "Concret PH";
-  const char title03[] = "Sonatas and Interludes for Prepared Piano";
-  const char title04[] = "never as tired as when i'm waking up";
-
-  const size_t N1 = sizeof(title01);
-  const size_t N2 = sizeof(title02);
-  const size_t N3 = sizeof(title03);
-  const size_t N4 = sizeof(title04);
-
-  typedef multimap<char, int> my_mmap;
-  my_mmap mmap01_ref;
-  for (size_t i = 0; i < N1; ++i)
-    mmap01_ref.insert(my_pair(title01[i], i));
-  my_mmap mmap02_ref;
-  for (size_t i = 0; i < N2; ++i)
-    mmap02_ref.insert(my_pair(title02[i], i));
-  my_mmap mmap03_ref;
-  for (size_t i = 0; i < N3; ++i)
-    mmap03_ref.insert(my_pair(title03[i], i));
-  my_mmap mmap04_ref;
-  for (size_t i = 0; i < N4; ++i)
-    mmap04_ref.insert(my_pair(title04[i], i));
-
-  typedef map<char, int> my_map;
-
-  my_ummap::size_type size01, size02;
-
-  my_alloc alloc01(1);
-
-  my_ummap ummap01(10, hash<char>(), equal_to<char>(), alloc01);
-  size01 = ummap01.size();
-  my_ummap ummap02(10, hash<char>(), equal_to<char>(), alloc01);
-  size02 = ummap02.size();
-  
-  ummap01.swap(ummap02);
-  VERIFY( ummap01.size() == size02 );
-  VERIFY( ummap01.empty() );
-  VERIFY( ummap02.size() == size01 );
-  VERIFY( ummap02.empty() );
-
-  my_ummap ummap03(10, hash<char>(), equal_to<char>(), alloc01);
-  size01 = ummap03.size();
-  my_ummap ummap04(mmap02_ref.begin(), mmap02_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size02 = ummap04.size();
-
-  ummap03.swap(ummap04);
-  VERIFY( ummap03.size() == size02 );
-  VERIFY( my_map(ummap03.begin(), ummap03.end())
-         == my_map(mmap02_ref.begin(), mmap02_ref.end()) );
-  VERIFY( ummap04.size() == size01 );
-  VERIFY( ummap04.empty() );
-  
-  my_ummap ummap05(mmap01_ref.begin(), mmap01_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size01 = ummap05.size();
-  my_ummap ummap06(mmap02_ref.begin(), mmap02_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size02 = ummap06.size();
-
-  ummap05.swap(ummap06);
-  VERIFY( ummap05.size() == size02 );
-  VERIFY( my_map(ummap05.begin(), ummap05.end())
-         == my_map(mmap02_ref.begin(), mmap02_ref.end()) );
-  VERIFY( ummap06.size() == size01 );
-  VERIFY( my_map(ummap06.begin(), ummap06.end())
-         == my_map(mmap01_ref.begin(), mmap01_ref.end()) );
-
-  my_ummap ummap07(mmap01_ref.begin(), mmap01_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size01 = ummap07.size();
-  my_ummap ummap08(mmap03_ref.begin(), mmap03_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size02 = ummap08.size();
-
-  ummap07.swap(ummap08);
-  VERIFY( ummap07.size() == size02 );
-  VERIFY( my_map(ummap07.begin(), ummap07.end())
-         == my_map(mmap03_ref.begin(), mmap03_ref.end()) );
-  VERIFY( ummap08.size() == size01 );
-  VERIFY( my_map(ummap08.begin(), ummap08.end())
-         == my_map(mmap01_ref.begin(), mmap01_ref.end()) );
-
-  my_ummap ummap09(mmap03_ref.begin(), mmap03_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size01 = ummap09.size();
-  my_ummap ummap10(mmap04_ref.begin(), mmap04_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size02 = ummap10.size();
-
-  ummap09.swap(ummap10);
-  VERIFY( ummap09.size() == size02 );
-  VERIFY( my_map(ummap09.begin(), ummap09.end())
-         == my_map(mmap04_ref.begin(), mmap04_ref.end()) );
-  VERIFY( ummap10.size() == size01 );
-  VERIFY( my_map(ummap10.begin(), ummap10.end())
-         == my_map(mmap03_ref.begin(), mmap03_ref.end()) );
-
-  my_ummap ummap11(mmap04_ref.begin(), mmap04_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size01 = ummap11.size();
-  my_ummap ummap12(mmap01_ref.begin(), mmap01_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size02 = ummap12.size();
-
-  ummap11.swap(ummap12);
-  VERIFY( ummap11.size() == size02 );
-  VERIFY( my_map(ummap11.begin(), ummap11.end())
-         == my_map(mmap01_ref.begin(), mmap01_ref.end()) );
-  VERIFY( ummap12.size() == size01 );
-  VERIFY( my_map(ummap12.begin(), ummap12.end())
-         == my_map(mmap04_ref.begin(), mmap04_ref.end()) );
-
-  my_ummap ummap13(mmap03_ref.begin(), mmap03_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size01 = ummap13.size();
-  my_ummap ummap14(mmap03_ref.begin(), mmap03_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size02 = ummap14.size();
-
-  ummap13.swap(ummap14);
-  VERIFY( ummap13.size() == size02 );
-  VERIFY( my_map(ummap13.begin(), ummap13.end())
-         == my_map(mmap03_ref.begin(), mmap03_ref.end()) );
-  VERIFY( ummap14.size() == size01 );
-  VERIFY( my_map(ummap14.begin(), ummap14.end())
-         == my_map(mmap03_ref.begin(), mmap03_ref.end()) );
-}
-
-int main()
-{ 
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multimap/2.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multimap/2.cc
deleted file mode 100644 (file)
index f7744eb..0000000
+++ /dev/null
@@ -1,204 +0,0 @@
-// 2005-12-20  Paolo Carlini  <pcarlini@suse.de>
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-// USA.
-
-// 6.3.4.6 unordered_multimap::swap
-
-#include <tr1/unordered_map>
-#include <map>
-#include <testsuite_hooks.h>
-#include <testsuite_allocator.h>
-
-// uneq_allocator, two different personalities.
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-  using namespace std;
-  using namespace tr1;
-
-  typedef pair<const char, int> my_pair;
-  typedef __gnu_test::uneq_allocator<my_pair> my_alloc;
-  typedef unordered_multimap<char, int, hash<char>, equal_to<char>, my_alloc>
-    my_ummap;
-
-  const char title01[] = "Rivers of sand";
-  const char title02[] = "Concret PH";
-  const char title03[] = "Sonatas and Interludes for Prepared Piano";
-  const char title04[] = "never as tired as when i'm waking up";
-
-  const size_t N1 = sizeof(title01);
-  const size_t N2 = sizeof(title02);
-  const size_t N3 = sizeof(title03);
-  const size_t N4 = sizeof(title04);
-
-  typedef multimap<char, int> my_mmap;
-  my_mmap mmap01_ref;
-  for (size_t i = 0; i < N1; ++i)
-    mmap01_ref.insert(my_pair(title01[i], i));
-  my_mmap mmap02_ref;
-  for (size_t i = 0; i < N2; ++i)
-    mmap02_ref.insert(my_pair(title02[i], i));
-  my_mmap mmap03_ref;
-  for (size_t i = 0; i < N3; ++i)
-    mmap03_ref.insert(my_pair(title03[i], i));
-  my_mmap mmap04_ref;
-  for (size_t i = 0; i < N4; ++i)
-    mmap04_ref.insert(my_pair(title04[i], i));
-
-  typedef map<char, int> my_map;
-
-  my_ummap::size_type size01, size02;
-
-  my_alloc alloc01(1), alloc02(2);
-  int personality01, personality02;
-
-  my_ummap ummap01(10, hash<char>(), equal_to<char>(), alloc01);
-  size01 = ummap01.size();
-  personality01 = ummap01.get_allocator().get_personality();
-  my_ummap ummap02(10, hash<char>(), equal_to<char>(), alloc02);
-  size02 = ummap02.size();
-  personality02 = ummap02.get_allocator().get_personality();
-
-  ummap01.swap(ummap02);
-  VERIFY( ummap01.size() == size02 );
-  VERIFY( ummap01.empty() );
-  VERIFY( ummap02.size() == size01 );
-  VERIFY( ummap02.empty() );
-  VERIFY( ummap01.get_allocator().get_personality() == personality02 );
-  VERIFY( ummap02.get_allocator().get_personality() == personality01 );
-
-  my_ummap ummap03(10, hash<char>(), equal_to<char>(), alloc02);
-  size01 = ummap03.size();
-  personality01 = ummap03.get_allocator().get_personality();
-  my_ummap ummap04(mmap02_ref.begin(), mmap02_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size02 = ummap04.size();
-  personality02 = ummap04.get_allocator().get_personality();
-
-  ummap03.swap(ummap04);
-  VERIFY( ummap03.size() == size02 );
-  VERIFY( my_map(ummap03.begin(), ummap03.end())
-         == my_map(mmap02_ref.begin(), mmap02_ref.end()) );
-  VERIFY( ummap04.size() == size01 );
-  VERIFY( ummap04.empty() );
-  VERIFY( ummap03.get_allocator().get_personality() == personality02 );
-  VERIFY( ummap04.get_allocator().get_personality() == personality01 );
-  
-  my_ummap ummap05(mmap01_ref.begin(), mmap01_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size01 = ummap05.size();
-  personality01 = ummap05.get_allocator().get_personality();
-  my_ummap ummap06(mmap02_ref.begin(), mmap02_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc02);
-  size02 = ummap06.size();
-  personality02 = ummap06.get_allocator().get_personality();
-
-  ummap05.swap(ummap06);
-  VERIFY( ummap05.size() == size02 );
-  VERIFY( my_map(ummap05.begin(), ummap05.end())
-         == my_map(mmap02_ref.begin(), mmap02_ref.end()) );
-  VERIFY( ummap06.size() == size01 );
-  VERIFY( my_map(ummap06.begin(), ummap06.end())
-         == my_map(mmap01_ref.begin(), mmap01_ref.end()) );
-  VERIFY( ummap05.get_allocator().get_personality() == personality02 );
-  VERIFY( ummap06.get_allocator().get_personality() == personality01 );
-
-  my_ummap ummap07(mmap01_ref.begin(), mmap01_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc02);
-  size01 = ummap07.size();
-  personality01 = ummap07.get_allocator().get_personality();
-  my_ummap ummap08(mmap03_ref.begin(), mmap03_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size02 = ummap08.size();
-  personality02 = ummap08.get_allocator().get_personality();
-
-  ummap07.swap(ummap08);
-  VERIFY( ummap07.size() == size02 );
-  VERIFY( my_map(ummap07.begin(), ummap07.end())
-         == my_map(mmap03_ref.begin(), mmap03_ref.end()) );
-  VERIFY( ummap08.size() == size01 );
-  VERIFY( my_map(ummap08.begin(), ummap08.end()) 
-         == my_map(mmap01_ref.begin(), mmap01_ref.end()) );
-  VERIFY( ummap07.get_allocator().get_personality() == personality02 );
-  VERIFY( ummap08.get_allocator().get_personality() == personality01 );
-
-  my_ummap ummap09(mmap03_ref.begin(), mmap03_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size01 = ummap09.size();
-  personality01 = ummap09.get_allocator().get_personality();
-  my_ummap ummap10(mmap04_ref.begin(), mmap04_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc02);
-  size02 = ummap10.size();
-  personality02 = ummap10.get_allocator().get_personality();
-
-  ummap09.swap(ummap10);
-  VERIFY( ummap09.size() == size02 );
-  VERIFY( my_map(ummap09.begin(), ummap09.end())
-         == my_map(mmap04_ref.begin(), mmap04_ref.end()) );
-  VERIFY( ummap10.size() == size01 );
-  VERIFY( my_map(ummap10.begin(), ummap10.end())
-         == my_map(mmap03_ref.begin(), mmap03_ref.end()) );
-  VERIFY( ummap09.get_allocator().get_personality() == personality02 );
-  VERIFY( ummap10.get_allocator().get_personality() == personality01 );
-
-  my_ummap ummap11(mmap04_ref.begin(), mmap04_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc02);
-  size01 = ummap11.size();
-  personality01 = ummap11.get_allocator().get_personality();
-  my_ummap ummap12(mmap01_ref.begin(), mmap01_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size02 = ummap12.size();
-  personality02 = ummap12.get_allocator().get_personality();
-
-  ummap11.swap(ummap12);
-  VERIFY( ummap11.size() == size02 );
-  VERIFY( my_map(ummap11.begin(), ummap11.end())
-         == my_map(mmap01_ref.begin(), mmap01_ref.end()) );
-  VERIFY( ummap12.size() == size01 );
-  VERIFY( my_map(ummap12.begin(), ummap12.end())
-         == my_map(mmap04_ref.begin(), mmap04_ref.end()) );
-  VERIFY( ummap11.get_allocator().get_personality() == personality02 );
-  VERIFY( ummap12.get_allocator().get_personality() == personality01 );
-
-  my_ummap ummap13(mmap03_ref.begin(), mmap03_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size01 = ummap13.size();
-  personality01 = ummap13.get_allocator().get_personality();
-  my_ummap ummap14(mmap03_ref.begin(), mmap03_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc02);
-  size02 = ummap14.size();
-  personality02 = ummap14.get_allocator().get_personality();
-
-  ummap13.swap(ummap14);
-  VERIFY( ummap13.size() == size02 );
-  VERIFY( my_map(ummap13.begin(), ummap13.end())
-         == my_map(mmap03_ref.begin(), mmap03_ref.end()) );
-  VERIFY( ummap14.size() == size01 );
-  VERIFY( my_map(ummap14.begin(), ummap14.end())
-         == my_map(mmap03_ref.begin(), mmap03_ref.end()) );
-  VERIFY( ummap13.get_allocator().get_personality() == personality02 );
-  VERIFY( ummap14.get_allocator().get_personality() == personality01 );
-}
-
-int main()
-{ 
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multiset/1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multiset/1.cc
deleted file mode 100644 (file)
index ca0194e..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-// 2005-12-20  Paolo Carlini  <pcarlini@suse.de>
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-// USA.
-
-// 6.3.4.5 unordered_multiset::swap
-
-#include <tr1/unordered_set>
-#include <set>
-#include <testsuite_hooks.h>
-#include <testsuite_allocator.h>
-
-// uneq_allocator as a non-empty allocator.
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-  using namespace std;
-  using namespace tr1;
-
-  typedef __gnu_test::uneq_allocator<char> my_alloc;
-  typedef unordered_multiset<char, hash<char>, equal_to<char>, my_alloc>
-    my_umset;
-
-  const char title01[] = "Rivers of sand";
-  const char title02[] = "Concret PH";
-  const char title03[] = "Sonatas and Interludes for Prepared Piano";
-  const char title04[] = "never as tired as when i'm waking up";
-
-  const size_t N1 = sizeof(title01);
-  const size_t N2 = sizeof(title02);
-  const size_t N3 = sizeof(title03);
-  const size_t N4 = sizeof(title04);
-
-  typedef multiset<char> my_mset;
-  const my_mset mset01_ref(title01, title01 + N1);
-  const my_mset mset02_ref(title02, title02 + N2);
-  const my_mset mset03_ref(title03, title03 + N3);
-  const my_mset mset04_ref(title04, title04 + N4);
-
-  my_umset::size_type size01, size02;
-
-  my_alloc alloc01(1);
-
-  my_umset umset01(10, hash<char>(), equal_to<char>(), alloc01);
-  size01 = umset01.size();
-  my_umset umset02(10, hash<char>(), equal_to<char>(), alloc01);
-  size02 = umset02.size();
-  
-  umset01.swap(umset02);
-  VERIFY( umset01.size() == size02 );
-  VERIFY( umset01.empty() );
-  VERIFY( umset02.size() == size01 );
-  VERIFY( umset02.empty() );
-
-  my_umset umset03(10, hash<char>(), equal_to<char>(), alloc01);
-  size01 = umset03.size();
-  my_umset umset04(mset02_ref.begin(), mset02_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size02 = umset04.size();
-  
-  umset03.swap(umset04);
-  VERIFY( umset03.size() == size02 );
-  VERIFY( my_mset(umset03.begin(), umset03.end()) == mset02_ref );
-  VERIFY( umset04.size() == size01 );
-  VERIFY( umset04.empty() );
-  
-  my_umset umset05(mset01_ref.begin(), mset01_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size01 = umset05.size();
-  my_umset umset06(mset02_ref.begin(), mset02_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size02 = umset06.size();
-  
-  umset05.swap(umset06);
-  VERIFY( umset05.size() == size02 );
-  VERIFY( my_mset(umset05.begin(), umset05.end()) == mset02_ref );
-  VERIFY( umset06.size() == size01 );
-  VERIFY( my_mset(umset06.begin(), umset06.end()) == mset01_ref );
-
-  my_umset umset07(mset01_ref.begin(), mset01_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size01 = umset07.size();
-  my_umset umset08(mset03_ref.begin(), mset03_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size02 = umset08.size();
-
-  umset07.swap(umset08);
-  VERIFY( umset07.size() == size02 );
-  VERIFY( my_mset(umset07.begin(), umset07.end()) == mset03_ref );
-  VERIFY( umset08.size() == size01 );
-  VERIFY( my_mset(umset08.begin(), umset08.end()) == mset01_ref );
-
-  my_umset umset09(mset03_ref.begin(), mset03_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size01 = umset09.size();
-  my_umset umset10(mset04_ref.begin(), mset04_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size02 = umset10.size();
-
-  umset09.swap(umset10);
-  VERIFY( umset09.size() == size02 );
-  VERIFY( my_mset(umset09.begin(), umset09.end()) == mset04_ref );
-  VERIFY( umset10.size() == size01 );
-  VERIFY( my_mset(umset10.begin(), umset10.end()) == mset03_ref );
-
-  my_umset umset11(mset04_ref.begin(), mset04_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size01 = umset11.size();
-  my_umset umset12(mset01_ref.begin(), mset01_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size02 = umset12.size();
-
-  umset11.swap(umset12);
-  VERIFY( umset11.size() == size02 );
-  VERIFY( my_mset(umset11.begin(), umset11.end()) == mset01_ref );
-  VERIFY( umset12.size() == size01 );
-  VERIFY( my_mset(umset12.begin(), umset12.end()) == mset04_ref );
-
-  my_umset umset13(mset03_ref.begin(), mset03_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size01 = umset13.size();
-  my_umset umset14(mset03_ref.begin(), mset03_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size02 = umset14.size();
-
-  umset13.swap(umset14);
-  VERIFY( umset13.size() == size02 );
-  VERIFY( my_mset(umset13.begin(), umset13.end()) == mset03_ref );
-  VERIFY( umset14.size() == size01 );
-  VERIFY( my_mset(umset14.begin(), umset14.end()) == mset03_ref );
-}
-
-int main()
-{ 
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multiset/2.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multiset/2.cc
deleted file mode 100644 (file)
index a95ddd5..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-// 2005-12-20  Paolo Carlini  <pcarlini@suse.de>
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-// USA.
-
-// 6.3.4.5 unordered_multiset::swap
-
-#include <tr1/unordered_set>
-#include <set>
-#include <testsuite_hooks.h>
-#include <testsuite_allocator.h>
-
-// uneq_allocator, two different personalities.
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-  using namespace std;
-  using namespace tr1;
-
-  typedef __gnu_test::uneq_allocator<char> my_alloc;
-  typedef unordered_multiset<char, hash<char>, equal_to<char>, my_alloc>
-    my_umset;
-
-  const char title01[] = "Rivers of sand";
-  const char title02[] = "Concret PH";
-  const char title03[] = "Sonatas and Interludes for Prepared Piano";
-  const char title04[] = "never as tired as when i'm waking up";
-
-  const size_t N1 = sizeof(title01);
-  const size_t N2 = sizeof(title02);
-  const size_t N3 = sizeof(title03);
-  const size_t N4 = sizeof(title04);
-
-  typedef multiset<char> my_mset;
-  const my_mset mset01_ref(title01, title01 + N1);
-  const my_mset mset02_ref(title02, title02 + N2);
-  const my_mset mset03_ref(title03, title03 + N3);
-  const my_mset mset04_ref(title04, title04 + N4);
-
-  my_umset::size_type size01, size02;
-
-  my_alloc alloc01(1), alloc02(2);
-  int personality01, personality02;
-
-  my_umset umset01(10, hash<char>(), equal_to<char>(), alloc01);
-  size01 = umset01.size();
-  personality01 = umset01.get_allocator().get_personality();
-  my_umset umset02(10, hash<char>(), equal_to<char>(), alloc02);
-  size02 = umset02.size();
-  personality02 = umset02.get_allocator().get_personality();
-
-  umset01.swap(umset02);
-  VERIFY( umset01.size() == size02 );
-  VERIFY( umset01.empty() );
-  VERIFY( umset02.size() == size01 );
-  VERIFY( umset02.empty() );
-  VERIFY( umset01.get_allocator().get_personality() == personality02 );
-  VERIFY( umset02.get_allocator().get_personality() == personality01 );
-
-  my_umset umset03(10, hash<char>(), equal_to<char>(), alloc02);
-  size01 = umset03.size();
-  personality01 = umset03.get_allocator().get_personality();
-  my_umset umset04(mset02_ref.begin(), mset02_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size02 = umset04.size();
-  personality02 = umset04.get_allocator().get_personality();
-
-  umset03.swap(umset04);
-  VERIFY( umset03.size() == size02 );
-  VERIFY( my_mset(umset03.begin(), umset03.end()) == mset02_ref );
-  VERIFY( umset04.size() == size01 );
-  VERIFY( umset04.empty() );
-  VERIFY( umset03.get_allocator().get_personality() == personality02 );
-  VERIFY( umset04.get_allocator().get_personality() == personality01 );
-  
-  my_umset umset05(mset01_ref.begin(), mset01_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size01 = umset05.size();
-  personality01 = umset05.get_allocator().get_personality();
-  my_umset umset06(mset02_ref.begin(), mset02_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc02);
-  size02 = umset06.size();
-  personality02 = umset06.get_allocator().get_personality();
-
-  umset05.swap(umset06);
-  VERIFY( umset05.size() == size02 );
-  VERIFY( my_mset(umset05.begin(), umset05.end()) == mset02_ref );
-  VERIFY( umset06.size() == size01 );
-  VERIFY( my_mset(umset06.begin(), umset06.end()) == mset01_ref );
-  VERIFY( umset05.get_allocator().get_personality() == personality02 );
-  VERIFY( umset06.get_allocator().get_personality() == personality01 );
-
-  my_umset umset07(mset01_ref.begin(), mset01_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc02);
-  size01 = umset07.size();
-  personality01 = umset07.get_allocator().get_personality();
-  my_umset umset08(mset03_ref.begin(), mset03_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size02 = umset08.size();
-  personality02 = umset08.get_allocator().get_personality();
-
-  umset07.swap(umset08);
-  VERIFY( umset07.size() == size02 );
-  VERIFY( my_mset(umset07.begin(), umset07.end()) == mset03_ref );
-  VERIFY( umset08.size() == size01 );
-  VERIFY( my_mset(umset08.begin(), umset08.end()) == mset01_ref );
-  VERIFY( umset07.get_allocator().get_personality() == personality02 );
-  VERIFY( umset08.get_allocator().get_personality() == personality01 );
-
-  my_umset umset09(mset03_ref.begin(), mset03_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size01 = umset09.size();
-  personality01 = umset09.get_allocator().get_personality();
-  my_umset umset10(mset04_ref.begin(), mset04_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc02);
-  size02 = umset10.size();
-  personality02 = umset10.get_allocator().get_personality();
-
-  umset09.swap(umset10);
-  VERIFY( umset09.size() == size02 );
-  VERIFY( my_mset(umset09.begin(), umset09.end()) == mset04_ref );
-  VERIFY( umset10.size() == size01 );
-  VERIFY( my_mset(umset10.begin(), umset10.end()) == mset03_ref );
-  VERIFY( umset09.get_allocator().get_personality() == personality02 );
-  VERIFY( umset10.get_allocator().get_personality() == personality01 );
-
-  my_umset umset11(mset04_ref.begin(), mset04_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc02);
-  size01 = umset11.size();
-  personality01 = umset11.get_allocator().get_personality();
-  my_umset umset12(mset01_ref.begin(), mset01_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size02 = umset12.size();
-  personality02 = umset12.get_allocator().get_personality();
-
-  umset11.swap(umset12);
-  VERIFY( umset11.size() == size02 );
-  VERIFY( my_mset(umset11.begin(), umset11.end()) == mset01_ref );
-  VERIFY( umset12.size() == size01 );
-  VERIFY( my_mset(umset12.begin(), umset12.end()) == mset04_ref );
-  VERIFY( umset11.get_allocator().get_personality() == personality02 );
-  VERIFY( umset12.get_allocator().get_personality() == personality01 );
-
-  my_umset umset13(mset03_ref.begin(), mset03_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc01);
-  size01 = umset13.size();
-  personality01 = umset13.get_allocator().get_personality();
-  my_umset umset14(mset03_ref.begin(), mset03_ref.end(), 10, hash<char>(),
-                  equal_to<char>(), alloc02);
-  size02 = umset14.size();
-  personality02 = umset14.get_allocator().get_personality();
-
-  umset13.swap(umset14);
-  VERIFY( umset13.size() == size02 );
-  VERIFY( my_mset(umset13.begin(), umset13.end()) == mset03_ref );
-  VERIFY( umset14.size() == size01 );
-  VERIFY( my_mset(umset14.begin(), umset14.end()) == mset03_ref );
-  VERIFY( umset13.get_allocator().get_personality() == personality02 );
-  VERIFY( umset14.get_allocator().get_personality() == personality01 );
-}
-
-int main()
-{ 
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_set/1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_set/1.cc
deleted file mode 100644 (file)
index 1928c9e..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-// 2005-12-20  Paolo Carlini  <pcarlini@suse.de>
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-// USA.
-
-// 6.3.4.3 unordered_set::swap
-
-#include <tr1/unordered_set>
-#include <set>
-#include <testsuite_hooks.h>
-#include <testsuite_allocator.h>
-
-// uneq_allocator as a non-empty allocator.
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-  using namespace std;
-  using namespace tr1;
-
-  typedef __gnu_test::uneq_allocator<char> my_alloc;
-  typedef unordered_set<char, hash<char>, equal_to<char>, my_alloc> my_uset;
-
-  const char title01[] = "Rivers of sand";
-  const char title02[] = "Concret PH";
-  const char title03[] = "Sonatas and Interludes for Prepared Piano";
-  const char title04[] = "never as tired as when i'm waking up";
-
-  const size_t N1 = sizeof(title01);
-  const size_t N2 = sizeof(title02);
-  const size_t N3 = sizeof(title03);
-  const size_t N4 = sizeof(title04);
-
-  typedef set<char> my_set;
-  const my_set set01_ref(title01, title01 + N1);
-  const my_set set02_ref(title02, title02 + N2);
-  const my_set set03_ref(title03, title03 + N3);
-  const my_set set04_ref(title04, title04 + N4);
-
-  my_uset::size_type size01, size02;
-
-  my_alloc alloc01(1);
-
-  my_uset uset01(10, hash<char>(), equal_to<char>(), alloc01);
-  size01 = uset01.size();
-  my_uset uset02(10, hash<char>(), equal_to<char>(), alloc01);
-  size02 = uset02.size();
-  
-  uset01.swap(uset02);
-  VERIFY( uset01.size() == size02 );
-  VERIFY( uset01.empty() );
-  VERIFY( uset02.size() == size01 );
-  VERIFY( uset02.empty() );
-
-  my_uset uset03(10, hash<char>(), equal_to<char>(), alloc01);
-  size01 = uset03.size();
-  my_uset uset04(set02_ref.begin(), set02_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size02 = uset04.size();
-  
-  uset03.swap(uset04);
-  VERIFY( uset03.size() == size02 );
-  VERIFY( my_set(uset03.begin(), uset03.end()) == set02_ref );
-  VERIFY( uset04.size() == size01 );
-  VERIFY( uset04.empty() );
-  
-  my_uset uset05(set01_ref.begin(), set01_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size01 = uset05.size();
-  my_uset uset06(set02_ref.begin(), set02_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size02 = uset06.size();
-  
-  uset05.swap(uset06);
-  VERIFY( uset05.size() == size02 );
-  VERIFY( my_set(uset05.begin(), uset05.end()) == set02_ref );
-  VERIFY( uset06.size() == size01 );
-  VERIFY( my_set(uset06.begin(), uset06.end()) == set01_ref );
-
-  my_uset uset07(set01_ref.begin(), set01_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size01 = uset07.size();
-  my_uset uset08(set03_ref.begin(), set03_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size02 = uset08.size();
-
-  uset07.swap(uset08);
-  VERIFY( uset07.size() == size02 );
-  VERIFY( my_set(uset07.begin(), uset07.end()) == set03_ref );
-  VERIFY( uset08.size() == size01 );
-  VERIFY( my_set(uset08.begin(), uset08.end()) == set01_ref );
-
-  my_uset uset09(set03_ref.begin(), set03_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size01 = uset09.size();
-  my_uset uset10(set04_ref.begin(), set04_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size02 = uset10.size();
-
-  uset09.swap(uset10);
-  VERIFY( uset09.size() == size02 );
-  VERIFY( my_set(uset09.begin(), uset09.end()) == set04_ref );
-  VERIFY( uset10.size() == size01 );
-  VERIFY( my_set(uset10.begin(), uset10.end()) == set03_ref );
-
-  my_uset uset11(set04_ref.begin(), set04_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size01 = uset11.size();
-  my_uset uset12(set01_ref.begin(), set01_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size02 = uset12.size();
-
-  uset11.swap(uset12);
-  VERIFY( uset11.size() == size02 );
-  VERIFY( my_set(uset11.begin(), uset11.end()) == set01_ref );
-  VERIFY( uset12.size() == size01 );
-  VERIFY( my_set(uset12.begin(), uset12.end()) == set04_ref );
-
-  my_uset uset13(set03_ref.begin(), set03_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size01 = uset13.size();
-  my_uset uset14(set03_ref.begin(), set03_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size02 = uset14.size();
-
-  uset13.swap(uset14);
-  VERIFY( uset13.size() == size02 );
-  VERIFY( my_set(uset13.begin(), uset13.end()) == set03_ref );
-  VERIFY( uset14.size() == size01 );
-  VERIFY( my_set(uset14.begin(), uset14.end()) == set03_ref );
-}
-
-int main()
-{ 
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_set/2.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_set/2.cc
deleted file mode 100644 (file)
index 46e859c..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-// 2005-12-20  Paolo Carlini  <pcarlini@suse.de>
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-// USA.
-
-// 6.3.4.3 unordered_set::swap
-
-#include <tr1/unordered_set>
-#include <set>
-#include <testsuite_hooks.h>
-#include <testsuite_allocator.h>
-
-// uneq_allocator, two different personalities.
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-  using namespace std;
-  using namespace tr1;
-
-  typedef __gnu_test::uneq_allocator<char> my_alloc;
-  typedef unordered_set<char, hash<char>, equal_to<char>, my_alloc> my_uset;
-
-  const char title01[] = "Rivers of sand";
-  const char title02[] = "Concret PH";
-  const char title03[] = "Sonatas and Interludes for Prepared Piano";
-  const char title04[] = "never as tired as when i'm waking up";
-
-  const size_t N1 = sizeof(title01);
-  const size_t N2 = sizeof(title02);
-  const size_t N3 = sizeof(title03);
-  const size_t N4 = sizeof(title04);
-
-  typedef set<char> my_set;
-  const my_set set01_ref(title01, title01 + N1);
-  const my_set set02_ref(title02, title02 + N2);
-  const my_set set03_ref(title03, title03 + N3);
-  const my_set set04_ref(title04, title04 + N4);
-
-  my_uset::size_type size01, size02;
-
-  my_alloc alloc01(1), alloc02(2);
-  int personality01, personality02;
-
-  my_uset uset01(10, hash<char>(), equal_to<char>(), alloc01);
-  size01 = uset01.size();
-  personality01 = uset01.get_allocator().get_personality();
-  my_uset uset02(10, hash<char>(), equal_to<char>(), alloc02);
-  size02 = uset02.size();
-  personality02 = uset02.get_allocator().get_personality();
-
-  uset01.swap(uset02);
-  VERIFY( uset01.size() == size02 );
-  VERIFY( uset01.empty() );
-  VERIFY( uset02.size() == size01 );
-  VERIFY( uset02.empty() );
-  VERIFY( uset01.get_allocator().get_personality() == personality02 );
-  VERIFY( uset02.get_allocator().get_personality() == personality01 );
-
-  my_uset uset03(10, hash<char>(), equal_to<char>(), alloc02);
-  size01 = uset03.size();
-  personality01 = uset03.get_allocator().get_personality();
-  my_uset uset04(set02_ref.begin(), set02_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size02 = uset04.size();
-  personality02 = uset04.get_allocator().get_personality();
-
-  uset03.swap(uset04);
-  VERIFY( uset03.size() == size02 );
-  VERIFY( my_set(uset03.begin(), uset03.end()) == set02_ref );
-  VERIFY( uset04.size() == size01 );
-  VERIFY( uset04.empty() );
-  VERIFY( uset03.get_allocator().get_personality() == personality02 );
-  VERIFY( uset04.get_allocator().get_personality() == personality01 );
-  
-  my_uset uset05(set01_ref.begin(), set01_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size01 = uset05.size();
-  personality01 = uset05.get_allocator().get_personality();
-  my_uset uset06(set02_ref.begin(), set02_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc02);
-  size02 = uset06.size();
-  personality02 = uset06.get_allocator().get_personality();
-
-  uset05.swap(uset06);
-  VERIFY( uset05.size() == size02 );
-  VERIFY( my_set(uset05.begin(), uset05.end()) == set02_ref );
-  VERIFY( uset06.size() == size01 );
-  VERIFY( my_set(uset06.begin(), uset06.end()) == set01_ref );
-  VERIFY( uset05.get_allocator().get_personality() == personality02 );
-  VERIFY( uset06.get_allocator().get_personality() == personality01 );
-
-  my_uset uset07(set01_ref.begin(), set01_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc02);
-  size01 = uset07.size();
-  personality01 = uset07.get_allocator().get_personality();
-  my_uset uset08(set03_ref.begin(), set03_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size02 = uset08.size();
-  personality02 = uset08.get_allocator().get_personality();
-
-  uset07.swap(uset08);
-  VERIFY( uset07.size() == size02 );
-  VERIFY( my_set(uset07.begin(), uset07.end()) == set03_ref );
-  VERIFY( uset08.size() == size01 );
-  VERIFY( my_set(uset08.begin(), uset08.end()) == set01_ref );
-  VERIFY( uset07.get_allocator().get_personality() == personality02 );
-  VERIFY( uset08.get_allocator().get_personality() == personality01 );
-
-  my_uset uset09(set03_ref.begin(), set03_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size01 = uset09.size();
-  personality01 = uset09.get_allocator().get_personality();
-  my_uset uset10(set04_ref.begin(), set04_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc02);
-  size02 = uset10.size();
-  personality02 = uset10.get_allocator().get_personality();
-
-  uset09.swap(uset10);
-  VERIFY( uset09.size() == size02 );
-  VERIFY( my_set(uset09.begin(), uset09.end()) == set04_ref );
-  VERIFY( uset10.size() == size01 );
-  VERIFY( my_set(uset10.begin(), uset10.end()) == set03_ref );
-  VERIFY( uset09.get_allocator().get_personality() == personality02 );
-  VERIFY( uset10.get_allocator().get_personality() == personality01 );
-
-  my_uset uset11(set04_ref.begin(), set04_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc02);
-  size01 = uset11.size();
-  personality01 = uset11.get_allocator().get_personality();
-  my_uset uset12(set01_ref.begin(), set01_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size02 = uset12.size();
-  personality02 = uset12.get_allocator().get_personality();
-
-  uset11.swap(uset12);
-  VERIFY( uset11.size() == size02 );
-  VERIFY( my_set(uset11.begin(), uset11.end()) == set01_ref );
-  VERIFY( uset12.size() == size01 );
-  VERIFY( my_set(uset12.begin(), uset12.end()) == set04_ref );
-  VERIFY( uset11.get_allocator().get_personality() == personality02 );
-  VERIFY( uset12.get_allocator().get_personality() == personality01 );
-
-  my_uset uset13(set03_ref.begin(), set03_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc01);
-  size01 = uset13.size();
-  personality01 = uset13.get_allocator().get_personality();
-  my_uset uset14(set03_ref.begin(), set03_ref.end(), 10, hash<char>(),
-                equal_to<char>(), alloc02);
-  size02 = uset14.size();
-  personality02 = uset14.get_allocator().get_personality();
-
-  uset13.swap(uset14);
-  VERIFY( uset13.size() == size02 );
-  VERIFY( my_set(uset13.begin(), uset13.end()) == set03_ref );
-  VERIFY( uset14.size() == size01 );
-  VERIFY( my_set(uset14.begin(), uset14.end()) == set03_ref );
-  VERIFY( uset13.get_allocator().get_personality() == personality02 );
-  VERIFY( uset14.get_allocator().get_personality() == personality01 );
-}
-
-int main()
-{ 
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/types/map_iterator.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/types/map_iterator.cc
deleted file mode 100644 (file)
index da64404..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-// 2005-10-02  Paolo Carlini  <pcarlini@suse.de>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-//
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// { dg-do compile }
-
-#include <tr1/unordered_map>
-
-void test01()
-{
-  typedef std::tr1::unordered_map<int, int> Map;
-
-  Map m;
-
-  Map::const_iterator cit = m.begin();
-  (*cit).second = 0; // { dg-error "read-only" }
-
-  Map::const_local_iterator clit = m.begin(0);
-  (*clit).second = 0; // { dg-error "read-only" }
-
-  Map::iterator it = cit; // { dg-error "conversion" }
-
-  Map::local_iterator lit = clit; // { dg-error "conversion" }
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/types/multimap_iterator.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/types/multimap_iterator.cc
deleted file mode 100644 (file)
index a3d705a..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-// 2005-10-02  Paolo Carlini  <pcarlini@suse.de>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-//
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// { dg-do compile }
-
-#include <tr1/unordered_map>
-
-void test01()
-{
-  typedef std::tr1::unordered_multimap<int, int> Mmap;
-
-  Mmap mm;
-
-  Mmap::const_iterator cit = mm.begin();
-  (*cit).second = 0; // { dg-error "read-only" }
-
-  Mmap::const_local_iterator clit = mm.begin(0);
-  (*clit).second = 0; // { dg-error "read-only" }
-
-  Mmap::iterator it = cit; // { dg-error "conversion" }
-
-  Mmap::local_iterator lit = clit; // { dg-error "conversion" }  
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/types/multiset_iterator.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/types/multiset_iterator.cc
deleted file mode 100644 (file)
index 3b3161a..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-// 2005-10-02  Paolo Carlini  <pcarlini@suse.de>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-//
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// { dg-do compile }
-
-#include <tr1/unordered_set>
-
-void test01()
-{
-  typedef std::tr1::unordered_multiset<int> Mset;
-
-  Mset ms;
-
-  Mset::const_iterator cit = ms.begin();
-  *cit = 0; // { dg-error "read-only" }
-
-  Mset::const_local_iterator clit = ms.begin(0);
-  *clit = 0; // { dg-error "read-only" }
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/types/set_iterator.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/types/set_iterator.cc
deleted file mode 100644 (file)
index 40dc9c8..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-// 2005-10-02  Paolo Carlini  <pcarlini@suse.de>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-// any later version.
-//
-// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-//
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// { dg-do compile }
-
-#include <tr1/unordered_set>
-
-void test01()
-{
-  typedef std::tr1::unordered_set<int> Set;
-
-  Set s;
-
-  Set::const_iterator cit = s.begin();
-  *cit = 0; // { dg-error "read-only" }
-
-  Set::const_local_iterator clit = s.begin(0);
-  *clit = 0; // { dg-error "read-only" }
-}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/24064.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/24064.cc
new file mode 100644 (file)
index 0000000..74eabbf
--- /dev/null
@@ -0,0 +1,46 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3 Unordered associative containers
+
+#include <tr1/unordered_map>
+#include <testsuite_hooks.h>
+
+// libstdc++/24064
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  using namespace std;
+  using namespace tr1;
+
+  unordered_map<int, char, hash<int>, equal_to<int>,
+    allocator<pair<const int, char> >, true> m;
+  for (int i = 0; i < 1000; ++i)
+    m[i] = '0' + i % 9;
+               
+  for (int i = 0; i < 1000; ++i)
+    VERIFY( ++m.find(i)->second == '1' + i % 9 );
+}
+  
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/capacity/29134-map.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/capacity/29134-map.cc
new file mode 100644 (file)
index 0000000..459ace4
--- /dev/null
@@ -0,0 +1,38 @@
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without Pred 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.4  Class template unordered_map
+
+#include <tr1/unordered_map>
+#include <testsuite_hooks.h>
+
+// libstdc++/29134
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  std::tr1::unordered_map<int, int> um;
+
+  VERIFY( um.max_size() == um.get_allocator().max_size() );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/erase/24061-map.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/erase/24061-map.cc
new file mode 100644 (file)
index 0000000..9289b65
--- /dev/null
@@ -0,0 +1,106 @@
+// 2005-10-08  Paolo Carlini  <pcarlini@suse.de> 
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.4  Class template unordered_map
+
+#include <tr1/unordered_map>
+#include <string>
+#include <testsuite_hooks.h>
+
+// libstdc++/24061
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+  
+  typedef std::tr1::unordered_map<std::string, int> Map;
+  typedef Map::iterator       iterator;
+  typedef Map::const_iterator const_iterator;
+  typedef Map::value_type     value_type;
+  
+  Map m1;
+
+  m1.insert(value_type("all the love in the world", 1));
+  m1.insert(value_type("you know what you are?", 2));
+  m1.insert(value_type("the collector", 3));
+  m1.insert(value_type("the hand that feeds", 4));
+  m1.insert(value_type("love is not enough", 5));
+  m1.insert(value_type("every day is exactly the same", 6));
+  m1.insert(value_type("with teeth", 7));
+  m1.insert(value_type("only", 8));
+  m1.insert(value_type("getting smaller", 9));
+  m1.insert(value_type("sunspots", 10)); 
+  VERIFY( m1.size() == 10 );
+
+  iterator it1 = m1.begin();
+  ++it1;
+  iterator it2 = it1;
+  ++it2;
+  iterator it3 = m1.erase(it1);
+  VERIFY( m1.size() == 9 );
+  VERIFY( it3 == it2 );
+  VERIFY( *it3 == *it2 );
+
+  iterator it4 = m1.begin();
+  ++it4;
+  ++it4;
+  ++it4;
+  iterator it5 = it4;
+  ++it5;
+  ++it5;
+  iterator it6 = m1.erase(it4, it5);
+  VERIFY( m1.size() == 7 );
+  VERIFY( it6 == it5 );
+  VERIFY( *it6 == *it5 );
+
+  const_iterator it7 = m1.begin();
+  ++it7;
+  ++it7;
+  ++it7;
+  const_iterator it8 = it7;
+  ++it8;
+  const_iterator it9 = m1.erase(it7);
+  VERIFY( m1.size() == 6 );
+  VERIFY( it9 == it8 );
+  VERIFY( *it9 == *it8 );
+
+  const_iterator it10 = m1.begin();
+  ++it10;
+  const_iterator it11 = it10;
+  ++it11;
+  ++it11;
+  ++it11;
+  ++it11;
+  const_iterator it12 = m1.erase(it10, it11);
+  VERIFY( m1.size() == 2 );
+  VERIFY( it12 == it11 );
+  VERIFY( *it12 == *it11 );
+  VERIFY( ++it12 == m1.end() );
+
+  iterator it13 = m1.erase(m1.begin(), m1.end());
+  VERIFY( m1.size() == 0 );
+  VERIFY( it13 == it12 );
+  VERIFY( it13 == m1.begin() );
+}
+  
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/find/map1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/find/map1.cc
new file mode 100644 (file)
index 0000000..8ff05d2
--- /dev/null
@@ -0,0 +1,71 @@
+// { dg-do run }
+
+// 2005-2-18  Matt Austern  <austern@apple.com>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.4 unordered_map
+// find, equal_range, count
+
+#include <string>
+#include <iterator>
+#include <algorithm>
+#include <utility>
+#include <tr1/unordered_map>
+#include "testsuite_hooks.h"
+
+bool test __attribute__((unused)) = true;
+
+void test01()
+{
+  typedef std::tr1::unordered_map<std::string, int> Map;
+  typedef std::pair<const std::string, int> Pair;
+
+  Map m;
+  VERIFY(m.empty());
+
+  std::pair<Map::iterator, bool> tmp = m.insert(Pair("grape", 3));
+  Map::iterator i = tmp.first;
+  VERIFY(tmp.second);
+
+  Map::iterator i2 = m.find("grape");
+  VERIFY(i2 != m.end());
+  VERIFY(i2 == i);
+  VERIFY(i2->first == "grape");
+  VERIFY(i2->second == 3);
+
+  Map::iterator i3 = m.find("lime");
+  VERIFY(i3 == m.end());
+
+  std::pair<Map::iterator, Map::iterator> p = m.equal_range("grape");
+  VERIFY(std::distance(p.first, p.second) == 1);
+  VERIFY(p.first == i2);
+
+  std::pair<Map::iterator, Map::iterator> p2 = m.equal_range("lime");
+  VERIFY(p2.first == p2.second);
+
+  VERIFY(m.count("grape") == 1);
+  VERIFY(m.count("lime") == 0);
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/24061-map.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/24061-map.cc
new file mode 100644 (file)
index 0000000..8e290af
--- /dev/null
@@ -0,0 +1,61 @@
+// 2005-10-08  Paolo Carlini  <pcarlini@suse.de> 
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.4  Class template unordered_map
+
+#include <tr1/unordered_map>
+#include <string>
+#include <testsuite_hooks.h>
+
+// libstdc++/24061
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+  
+  typedef std::tr1::unordered_map<std::string, int> Map;
+  typedef Map::iterator       iterator;
+  typedef Map::const_iterator const_iterator;
+  typedef Map::value_type     value_type;
+
+  Map m1;
+  
+  iterator it1 = m1.insert(m1.begin(),
+                          value_type("all the love in the world", 1));
+  VERIFY( m1.size() == 1 );
+  VERIFY( *it1 == value_type("all the love in the world", 1) );
+  
+  const_iterator cit1(it1);
+  const_iterator cit2 = m1.insert(cit1,
+                                 value_type("you know what you are?", 2));
+  VERIFY( m1.size() == 2 );
+  VERIFY( cit2 != cit1 );
+  VERIFY( *cit2 == value_type("you know what you are?", 2) );
+
+  iterator it2 = m1.insert(it1, value_type("all the love in the world", 3));
+  VERIFY( m1.size() == 2 );
+  VERIFY( it2 == it1 );
+  VERIFY( *it2 == value_type("all the love in the world", 1) );
+}
+  
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/array_syntax.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/array_syntax.cc
new file mode 100644 (file)
index 0000000..2664d76
--- /dev/null
@@ -0,0 +1,61 @@
+// { dg-do run }
+
+// 2005-2-17  Matt Austern  <austern@apple.com>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.4 unordered_map
+// Array version of insert
+
+#include <string>
+#include <iterator>
+#include <tr1/unordered_map>
+#include "testsuite_hooks.h"
+
+bool test __attribute__((unused)) = true;
+
+void test01()
+{
+  typedef std::tr1::unordered_map<std::string, int> Map;
+  typedef std::pair<const std::string, int> Pair;
+
+  Map m;
+  VERIFY(m.empty());
+
+  m["red"] = 17;
+  VERIFY(m.size() == 1);
+  VERIFY(m.begin()->first == "red");
+  VERIFY(m.begin()->second == 17);
+  VERIFY(m["red"] == 17);
+
+  m["blue"] = 9;
+  VERIFY(m.size() == 2);
+  VERIFY(m["blue"] == 9);
+
+  m["red"] = 5;
+  VERIFY(m.size() == 2);
+  VERIFY(m["red"] == 5);
+  VERIFY(m["blue"] == 9);
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/map_range.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/map_range.cc
new file mode 100644 (file)
index 0000000..424cfb3
--- /dev/null
@@ -0,0 +1,99 @@
+// { dg-do run }
+
+// 2005-2-17  Matt Austern  <austern@apple.com>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.4 unordered_map
+// range insert
+
+#include <string>
+#include <iterator>
+#include <algorithm>
+#include <tr1/unordered_map>
+#include "testsuite_hooks.h"
+
+bool test __attribute__((unused)) = true;
+
+void test01()
+{
+  typedef std::tr1::unordered_map<std::string, int> Map;
+  typedef std::pair<const std::string, int> Pair;
+
+  Map m;
+  VERIFY(m.empty());
+
+  Pair A[5] =
+    {
+      Pair("red", 5),
+      Pair("green", 9),
+      Pair("blue", 3),
+      Pair("cyan", 8),
+      Pair("magenta", 7)
+    };
+
+  m.insert(A+0, A+5);
+  VERIFY(m.size() == 5);
+  VERIFY(std::distance(m.begin(), m.end()) == 5);
+
+  VERIFY(m["red"] == 5);
+  VERIFY(m["green"] == 9);
+  VERIFY(m["blue"] == 3);
+  VERIFY(m["cyan"] == 8);
+  VERIFY(m["magenta"] == 7);
+}
+
+void test02()
+{
+  typedef std::tr1::unordered_map<std::string, int> Map;
+  typedef std::pair<const std::string, int> Pair;
+
+  Map m;
+  VERIFY(m.empty());
+
+  Pair A[9] =
+    {
+      Pair("red", 5),
+      Pair("green", 9),
+      Pair("red", 19),
+      Pair("blue", 3),
+      Pair("blue", 60),
+      Pair("cyan", 8),
+      Pair("magenta", 7),
+      Pair("blue", 99),
+      Pair("green", 33)
+    };
+
+  m.insert(A+0, A+9);
+  VERIFY(m.size() == 5);
+  VERIFY(std::distance(m.begin(), m.end()) == 5);
+
+  VERIFY(m["red"] == 5);
+  VERIFY(m["green"] == 9);
+  VERIFY(m["blue"] == 3);
+  VERIFY(m["cyan"] == 8);
+  VERIFY(m["magenta"] == 7);
+}
+
+int main()
+{
+  test01();
+  test02();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/map_single.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/map_single.cc
new file mode 100644 (file)
index 0000000..a4b02e8
--- /dev/null
@@ -0,0 +1,74 @@
+// { dg-do run }
+
+// 2005-2-17  Matt Austern  <austern@apple.com>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.4 unordered_map
+// Single-element insert
+
+#include <string>
+#include <iterator>
+#include <tr1/unordered_map>
+#include "testsuite_hooks.h"
+
+bool test __attribute__((unused)) = true;
+
+void test01()
+{
+  typedef std::tr1::unordered_map<std::string, int> Map;
+  typedef std::pair<const std::string, int> Pair;
+
+  Map m;
+  VERIFY(m.empty());
+
+  std::pair<Map::iterator, bool> p = m.insert(Pair("abcde", 3));
+  VERIFY(p.second);
+  VERIFY(m.size() == 1);
+  VERIFY(std::distance(m.begin(), m.end()) == 1);
+  VERIFY(p.first == m.begin());
+  VERIFY(p.first->first == "abcde");
+  VERIFY(p.first->second == 3);
+}
+
+void test02()
+{
+  typedef std::tr1::unordered_map<std::string, int> Map;
+  typedef std::pair<const std::string, int> Pair;
+
+  Map m;
+  VERIFY(m.empty());
+
+  std::pair<Map::iterator, bool> p1 = m.insert(Pair("abcde", 3));
+  std::pair<Map::iterator, bool> p2 = m.insert(Pair("abcde", 7));
+
+  VERIFY(p1.second);
+  VERIFY(!p2.second);
+  VERIFY(m.size() == 1);
+  VERIFY(p1.first == p2.first);
+  VERIFY(p1.first->first == "abcde");
+  VERIFY(p2.first->second == 3);
+}
+
+int main()
+{
+  test01();
+  test02();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..41ce95d
--- /dev/null
@@ -0,0 +1,37 @@
+// { dg-do compile }
+
+// 2005-02-17  Matt Austern  <austern@apple.com>
+//
+// Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.4 unordered_map
+
+#include <string>
+#include <tr1/unordered_map>
+
+using namespace std;
+using namespace std::tr1;
+
+template class unordered_map<string, float>;
+template class unordered_map<string, float,
+                            hash<string>, equal_to<string>, 
+                            allocator<pair<const string, float> >, true>;
+template class unordered_map<string, float,
+                            hash<string>, equal_to<string>, 
+                            allocator<char>, false>;
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_neg.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_neg.cc
new file mode 100644 (file)
index 0000000..da64404
--- /dev/null
@@ -0,0 +1,49 @@
+// 2005-10-02  Paolo Carlini  <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// { dg-do compile }
+
+#include <tr1/unordered_map>
+
+void test01()
+{
+  typedef std::tr1::unordered_map<int, int> Map;
+
+  Map m;
+
+  Map::const_iterator cit = m.begin();
+  (*cit).second = 0; // { dg-error "read-only" }
+
+  Map::const_local_iterator clit = m.begin(0);
+  (*clit).second = 0; // { dg-error "read-only" }
+
+  Map::iterator it = cit; // { dg-error "conversion" }
+
+  Map::local_iterator lit = clit; // { dg-error "conversion" }
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_null_neg.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_null_neg.cc
new file mode 100644 (file)
index 0000000..8031c6d
--- /dev/null
@@ -0,0 +1,36 @@
+// 2005-09-10  Paolo Carlini  <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// { dg-do compile }
+
+// libstdc++/23781
+#include <tr1/unordered_map>
+
+std::tr1::unordered_map<int, int>::iterator it1 = NULL; // { dg-error "conversion" }
+std::tr1::unordered_map<int, int>::const_iterator cit1 = NULL; // { dg-error "conversion" }
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/swap/1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/swap/1.cc
new file mode 100644 (file)
index 0000000..d379774
--- /dev/null
@@ -0,0 +1,162 @@
+// 2005-12-20  Paolo Carlini  <pcarlini@suse.de>
+
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 6.3.4.4 unordered_map::swap
+
+#include <tr1/unordered_map>
+#include <map>
+#include <testsuite_hooks.h>
+#include <testsuite_allocator.h>
+
+// uneq_allocator as a non-empty allocator.
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+  using namespace std;
+  using namespace tr1;
+
+  typedef pair<const char, int> my_pair;
+  typedef __gnu_test::uneq_allocator<my_pair> my_alloc;
+  typedef unordered_map<char, int, hash<char>, equal_to<char>, my_alloc>
+    my_umap;
+  
+  const char title01[] = "Rivers of sand";
+  const char title02[] = "Concret PH";
+  const char title03[] = "Sonatas and Interludes for Prepared Piano";
+  const char title04[] = "never as tired as when i'm waking up";
+
+  const size_t N1 = sizeof(title01);
+  const size_t N2 = sizeof(title02);
+  const size_t N3 = sizeof(title03);
+  const size_t N4 = sizeof(title04);
+
+  typedef map<char, int> my_map;
+  my_map map01_ref;
+  for (size_t i = 0; i < N1; ++i)
+    map01_ref.insert(my_pair(title01[i], i));
+  my_map map02_ref;
+  for (size_t i = 0; i < N2; ++i)
+    map02_ref.insert(my_pair(title02[i], i));
+  my_map map03_ref;
+  for (size_t i = 0; i < N3; ++i)
+    map03_ref.insert(my_pair(title03[i], i));
+  my_map map04_ref;
+  for (size_t i = 0; i < N4; ++i)
+    map04_ref.insert(my_pair(title04[i], i));
+
+  my_umap::size_type size01, size02;
+
+  my_alloc alloc01(1);
+
+  my_umap umap01(10, hash<char>(), equal_to<char>(), alloc01);
+  size01 = umap01.size();
+  my_umap umap02(10, hash<char>(), equal_to<char>(), alloc01);
+  size02 = umap02.size();
+  
+  umap01.swap(umap02);
+  VERIFY( umap01.size() == size02 );
+  VERIFY( umap01.empty() );
+  VERIFY( umap02.size() == size01 );
+  VERIFY( umap02.empty() );
+
+  my_umap umap03(10, hash<char>(), equal_to<char>(), alloc01);
+  size01 = umap03.size();
+  my_umap umap04(map02_ref.begin(), map02_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size02 = umap04.size();
+
+  umap03.swap(umap04);
+  VERIFY( umap03.size() == size02 );
+  VERIFY( my_map(umap03.begin(), umap03.end()) == map02_ref );
+  VERIFY( umap04.size() == size01 );
+  VERIFY( umap04.empty() );
+  
+  my_umap umap05(map01_ref.begin(), map01_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size01 = umap05.size();
+  my_umap umap06(map02_ref.begin(), map02_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size02 = umap06.size();
+
+  umap05.swap(umap06);
+  VERIFY( umap05.size() == size02 );
+  VERIFY( my_map(umap05.begin(), umap05.end()) == map02_ref );
+  VERIFY( umap06.size() == size01 );
+  VERIFY( my_map(umap06.begin(), umap06.end()) == map01_ref );
+
+  my_umap umap07(map01_ref.begin(), map01_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size01 = umap07.size();
+  my_umap umap08(map03_ref.begin(), map03_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size02 = umap08.size();
+
+  umap07.swap(umap08);
+  VERIFY( umap07.size() == size02 );
+  VERIFY( my_map(umap07.begin(), umap07.end()) == map03_ref );
+  VERIFY( umap08.size() == size01 );
+  VERIFY( my_map(umap08.begin(), umap08.end()) == map01_ref );
+
+  my_umap umap09(map03_ref.begin(), map03_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size01 = umap09.size();
+  my_umap umap10(map04_ref.begin(), map04_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size02 = umap10.size();
+
+  umap09.swap(umap10);
+  VERIFY( umap09.size() == size02 );
+  VERIFY( my_map(umap09.begin(), umap09.end()) == map04_ref );
+  VERIFY( umap10.size() == size01 );
+  VERIFY( my_map(umap10.begin(), umap10.end()) == map03_ref );
+
+  my_umap umap11(map04_ref.begin(), map04_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size01 = umap11.size();
+  my_umap umap12(map01_ref.begin(), map01_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size02 = umap12.size();
+
+  umap11.swap(umap12);
+  VERIFY( umap11.size() == size02 );
+  VERIFY( my_map(umap11.begin(), umap11.end()) == map01_ref );
+  VERIFY( umap12.size() == size01 );
+  VERIFY( my_map(umap12.begin(), umap12.end()) == map04_ref );
+
+  my_umap umap13(map03_ref.begin(), map03_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size01 = umap13.size();
+  my_umap umap14(map03_ref.begin(), map03_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size02 = umap14.size();
+
+  umap13.swap(umap14);
+  VERIFY( umap13.size() == size02 );
+  VERIFY( my_map(umap13.begin(), umap13.end()) == map03_ref );
+  VERIFY( umap14.size() == size01 );
+  VERIFY( my_map(umap14.begin(), umap14.end()) == map03_ref );
+}
+
+int main()
+{ 
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/swap/2.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/swap/2.cc
new file mode 100644 (file)
index 0000000..8d70829
--- /dev/null
@@ -0,0 +1,191 @@
+// 2005-12-20  Paolo Carlini  <pcarlini@suse.de>
+
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 6.3.4.4 unordered_map::swap
+
+#include <tr1/unordered_map>
+#include <map>
+#include <testsuite_hooks.h>
+#include <testsuite_allocator.h>
+
+// uneq_allocator, two different personalities.
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+  using namespace std;
+  using namespace tr1;
+
+  typedef pair<const char, int> my_pair;
+  typedef __gnu_test::uneq_allocator<my_pair> my_alloc;
+  typedef unordered_map<char, int, hash<char>, equal_to<char>, my_alloc>
+    my_umap;
+
+  const char title01[] = "Rivers of sand";
+  const char title02[] = "Concret PH";
+  const char title03[] = "Sonatas and Interludes for Prepared Piano";
+  const char title04[] = "never as tired as when i'm waking up";
+
+  const size_t N1 = sizeof(title01);
+  const size_t N2 = sizeof(title02);
+  const size_t N3 = sizeof(title03);
+  const size_t N4 = sizeof(title04);
+
+  typedef map<char, int> my_map;
+  my_map map01_ref;
+  for (size_t i = 0; i < N1; ++i)
+    map01_ref.insert(my_pair(title01[i], i));
+  my_map map02_ref;
+  for (size_t i = 0; i < N2; ++i)
+    map02_ref.insert(my_pair(title02[i], i));
+  my_map map03_ref;
+  for (size_t i = 0; i < N3; ++i)
+    map03_ref.insert(my_pair(title03[i], i));
+  my_map map04_ref;
+  for (size_t i = 0; i < N4; ++i)
+    map04_ref.insert(my_pair(title04[i], i));
+
+  my_umap::size_type size01, size02;
+
+  my_alloc alloc01(1), alloc02(2);
+  int personality01, personality02;
+
+  my_umap umap01(10, hash<char>(), equal_to<char>(), alloc01);
+  size01 = umap01.size();
+  personality01 = umap01.get_allocator().get_personality();
+  my_umap umap02(10, hash<char>(), equal_to<char>(), alloc02);
+  size02 = umap02.size();
+  personality02 = umap02.get_allocator().get_personality();
+
+  umap01.swap(umap02);
+  VERIFY( umap01.size() == size02 );
+  VERIFY( umap01.empty() );
+  VERIFY( umap02.size() == size01 );
+  VERIFY( umap02.empty() );
+  VERIFY( umap01.get_allocator().get_personality() == personality02 );
+  VERIFY( umap02.get_allocator().get_personality() == personality01 );
+
+  my_umap umap03(10, hash<char>(), equal_to<char>(), alloc02);
+  size01 = umap03.size();
+  personality01 = umap03.get_allocator().get_personality();
+  my_umap umap04(map02_ref.begin(), map02_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size02 = umap04.size();
+  personality02 = umap04.get_allocator().get_personality();
+
+  umap03.swap(umap04);
+  VERIFY( umap03.size() == size02 );
+  VERIFY( my_map(umap03.begin(), umap03.end()) == map02_ref );
+  VERIFY( umap04.size() == size01 );
+  VERIFY( umap04.empty() );
+  VERIFY( umap03.get_allocator().get_personality() == personality02 );
+  VERIFY( umap04.get_allocator().get_personality() == personality01 );
+  
+  my_umap umap05(map01_ref.begin(), map01_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size01 = umap05.size();
+  personality01 = umap05.get_allocator().get_personality();
+  my_umap umap06(map02_ref.begin(), map02_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc02);
+  size02 = umap06.size();
+  personality02 = umap06.get_allocator().get_personality();
+
+  umap05.swap(umap06);
+  VERIFY( umap05.size() == size02 );
+  VERIFY( my_map(umap05.begin(), umap05.end()) == map02_ref );
+  VERIFY( umap06.size() == size01 );
+  VERIFY( my_map(umap06.begin(), umap06.end()) == map01_ref );
+  VERIFY( umap05.get_allocator().get_personality() == personality02 );
+  VERIFY( umap06.get_allocator().get_personality() == personality01 );
+
+  my_umap umap07(map01_ref.begin(), map01_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc02);
+  size01 = umap07.size();
+  personality01 = umap07.get_allocator().get_personality();
+  my_umap umap08(map03_ref.begin(), map03_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size02 = umap08.size();
+  personality02 = umap08.get_allocator().get_personality();
+
+  umap07.swap(umap08);
+  VERIFY( umap07.size() == size02 );
+  VERIFY( my_map(umap07.begin(), umap07.end()) == map03_ref );
+  VERIFY( umap08.size() == size01 );
+  VERIFY( my_map(umap08.begin(), umap08.end()) == map01_ref );
+  VERIFY( umap07.get_allocator().get_personality() == personality02 );
+  VERIFY( umap08.get_allocator().get_personality() == personality01 );
+
+  my_umap umap09(map03_ref.begin(), map03_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size01 = umap09.size();
+  personality01 = umap09.get_allocator().get_personality();
+  my_umap umap10(map04_ref.begin(), map04_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc02);
+  size02 = umap10.size();
+  personality02 = umap10.get_allocator().get_personality();
+
+  umap09.swap(umap10);
+  VERIFY( umap09.size() == size02 );
+  VERIFY( my_map(umap09.begin(), umap09.end()) == map04_ref );
+  VERIFY( umap10.size() == size01 );
+  VERIFY( my_map(umap10.begin(), umap10.end()) == map03_ref );
+  VERIFY( umap09.get_allocator().get_personality() == personality02 );
+  VERIFY( umap10.get_allocator().get_personality() == personality01 );
+
+  my_umap umap11(map04_ref.begin(), map04_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc02);
+  size01 = umap11.size();
+  personality01 = umap11.get_allocator().get_personality();
+  my_umap umap12(map01_ref.begin(), map01_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size02 = umap12.size();
+  personality02 = umap12.get_allocator().get_personality();
+
+  umap11.swap(umap12);
+  VERIFY( umap11.size() == size02 );
+  VERIFY( my_map(umap11.begin(), umap11.end()) == map01_ref );
+  VERIFY( umap12.size() == size01 );
+  VERIFY( my_map(umap12.begin(), umap12.end()) == map04_ref );
+  VERIFY( umap11.get_allocator().get_personality() == personality02 );
+  VERIFY( umap12.get_allocator().get_personality() == personality01 );
+
+  my_umap umap13(map03_ref.begin(), map03_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size01 = umap13.size();
+  personality01 = umap13.get_allocator().get_personality();
+  my_umap umap14(map03_ref.begin(), map03_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc02);
+  size02 = umap14.size();
+  personality02 = umap14.get_allocator().get_personality();
+
+  umap13.swap(umap14);
+  VERIFY( umap13.size() == size02 );
+  VERIFY( my_map(umap13.begin(), umap13.end()) == map03_ref );
+  VERIFY( umap14.size() == size01 );
+  VERIFY( my_map(umap14.begin(), umap14.end()) == map03_ref );
+  VERIFY( umap13.get_allocator().get_personality() == personality02 );
+  VERIFY( umap14.get_allocator().get_personality() == personality01 );
+}
+
+int main()
+{ 
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/capacity/29134-multimap.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/capacity/29134-multimap.cc
new file mode 100644 (file)
index 0000000..af41fa1
--- /dev/null
@@ -0,0 +1,38 @@
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without Pred 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.6  Class template unordered_multimap
+
+#include <tr1/unordered_map>
+#include <testsuite_hooks.h>
+
+// libstdc++/29134
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  std::tr1::unordered_multimap<int, int> umm;
+
+  VERIFY( umm.max_size() == umm.get_allocator().max_size() );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/erase/24061-multimap.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/erase/24061-multimap.cc
new file mode 100644 (file)
index 0000000..b9980b7
--- /dev/null
@@ -0,0 +1,109 @@
+// 2005-10-08  Paolo Carlini  <pcarlini@suse.de> 
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.6  Class template unordered_multimap
+
+#include <tr1/unordered_map>
+#include <string>
+#include <testsuite_hooks.h>
+
+// libstdc++/24061
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+  
+  typedef std::tr1::unordered_multimap<std::string, int> Mmap;
+  typedef Mmap::iterator       iterator;
+  typedef Mmap::const_iterator const_iterator;
+  typedef Mmap::value_type     value_type;
+  
+  Mmap mm1;
+
+  mm1.insert(value_type("all the love in the world", 1));
+  mm1.insert(value_type("you know what you are?", 2));
+  mm1.insert(value_type("the collector", 3));
+  mm1.insert(value_type("the hand that feeds", 4));
+  mm1.insert(value_type("love is not enough", 5));
+  mm1.insert(value_type("every day is exactly the same", 6));
+  mm1.insert(value_type("with teeth", 7));
+  mm1.insert(value_type("only", 8));
+  mm1.insert(value_type("getting smaller", 9));
+  mm1.insert(value_type("sunspots", 10));
+
+  mm1.insert(value_type("you know what you are?", 5));
+  mm1.insert(value_type("the collector", 6));
+  mm1.insert(value_type("the hand that feeds", 7));
+  VERIFY( mm1.size() == 13 );
+
+  iterator it1 = mm1.begin();
+  ++it1;
+  iterator it2 = it1;
+  ++it2;
+  iterator it3 = mm1.erase(it1);
+  VERIFY( mm1.size() == 12 );
+  VERIFY( it3 == it2 );
+  VERIFY( *it3 == *it2 );
+
+  iterator it4 = mm1.begin();
+  ++it4;
+  ++it4;
+  ++it4;
+  iterator it5 = it4;
+  ++it5;
+  ++it5;
+  iterator it6 = mm1.erase(it4, it5);
+  VERIFY( mm1.size() == 10 );
+  VERIFY( it6 == it5 );
+  VERIFY( *it6 == *it5 );
+
+  const_iterator it7 = mm1.begin();
+  ++it7;
+  ++it7;
+  ++it7;
+  const_iterator it8 = it7;
+  ++it8;
+  const_iterator it9 = mm1.erase(it7);
+  VERIFY( mm1.size() == 9 );
+  VERIFY( it9 == it8 );
+  VERIFY( *it9 == *it8 );
+
+  const_iterator it10 = mm1.begin();
+  ++it10;
+  const_iterator it11 = it10;
+  ++it11;
+  ++it11;
+  ++it11;
+  ++it11;
+  const_iterator it12 = mm1.erase(it10, it11);
+  VERIFY( mm1.size() == 5 );
+  VERIFY( it12 == it11 );
+  VERIFY( *it12 == *it11 );
+
+  iterator it13 = mm1.erase(mm1.begin(), mm1.end());
+  VERIFY( mm1.size() == 0 );
+  VERIFY( it13 == mm1.end() );
+  VERIFY( it13 == mm1.begin() );
+}
+  
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/find/multimap1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/find/multimap1.cc
new file mode 100644 (file)
index 0000000..1fc3e18
--- /dev/null
@@ -0,0 +1,85 @@
+// { dg-do run }
+
+// 2005-2-18  Matt Austern  <austern@apple.com>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.6 unordered_multimap
+// find, equal_range, count
+
+#include <string>
+#include <iterator>
+#include <algorithm>
+#include <utility>
+#include <tr1/unordered_map>
+#include "testsuite_hooks.h"
+
+bool test __attribute__((unused)) = true;
+
+void test01()
+{
+  typedef std::tr1::unordered_multimap<std::string, int> Map;
+  typedef std::pair<const std::string, int> Pair;
+
+  Map m;
+  VERIFY(m.empty());
+
+  m.insert(Pair("grape", 3));
+  m.insert(Pair("durian", 8));
+  m.insert(Pair("grape", 7));
+
+  Map::iterator i1 = m.find("grape");
+  Map::iterator i2 = m.find("durian");
+  Map::iterator i3 = m.find("kiwi");
+
+  VERIFY(i1 != m.end());
+  VERIFY(i1->first == "grape");
+  VERIFY(i1->second == 3 || i2->second == 7);
+  VERIFY(i2 != m.end());
+  VERIFY(i2->first == "durian");
+  VERIFY(i2->second == 8);
+  VERIFY(i3 == m.end());
+
+  std::pair<Map::iterator, Map::iterator> p1 = m.equal_range("grape");
+  VERIFY(std::distance(p1.first, p1.second) == 2);
+  Map::iterator tmp = p1.first;
+  ++tmp;
+  VERIFY(p1.first->first == "grape");
+  VERIFY(tmp->first == "grape");
+  VERIFY((p1.first->second == 3 && tmp->second == 7) ||
+        (p1.first->second == 7 && tmp->second == 3));
+
+  std::pair<Map::iterator, Map::iterator> p2 = m.equal_range("durian");
+  VERIFY(std::distance(p2.first, p2.second) == 1);
+  VERIFY(p2.first->first == "durian");
+  VERIFY(p2.first->second == 8);
+
+  std::pair<Map::iterator, Map::iterator> p3 = m.equal_range("kiwi");
+  VERIFY(p3.first == p3.second);
+
+  VERIFY(m.count("grape") == 2);
+  VERIFY(m.count("durian") == 1);
+  VERIFY(m.count("kiwi") == 0);
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/24061-multimap.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/24061-multimap.cc
new file mode 100644 (file)
index 0000000..a744c8b
--- /dev/null
@@ -0,0 +1,61 @@
+// 2005-10-08  Paolo Carlini  <pcarlini@suse.de> 
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.6  Class template unordered_multimap
+
+#include <tr1/unordered_map>
+#include <string>
+#include <testsuite_hooks.h>
+
+// libstdc++/24061
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+  
+  typedef std::tr1::unordered_multimap<std::string, int> Mmap;
+  typedef Mmap::iterator       iterator;
+  typedef Mmap::const_iterator const_iterator;
+  typedef Mmap::value_type     value_type;
+
+  Mmap mm1;
+  
+  iterator it1 = mm1.insert(mm1.begin(),
+                           value_type("all the love in the world", 1));
+  VERIFY( mm1.size() == 1 );
+  VERIFY( *it1 == value_type("all the love in the world", 1) );
+  
+  const_iterator cit1(it1);
+  const_iterator cit2 = mm1.insert(cit1,
+                                  value_type("you know what you are?", 2));
+  VERIFY( mm1.size() == 2 );
+  VERIFY( cit2 != cit1 );
+  VERIFY( *cit2 == value_type("you know what you are?", 2) );
+
+  iterator it2 = mm1.insert(it1, value_type("all the love in the world", 3));
+  VERIFY( mm1.size() == 3 );
+  VERIFY( it2 != it1 );
+  VERIFY( *it2 == value_type("all the love in the world", 3) );
+}
+  
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/multimap_range.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/multimap_range.cc
new file mode 100644 (file)
index 0000000..6296c4f
--- /dev/null
@@ -0,0 +1,93 @@
+// { dg-do run }
+
+// 2005-2-17  Matt Austern  <austern@apple.com>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.6 unordered_multimap
+// range insert
+
+#include <string>
+#include <iterator>
+#include <algorithm>
+#include <tr1/unordered_map>
+#include "testsuite_hooks.h"
+
+bool test __attribute__((unused)) = true;
+
+void test01()
+{
+  typedef std::tr1::unordered_multimap<std::string, int> Map;
+  typedef std::pair<const std::string, int> Pair;
+
+  Map m;
+  VERIFY(m.empty());
+
+  Pair A[5] =
+    {
+      Pair("red", 5),
+      Pair("green", 9),
+      Pair("blue", 3),
+      Pair("cyan", 8),
+      Pair("magenta", 7)
+    };
+
+  m.insert(A+0, A+5);
+  VERIFY(m.size() == 5);
+  VERIFY(std::distance(m.begin(), m.end()) == 5);
+
+  for (int i = 0; i < 5; ++i)
+    VERIFY(std::find(m.begin(), m.end(), A[i]) != m.end());
+}
+
+void test02()
+{
+  typedef std::tr1::unordered_multimap<std::string, int> Map;
+  typedef std::pair<const std::string, int> Pair;
+
+  Map m;
+  VERIFY(m.empty());
+
+  Pair A[9] =
+    {
+      Pair("red", 5),
+      Pair("green", 9),
+      Pair("red", 19),
+      Pair("blue", 3),
+      Pair("blue", 60),
+      Pair("cyan", 8),
+      Pair("magenta", 7),
+      Pair("blue", 99),
+      Pair("green", 33)
+    };
+
+  m.insert(A+0, A+9);
+  VERIFY(m.size() == 9);
+  VERIFY(std::distance(m.begin(), m.end()) == 9);
+
+  for (int i = 0; i < 9; ++i)
+    VERIFY(std::find(m.begin(), m.end(), A[i]) != m.end());
+}
+
+int main()
+{
+  test01();
+  test02();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/multimap_single.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/multimap_single.cc
new file mode 100644 (file)
index 0000000..815b864
--- /dev/null
@@ -0,0 +1,78 @@
+// { dg-do run }
+
+// 2005-2-17  Matt Austern  <austern@apple.com>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.6 unordered_multimap
+// Single-element insert
+
+#include <string>
+#include <iterator>
+#include <tr1/unordered_map>
+#include "testsuite_hooks.h"
+
+bool test __attribute__((unused)) = true;
+
+void test01()
+{
+  typedef std::tr1::unordered_multimap<std::string, int> Map;
+  typedef std::pair<const std::string, int> Pair;
+
+  Map m;
+  VERIFY(m.empty());
+
+  Map::iterator i = m.insert(Pair("abcde", 3));
+  VERIFY(m.size() == 1);
+  VERIFY(std::distance(m.begin(), m.end()) == 1);
+  VERIFY(i == m.begin());
+  VERIFY(i->first == "abcde");
+  VERIFY(i->second == 3);
+}
+
+void test02()
+{
+  typedef std::tr1::unordered_multimap<std::string, int> Map;
+  typedef std::pair<const std::string, int> Pair;
+
+  Map m;
+  VERIFY(m.empty());
+
+  m.insert(Pair("abcde", 3));
+  m.insert(Pair("abcde", 7));
+
+  VERIFY(m.size() == 2);
+  VERIFY(std::distance(m.begin(), m.end()) == 2);
+
+  Map::iterator i1 = m.begin();
+  Map::iterator i2 = i1;
+  ++i2;
+
+  VERIFY(i1->first == "abcde");
+  VERIFY(i2->first == "abcde");
+  VERIFY((i1->second == 3 && i2->second == 7) ||
+        (i1->second == 7 && i2->second == 3));
+}
+
+int main()
+{
+  test01();
+  test02();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..d48aef8
--- /dev/null
@@ -0,0 +1,37 @@
+// { dg-do compile }
+
+// 2005-02-17  Matt Austern  <austern@apple.com>
+//
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.6 unordered_multimap
+
+#include <string>
+#include <tr1/unordered_map>
+
+using namespace std;
+using namespace std::tr1;
+
+template class unordered_multimap<string, float>;
+template class unordered_multimap<string, float,
+                                 hash<string>, equal_to<string>, 
+                                 allocator<pair<const string, float> >, true>;
+template class unordered_multimap<string, float,
+                                 hash<string>, equal_to<string>, 
+                                 allocator<char>, false>;
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_neg.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_neg.cc
new file mode 100644 (file)
index 0000000..a3d705a
--- /dev/null
@@ -0,0 +1,49 @@
+// 2005-10-02  Paolo Carlini  <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// { dg-do compile }
+
+#include <tr1/unordered_map>
+
+void test01()
+{
+  typedef std::tr1::unordered_multimap<int, int> Mmap;
+
+  Mmap mm;
+
+  Mmap::const_iterator cit = mm.begin();
+  (*cit).second = 0; // { dg-error "read-only" }
+
+  Mmap::const_local_iterator clit = mm.begin(0);
+  (*clit).second = 0; // { dg-error "read-only" }
+
+  Mmap::iterator it = cit; // { dg-error "conversion" }
+
+  Mmap::local_iterator lit = clit; // { dg-error "conversion" }  
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_null_neg.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_null_neg.cc
new file mode 100644 (file)
index 0000000..72b9505
--- /dev/null
@@ -0,0 +1,36 @@
+// 2005-09-10  Paolo Carlini  <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// { dg-do compile }
+
+// libstdc++/23781
+#include <tr1/unordered_map>
+
+std::tr1::unordered_multimap<int, int>::iterator it2 = NULL; // { dg-error "conversion" }
+std::tr1::unordered_multimap<int, int>::const_iterator cit2 = NULL; // { dg-error "conversion" }
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/swap/1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/swap/1.cc
new file mode 100644 (file)
index 0000000..7648e08
--- /dev/null
@@ -0,0 +1,175 @@
+// 2005-12-20  Paolo Carlini  <pcarlini@suse.de>
+
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 6.3.4.6 unordered_multimap::swap
+
+#include <tr1/unordered_map>
+#include <map>
+#include <testsuite_hooks.h>
+#include <testsuite_allocator.h>
+
+// uneq_allocator as a non-empty allocator.
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+  using namespace std;
+  using namespace tr1;
+
+  typedef pair<const char, int> my_pair;
+  typedef __gnu_test::uneq_allocator<my_pair> my_alloc;
+  typedef unordered_multimap<char, int, hash<char>, equal_to<char>, my_alloc>
+    my_ummap;
+  
+  const char title01[] = "Rivers of sand";
+  const char title02[] = "Concret PH";
+  const char title03[] = "Sonatas and Interludes for Prepared Piano";
+  const char title04[] = "never as tired as when i'm waking up";
+
+  const size_t N1 = sizeof(title01);
+  const size_t N2 = sizeof(title02);
+  const size_t N3 = sizeof(title03);
+  const size_t N4 = sizeof(title04);
+
+  typedef multimap<char, int> my_mmap;
+  my_mmap mmap01_ref;
+  for (size_t i = 0; i < N1; ++i)
+    mmap01_ref.insert(my_pair(title01[i], i));
+  my_mmap mmap02_ref;
+  for (size_t i = 0; i < N2; ++i)
+    mmap02_ref.insert(my_pair(title02[i], i));
+  my_mmap mmap03_ref;
+  for (size_t i = 0; i < N3; ++i)
+    mmap03_ref.insert(my_pair(title03[i], i));
+  my_mmap mmap04_ref;
+  for (size_t i = 0; i < N4; ++i)
+    mmap04_ref.insert(my_pair(title04[i], i));
+
+  typedef map<char, int> my_map;
+
+  my_ummap::size_type size01, size02;
+
+  my_alloc alloc01(1);
+
+  my_ummap ummap01(10, hash<char>(), equal_to<char>(), alloc01);
+  size01 = ummap01.size();
+  my_ummap ummap02(10, hash<char>(), equal_to<char>(), alloc01);
+  size02 = ummap02.size();
+  
+  ummap01.swap(ummap02);
+  VERIFY( ummap01.size() == size02 );
+  VERIFY( ummap01.empty() );
+  VERIFY( ummap02.size() == size01 );
+  VERIFY( ummap02.empty() );
+
+  my_ummap ummap03(10, hash<char>(), equal_to<char>(), alloc01);
+  size01 = ummap03.size();
+  my_ummap ummap04(mmap02_ref.begin(), mmap02_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size02 = ummap04.size();
+
+  ummap03.swap(ummap04);
+  VERIFY( ummap03.size() == size02 );
+  VERIFY( my_map(ummap03.begin(), ummap03.end())
+         == my_map(mmap02_ref.begin(), mmap02_ref.end()) );
+  VERIFY( ummap04.size() == size01 );
+  VERIFY( ummap04.empty() );
+  
+  my_ummap ummap05(mmap01_ref.begin(), mmap01_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size01 = ummap05.size();
+  my_ummap ummap06(mmap02_ref.begin(), mmap02_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size02 = ummap06.size();
+
+  ummap05.swap(ummap06);
+  VERIFY( ummap05.size() == size02 );
+  VERIFY( my_map(ummap05.begin(), ummap05.end())
+         == my_map(mmap02_ref.begin(), mmap02_ref.end()) );
+  VERIFY( ummap06.size() == size01 );
+  VERIFY( my_map(ummap06.begin(), ummap06.end())
+         == my_map(mmap01_ref.begin(), mmap01_ref.end()) );
+
+  my_ummap ummap07(mmap01_ref.begin(), mmap01_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size01 = ummap07.size();
+  my_ummap ummap08(mmap03_ref.begin(), mmap03_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size02 = ummap08.size();
+
+  ummap07.swap(ummap08);
+  VERIFY( ummap07.size() == size02 );
+  VERIFY( my_map(ummap07.begin(), ummap07.end())
+         == my_map(mmap03_ref.begin(), mmap03_ref.end()) );
+  VERIFY( ummap08.size() == size01 );
+  VERIFY( my_map(ummap08.begin(), ummap08.end())
+         == my_map(mmap01_ref.begin(), mmap01_ref.end()) );
+
+  my_ummap ummap09(mmap03_ref.begin(), mmap03_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size01 = ummap09.size();
+  my_ummap ummap10(mmap04_ref.begin(), mmap04_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size02 = ummap10.size();
+
+  ummap09.swap(ummap10);
+  VERIFY( ummap09.size() == size02 );
+  VERIFY( my_map(ummap09.begin(), ummap09.end())
+         == my_map(mmap04_ref.begin(), mmap04_ref.end()) );
+  VERIFY( ummap10.size() == size01 );
+  VERIFY( my_map(ummap10.begin(), ummap10.end())
+         == my_map(mmap03_ref.begin(), mmap03_ref.end()) );
+
+  my_ummap ummap11(mmap04_ref.begin(), mmap04_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size01 = ummap11.size();
+  my_ummap ummap12(mmap01_ref.begin(), mmap01_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size02 = ummap12.size();
+
+  ummap11.swap(ummap12);
+  VERIFY( ummap11.size() == size02 );
+  VERIFY( my_map(ummap11.begin(), ummap11.end())
+         == my_map(mmap01_ref.begin(), mmap01_ref.end()) );
+  VERIFY( ummap12.size() == size01 );
+  VERIFY( my_map(ummap12.begin(), ummap12.end())
+         == my_map(mmap04_ref.begin(), mmap04_ref.end()) );
+
+  my_ummap ummap13(mmap03_ref.begin(), mmap03_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size01 = ummap13.size();
+  my_ummap ummap14(mmap03_ref.begin(), mmap03_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size02 = ummap14.size();
+
+  ummap13.swap(ummap14);
+  VERIFY( ummap13.size() == size02 );
+  VERIFY( my_map(ummap13.begin(), ummap13.end())
+         == my_map(mmap03_ref.begin(), mmap03_ref.end()) );
+  VERIFY( ummap14.size() == size01 );
+  VERIFY( my_map(ummap14.begin(), ummap14.end())
+         == my_map(mmap03_ref.begin(), mmap03_ref.end()) );
+}
+
+int main()
+{ 
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/swap/2.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/swap/2.cc
new file mode 100644 (file)
index 0000000..f7744eb
--- /dev/null
@@ -0,0 +1,204 @@
+// 2005-12-20  Paolo Carlini  <pcarlini@suse.de>
+
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 6.3.4.6 unordered_multimap::swap
+
+#include <tr1/unordered_map>
+#include <map>
+#include <testsuite_hooks.h>
+#include <testsuite_allocator.h>
+
+// uneq_allocator, two different personalities.
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+  using namespace std;
+  using namespace tr1;
+
+  typedef pair<const char, int> my_pair;
+  typedef __gnu_test::uneq_allocator<my_pair> my_alloc;
+  typedef unordered_multimap<char, int, hash<char>, equal_to<char>, my_alloc>
+    my_ummap;
+
+  const char title01[] = "Rivers of sand";
+  const char title02[] = "Concret PH";
+  const char title03[] = "Sonatas and Interludes for Prepared Piano";
+  const char title04[] = "never as tired as when i'm waking up";
+
+  const size_t N1 = sizeof(title01);
+  const size_t N2 = sizeof(title02);
+  const size_t N3 = sizeof(title03);
+  const size_t N4 = sizeof(title04);
+
+  typedef multimap<char, int> my_mmap;
+  my_mmap mmap01_ref;
+  for (size_t i = 0; i < N1; ++i)
+    mmap01_ref.insert(my_pair(title01[i], i));
+  my_mmap mmap02_ref;
+  for (size_t i = 0; i < N2; ++i)
+    mmap02_ref.insert(my_pair(title02[i], i));
+  my_mmap mmap03_ref;
+  for (size_t i = 0; i < N3; ++i)
+    mmap03_ref.insert(my_pair(title03[i], i));
+  my_mmap mmap04_ref;
+  for (size_t i = 0; i < N4; ++i)
+    mmap04_ref.insert(my_pair(title04[i], i));
+
+  typedef map<char, int> my_map;
+
+  my_ummap::size_type size01, size02;
+
+  my_alloc alloc01(1), alloc02(2);
+  int personality01, personality02;
+
+  my_ummap ummap01(10, hash<char>(), equal_to<char>(), alloc01);
+  size01 = ummap01.size();
+  personality01 = ummap01.get_allocator().get_personality();
+  my_ummap ummap02(10, hash<char>(), equal_to<char>(), alloc02);
+  size02 = ummap02.size();
+  personality02 = ummap02.get_allocator().get_personality();
+
+  ummap01.swap(ummap02);
+  VERIFY( ummap01.size() == size02 );
+  VERIFY( ummap01.empty() );
+  VERIFY( ummap02.size() == size01 );
+  VERIFY( ummap02.empty() );
+  VERIFY( ummap01.get_allocator().get_personality() == personality02 );
+  VERIFY( ummap02.get_allocator().get_personality() == personality01 );
+
+  my_ummap ummap03(10, hash<char>(), equal_to<char>(), alloc02);
+  size01 = ummap03.size();
+  personality01 = ummap03.get_allocator().get_personality();
+  my_ummap ummap04(mmap02_ref.begin(), mmap02_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size02 = ummap04.size();
+  personality02 = ummap04.get_allocator().get_personality();
+
+  ummap03.swap(ummap04);
+  VERIFY( ummap03.size() == size02 );
+  VERIFY( my_map(ummap03.begin(), ummap03.end())
+         == my_map(mmap02_ref.begin(), mmap02_ref.end()) );
+  VERIFY( ummap04.size() == size01 );
+  VERIFY( ummap04.empty() );
+  VERIFY( ummap03.get_allocator().get_personality() == personality02 );
+  VERIFY( ummap04.get_allocator().get_personality() == personality01 );
+  
+  my_ummap ummap05(mmap01_ref.begin(), mmap01_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size01 = ummap05.size();
+  personality01 = ummap05.get_allocator().get_personality();
+  my_ummap ummap06(mmap02_ref.begin(), mmap02_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc02);
+  size02 = ummap06.size();
+  personality02 = ummap06.get_allocator().get_personality();
+
+  ummap05.swap(ummap06);
+  VERIFY( ummap05.size() == size02 );
+  VERIFY( my_map(ummap05.begin(), ummap05.end())
+         == my_map(mmap02_ref.begin(), mmap02_ref.end()) );
+  VERIFY( ummap06.size() == size01 );
+  VERIFY( my_map(ummap06.begin(), ummap06.end())
+         == my_map(mmap01_ref.begin(), mmap01_ref.end()) );
+  VERIFY( ummap05.get_allocator().get_personality() == personality02 );
+  VERIFY( ummap06.get_allocator().get_personality() == personality01 );
+
+  my_ummap ummap07(mmap01_ref.begin(), mmap01_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc02);
+  size01 = ummap07.size();
+  personality01 = ummap07.get_allocator().get_personality();
+  my_ummap ummap08(mmap03_ref.begin(), mmap03_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size02 = ummap08.size();
+  personality02 = ummap08.get_allocator().get_personality();
+
+  ummap07.swap(ummap08);
+  VERIFY( ummap07.size() == size02 );
+  VERIFY( my_map(ummap07.begin(), ummap07.end())
+         == my_map(mmap03_ref.begin(), mmap03_ref.end()) );
+  VERIFY( ummap08.size() == size01 );
+  VERIFY( my_map(ummap08.begin(), ummap08.end()) 
+         == my_map(mmap01_ref.begin(), mmap01_ref.end()) );
+  VERIFY( ummap07.get_allocator().get_personality() == personality02 );
+  VERIFY( ummap08.get_allocator().get_personality() == personality01 );
+
+  my_ummap ummap09(mmap03_ref.begin(), mmap03_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size01 = ummap09.size();
+  personality01 = ummap09.get_allocator().get_personality();
+  my_ummap ummap10(mmap04_ref.begin(), mmap04_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc02);
+  size02 = ummap10.size();
+  personality02 = ummap10.get_allocator().get_personality();
+
+  ummap09.swap(ummap10);
+  VERIFY( ummap09.size() == size02 );
+  VERIFY( my_map(ummap09.begin(), ummap09.end())
+         == my_map(mmap04_ref.begin(), mmap04_ref.end()) );
+  VERIFY( ummap10.size() == size01 );
+  VERIFY( my_map(ummap10.begin(), ummap10.end())
+         == my_map(mmap03_ref.begin(), mmap03_ref.end()) );
+  VERIFY( ummap09.get_allocator().get_personality() == personality02 );
+  VERIFY( ummap10.get_allocator().get_personality() == personality01 );
+
+  my_ummap ummap11(mmap04_ref.begin(), mmap04_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc02);
+  size01 = ummap11.size();
+  personality01 = ummap11.get_allocator().get_personality();
+  my_ummap ummap12(mmap01_ref.begin(), mmap01_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size02 = ummap12.size();
+  personality02 = ummap12.get_allocator().get_personality();
+
+  ummap11.swap(ummap12);
+  VERIFY( ummap11.size() == size02 );
+  VERIFY( my_map(ummap11.begin(), ummap11.end())
+         == my_map(mmap01_ref.begin(), mmap01_ref.end()) );
+  VERIFY( ummap12.size() == size01 );
+  VERIFY( my_map(ummap12.begin(), ummap12.end())
+         == my_map(mmap04_ref.begin(), mmap04_ref.end()) );
+  VERIFY( ummap11.get_allocator().get_personality() == personality02 );
+  VERIFY( ummap12.get_allocator().get_personality() == personality01 );
+
+  my_ummap ummap13(mmap03_ref.begin(), mmap03_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size01 = ummap13.size();
+  personality01 = ummap13.get_allocator().get_personality();
+  my_ummap ummap14(mmap03_ref.begin(), mmap03_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc02);
+  size02 = ummap14.size();
+  personality02 = ummap14.get_allocator().get_personality();
+
+  ummap13.swap(ummap14);
+  VERIFY( ummap13.size() == size02 );
+  VERIFY( my_map(ummap13.begin(), ummap13.end())
+         == my_map(mmap03_ref.begin(), mmap03_ref.end()) );
+  VERIFY( ummap14.size() == size01 );
+  VERIFY( my_map(ummap14.begin(), ummap14.end())
+         == my_map(mmap03_ref.begin(), mmap03_ref.end()) );
+  VERIFY( ummap13.get_allocator().get_personality() == personality02 );
+  VERIFY( ummap14.get_allocator().get_personality() == personality01 );
+}
+
+int main()
+{ 
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/24054.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/24054.cc
new file mode 100644 (file)
index 0000000..073d240
--- /dev/null
@@ -0,0 +1,53 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3 Unordered associative containers
+
+#include <tr1/unordered_set>
+#include <string>
+#include <testsuite_hooks.h>
+
+// libstdc++/24054
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  typedef std::tr1::unordered_multiset<std::string> Set;
+
+  Set s;
+
+  s.insert("etaoin");
+  s.insert("etaoin");
+  s.insert("etaoin");
+  s.insert("shrdlu");
+
+  VERIFY( s.erase("") == 0 );
+  VERIFY( s.size() == 4 );
+
+  VERIFY( s.erase("etaoin") == 3 );
+  VERIFY( s.size() == 1 );
+
+  VERIFY( s.erase("shrdlu") == 1 );
+  VERIFY( s.size() == 0 );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/capacity/29134-multiset.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/capacity/29134-multiset.cc
new file mode 100644 (file)
index 0000000..923af9b
--- /dev/null
@@ -0,0 +1,38 @@
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without Pred 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.5  Class template unordered_multiset
+
+#include <tr1/unordered_set>
+#include <testsuite_hooks.h>
+
+// libstdc++/29134
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  std::tr1::unordered_multiset<int> ums;
+
+  VERIFY( ums.max_size() == ums.get_allocator().max_size() );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/erase/24061-multiset.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/erase/24061-multiset.cc
new file mode 100644 (file)
index 0000000..a00beab
--- /dev/null
@@ -0,0 +1,108 @@
+// 2005-10-08  Paolo Carlini  <pcarlini@suse.de> 
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.5  Class template unordered_multiset
+
+#include <tr1/unordered_set>
+#include <string>
+#include <testsuite_hooks.h>
+
+// libstdc++/24061
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+  
+  typedef std::tr1::unordered_multiset<std::string> Mset;
+  typedef Mset::iterator       iterator;
+  typedef Mset::const_iterator const_iterator;
+
+  Mset ms1;
+  
+  ms1.insert("all the love in the world");
+  ms1.insert("you know what you are?");
+  ms1.insert("the collector");
+  ms1.insert("the hand that feeds");
+  ms1.insert("love is not enough");
+  ms1.insert("every day is exactly the same");
+  ms1.insert("with teeth");
+  ms1.insert("only");
+  ms1.insert("getting smaller");
+  ms1.insert("sunspots");
+
+  ms1.insert("the hand that feeds");
+  ms1.insert("love is not enough");
+  ms1.insert("every day is exactly the same");
+  VERIFY( ms1.size() == 13 );
+
+  iterator it1 = ms1.begin();
+  ++it1;
+  iterator it2 = it1;
+  ++it2;
+  iterator it3 = ms1.erase(it1);
+  VERIFY( ms1.size() == 12 );
+  VERIFY( it3 == it2 );
+  VERIFY( *it3 == *it2 );
+
+  iterator it4 = ms1.begin();
+  ++it4;
+  ++it4;
+  ++it4;
+  iterator it5 = it4;
+  ++it5;
+  ++it5;
+  iterator it6 = ms1.erase(it4, it5);
+  VERIFY( ms1.size() == 10 );
+  VERIFY( it6 == it5 );
+  VERIFY( *it6 == *it5 );
+
+  const_iterator it7 = ms1.begin();
+  ++it7;
+  ++it7;
+  ++it7;
+  const_iterator it8 = it7;
+  ++it8;
+  const_iterator it9 = ms1.erase(it7);
+  VERIFY( ms1.size() == 9 );
+  VERIFY( it9 == it8 );
+  VERIFY( *it9 == *it8 );
+
+  const_iterator it10 = ms1.begin();
+  ++it10;
+  const_iterator it11 = it10;
+  ++it11;
+  ++it11;
+  ++it11;
+  ++it11;
+  const_iterator it12 = ms1.erase(it10, it11);
+  VERIFY( ms1.size() == 5 );
+  VERIFY( it12 == it11 );
+  VERIFY( *it12 == *it11 );
+
+  iterator it13 = ms1.erase(ms1.begin(), ms1.end());
+  VERIFY( ms1.size() == 0 );
+  VERIFY( it13 == ms1.end() );
+  VERIFY( it13 == ms1.begin() );
+}
+  
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/find/multiset1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/find/multiset1.cc
new file mode 100644 (file)
index 0000000..b06d511
--- /dev/null
@@ -0,0 +1,67 @@
+// { dg-do run }
+
+// 2005-2-18  Matt Austern  <austern@apple.com>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.5 unordered_set
+// find, equal_range, count
+
+#include <string>
+#include <iterator>
+#include <algorithm>
+#include <tr1/unordered_set>
+#include "testsuite_hooks.h"
+
+bool test __attribute__((unused)) = true;
+
+void test01()
+{
+  typedef std::tr1::unordered_multiset<std::string> Set;
+  Set s;
+  VERIFY(s.empty());
+
+  s.insert("grape");
+  s.insert("banana");
+  s.insert("grape");
+
+  Set::iterator i2 = s.find("banana");
+  VERIFY(i2 != s.end());
+  VERIFY(*i2 == "banana");
+  
+  std::pair<Set::iterator, Set::iterator> p = s.equal_range("grape");
+  VERIFY(std::distance(p.first, p.second) == 2);
+  Set::iterator i3 = p.first;
+  ++i3;
+  VERIFY(*p.first == "grape");
+  VERIFY(*i3 == "grape");
+
+  Set::iterator i4 = s.find("lime");
+  VERIFY(i4 == s.end());  
+
+  VERIFY(s.count("grape") == 2);
+  VERIFY(s.count("banana") == 1);
+  VERIFY(s.count("lime") == 0);
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/24061-multiset.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/24061-multiset.cc
new file mode 100644 (file)
index 0000000..9467f41
--- /dev/null
@@ -0,0 +1,58 @@
+// 2005-10-08  Paolo Carlini  <pcarlini@suse.de> 
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.5  Class template unordered_multiset
+
+#include <tr1/unordered_set>
+#include <string>
+#include <testsuite_hooks.h>
+
+// libstdc++/24061
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+  
+  typedef std::tr1::unordered_multiset<std::string> Mset;
+  typedef Mset::iterator       iterator;
+  typedef Mset::const_iterator const_iterator;
+
+  Mset ms1;
+  
+  iterator it1 = ms1.insert(ms1.begin(), "all the love in the world");
+  VERIFY( ms1.size() == 1 );
+  VERIFY( *it1 == "all the love in the world" );
+  
+  const_iterator cit1(it1);
+  const_iterator cit2 = ms1.insert(cit1, "you know what you are?");
+  VERIFY( ms1.size() == 2 );
+  VERIFY( cit2 != cit1 );
+  VERIFY( *cit2 == "you know what you are?" );
+
+  iterator it2 = ms1.insert(it1, "all the love in the world");
+  VERIFY( ms1.size() == 3 );
+  VERIFY( it2 != it1 );
+  VERIFY( *it2 == "all the love in the world" );
+}
+  
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/multiset_range.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/multiset_range.cc
new file mode 100644 (file)
index 0000000..a83fce3
--- /dev/null
@@ -0,0 +1,81 @@
+// { dg-do run }
+
+// 2005-2-17  Matt Austern  <austern@apple.com>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.5 unordered_multiset
+// range insert
+
+#include <string>
+#include <iterator>
+#include <algorithm>
+#include <tr1/unordered_set>
+#include <testsuite_hooks.h>
+
+bool test __attribute__((unused)) = true;
+
+void test01()
+{
+  typedef std::tr1::unordered_multiset<std::string> Set;
+  Set s;
+  VERIFY(s.empty());
+
+  const int N = 10;
+  const std::string A[N] = { "red", "green", "blue", "violet", "cyan",
+                            "magenta", "yellow", "orange", "pink", "gray" };
+
+  s.insert(A+0, A+N);
+  VERIFY(s.size() == static_cast<unsigned int>(N));
+  VERIFY(std::distance(s.begin(), s.end()) == N);
+
+  for (int i = 0; i < N; ++i) {
+    std::string str = A[i];
+    Set::iterator it = std::find(s.begin(), s.end(), str);
+    VERIFY(it != s.end());
+  }
+}
+
+void test02()
+{
+  typedef std::tr1::unordered_multiset<int> Set;
+  Set s;
+  VERIFY(s.empty());
+
+  const int N = 8;
+  const int A[N] = { 3, 7, 4, 8, 2, 4, 6, 7 };
+
+  s.insert(A+0, A+N);
+  VERIFY(s.size() == static_cast<unsigned int>(N));
+  VERIFY(std::distance(s.begin(), s.end()) == N);
+
+  VERIFY(std::count(s.begin(), s.end(), 2) == 1);
+  VERIFY(std::count(s.begin(), s.end(), 3) == 1);
+  VERIFY(std::count(s.begin(), s.end(), 4) == 2);
+  VERIFY(std::count(s.begin(), s.end(), 6) == 1);
+  VERIFY(std::count(s.begin(), s.end(), 7) == 2);
+  VERIFY(std::count(s.begin(), s.end(), 8) == 1);
+}
+
+int main()
+{
+  test01();
+  test02();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/multiset_single.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/multiset_single.cc
new file mode 100644 (file)
index 0000000..48fd1d4
--- /dev/null
@@ -0,0 +1,69 @@
+// { dg-do run }
+
+// 2005-2-17  Matt Austern  <austern@apple.com>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.5 unordered_multiset
+// Single-element insert
+
+#include <string>
+#include <iterator>
+#include <tr1/unordered_set>
+#include "testsuite_hooks.h"
+
+bool test __attribute__((unused)) = true;
+
+void test01()
+{
+  typedef std::tr1::unordered_multiset<std::string> Set;
+  Set s;
+  VERIFY(s.empty());
+
+  Set::iterator i = s.insert("abcde");
+  VERIFY(s.size() == 1);
+  VERIFY(std::distance(s.begin(), s.end()) == 1);
+  VERIFY(i == s.begin());
+  VERIFY(*i == "abcde");
+}
+
+void test02()
+{
+  typedef std::tr1::unordered_multiset<std::string> Set;
+  Set s;
+  VERIFY(s.empty());
+
+  s.insert("abcde");
+  Set::iterator i = s.insert("abcde");
+  VERIFY(s.size() == 2);
+  VERIFY(std::distance(s.begin(), s.end()) == 2);
+  VERIFY(*i == "abcde");
+  
+  Set::iterator i2 = s.begin();
+  ++i2;
+  VERIFY(i == s.begin() || i == i2);
+  VERIFY(*(s.begin()) == "abcde" && *i2 == "abcde");
+}
+
+int main()
+{
+  test01();
+  test02();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..5d1e871
--- /dev/null
@@ -0,0 +1,34 @@
+// { dg-do compile }
+
+// 2005-02-17  Matt Austern  <austern@apple.com>
+//
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.5 unordered_multiset
+
+#include <tr1/unordered_set>
+
+using namespace std;
+using namespace std::tr1;
+
+template class unordered_multiset<int>;
+template class unordered_multiset<int, hash<int>, equal_to<int>,
+                                 allocator<int>, true>;
+template class unordered_multiset<int, hash<int>, equal_to<int>,
+                                 allocator<char>, false>;
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_neg.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_neg.cc
new file mode 100644 (file)
index 0000000..3b3161a
--- /dev/null
@@ -0,0 +1,45 @@
+// 2005-10-02  Paolo Carlini  <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// { dg-do compile }
+
+#include <tr1/unordered_set>
+
+void test01()
+{
+  typedef std::tr1::unordered_multiset<int> Mset;
+
+  Mset ms;
+
+  Mset::const_iterator cit = ms.begin();
+  *cit = 0; // { dg-error "read-only" }
+
+  Mset::const_local_iterator clit = ms.begin(0);
+  *clit = 0; // { dg-error "read-only" }
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_null_neg.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_null_neg.cc
new file mode 100644 (file)
index 0000000..46d79ad
--- /dev/null
@@ -0,0 +1,36 @@
+// 2005-09-10  Paolo Carlini  <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// { dg-do compile }
+
+// libstdc++/23781
+#include <tr1/unordered_set>
+
+std::tr1::unordered_multiset<int>::iterator it3 = NULL; // { dg-error "conversion" }
+std::tr1::unordered_multiset<int>::const_iterator cit3 = NULL; // { dg-error "conversion" }
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/swap/1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/swap/1.cc
new file mode 100644 (file)
index 0000000..ca0194e
--- /dev/null
@@ -0,0 +1,153 @@
+// 2005-12-20  Paolo Carlini  <pcarlini@suse.de>
+
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 6.3.4.5 unordered_multiset::swap
+
+#include <tr1/unordered_set>
+#include <set>
+#include <testsuite_hooks.h>
+#include <testsuite_allocator.h>
+
+// uneq_allocator as a non-empty allocator.
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+  using namespace std;
+  using namespace tr1;
+
+  typedef __gnu_test::uneq_allocator<char> my_alloc;
+  typedef unordered_multiset<char, hash<char>, equal_to<char>, my_alloc>
+    my_umset;
+
+  const char title01[] = "Rivers of sand";
+  const char title02[] = "Concret PH";
+  const char title03[] = "Sonatas and Interludes for Prepared Piano";
+  const char title04[] = "never as tired as when i'm waking up";
+
+  const size_t N1 = sizeof(title01);
+  const size_t N2 = sizeof(title02);
+  const size_t N3 = sizeof(title03);
+  const size_t N4 = sizeof(title04);
+
+  typedef multiset<char> my_mset;
+  const my_mset mset01_ref(title01, title01 + N1);
+  const my_mset mset02_ref(title02, title02 + N2);
+  const my_mset mset03_ref(title03, title03 + N3);
+  const my_mset mset04_ref(title04, title04 + N4);
+
+  my_umset::size_type size01, size02;
+
+  my_alloc alloc01(1);
+
+  my_umset umset01(10, hash<char>(), equal_to<char>(), alloc01);
+  size01 = umset01.size();
+  my_umset umset02(10, hash<char>(), equal_to<char>(), alloc01);
+  size02 = umset02.size();
+  
+  umset01.swap(umset02);
+  VERIFY( umset01.size() == size02 );
+  VERIFY( umset01.empty() );
+  VERIFY( umset02.size() == size01 );
+  VERIFY( umset02.empty() );
+
+  my_umset umset03(10, hash<char>(), equal_to<char>(), alloc01);
+  size01 = umset03.size();
+  my_umset umset04(mset02_ref.begin(), mset02_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size02 = umset04.size();
+  
+  umset03.swap(umset04);
+  VERIFY( umset03.size() == size02 );
+  VERIFY( my_mset(umset03.begin(), umset03.end()) == mset02_ref );
+  VERIFY( umset04.size() == size01 );
+  VERIFY( umset04.empty() );
+  
+  my_umset umset05(mset01_ref.begin(), mset01_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size01 = umset05.size();
+  my_umset umset06(mset02_ref.begin(), mset02_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size02 = umset06.size();
+  
+  umset05.swap(umset06);
+  VERIFY( umset05.size() == size02 );
+  VERIFY( my_mset(umset05.begin(), umset05.end()) == mset02_ref );
+  VERIFY( umset06.size() == size01 );
+  VERIFY( my_mset(umset06.begin(), umset06.end()) == mset01_ref );
+
+  my_umset umset07(mset01_ref.begin(), mset01_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size01 = umset07.size();
+  my_umset umset08(mset03_ref.begin(), mset03_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size02 = umset08.size();
+
+  umset07.swap(umset08);
+  VERIFY( umset07.size() == size02 );
+  VERIFY( my_mset(umset07.begin(), umset07.end()) == mset03_ref );
+  VERIFY( umset08.size() == size01 );
+  VERIFY( my_mset(umset08.begin(), umset08.end()) == mset01_ref );
+
+  my_umset umset09(mset03_ref.begin(), mset03_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size01 = umset09.size();
+  my_umset umset10(mset04_ref.begin(), mset04_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size02 = umset10.size();
+
+  umset09.swap(umset10);
+  VERIFY( umset09.size() == size02 );
+  VERIFY( my_mset(umset09.begin(), umset09.end()) == mset04_ref );
+  VERIFY( umset10.size() == size01 );
+  VERIFY( my_mset(umset10.begin(), umset10.end()) == mset03_ref );
+
+  my_umset umset11(mset04_ref.begin(), mset04_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size01 = umset11.size();
+  my_umset umset12(mset01_ref.begin(), mset01_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size02 = umset12.size();
+
+  umset11.swap(umset12);
+  VERIFY( umset11.size() == size02 );
+  VERIFY( my_mset(umset11.begin(), umset11.end()) == mset01_ref );
+  VERIFY( umset12.size() == size01 );
+  VERIFY( my_mset(umset12.begin(), umset12.end()) == mset04_ref );
+
+  my_umset umset13(mset03_ref.begin(), mset03_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size01 = umset13.size();
+  my_umset umset14(mset03_ref.begin(), mset03_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size02 = umset14.size();
+
+  umset13.swap(umset14);
+  VERIFY( umset13.size() == size02 );
+  VERIFY( my_mset(umset13.begin(), umset13.end()) == mset03_ref );
+  VERIFY( umset14.size() == size01 );
+  VERIFY( my_mset(umset14.begin(), umset14.end()) == mset03_ref );
+}
+
+int main()
+{ 
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/swap/2.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/swap/2.cc
new file mode 100644 (file)
index 0000000..a95ddd5
--- /dev/null
@@ -0,0 +1,182 @@
+// 2005-12-20  Paolo Carlini  <pcarlini@suse.de>
+
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 6.3.4.5 unordered_multiset::swap
+
+#include <tr1/unordered_set>
+#include <set>
+#include <testsuite_hooks.h>
+#include <testsuite_allocator.h>
+
+// uneq_allocator, two different personalities.
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+  using namespace std;
+  using namespace tr1;
+
+  typedef __gnu_test::uneq_allocator<char> my_alloc;
+  typedef unordered_multiset<char, hash<char>, equal_to<char>, my_alloc>
+    my_umset;
+
+  const char title01[] = "Rivers of sand";
+  const char title02[] = "Concret PH";
+  const char title03[] = "Sonatas and Interludes for Prepared Piano";
+  const char title04[] = "never as tired as when i'm waking up";
+
+  const size_t N1 = sizeof(title01);
+  const size_t N2 = sizeof(title02);
+  const size_t N3 = sizeof(title03);
+  const size_t N4 = sizeof(title04);
+
+  typedef multiset<char> my_mset;
+  const my_mset mset01_ref(title01, title01 + N1);
+  const my_mset mset02_ref(title02, title02 + N2);
+  const my_mset mset03_ref(title03, title03 + N3);
+  const my_mset mset04_ref(title04, title04 + N4);
+
+  my_umset::size_type size01, size02;
+
+  my_alloc alloc01(1), alloc02(2);
+  int personality01, personality02;
+
+  my_umset umset01(10, hash<char>(), equal_to<char>(), alloc01);
+  size01 = umset01.size();
+  personality01 = umset01.get_allocator().get_personality();
+  my_umset umset02(10, hash<char>(), equal_to<char>(), alloc02);
+  size02 = umset02.size();
+  personality02 = umset02.get_allocator().get_personality();
+
+  umset01.swap(umset02);
+  VERIFY( umset01.size() == size02 );
+  VERIFY( umset01.empty() );
+  VERIFY( umset02.size() == size01 );
+  VERIFY( umset02.empty() );
+  VERIFY( umset01.get_allocator().get_personality() == personality02 );
+  VERIFY( umset02.get_allocator().get_personality() == personality01 );
+
+  my_umset umset03(10, hash<char>(), equal_to<char>(), alloc02);
+  size01 = umset03.size();
+  personality01 = umset03.get_allocator().get_personality();
+  my_umset umset04(mset02_ref.begin(), mset02_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size02 = umset04.size();
+  personality02 = umset04.get_allocator().get_personality();
+
+  umset03.swap(umset04);
+  VERIFY( umset03.size() == size02 );
+  VERIFY( my_mset(umset03.begin(), umset03.end()) == mset02_ref );
+  VERIFY( umset04.size() == size01 );
+  VERIFY( umset04.empty() );
+  VERIFY( umset03.get_allocator().get_personality() == personality02 );
+  VERIFY( umset04.get_allocator().get_personality() == personality01 );
+  
+  my_umset umset05(mset01_ref.begin(), mset01_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size01 = umset05.size();
+  personality01 = umset05.get_allocator().get_personality();
+  my_umset umset06(mset02_ref.begin(), mset02_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc02);
+  size02 = umset06.size();
+  personality02 = umset06.get_allocator().get_personality();
+
+  umset05.swap(umset06);
+  VERIFY( umset05.size() == size02 );
+  VERIFY( my_mset(umset05.begin(), umset05.end()) == mset02_ref );
+  VERIFY( umset06.size() == size01 );
+  VERIFY( my_mset(umset06.begin(), umset06.end()) == mset01_ref );
+  VERIFY( umset05.get_allocator().get_personality() == personality02 );
+  VERIFY( umset06.get_allocator().get_personality() == personality01 );
+
+  my_umset umset07(mset01_ref.begin(), mset01_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc02);
+  size01 = umset07.size();
+  personality01 = umset07.get_allocator().get_personality();
+  my_umset umset08(mset03_ref.begin(), mset03_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size02 = umset08.size();
+  personality02 = umset08.get_allocator().get_personality();
+
+  umset07.swap(umset08);
+  VERIFY( umset07.size() == size02 );
+  VERIFY( my_mset(umset07.begin(), umset07.end()) == mset03_ref );
+  VERIFY( umset08.size() == size01 );
+  VERIFY( my_mset(umset08.begin(), umset08.end()) == mset01_ref );
+  VERIFY( umset07.get_allocator().get_personality() == personality02 );
+  VERIFY( umset08.get_allocator().get_personality() == personality01 );
+
+  my_umset umset09(mset03_ref.begin(), mset03_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size01 = umset09.size();
+  personality01 = umset09.get_allocator().get_personality();
+  my_umset umset10(mset04_ref.begin(), mset04_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc02);
+  size02 = umset10.size();
+  personality02 = umset10.get_allocator().get_personality();
+
+  umset09.swap(umset10);
+  VERIFY( umset09.size() == size02 );
+  VERIFY( my_mset(umset09.begin(), umset09.end()) == mset04_ref );
+  VERIFY( umset10.size() == size01 );
+  VERIFY( my_mset(umset10.begin(), umset10.end()) == mset03_ref );
+  VERIFY( umset09.get_allocator().get_personality() == personality02 );
+  VERIFY( umset10.get_allocator().get_personality() == personality01 );
+
+  my_umset umset11(mset04_ref.begin(), mset04_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc02);
+  size01 = umset11.size();
+  personality01 = umset11.get_allocator().get_personality();
+  my_umset umset12(mset01_ref.begin(), mset01_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size02 = umset12.size();
+  personality02 = umset12.get_allocator().get_personality();
+
+  umset11.swap(umset12);
+  VERIFY( umset11.size() == size02 );
+  VERIFY( my_mset(umset11.begin(), umset11.end()) == mset01_ref );
+  VERIFY( umset12.size() == size01 );
+  VERIFY( my_mset(umset12.begin(), umset12.end()) == mset04_ref );
+  VERIFY( umset11.get_allocator().get_personality() == personality02 );
+  VERIFY( umset12.get_allocator().get_personality() == personality01 );
+
+  my_umset umset13(mset03_ref.begin(), mset03_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc01);
+  size01 = umset13.size();
+  personality01 = umset13.get_allocator().get_personality();
+  my_umset umset14(mset03_ref.begin(), mset03_ref.end(), 10, hash<char>(),
+                  equal_to<char>(), alloc02);
+  size02 = umset14.size();
+  personality02 = umset14.get_allocator().get_personality();
+
+  umset13.swap(umset14);
+  VERIFY( umset13.size() == size02 );
+  VERIFY( my_mset(umset13.begin(), umset13.end()) == mset03_ref );
+  VERIFY( umset14.size() == size01 );
+  VERIFY( my_mset(umset14.begin(), umset14.end()) == mset03_ref );
+  VERIFY( umset13.get_allocator().get_personality() == personality02 );
+  VERIFY( umset14.get_allocator().get_personality() == personality01 );
+}
+
+int main()
+{ 
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/23053.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/23053.cc
new file mode 100644 (file)
index 0000000..8d93c4f
--- /dev/null
@@ -0,0 +1,39 @@
+// { dg-do compile }
+
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3 Unordered associative containers
+
+#include <tr1/unordered_set>
+
+// libstdc++/23053
+void test01()
+{
+  std::tr1::unordered_set<int> s;
+
+  const std::tr1::unordered_set<int> &s_ref = s;
+
+  s_ref.find(27);
+}  
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/23465.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/23465.cc
new file mode 100644 (file)
index 0000000..35e52c2
--- /dev/null
@@ -0,0 +1,64 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3 Unordered associative containers
+
+#include <tr1/unordered_set>
+#include <testsuite_hooks.h>
+
+// libstdc++/23465
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  for (float lf = 0.1; lf < 101.0; lf *= 10.0)
+    for (int size = 1; size <= 6561; size *= 3)
+      {
+       std::tr1::unordered_set<int> us1, us2;
+       typedef std::tr1::unordered_set<int>::local_iterator local_iterator;
+       typedef std::tr1::unordered_set<int>::size_type      size_type;
+       
+       us1.max_load_factor(lf);
+
+       for (int i = 0; i < size; ++i)
+         us1.insert(i);
+       
+       us2 = us1;
+       
+       VERIFY( us2.size() == us1.size() );
+       VERIFY( us2.bucket_count() == us1.bucket_count() );
+       
+       for (size_type b = 0; b < us1.bucket_count(); ++b)
+         {
+           size_type cnt = 0;
+           for (local_iterator it1 = us1.begin(b), it2 = us2.begin(b);
+                it1 != us1.end(b) && it2 != us2.end(b); ++it1, ++it2)
+             {
+               VERIFY( *it1 == *it2 );
+               ++cnt;
+             }
+           VERIFY( cnt == us1.bucket_size(b) );
+         }
+      }
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/26127.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/26127.cc
new file mode 100644 (file)
index 0000000..d14a625
--- /dev/null
@@ -0,0 +1,39 @@
+// { dg-do compile }
+
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3 Unordered associative containers
+
+#include <tr1/unordered_set>
+
+// libstdc++/26127
+void test01()
+{
+  std::tr1::unordered_set<int> s;
+
+  s.bucket(42);
+  s.key_eq();
+  s.max_load_factor();  
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/26132.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/26132.cc
new file mode 100644 (file)
index 0000000..9d0076e
--- /dev/null
@@ -0,0 +1,58 @@
+// 2006-02-22  Paolo Carlini  <pcarlini@suse.de>
+//
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3 Unordered associative containers
+
+#include <tr1/unordered_set>
+#include <testsuite_hooks.h>
+
+// libstdc++/26132
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  for (float lf = 1.0; lf < 101.0; lf *= 10.0)
+    for (int size = 1; size <= 6561; size *= 3)
+      {
+       std::tr1::unordered_set<int> us1;
+       typedef std::tr1::unordered_set<int>::size_type size_type;
+       
+       us1.max_load_factor(10.0);
+
+       for (int i = 0; i < size; ++i)
+         us1.insert(i);
+
+       us1.max_load_factor(lf);
+
+       for (int i = 1; i <= 6561; i *= 81)
+         {
+           const size_type n = size * 81 / i;
+           us1.rehash(n);
+           VERIFY( us1.bucket_count() > us1.size() / us1.max_load_factor() );
+           VERIFY( us1.bucket_count() >= n );
+         }
+      }
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/capacity/29134-set.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/capacity/29134-set.cc
new file mode 100644 (file)
index 0000000..5822341
--- /dev/null
@@ -0,0 +1,38 @@
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without Pred 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.3  Class template unordered_set
+
+#include <tr1/unordered_set>
+#include <testsuite_hooks.h>
+
+// libstdc++/29134
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  std::tr1::unordered_set<int> us;
+
+  VERIFY( us.max_size() == us.get_allocator().max_size() );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/erase/24061-set.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/erase/24061-set.cc
new file mode 100644 (file)
index 0000000..202a21d
--- /dev/null
@@ -0,0 +1,105 @@
+// 2005-10-08  Paolo Carlini  <pcarlini@suse.de> 
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.3  Class template unordered_set
+
+#include <tr1/unordered_set>
+#include <string>
+#include <testsuite_hooks.h>
+
+// libstdc++/24061
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+  
+  typedef std::tr1::unordered_set<std::string> Set;
+  typedef Set::iterator       iterator;
+  typedef Set::const_iterator const_iterator;
+
+  Set s1;
+  
+  s1.insert("all the love in the world");
+  s1.insert("you know what you are?");
+  s1.insert("the collector");
+  s1.insert("the hand that feeds");
+  s1.insert("love is not enough");
+  s1.insert("every day is exactly the same");
+  s1.insert("with teeth");
+  s1.insert("only");
+  s1.insert("getting smaller");
+  s1.insert("sunspots");
+  VERIFY( s1.size() == 10 );
+
+  iterator it1 = s1.begin();
+  ++it1;
+  iterator it2 = it1;
+  ++it2;
+  iterator it3 = s1.erase(it1);
+  VERIFY( s1.size() == 9 );
+  VERIFY( it3 == it2 );
+  VERIFY( *it3 == *it2 );
+
+  iterator it4 = s1.begin();
+  ++it4;
+  ++it4;
+  ++it4;
+  iterator it5 = it4;
+  ++it5;
+  ++it5;
+  iterator it6 = s1.erase(it4, it5);
+  VERIFY( s1.size() == 7 );
+  VERIFY( it6 == it5 );
+  VERIFY( *it6 == *it5 );
+
+  const_iterator it7 = s1.begin();
+  ++it7;
+  ++it7;
+  ++it7;
+  const_iterator it8 = it7;
+  ++it8;
+  const_iterator it9 = s1.erase(it7);
+  VERIFY( s1.size() == 6 );
+  VERIFY( it9 == it8 );
+  VERIFY( *it9 == *it8 );
+
+  const_iterator it10 = s1.begin();
+  ++it10;
+  const_iterator it11 = it10;
+  ++it11;
+  ++it11;
+  ++it11;
+  ++it11;
+  const_iterator it12 = s1.erase(it10, it11);
+  VERIFY( s1.size() == 2 );
+  VERIFY( it12 == it11 );
+  VERIFY( *it12 == *it11 );
+  VERIFY( ++it12 == s1.end() );
+
+  iterator it13 = s1.erase(s1.begin(), s1.end());
+  VERIFY( s1.size() == 0 );
+  VERIFY( it13 == s1.end() );
+  VERIFY( it13 == s1.begin() );
+}
+  
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/find/set1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/find/set1.cc
new file mode 100644 (file)
index 0000000..a39612a
--- /dev/null
@@ -0,0 +1,66 @@
+// { dg-do run }
+
+// 2005-2-18  Matt Austern  <austern@apple.com>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.3 unordered_set
+// find, equal_range, count
+
+#include <string>
+#include <iterator>
+#include <algorithm>
+#include <tr1/unordered_set>
+#include "testsuite_hooks.h"
+
+bool test __attribute__((unused)) = true;
+
+void test01()
+{
+  typedef std::tr1::unordered_set<std::string> Set;
+  Set s;
+  VERIFY(s.empty());
+
+  std::pair<Set::iterator, bool> tmp = s.insert("grape");
+  Set::iterator i = tmp.first;
+
+  Set::iterator i2 = s.find("grape");
+  VERIFY(i2 != s.end());
+  VERIFY(i2 == i);
+  VERIFY(*i2 == "grape");
+
+  std::pair<Set::iterator, Set::iterator> p = s.equal_range("grape");
+  VERIFY(p.first == i2);
+  VERIFY(std::distance(p.first, p.second) == 1);
+
+  Set::iterator i3 = s.find("lime");
+  VERIFY(i3 == s.end());  
+
+  std::pair<Set::iterator, Set::iterator> p2 = s.equal_range("lime");
+  VERIFY(p2.first == p2.second);
+
+  VERIFY(s.count("grape") == 1);
+  VERIFY(s.count("lime") == 0);
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/24061-set.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/24061-set.cc
new file mode 100644 (file)
index 0000000..c7d670c
--- /dev/null
@@ -0,0 +1,58 @@
+// 2005-10-08  Paolo Carlini  <pcarlini@suse.de> 
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.3  Class template unordered_set
+
+#include <tr1/unordered_set>
+#include <string>
+#include <testsuite_hooks.h>
+
+// libstdc++/24061
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+  
+  typedef std::tr1::unordered_set<std::string> Set;
+  typedef Set::iterator       iterator;
+  typedef Set::const_iterator const_iterator;
+
+  Set s1;
+  
+  iterator it1 = s1.insert(s1.begin(), "all the love in the world");
+  VERIFY( s1.size() == 1 );
+  VERIFY( *it1 == "all the love in the world" );
+  
+  const_iterator cit1(it1);
+  const_iterator cit2 = s1.insert(cit1, "you know what you are?");
+  VERIFY( s1.size() == 2 );
+  VERIFY( cit2 != cit1 );
+  VERIFY( *cit2 == "you know what you are?" );
+
+  iterator it2 = s1.insert(it1, "all the love in the world");
+  VERIFY( s1.size() == 2 );
+  VERIFY( it2 == it1 );
+  VERIFY( *it2 == "all the love in the world" );
+}
+  
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/set_range.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/set_range.cc
new file mode 100644 (file)
index 0000000..bfa4f73
--- /dev/null
@@ -0,0 +1,81 @@
+// { dg-do run }
+
+// 2005-2-17  Matt Austern  <austern@apple.com>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.3 unordered_set
+// range insert
+
+#include <string>
+#include <iterator>
+#include <algorithm>
+#include <tr1/unordered_set>
+#include <testsuite_hooks.h>
+
+bool test __attribute__((unused)) = true;
+
+void test01()
+{
+  typedef std::tr1::unordered_set<std::string> Set;
+  Set s;
+  VERIFY(s.empty());
+
+  const int N = 10;
+  const std::string A[N] = { "red", "green", "blue", "violet", "cyan",
+                            "magenta", "yellow", "orange", "pink", "gray" };
+
+  s.insert(A+0, A+N);
+  VERIFY(s.size() == static_cast<unsigned int>(N));
+  VERIFY(std::distance(s.begin(), s.end()) == N);
+
+  for (int i = 0; i < N; ++i) {
+    std::string str = A[i];
+    Set::iterator it = std::find(s.begin(), s.end(), str);
+    VERIFY(it != s.end());
+  }
+}
+
+void test02()
+{
+  typedef std::tr1::unordered_set<int> Set;
+  Set s;
+  VERIFY(s.empty());
+
+  const int N = 8;
+  const int A[N] = { 3, 7, 4, 8, 2, 4, 6, 7 };
+
+  s.insert(A+0, A+N);
+  VERIFY(s.size() == 6);
+  VERIFY(std::distance(s.begin(), s.end()) == 6);
+
+  VERIFY(std::count(s.begin(), s.end(), 2) == 1);
+  VERIFY(std::count(s.begin(), s.end(), 3) == 1);
+  VERIFY(std::count(s.begin(), s.end(), 4) == 1);
+  VERIFY(std::count(s.begin(), s.end(), 6) == 1);
+  VERIFY(std::count(s.begin(), s.end(), 7) == 1);
+  VERIFY(std::count(s.begin(), s.end(), 8) == 1);
+}
+
+int main()
+{
+  test01();
+  test02();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/set_single.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/set_single.cc
new file mode 100644 (file)
index 0000000..ab3d68a
--- /dev/null
@@ -0,0 +1,67 @@
+// { dg-do run }
+
+// 2005-2-17  Matt Austern  <austern@apple.com>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.3 unordered_set
+// Single-element insert
+
+#include <string>
+#include <iterator>
+#include <tr1/unordered_set>
+#include "testsuite_hooks.h"
+
+bool test __attribute__((unused)) = true;
+
+void test01()
+{
+  typedef std::tr1::unordered_set<std::string> Set;
+  Set s;
+  VERIFY(s.empty());
+
+  std::pair<Set::iterator, bool> p = s.insert("abcde");
+  VERIFY(p.second);
+  VERIFY(s.size() == 1);
+  VERIFY(std::distance(s.begin(), s.end()) == 1);
+  VERIFY(p.first == s.begin());
+  VERIFY(*p.first == "abcde");
+}
+
+void test02()
+{
+  typedef std::tr1::unordered_set<std::string> Set;
+  Set s;
+  VERIFY(s.empty());
+
+  std::pair<Set::iterator, bool> p1 = s.insert("abcde");
+  std::pair<Set::iterator, bool> p2 = s.insert("abcde");  
+  VERIFY(p1.second);
+  VERIFY(!p2.second);
+  VERIFY(s.size() == 1);
+  VERIFY(p1.first == p2.first);
+  VERIFY(*p1.first == "abcde");
+}
+
+int main()
+{
+  test01();
+  test02();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/explicit_instantiation.cc
new file mode 100644 (file)
index 0000000..ae3214f
--- /dev/null
@@ -0,0 +1,34 @@
+// { dg-do compile }
+
+// 2005-02-17  Matt Austern  <austern@apple.com>
+//
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.3 unordered_set
+
+#include <tr1/unordered_set>
+
+using namespace std;
+using namespace std::tr1;
+
+template class unordered_set<int>;
+template class unordered_set<int, hash<int>, equal_to<int>,
+                            allocator<int>, true>;
+template class unordered_set<int, hash<int>, equal_to<int>,
+                            allocator<char>, false>;
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_neg.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_neg.cc
new file mode 100644 (file)
index 0000000..40dc9c8
--- /dev/null
@@ -0,0 +1,45 @@
+// 2005-10-02  Paolo Carlini  <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// { dg-do compile }
+
+#include <tr1/unordered_set>
+
+void test01()
+{
+  typedef std::tr1::unordered_set<int> Set;
+
+  Set s;
+
+  Set::const_iterator cit = s.begin();
+  *cit = 0; // { dg-error "read-only" }
+
+  Set::const_local_iterator clit = s.begin(0);
+  *clit = 0; // { dg-error "read-only" }
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_null_neg.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_null_neg.cc
new file mode 100644 (file)
index 0000000..aca08c9
--- /dev/null
@@ -0,0 +1,36 @@
+// 2005-09-10  Paolo Carlini  <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// { dg-do compile }
+
+// libstdc++/23781
+#include <tr1/unordered_set>
+
+std::tr1::unordered_set<int>::iterator it4 = NULL; // { dg-error "conversion" }
+std::tr1::unordered_set<int>::const_iterator cit4 = NULL; // { dg-error "conversion" }
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterators_default_constructor.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterators_default_constructor.cc
new file mode 100644 (file)
index 0000000..17705ae
--- /dev/null
@@ -0,0 +1,32 @@
+// { dg-do compile }
+
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+//
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3 Unordered associative containers
+
+#include <tr1/unordered_set>
+
+void
+test01()
+{
+  std::tr1::unordered_set<int>::iterator                it;
+  std::tr1::unordered_set<int>::const_iterator         cit;
+  std::tr1::unordered_set<int>::local_iterator         lit;
+  std::tr1::unordered_set<int>::const_local_iterator  clit;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/swap/1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/swap/1.cc
new file mode 100644 (file)
index 0000000..1928c9e
--- /dev/null
@@ -0,0 +1,152 @@
+// 2005-12-20  Paolo Carlini  <pcarlini@suse.de>
+
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 6.3.4.3 unordered_set::swap
+
+#include <tr1/unordered_set>
+#include <set>
+#include <testsuite_hooks.h>
+#include <testsuite_allocator.h>
+
+// uneq_allocator as a non-empty allocator.
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+  using namespace std;
+  using namespace tr1;
+
+  typedef __gnu_test::uneq_allocator<char> my_alloc;
+  typedef unordered_set<char, hash<char>, equal_to<char>, my_alloc> my_uset;
+
+  const char title01[] = "Rivers of sand";
+  const char title02[] = "Concret PH";
+  const char title03[] = "Sonatas and Interludes for Prepared Piano";
+  const char title04[] = "never as tired as when i'm waking up";
+
+  const size_t N1 = sizeof(title01);
+  const size_t N2 = sizeof(title02);
+  const size_t N3 = sizeof(title03);
+  const size_t N4 = sizeof(title04);
+
+  typedef set<char> my_set;
+  const my_set set01_ref(title01, title01 + N1);
+  const my_set set02_ref(title02, title02 + N2);
+  const my_set set03_ref(title03, title03 + N3);
+  const my_set set04_ref(title04, title04 + N4);
+
+  my_uset::size_type size01, size02;
+
+  my_alloc alloc01(1);
+
+  my_uset uset01(10, hash<char>(), equal_to<char>(), alloc01);
+  size01 = uset01.size();
+  my_uset uset02(10, hash<char>(), equal_to<char>(), alloc01);
+  size02 = uset02.size();
+  
+  uset01.swap(uset02);
+  VERIFY( uset01.size() == size02 );
+  VERIFY( uset01.empty() );
+  VERIFY( uset02.size() == size01 );
+  VERIFY( uset02.empty() );
+
+  my_uset uset03(10, hash<char>(), equal_to<char>(), alloc01);
+  size01 = uset03.size();
+  my_uset uset04(set02_ref.begin(), set02_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size02 = uset04.size();
+  
+  uset03.swap(uset04);
+  VERIFY( uset03.size() == size02 );
+  VERIFY( my_set(uset03.begin(), uset03.end()) == set02_ref );
+  VERIFY( uset04.size() == size01 );
+  VERIFY( uset04.empty() );
+  
+  my_uset uset05(set01_ref.begin(), set01_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size01 = uset05.size();
+  my_uset uset06(set02_ref.begin(), set02_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size02 = uset06.size();
+  
+  uset05.swap(uset06);
+  VERIFY( uset05.size() == size02 );
+  VERIFY( my_set(uset05.begin(), uset05.end()) == set02_ref );
+  VERIFY( uset06.size() == size01 );
+  VERIFY( my_set(uset06.begin(), uset06.end()) == set01_ref );
+
+  my_uset uset07(set01_ref.begin(), set01_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size01 = uset07.size();
+  my_uset uset08(set03_ref.begin(), set03_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size02 = uset08.size();
+
+  uset07.swap(uset08);
+  VERIFY( uset07.size() == size02 );
+  VERIFY( my_set(uset07.begin(), uset07.end()) == set03_ref );
+  VERIFY( uset08.size() == size01 );
+  VERIFY( my_set(uset08.begin(), uset08.end()) == set01_ref );
+
+  my_uset uset09(set03_ref.begin(), set03_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size01 = uset09.size();
+  my_uset uset10(set04_ref.begin(), set04_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size02 = uset10.size();
+
+  uset09.swap(uset10);
+  VERIFY( uset09.size() == size02 );
+  VERIFY( my_set(uset09.begin(), uset09.end()) == set04_ref );
+  VERIFY( uset10.size() == size01 );
+  VERIFY( my_set(uset10.begin(), uset10.end()) == set03_ref );
+
+  my_uset uset11(set04_ref.begin(), set04_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size01 = uset11.size();
+  my_uset uset12(set01_ref.begin(), set01_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size02 = uset12.size();
+
+  uset11.swap(uset12);
+  VERIFY( uset11.size() == size02 );
+  VERIFY( my_set(uset11.begin(), uset11.end()) == set01_ref );
+  VERIFY( uset12.size() == size01 );
+  VERIFY( my_set(uset12.begin(), uset12.end()) == set04_ref );
+
+  my_uset uset13(set03_ref.begin(), set03_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size01 = uset13.size();
+  my_uset uset14(set03_ref.begin(), set03_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size02 = uset14.size();
+
+  uset13.swap(uset14);
+  VERIFY( uset13.size() == size02 );
+  VERIFY( my_set(uset13.begin(), uset13.end()) == set03_ref );
+  VERIFY( uset14.size() == size01 );
+  VERIFY( my_set(uset14.begin(), uset14.end()) == set03_ref );
+}
+
+int main()
+{ 
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/swap/2.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/swap/2.cc
new file mode 100644 (file)
index 0000000..46e859c
--- /dev/null
@@ -0,0 +1,181 @@
+// 2005-12-20  Paolo Carlini  <pcarlini@suse.de>
+
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 6.3.4.3 unordered_set::swap
+
+#include <tr1/unordered_set>
+#include <set>
+#include <testsuite_hooks.h>
+#include <testsuite_allocator.h>
+
+// uneq_allocator, two different personalities.
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+  using namespace std;
+  using namespace tr1;
+
+  typedef __gnu_test::uneq_allocator<char> my_alloc;
+  typedef unordered_set<char, hash<char>, equal_to<char>, my_alloc> my_uset;
+
+  const char title01[] = "Rivers of sand";
+  const char title02[] = "Concret PH";
+  const char title03[] = "Sonatas and Interludes for Prepared Piano";
+  const char title04[] = "never as tired as when i'm waking up";
+
+  const size_t N1 = sizeof(title01);
+  const size_t N2 = sizeof(title02);
+  const size_t N3 = sizeof(title03);
+  const size_t N4 = sizeof(title04);
+
+  typedef set<char> my_set;
+  const my_set set01_ref(title01, title01 + N1);
+  const my_set set02_ref(title02, title02 + N2);
+  const my_set set03_ref(title03, title03 + N3);
+  const my_set set04_ref(title04, title04 + N4);
+
+  my_uset::size_type size01, size02;
+
+  my_alloc alloc01(1), alloc02(2);
+  int personality01, personality02;
+
+  my_uset uset01(10, hash<char>(), equal_to<char>(), alloc01);
+  size01 = uset01.size();
+  personality01 = uset01.get_allocator().get_personality();
+  my_uset uset02(10, hash<char>(), equal_to<char>(), alloc02);
+  size02 = uset02.size();
+  personality02 = uset02.get_allocator().get_personality();
+
+  uset01.swap(uset02);
+  VERIFY( uset01.size() == size02 );
+  VERIFY( uset01.empty() );
+  VERIFY( uset02.size() == size01 );
+  VERIFY( uset02.empty() );
+  VERIFY( uset01.get_allocator().get_personality() == personality02 );
+  VERIFY( uset02.get_allocator().get_personality() == personality01 );
+
+  my_uset uset03(10, hash<char>(), equal_to<char>(), alloc02);
+  size01 = uset03.size();
+  personality01 = uset03.get_allocator().get_personality();
+  my_uset uset04(set02_ref.begin(), set02_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size02 = uset04.size();
+  personality02 = uset04.get_allocator().get_personality();
+
+  uset03.swap(uset04);
+  VERIFY( uset03.size() == size02 );
+  VERIFY( my_set(uset03.begin(), uset03.end()) == set02_ref );
+  VERIFY( uset04.size() == size01 );
+  VERIFY( uset04.empty() );
+  VERIFY( uset03.get_allocator().get_personality() == personality02 );
+  VERIFY( uset04.get_allocator().get_personality() == personality01 );
+  
+  my_uset uset05(set01_ref.begin(), set01_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size01 = uset05.size();
+  personality01 = uset05.get_allocator().get_personality();
+  my_uset uset06(set02_ref.begin(), set02_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc02);
+  size02 = uset06.size();
+  personality02 = uset06.get_allocator().get_personality();
+
+  uset05.swap(uset06);
+  VERIFY( uset05.size() == size02 );
+  VERIFY( my_set(uset05.begin(), uset05.end()) == set02_ref );
+  VERIFY( uset06.size() == size01 );
+  VERIFY( my_set(uset06.begin(), uset06.end()) == set01_ref );
+  VERIFY( uset05.get_allocator().get_personality() == personality02 );
+  VERIFY( uset06.get_allocator().get_personality() == personality01 );
+
+  my_uset uset07(set01_ref.begin(), set01_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc02);
+  size01 = uset07.size();
+  personality01 = uset07.get_allocator().get_personality();
+  my_uset uset08(set03_ref.begin(), set03_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size02 = uset08.size();
+  personality02 = uset08.get_allocator().get_personality();
+
+  uset07.swap(uset08);
+  VERIFY( uset07.size() == size02 );
+  VERIFY( my_set(uset07.begin(), uset07.end()) == set03_ref );
+  VERIFY( uset08.size() == size01 );
+  VERIFY( my_set(uset08.begin(), uset08.end()) == set01_ref );
+  VERIFY( uset07.get_allocator().get_personality() == personality02 );
+  VERIFY( uset08.get_allocator().get_personality() == personality01 );
+
+  my_uset uset09(set03_ref.begin(), set03_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size01 = uset09.size();
+  personality01 = uset09.get_allocator().get_personality();
+  my_uset uset10(set04_ref.begin(), set04_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc02);
+  size02 = uset10.size();
+  personality02 = uset10.get_allocator().get_personality();
+
+  uset09.swap(uset10);
+  VERIFY( uset09.size() == size02 );
+  VERIFY( my_set(uset09.begin(), uset09.end()) == set04_ref );
+  VERIFY( uset10.size() == size01 );
+  VERIFY( my_set(uset10.begin(), uset10.end()) == set03_ref );
+  VERIFY( uset09.get_allocator().get_personality() == personality02 );
+  VERIFY( uset10.get_allocator().get_personality() == personality01 );
+
+  my_uset uset11(set04_ref.begin(), set04_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc02);
+  size01 = uset11.size();
+  personality01 = uset11.get_allocator().get_personality();
+  my_uset uset12(set01_ref.begin(), set01_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size02 = uset12.size();
+  personality02 = uset12.get_allocator().get_personality();
+
+  uset11.swap(uset12);
+  VERIFY( uset11.size() == size02 );
+  VERIFY( my_set(uset11.begin(), uset11.end()) == set01_ref );
+  VERIFY( uset12.size() == size01 );
+  VERIFY( my_set(uset12.begin(), uset12.end()) == set04_ref );
+  VERIFY( uset11.get_allocator().get_personality() == personality02 );
+  VERIFY( uset12.get_allocator().get_personality() == personality01 );
+
+  my_uset uset13(set03_ref.begin(), set03_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc01);
+  size01 = uset13.size();
+  personality01 = uset13.get_allocator().get_personality();
+  my_uset uset14(set03_ref.begin(), set03_ref.end(), 10, hash<char>(),
+                equal_to<char>(), alloc02);
+  size02 = uset14.size();
+  personality02 = uset14.get_allocator().get_personality();
+
+  uset13.swap(uset14);
+  VERIFY( uset13.size() == size02 );
+  VERIFY( my_set(uset13.begin(), uset13.end()) == set03_ref );
+  VERIFY( uset14.size() == size01 );
+  VERIFY( my_set(uset14.begin(), uset14.end()) == set03_ref );
+  VERIFY( uset13.get_allocator().get_personality() == personality02 );
+  VERIFY( uset14.get_allocator().get_personality() == personality01 );
+}
+
+int main()
+{ 
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/tr1/using_namespace_std_tr1.cc b/libstdc++-v3/testsuite/tr1/using_namespace_std_tr1.cc
new file mode 100644 (file)
index 0000000..21fc682
--- /dev/null
@@ -0,0 +1,26 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <tr1/tuple>
+
+namespace gnu
+{
+  using namespace std::tr1;
+}