aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/testsuite
diff options
context:
space:
mode:
authorBenjamin Kosnik <bkoz@redhat.com>2007-02-20 18:15:01 +0000
committerBenjamin Kosnik <bkoz@redhat.com>2007-02-20 18:15:01 +0000
commit25db954c271f3415fc7442458933bc3545e17dc5 (patch)
tree1d3253cfc7f815a8587de59e1608e83f9797f1aa /libstdc++-v3/testsuite
parentfcf000318e8580c8f4ae76e196762baba2f5584f (diff)
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. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@122168 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/testsuite')
-rw-r--r--libstdc++-v3/testsuite/17_intro/header_csetjmp.cc41
-rw-r--r--libstdc++-v3/testsuite/17_intro/header_cwchar.cc33
-rw-r--r--libstdc++-v3/testsuite/17_intro/header_cwctype.cc54
-rw-r--r--libstdc++-v3/testsuite/17_intro/headers/all.cc145
-rw-r--r--libstdc++-v3/testsuite/17_intro/headers/all_assert_neg.cc (renamed from libstdc++-v3/testsuite/17_intro/no_assert_neg.cc)0
-rw-r--r--libstdc++-v3/testsuite/17_intro/headers/all_c++200x_compatibility.cc (renamed from libstdc++-v3/testsuite/17_intro/headers_c++_c++0x_compat.cc)0
-rw-r--r--libstdc++-v3/testsuite/17_intro/headers/c++1998/all.cc (renamed from libstdc++-v3/testsuite/17_intro/headers.cc)68
-rw-r--r--libstdc++-v3/testsuite/17_intro/headers/c++1998/all_multiple_inclusion.cc174
-rw-r--r--libstdc++-v3/testsuite/17_intro/headers/c++1998/c++.tarbin0 -> 153600 bytes
-rw-r--r--libstdc++-v3/testsuite/17_intro/headers/c++1998/c++_for_c.tarbin0 -> 92160 bytes
-rw-r--r--libstdc++-v3/testsuite/17_intro/headers_c++.cc84
-rw-r--r--libstdc++-v3/testsuite/17_intro/headers_c.cc78
-rw-r--r--libstdc++-v3/testsuite/17_intro/using_namespace_std.cc (renamed from libstdc++-v3/testsuite/17_intro/header_ios.cc)14
-rw-r--r--libstdc++-v3/testsuite/18_support/headers/cfloat/values.cc54
-rw-r--r--libstdc++-v3/testsuite/18_support/headers/climits/values.cc53
-rw-r--r--libstdc++-v3/testsuite/18_support/headers/csetjmp/functions_std.cc (renamed from libstdc++-v3/testsuite/17_intro/header_iomanip.cc)14
-rw-r--r--libstdc++-v3/testsuite/18_support/headers/csetjmp/macros.cc (renamed from libstdc++-v3/testsuite/17_intro/header_fstream.cc)16
-rw-r--r--libstdc++-v3/testsuite/18_support/headers/csetjmp/types_std.cc26
-rw-r--r--libstdc++-v3/testsuite/18_support/headers/csignal/functions_std.cc27
-rw-r--r--libstdc++-v3/testsuite/18_support/headers/csignal/macros.cc56
-rw-r--r--libstdc++-v3/testsuite/18_support/headers/csignal/types_std.cc26
-rw-r--r--libstdc++-v3/testsuite/18_support/headers/cstdarg/macros.cc (renamed from libstdc++-v3/testsuite/17_intro/header_cstdarg.cc)24
-rw-r--r--libstdc++-v3/testsuite/18_support/headers/cstdarg/types_std.cc26
-rw-r--r--libstdc++-v3/testsuite/18_support/headers/cstddef/macros.cc (renamed from libstdc++-v3/testsuite/17_intro/header_cstddef.cc)23
-rw-r--r--libstdc++-v3/testsuite/18_support/headers/cstddef/types_std.cc27
-rw-r--r--libstdc++-v3/testsuite/18_support/headers/cstdlib/functions_std.cc31
-rw-r--r--libstdc++-v3/testsuite/18_support/headers/cstdlib/macros.cc (renamed from libstdc++-v3/testsuite/17_intro/header_cassert.cc)25
-rw-r--r--libstdc++-v3/testsuite/18_support/headers/ctime/functions_std.cc26
-rw-r--r--libstdc++-v3/testsuite/18_support/headers/ctime/macros.cc28
-rw-r--r--libstdc++-v3/testsuite/18_support/headers/ctime/types_std.cc26
-rw-r--r--libstdc++-v3/testsuite/18_support/headers/exception/synopsis.cc36
-rw-r--r--libstdc++-v3/testsuite/18_support/headers/exception/types_std.cc27
-rw-r--r--libstdc++-v3/testsuite/18_support/headers/limits/synopsis.cc48
-rw-r--r--libstdc++-v3/testsuite/18_support/headers/new/synopsis.cc43
-rw-r--r--libstdc++-v3/testsuite/18_support/headers/new/types_std.cc29
-rw-r--r--libstdc++-v3/testsuite/18_support/headers/typeinfo/synopsis.cc27
-rw-r--r--libstdc++-v3/testsuite/18_support/headers/typeinfo/types_std.cc29
-rw-r--r--libstdc++-v3/testsuite/18_support/numeric_limits/is_signed.cc (renamed from libstdc++-v3/testsuite/18_support/numeric_limits/sign.cc)0
-rw-r--r--libstdc++-v3/testsuite/18_support/numeric_limits/requirements/explicit_instantiation/1.cc50
-rw-r--r--libstdc++-v3/testsuite/18_support/numeric_limits/specialization_default_values.cc (renamed from libstdc++-v3/testsuite/18_support/numeric_limits/specialization.cc)0
-rw-r--r--libstdc++-v3/testsuite/19_diagnostics/headers/cassert/macros.cc28
-rw-r--r--libstdc++-v3/testsuite/19_diagnostics/headers/cerrno/macros.cc (renamed from libstdc++-v3/testsuite/17_intro/header_cerrno.cc)27
-rw-r--r--libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/synopsis.cc34
-rw-r--r--libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/types_std.cc34
-rw-r--r--libstdc++-v3/testsuite/20_util/headers/cstdlib/functions_std.cc29
-rw-r--r--libstdc++-v3/testsuite/20_util/headers/cstring/functions_std.cc30
-rw-r--r--libstdc++-v3/testsuite/20_util/headers/cstring/macros.cc28
-rw-r--r--libstdc++-v3/testsuite/20_util/headers/cstring/types_std.cc26
-rw-r--r--libstdc++-v3/testsuite/20_util/headers/ctime/functions_std.cc (renamed from libstdc++-v3/testsuite/17_intro/header_ctime.cc)20
-rw-r--r--libstdc++-v3/testsuite/20_util/headers/ctime/macros.cc28
-rw-r--r--libstdc++-v3/testsuite/20_util/headers/ctime/types_std.cc (renamed from libstdc++-v3/testsuite/17_intro/header_iosfwd.cc)18
-rw-r--r--libstdc++-v3/testsuite/20_util/headers/functional/synopsis.cc101
-rw-r--r--libstdc++-v3/testsuite/20_util/headers/memory/synopsis.cc54
-rw-r--r--libstdc++-v3/testsuite/20_util/headers/utility/synopsis.cc46
-rw-r--r--libstdc++-v3/testsuite/20_util/headers/utility/using_namespace_std_rel_ops.cc26
-rw-r--r--libstdc++-v3/testsuite/20_util/memory/allocator/requirements/explicit_instantiation/1.cc34
-rw-r--r--libstdc++-v3/testsuite/20_util/memory/auto_ptr/requirements/explicit_instantiation/1.cc34
-rw-r--r--libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator/requirements/base_classes.cc37
-rw-r--r--libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator/requirements/explicit_instantiation/1.cc34
-rw-r--r--libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator/requirements/typedefs.cc (renamed from libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator.cc)16
-rw-r--r--libstdc++-v3/testsuite/20_util/utility/pair/requirements/explicit_instantiation/1.cc34
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/1.cc (renamed from libstdc++-v3/testsuite/21_strings/basic_string/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/debug.cc (renamed from libstdc++-v3/testsuite/21_strings/basic_string/2.cc)0
-rw-r--r--libstdc++-v3/testsuite/21_strings/headers/cctype/functions_std.cc38
-rw-r--r--libstdc++-v3/testsuite/21_strings/headers/cstdlib/functions_std.cc36
-rw-r--r--libstdc++-v3/testsuite/21_strings/headers/cstdlib/macros.cc28
-rw-r--r--libstdc++-v3/testsuite/21_strings/headers/cstring/functions_std.cc47
-rw-r--r--libstdc++-v3/testsuite/21_strings/headers/cstring/macros.cc28
-rw-r--r--libstdc++-v3/testsuite/21_strings/headers/cstring/types_std.cc26
-rw-r--r--libstdc++-v3/testsuite/21_strings/headers/cwchar/functions_std.cc77
-rw-r--r--libstdc++-v3/testsuite/21_strings/headers/cwchar/macros.cc40
-rw-r--r--libstdc++-v3/testsuite/21_strings/headers/cwchar/types_std.cc28
-rw-r--r--libstdc++-v3/testsuite/21_strings/headers/cwctype/functions_std.cc40
-rw-r--r--libstdc++-v3/testsuite/21_strings/headers/cwctype/macros.cc28
-rw-r--r--libstdc++-v3/testsuite/21_strings/headers/cwctype/types_std.cc28
-rw-r--r--libstdc++-v3/testsuite/21_strings/headers/string/synopsis.cc135
-rw-r--r--libstdc++-v3/testsuite/21_strings/headers/string/types_std.cc27
-rw-r--r--libstdc++-v3/testsuite/22_locale/codecvt/requirements/base_classes.cc (renamed from libstdc++-v3/testsuite/22_locale/codecvt/1.cc)11
-rw-r--r--libstdc++-v3/testsuite/22_locale/codecvt/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/22_locale/codecvt/2.cc)14
-rw-r--r--libstdc++-v3/testsuite/22_locale/codecvt/requirements/typedefs.cc33
-rw-r--r--libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/base_classes.cc (renamed from libstdc++-v3/testsuite/22_locale/codecvt_byname/1.cc)11
-rw-r--r--libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/explicit_instantiation.cc34
-rw-r--r--libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/typedefs.cc33
-rw-r--r--libstdc++-v3/testsuite/22_locale/collate/requirements/base_classes.cc (renamed from libstdc++-v3/testsuite/22_locale/collate/1.cc)10
-rw-r--r--libstdc++-v3/testsuite/22_locale/collate/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/22_locale/collate/2.cc)14
-rw-r--r--libstdc++-v3/testsuite/22_locale/collate/requirements/typedefs.cc32
-rw-r--r--libstdc++-v3/testsuite/22_locale/collate_byname/requirements/base_classes.cc (renamed from libstdc++-v3/testsuite/22_locale/collate_byname/1.cc)10
-rw-r--r--libstdc++-v3/testsuite/22_locale/collate_byname/requirements/explicit_instantiation.cc34
-rw-r--r--libstdc++-v3/testsuite/22_locale/collate_byname/requirements/typedefs.cc32
-rw-r--r--libstdc++-v3/testsuite/22_locale/ctype/requirements/base_classes.cc (renamed from libstdc++-v3/testsuite/22_locale/ctype/1.cc)9
-rw-r--r--libstdc++-v3/testsuite/22_locale/ctype/requirements/explicit_instantiation.cc34
-rw-r--r--libstdc++-v3/testsuite/22_locale/ctype/requirements/typedefs.cc31
-rw-r--r--libstdc++-v3/testsuite/22_locale/ctype_base/mask.cc (renamed from libstdc++-v3/testsuite/22_locale/ctype_base/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/22_locale/headers/clocale/functions_std.cc27
-rw-r--r--libstdc++-v3/testsuite/22_locale/headers/clocale/macros.cc52
-rw-r--r--libstdc++-v3/testsuite/22_locale/headers/clocale/types_std.cc26
-rw-r--r--libstdc++-v3/testsuite/22_locale/headers/locale/synopsis.cc85
-rw-r--r--libstdc++-v3/testsuite/22_locale/headers/locale/types_std.cc31
-rw-r--r--libstdc++-v3/testsuite/22_locale/messages/requirements/base_classes.cc (renamed from libstdc++-v3/testsuite/22_locale/messages/1.cc)10
-rw-r--r--libstdc++-v3/testsuite/22_locale/messages/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/22_locale/messages/2.cc)14
-rw-r--r--libstdc++-v3/testsuite/22_locale/messages/requirements/typedefs.cc32
-rw-r--r--libstdc++-v3/testsuite/22_locale/messages_byname/requirements/base_classes.cc (renamed from libstdc++-v3/testsuite/22_locale/messages_byname/1.cc)10
-rw-r--r--libstdc++-v3/testsuite/22_locale/messages_byname/requirements/explicit_instantiation.cc34
-rw-r--r--libstdc++-v3/testsuite/22_locale/messages_byname/requirements/typedefs.cc32
-rw-r--r--libstdc++-v3/testsuite/22_locale/money_get/cons/3.cc (renamed from libstdc++-v3/testsuite/22_locale/money_get/3.cc)0
-rw-r--r--libstdc++-v3/testsuite/22_locale/money_get/requirements/base_classes.cc (renamed from libstdc++-v3/testsuite/22_locale/money_get/1.cc)11
-rw-r--r--libstdc++-v3/testsuite/22_locale/money_get/requirements/explicit_instantiations.cc (renamed from libstdc++-v3/testsuite/22_locale/money_get/2.cc)14
-rw-r--r--libstdc++-v3/testsuite/22_locale/money_get/requirements/typedefs.cc33
-rw-r--r--libstdc++-v3/testsuite/22_locale/money_put/cons/3.cc (renamed from libstdc++-v3/testsuite/22_locale/money_put/3.cc)0
-rw-r--r--libstdc++-v3/testsuite/22_locale/money_put/requirements/base_classes.cc (renamed from libstdc++-v3/testsuite/22_locale/money_put/1.cc)11
-rw-r--r--libstdc++-v3/testsuite/22_locale/money_put/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/22_locale/money_put/2.cc)14
-rw-r--r--libstdc++-v3/testsuite/22_locale/money_put/requirements/typedefs.cc33
-rw-r--r--libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/base_classes.cc (renamed from libstdc++-v3/testsuite/22_locale/moneypunct/2.cc)10
-rw-r--r--libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/explicit_instantiation.cc34
-rw-r--r--libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/intl.cc (renamed from libstdc++-v3/testsuite/22_locale/moneypunct/3.cc)10
-rw-r--r--libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/typedefs.cc33
-rw-r--r--libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/base_classes.cc (renamed from libstdc++-v3/testsuite/22_locale/moneypunct/1.cc)11
-rw-r--r--libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/explicit_instantiation.cc34
-rw-r--r--libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/intl.cc41
-rw-r--r--libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/typedefs.cc33
-rw-r--r--libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/base_classes.cc (renamed from libstdc++-v3/testsuite/22_locale/moneypunct_byname/1.cc)10
-rw-r--r--libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/explicit_instantiation.cc34
-rw-r--r--libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/typedefs.cc32
-rw-r--r--libstdc++-v3/testsuite/22_locale/num_get/cons/3.cc (renamed from libstdc++-v3/testsuite/22_locale/num_get/3.cc)0
-rw-r--r--libstdc++-v3/testsuite/22_locale/num_get/requirements/base_classes.cc (renamed from libstdc++-v3/testsuite/22_locale/num_get/1.cc)10
-rw-r--r--libstdc++-v3/testsuite/22_locale/num_get/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/22_locale/num_get/2.cc)14
-rw-r--r--libstdc++-v3/testsuite/22_locale/num_get/requirements/typedefs.cc32
-rw-r--r--libstdc++-v3/testsuite/22_locale/num_put/cons/3.cc (renamed from libstdc++-v3/testsuite/22_locale/num_put/3.cc)0
-rw-r--r--libstdc++-v3/testsuite/22_locale/num_put/requirements/base_classes.cc (renamed from libstdc++-v3/testsuite/22_locale/num_put/1.cc)10
-rw-r--r--libstdc++-v3/testsuite/22_locale/num_put/requirements/explicit_instantiations.cc (renamed from libstdc++-v3/testsuite/22_locale/num_put/2.cc)14
-rw-r--r--libstdc++-v3/testsuite/22_locale/num_put/requirements/typedefs.cc32
-rw-r--r--libstdc++-v3/testsuite/22_locale/numpunct/requirements/base_classes.cc (renamed from libstdc++-v3/testsuite/22_locale/numpunct/1.cc)10
-rw-r--r--libstdc++-v3/testsuite/22_locale/numpunct/requirements/explicit_instantiations.cc (renamed from libstdc++-v3/testsuite/22_locale/numpunct/2.cc)14
-rw-r--r--libstdc++-v3/testsuite/22_locale/numpunct/requirements/typedefs.cc32
-rw-r--r--libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/base_classes.cc (renamed from libstdc++-v3/testsuite/22_locale/numpunct_byname/1.cc)10
-rw-r--r--libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/explicit_instantiations.cc27
-rw-r--r--libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/typedefs.cc32
-rw-r--r--libstdc++-v3/testsuite/22_locale/time_get/requirements/base_classes.cc (renamed from libstdc++-v3/testsuite/22_locale/time_get/1.cc)10
-rw-r--r--libstdc++-v3/testsuite/22_locale/time_get/requirements/explicit_instantiations.cc (renamed from libstdc++-v3/testsuite/22_locale/time_get/2.cc)14
-rw-r--r--libstdc++-v3/testsuite/22_locale/time_get/requirements/typedefs.cc32
-rw-r--r--libstdc++-v3/testsuite/22_locale/time_put/requirements/base_classes.cc (renamed from libstdc++-v3/testsuite/22_locale/time_put/1.cc)10
-rw-r--r--libstdc++-v3/testsuite/22_locale/time_put/requirements/explicit_instantiations.cc (renamed from libstdc++-v3/testsuite/22_locale/time_put/2.cc)14
-rw-r--r--libstdc++-v3/testsuite/22_locale/time_put/requirements/typedefs.cc32
-rw-r--r--libstdc++-v3/testsuite/23_containers/bitset/requirements/explicit_instantiation/1.cc34
-rw-r--r--libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/1.cc (renamed from libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/2.cc (renamed from libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/2.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc (renamed from libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/3.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/deque/requirements/partial_specialization/1.cc (renamed from libstdc++-v3/testsuite/23_containers/deque/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/headers/bitset/synopsis.cc43
-rw-r--r--libstdc++-v3/testsuite/23_containers/headers/deque/synopsis.cc46
-rw-r--r--libstdc++-v3/testsuite/23_containers/headers/list/synopsis.cc46
-rw-r--r--libstdc++-v3/testsuite/23_containers/headers/map/synopsis.cc71
-rw-r--r--libstdc++-v3/testsuite/23_containers/headers/queue/synopsis.cc51
-rw-r--r--libstdc++-v3/testsuite/23_containers/headers/set/synopsis.cc85
-rw-r--r--libstdc++-v3/testsuite/23_containers/headers/stack/synopsis.cc49
-rw-r--r--libstdc++-v3/testsuite/23_containers/headers/vector/synopsis.cc81
-rw-r--r--libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/1.cc (renamed from libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/2.cc (renamed from libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/2.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/3.cc (renamed from libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/3.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/list/requirements/partial_specialization/1.cc (renamed from libstdc++-v3/testsuite/23_containers/list/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/1.cc (renamed from libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/2.cc (renamed from libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/2.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/3.cc (renamed from libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/3.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/map/requirements/partial_specialization/1.cc (renamed from libstdc++-v3/testsuite/23_containers/map/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/1.cc (renamed from libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/2.cc (renamed from libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/2.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc (renamed from libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/3.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/multimap/requirements/partial_specialization/1.cc (renamed from libstdc++-v3/testsuite/23_containers/multimap/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/1.cc (renamed from libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/2.cc (renamed from libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/2.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc (renamed from libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/3.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/multiset/requirements/partial_specialization/1.cc (renamed from libstdc++-v3/testsuite/23_containers/multiset/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc34
-rw-r--r--libstdc++-v3/testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc34
-rw-r--r--libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/1.cc (renamed from libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/2.cc (renamed from libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/2.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/3.cc (renamed from libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/3.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/set/requirements/partial_specialization/1.cc (renamed from libstdc++-v3/testsuite/23_containers/set/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc34
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/1.cc (renamed from libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/2.cc (renamed from libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/2.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc (renamed from libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/3.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/requirements/partial_specialization/1.cc (renamed from libstdc++-v3/testsuite/23_containers/vector/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/24_iterators/back_insert_iterator/2.cc37
-rw-r--r--libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc37
-rw-r--r--libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/container.cc34
-rw-r--r--libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/explicit_instantiation.cc28
-rw-r--r--libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/typedefs.cc (renamed from libstdc++-v3/testsuite/24_iterators/back_insert_iterator.cc)36
-rw-r--r--libstdc++-v3/testsuite/24_iterators/front_insert_iterator/2.cc37
-rw-r--r--libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc37
-rw-r--r--libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/container.cc34
-rw-r--r--libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/explicit_instantiation.cc28
-rw-r--r--libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/typedefs.cc (renamed from libstdc++-v3/testsuite/24_iterators/front_insert_iterator.cc)35
-rw-r--r--libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis.cc128
-rw-r--r--libstdc++-v3/testsuite/24_iterators/headers/iterator/types_std.cc30
-rw-r--r--libstdc++-v3/testsuite/24_iterators/insert_iterator.cc78
-rw-r--r--libstdc++-v3/testsuite/24_iterators/insert_iterator/2.cc40
-rw-r--r--libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/base_classes.cc40
-rw-r--r--libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/container.cc35
-rw-r--r--libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/explicit_instantiation.cc28
-rw-r--r--libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/typedefs.cc40
-rw-r--r--libstdc++-v3/testsuite/24_iterators/istream_iterator/2.cc (renamed from libstdc++-v3/testsuite/24_iterators/istream_iterator.cc)27
-rw-r--r--libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/base_classes.cc38
-rw-r--r--libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/17_intro/header_cstring.cc)18
-rw-r--r--libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/typedefs.cc43
-rw-r--r--libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc40
-rw-r--r--libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/17_intro/header_sstream.cc)14
-rw-r--r--libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/typedefs.cc (renamed from libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/1.cc)10
-rw-r--r--libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc38
-rw-r--r--libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/explicit_instantiation.cc29
-rw-r--r--libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/typedefs.cc (renamed from libstdc++-v3/testsuite/24_iterators/ostream_iterator.cc)18
-rw-r--r--libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc38
-rw-r--r--libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/explicit_instantiation.cc35
-rw-r--r--libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/typedefs.cc (renamed from libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/1.cc)8
-rw-r--r--libstdc++-v3/testsuite/24_iterators/random_access_iterator/26020.cc (renamed from libstdc++-v3/testsuite/24_iterators/26020.cc)0
-rw-r--r--libstdc++-v3/testsuite/24_iterators/random_access_iterator/string_vector_iterators.cc (renamed from libstdc++-v3/testsuite/24_iterators/iterator.cc)0
-rw-r--r--libstdc++-v3/testsuite/24_iterators/reverse_iterator/2.cc8
-rw-r--r--libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc (renamed from libstdc++-v3/testsuite/24_iterators/reverse_iterator/1.cc)10
-rw-r--r--libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/current.cc32
-rw-r--r--libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/explicit_instantiation.cc27
-rw-r--r--libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/typedefs.cc37
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/headers/algorithm/synopsis.cc404
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/headers/cstdlib/functions_std.cc27
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/cmath/19322.cc (renamed from libstdc++-v3/testsuite/26_numerics/cmath/19322.cc)0
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c++.cc (renamed from libstdc++-v3/testsuite/26_numerics/cmath/c99_classification_macros_c++.cc)0
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc (renamed from libstdc++-v3/testsuite/26_numerics/cmath/c99_classification_macros_c.cc)0
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/cmath/c_math.cc (renamed from libstdc++-v3/testsuite/26_numerics/cmath/c_math.cc)0
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/cmath/c_math_dynamic.cc (renamed from libstdc++-v3/testsuite/26_numerics/cmath/c_math_dynamic.cc)0
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/cmath/fabs_inline.cc (renamed from libstdc++-v3/testsuite/26_numerics/cmath/fabs_inline.cc)0
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std.cc47
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/cmath/macros.cc28
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/cmath/overloads.cc (renamed from libstdc++-v3/testsuite/26_numerics/cmath/overloads.cc)0
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/cmath/powi.cc (renamed from libstdc++-v3/testsuite/26_numerics/cmath/powi.cc)0
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/complex/synopsis.cc88
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/cstdlib/13943.cc (renamed from libstdc++-v3/testsuite/26_numerics/cstdlib/13943.cc)0
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/cstdlib/2190.cc (renamed from libstdc++-v3/testsuite/17_intro/header_cstdlib.cc)7
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/cstdlib/functions_std.cc31
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/cstdlib/macros.cc28
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/cstdlib/types_std.cc27
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/numeric/synopsis.cc65
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/valarray/synopsis.cc128
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/valarray/types_std.cc27
-rw-r--r--libstdc++-v3/testsuite/26_numerics/numeric_arrays/27867.cc (renamed from libstdc++-v3/testsuite/26_numerics/valarray/27867.cc)0
-rw-r--r--libstdc++-v3/testsuite/26_numerics/numeric_arrays/28277.cc (renamed from libstdc++-v3/testsuite/26_numerics/valarray/28277.cc)0
-rw-r--r--libstdc++-v3/testsuite/26_numerics/numeric_arrays/30416.cc (renamed from libstdc++-v3/testsuite/26_numerics/valarray/30416.cc)0
-rw-r--r--libstdc++-v3/testsuite/26_numerics/numeric_arrays/binary_closure.cc (renamed from libstdc++-v3/testsuite/26_numerics/valarray/binary_closure.cc)0
-rw-r--r--libstdc++-v3/testsuite/26_numerics/numeric_arrays/dr543.cc (renamed from libstdc++-v3/testsuite/26_numerics/valarray/dr543.cc)0
-rw-r--r--libstdc++-v3/testsuite/26_numerics/numeric_arrays/slice.cc (renamed from libstdc++-v3/testsuite/26_numerics/valarray/slice.cc)0
-rw-r--r--libstdc++-v3/testsuite/26_numerics/numeric_arrays/slice_array_assignment.cc (renamed from libstdc++-v3/testsuite/26_numerics/valarray/slice_array_assignment.cc)0
-rw-r--r--libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray.cc (renamed from libstdc++-v3/testsuite/26_numerics/valarray/valarray.cc)0
-rw-r--r--libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray_const_bracket.cc (renamed from libstdc++-v3/testsuite/26_numerics/valarray/valarray_const_bracket.cc)0
-rw-r--r--libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray_name_lookup.cc (renamed from libstdc++-v3/testsuite/26_numerics/valarray/valarray_name_lookup.cc)0
-rw-r--r--libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray_operators.cc (renamed from libstdc++-v3/testsuite/26_numerics/valarray/valarray_operators.cc)0
-rw-r--r--libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray_subset_assignment.cc (renamed from libstdc++-v3/testsuite/26_numerics/valarray/valarray_subset_assignment.cc)0
-rw-r--r--libstdc++-v3/testsuite/26_numerics/numeric_operations/sum_diff.cc (renamed from libstdc++-v3/testsuite/26_numerics/numeric/sum_diff.cc)0
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_filebuf/cons/2020.cc (renamed from libstdc++-v3/testsuite/27_io/basic_filebuf/3.cc)0
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/base_classes.cc (renamed from libstdc++-v3/testsuite/27_io/basic_filebuf/4.cc)7
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/27_io/basic_filebuf/2.cc)3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/typedefs.cc (renamed from libstdc++-v3/testsuite/27_io/basic_filebuf/1.cc)3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_fstream/cons/3.cc (renamed from libstdc++-v3/testsuite/27_io/basic_fstream/3.cc)0
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_fstream/requirements/base_classes.cc (renamed from libstdc++-v3/testsuite/27_io/basic_fstream/4.cc)9
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_fstream/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/27_io/basic_fstream/2.cc)3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_fstream/requirements/typedefs.cc (renamed from libstdc++-v3/testsuite/27_io/basic_fstream/1.cc)3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ifstream/cons/2020.cc (renamed from libstdc++-v3/testsuite/27_io/basic_ifstream/3.cc)0
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/base_classes.cc (renamed from libstdc++-v3/testsuite/27_io/basic_ifstream/4.cc)7
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/27_io/basic_ifstream/2.cc)3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/typedefs.cc (renamed from libstdc++-v3/testsuite/27_io/basic_ifstream/1.cc)3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ios/cons/2020.cc (renamed from libstdc++-v3/testsuite/27_io/basic_ios/3.cc)0
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ios/requirements/base_classes.cc (renamed from libstdc++-v3/testsuite/27_io/basic_ios/4.cc)9
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ios/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/27_io/basic_ios/2.cc)3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ios/requirements/typedefs.cc (renamed from libstdc++-v3/testsuite/27_io/basic_ios/1.cc)3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_iostream/cons/2020.cc (renamed from libstdc++-v3/testsuite/27_io/basic_iostream/3.cc)0
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_iostream/requirements/base_classes.cc (renamed from libstdc++-v3/testsuite/27_io/basic_iostream/4.cc)7
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_iostream/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/27_io/basic_iostream/2.cc)3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_iostream/requirements/typedefs.cc (renamed from libstdc++-v3/testsuite/27_io/basic_iostream/1.cc)3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_istream/cons/3.cc (renamed from libstdc++-v3/testsuite/27_io/basic_istream/3.cc)0
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_istream/requirements/base_classes.cc (renamed from libstdc++-v3/testsuite/27_io/basic_istream/4.cc)7
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_istream/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/27_io/basic_istream/2.cc)3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_istream/requirements/typedefs.cc (renamed from libstdc++-v3/testsuite/27_io/basic_istream/1.cc)3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_istringstream/cons/2020.cc (renamed from libstdc++-v3/testsuite/27_io/basic_istringstream/3.cc)0
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/base_classes.cc (renamed from libstdc++-v3/testsuite/27_io/basic_istringstream/4.cc)7
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/27_io/basic_istringstream/2.cc)3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/typedefs.cc (renamed from libstdc++-v3/testsuite/27_io/basic_istringstream/1.cc)3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ofstream/cons/2020.cc (renamed from libstdc++-v3/testsuite/27_io/basic_ofstream/3.cc)0
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/base_classes.cc (renamed from libstdc++-v3/testsuite/27_io/basic_ofstream/4.cc)7
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/explicit_instantiations.cc (renamed from libstdc++-v3/testsuite/27_io/basic_ofstream/2.cc)3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/typedefs.cc (renamed from libstdc++-v3/testsuite/27_io/basic_ofstream/1.cc)3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ostream/cons/2020.cc (renamed from libstdc++-v3/testsuite/27_io/basic_ostream/3.cc)0
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ostream/requirements/base_classes.cc (renamed from libstdc++-v3/testsuite/27_io/basic_ostream/4.cc)7
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ostream/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/27_io/basic_ostream/2.cc)3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ostream/requirements/typedefs.cc (renamed from libstdc++-v3/testsuite/27_io/basic_ostream/1.cc)3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/2020.cc (renamed from libstdc++-v3/testsuite/27_io/basic_ostringstream/3.cc)0
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/base_classes.cc (renamed from libstdc++-v3/testsuite/27_io/basic_ostringstream/4.cc)7
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/27_io/basic_ostringstream/2.cc)3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/typedefs.cc (renamed from libstdc++-v3/testsuite/27_io/basic_ostringstream/1.cc)3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_streambuf/cons/2020.cc (renamed from libstdc++-v3/testsuite/27_io/basic_streambuf/3.cc)0
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_streambuf/requirements/base_classes.cc (renamed from libstdc++-v3/testsuite/27_io/basic_streambuf/2.cc)0
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_streambuf/requirements/typedefs.cc (renamed from libstdc++-v3/testsuite/27_io/basic_streambuf/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/2020.cc (renamed from libstdc++-v3/testsuite/27_io/basic_stringbuf/3.cc)0
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/base_classes.cc (renamed from libstdc++-v3/testsuite/27_io/basic_stringbuf/5.cc)7
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/explicit_instantiation/2.cc (renamed from libstdc++-v3/testsuite/27_io/basic_stringbuf/2.cc)3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/explicit_instantiation/4.cc (renamed from libstdc++-v3/testsuite/27_io/basic_stringbuf/4.cc)3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/typedefs.cc (renamed from libstdc++-v3/testsuite/27_io/basic_stringbuf/1.cc)9
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_stringstream/cons/2020.cc (renamed from libstdc++-v3/testsuite/27_io/basic_stringstream/3.cc)0
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/base_classes.cc (renamed from libstdc++-v3/testsuite/27_io/basic_stringstream/4.cc)7
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/27_io/basic_stringstream/2.cc)3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/typedefs.cc (renamed from libstdc++-v3/testsuite/27_io/basic_stringstream/1.cc)3
-rw-r--r--libstdc++-v3/testsuite/27_io/fpos/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/27_io/fpos/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/27_io/headers/cstdio/functions_std.cc66
-rw-r--r--libstdc++-v3/testsuite/27_io/headers/cstdio/macros.cc88
-rw-r--r--libstdc++-v3/testsuite/27_io/headers/cstdio/types_std.cc28
-rw-r--r--libstdc++-v3/testsuite/27_io/headers/fstream/synopsis.cc43
-rw-r--r--libstdc++-v3/testsuite/27_io/headers/fstream/types_std.cc36
-rw-r--r--libstdc++-v3/testsuite/27_io/headers/iomanip/synopsis.cc33
-rw-r--r--libstdc++-v3/testsuite/27_io/headers/ios/synopsis.cc60
-rw-r--r--libstdc++-v3/testsuite/27_io/headers/ios/types_std.cc28
-rw-r--r--libstdc++-v3/testsuite/27_io/headers/iostream/synopsis.cc32
-rw-r--r--libstdc++-v3/testsuite/27_io/headers/iostream/types_std.cc (renamed from libstdc++-v3/testsuite/17_intro/header_iostream.cc)20
-rw-r--r--libstdc++-v3/testsuite/27_io/headers/istream/synopsis.cc34
-rw-r--r--libstdc++-v3/testsuite/27_io/headers/istream/types_std.cc (renamed from libstdc++-v3/testsuite/17_intro/header_istream.cc)16
-rw-r--r--libstdc++-v3/testsuite/27_io/headers/ostream/synopsis.cc34
-rw-r--r--libstdc++-v3/testsuite/27_io/headers/ostream/types_std.cc (renamed from libstdc++-v3/testsuite/17_intro/header_ostream.cc)13
-rw-r--r--libstdc++-v3/testsuite/27_io/headers/sstream/synopsis.cc43
-rw-r--r--libstdc++-v3/testsuite/27_io/headers/sstream/types_std.cc36
-rw-r--r--libstdc++-v3/testsuite/27_io/headers/streambuf/synopsis.cc (renamed from libstdc++-v3/testsuite/17_intro/header_cstdio.cc)18
-rw-r--r--libstdc++-v3/testsuite/27_io/headers/streambuf/types_std.cc (renamed from libstdc++-v3/testsuite/17_intro/header_streambuf.cc)13
-rw-r--r--libstdc++-v3/testsuite/ext/debug_allocator/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/ext/debug_allocator/instantiate.cc)0
-rw-r--r--libstdc++-v3/testsuite/ext/hash_map/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/ext/hash_map/instantiate.cc)0
-rw-r--r--libstdc++-v3/testsuite/ext/hash_set/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/ext/hash_set/instantiate.cc)0
-rw-r--r--libstdc++-v3/testsuite/ext/headers.cc30
-rw-r--r--libstdc++-v3/testsuite/ext/malloc_allocator/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/ext/malloc_allocator/instantiate.cc)0
-rw-r--r--libstdc++-v3/testsuite/ext/mt_allocator/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/ext/mt_allocator/instantiate.cc)0
-rw-r--r--libstdc++-v3/testsuite/ext/pool_allocator/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/ext/pool_allocator/instantiate.cc)0
-rw-r--r--libstdc++-v3/testsuite/ext/slist/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/ext/slist/instantiate.cc)0
-rw-r--r--libstdc++-v3/testsuite/ext/stdio_filebuf/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/ext/stdio_filebuf/char/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/1.cc (renamed from libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/2.cc (renamed from libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/2.cc)0
-rw-r--r--libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/char/1.cc (renamed from libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/char/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/wchar_t/1.cc (renamed from libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/wchar_t/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/2_general_utilities/headers/functional/synopsis.cc35
-rw-r--r--libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/synopsis.cc66
-rw-r--r--libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/types_std_tr1.cc26
-rw-r--r--libstdc++-v3/testsuite/tr1/2_general_utilities/memory/enable_shared_from_this/requirements/explicit_instantiation/1.cc (renamed from libstdc++-v3/testsuite/tr1/2_general_utilities/memory/enable_shared_from_this/explicit_instantiation/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/2_general_utilities/memory/shared_ptr/requirements/explicit_instantiation/1.cc (renamed from libstdc++-v3/testsuite/tr1/2_general_utilities/memory/shared_ptr/explicit_instantiation/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/2_general_utilities/memory/weak_ptr/requirements/explicit_instantiation/1.cc (renamed from libstdc++-v3/testsuite/tr1/2_general_utilities/memory/weak_ptr/explicit_instantiation/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/synopsis.cc80
-rw-r--r--libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/types_std_tr1.cc26
-rw-r--r--libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/using_namespace_std_tr1_placeholders.cc26
-rw-r--r--libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/synopsis.cc104
-rw-r--r--libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/types_std_tr1.cc27
-rw-r--r--libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/synopsis.cc97
-rw-r--r--libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/types_std_tr1.cc27
-rw-r--r--libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/requirements/typedefs.cc (renamed from libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/requirements/requirements.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/array/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/array/requirements/instantiate.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/hash/24799.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/hash/24799.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/base_classes.cc33
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/hash.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/headers/array/synopsis.cc52
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/headers/functional/synopsis.cc51
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/synopsis.cc71
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/types_std_tr1.cc26
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_map/synopsis.cc54
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_set/synopsis.cc53
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/tuple/requirements/explicit_instantiation.cc34
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered/23781.cc43
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_map/24064.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/24064.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_map/capacity/29134-map.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-map.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_map/erase/24061-map.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-map.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_map/find/map1.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/find/map1.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/24061-map.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-map.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/array_syntax.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/array_syntax.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/map_range.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/map_range.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/map_single.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/map_single.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/map.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_neg.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/types/map_iterator.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_null_neg.cc36
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_map/swap/1.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_map/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_map/swap/2.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_map/2.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/capacity/29134-multimap.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-multimap.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/erase/24061-multimap.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-multimap.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/find/multimap1.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/find/multimap1.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/24061-multimap.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-multimap.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/multimap_range.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multimap_range.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/multimap_single.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multimap_single.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/multimap.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_neg.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/types/multimap_iterator.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_null_neg.cc36
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/swap/1.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multimap/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/swap/2.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multimap/2.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/24054.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/24054.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/capacity/29134-multiset.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-multiset.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/erase/24061-multiset.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-multiset.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/find/multiset1.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/find/multiset1.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/24061-multiset.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-multiset.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/multiset_range.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multiset_range.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/multiset_single.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multiset_single.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/multiset.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_neg.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/types/multiset_iterator.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_null_neg.cc36
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/swap/1.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multiset/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/swap/2.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multiset/2.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/23053.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/23053.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/23465.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/23465.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/26127.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/26127.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/26132.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/26132.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/capacity/29134-set.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-set.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/erase/24061-set.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-set.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/find/set1.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/find/set1.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/24061-set.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-set.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/set_range.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/set_range.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/set_single.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/set_single.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/set.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_neg.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/types/set_iterator.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_null_neg.cc36
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterators_default_constructor.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/iterators_default_constructor.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/swap/1.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_set/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/swap/2.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_set/2.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/using_namespace_std_tr1.cc26
418 files changed, 7719 insertions, 1223 deletions
diff --git a/libstdc++-v3/testsuite/17_intro/header_csetjmp.cc b/libstdc++-v3/testsuite/17_intro/header_csetjmp.cc
deleted file mode 100644
index 28d363101d4..00000000000
--- a/libstdc++-v3/testsuite/17_intro/header_csetjmp.cc
+++ /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_cwchar.cc b/libstdc++-v3/testsuite/17_intro/header_cwchar.cc
deleted file mode 100644
index faf623c117d..00000000000
--- a/libstdc++-v3/testsuite/17_intro/header_cwchar.cc
+++ /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
index 850e58b2a4c..00000000000
--- a/libstdc++-v3/testsuite/17_intro/header_cwctype.cc
+++ /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/headers/all.cc b/libstdc++-v3/testsuite/17_intro/headers/all.cc
new file mode 100644
index 00000000000..c0ef4bfa5f2
--- /dev/null
+++ b/libstdc++-v3/testsuite/17_intro/headers/all.cc
@@ -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/no_assert_neg.cc b/libstdc++-v3/testsuite/17_intro/headers/all_assert_neg.cc
index d259c2c6ac1..d259c2c6ac1 100644
--- a/libstdc++-v3/testsuite/17_intro/no_assert_neg.cc
+++ b/libstdc++-v3/testsuite/17_intro/headers/all_assert_neg.cc
diff --git a/libstdc++-v3/testsuite/17_intro/headers_c++_c++0x_compat.cc b/libstdc++-v3/testsuite/17_intro/headers/all_c++200x_compatibility.cc
index 1052cd7cf26..1052cd7cf26 100644
--- a/libstdc++-v3/testsuite/17_intro/headers_c++_c++0x_compat.cc
+++ b/libstdc++-v3/testsuite/17_intro/headers/all_c++200x_compatibility.cc
diff --git a/libstdc++-v3/testsuite/17_intro/headers.cc b/libstdc++-v3/testsuite/17_intro/headers/c++1998/all.cc
index 46975408c32..2704e491f4d 100644
--- a/libstdc++-v3/testsuite/17_intro/headers.cc
+++ b/libstdc++-v3/testsuite/17_intro/headers/c++1998/all.cc
@@ -1,6 +1,7 @@
+// { dg-do compile }
// 1999-05-12 bkoz
-// Copyright (C) 1999 Free Software Foundation, Inc.
+// 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
@@ -23,6 +24,45 @@
// 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>
@@ -58,29 +98,3 @@
#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/c++1998/all_multiple_inclusion.cc b/libstdc++-v3/testsuite/17_intro/headers/c++1998/all_multiple_inclusion.cc
new file mode 100644
index 00000000000..a1cb289039a
--- /dev/null
+++ b/libstdc++-v3/testsuite/17_intro/headers/c++1998/all_multiple_inclusion.cc
@@ -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
index 00000000000..bbe7c5aac89
--- /dev/null
+++ b/libstdc++-v3/testsuite/17_intro/headers/c++1998/c++.tar
Binary files 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
index 00000000000..9f25ab9b2d0
--- /dev/null
+++ b/libstdc++-v3/testsuite/17_intro/headers/c++1998/c++_for_c.tar
Binary files 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
index 03c902a3217..00000000000
--- a/libstdc++-v3/testsuite/17_intro/headers_c++.cc
+++ /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.cc b/libstdc++-v3/testsuite/17_intro/headers_c.cc
deleted file mode 100644
index 369639c49cc..00000000000
--- a/libstdc++-v3/testsuite/17_intro/headers_c.cc
+++ /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/header_ios.cc b/libstdc++-v3/testsuite/17_intro/using_namespace_std.cc
index d04e14a4384..26a2c6544e7 100644
--- a/libstdc++-v3/testsuite/17_intro/header_ios.cc
+++ b/libstdc++-v3/testsuite/17_intro/using_namespace_std.cc
@@ -1,6 +1,6 @@
-// 1999-07-01 bkoz
+// { dg-do compile }
-// Copyright (C) 1999 Free Software Foundation, Inc.
+// 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
@@ -18,13 +18,9 @@
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// 17.4.1.2 Headers, ios
+#include <new>
-#include <ios>
-#include <testsuite_hooks.h>
-
-
-int main(void)
+namespace gnu
{
- return 0;
+ 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
index 00000000000..7a06a68e71c
--- /dev/null
+++ b/libstdc++-v3/testsuite/18_support/headers/cfloat/values.cc
@@ -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
index 00000000000..2d15600c82b
--- /dev/null
+++ b/libstdc++-v3/testsuite/18_support/headers/climits/values.cc
@@ -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/17_intro/header_iomanip.cc b/libstdc++-v3/testsuite/18_support/headers/csetjmp/functions_std.cc
index 6d462241406..d0a24948d74 100644
--- a/libstdc++-v3/testsuite/17_intro/header_iomanip.cc
+++ b/libstdc++-v3/testsuite/18_support/headers/csetjmp/functions_std.cc
@@ -1,6 +1,6 @@
-// 1999-07-01 bkoz
+// { dg-do compile }
-// Copyright (C) 1999 Free Software Foundation, Inc.
+// 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
@@ -18,13 +18,9 @@
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// 17.4.1.2 Headers, iomanip
+#include <csetjmp>
-#include <iomanip>
-#include <testsuite_hooks.h>
-
-
-int main(void)
+namespace gnu
{
- return 0;
+ using std::longjmp;
}
diff --git a/libstdc++-v3/testsuite/17_intro/header_fstream.cc b/libstdc++-v3/testsuite/18_support/headers/csetjmp/macros.cc
index c190d501873..01a90130ced 100644
--- a/libstdc++-v3/testsuite/17_intro/header_fstream.cc
+++ b/libstdc++-v3/testsuite/18_support/headers/csetjmp/macros.cc
@@ -1,6 +1,6 @@
-// 1999-07-01 bkoz
+// { dg-do compile }
-// Copyright (C) 1999 Free Software Foundation, Inc.
+// 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
@@ -18,13 +18,11 @@
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// 17.4.1.2 Headers, fstream
+#include <csetjmp>
-#include <fstream>
-#include <testsuite_hooks.h>
-
-
-int main(void)
+namespace gnu
{
- return 0;
+#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
index 00000000000..ecf7f6650f8
--- /dev/null
+++ b/libstdc++-v3/testsuite/18_support/headers/csetjmp/types_std.cc
@@ -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
index 00000000000..6823376de47
--- /dev/null
+++ b/libstdc++-v3/testsuite/18_support/headers/csignal/functions_std.cc
@@ -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
index 00000000000..884261173a7
--- /dev/null
+++ b/libstdc++-v3/testsuite/18_support/headers/csignal/macros.cc
@@ -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
index 00000000000..75627271a73
--- /dev/null
+++ b/libstdc++-v3/testsuite/18_support/headers/csignal/types_std.cc
@@ -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/17_intro/header_cstdarg.cc b/libstdc++-v3/testsuite/18_support/headers/cstdarg/macros.cc
index e23edbba011..add2f90191a 100644
--- a/libstdc++-v3/testsuite/17_intro/header_cstdarg.cc
+++ b/libstdc++-v3/testsuite/18_support/headers/cstdarg/macros.cc
@@ -1,6 +1,6 @@
-// 2001-02-06 Benjamin Kosnik <bkoz@redhat.com>
+// { dg-do compile }
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+// 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
@@ -18,29 +18,19 @@
// 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;
+
+#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
index 00000000000..52151524d77
--- /dev/null
+++ b/libstdc++-v3/testsuite/18_support/headers/cstdarg/types_std.cc
@@ -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/17_intro/header_cstddef.cc b/libstdc++-v3/testsuite/18_support/headers/cstddef/macros.cc
index ec195bb9ca1..4751d161e8e 100644
--- a/libstdc++-v3/testsuite/17_intro/header_cstddef.cc
+++ b/libstdc++-v3/testsuite/18_support/headers/cstddef/macros.cc
@@ -1,6 +1,7 @@
+// { dg-do compile }
// 2001-02-06 Benjamin Kosnik <bkoz@redhat.com>
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+// 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
@@ -18,8 +19,6 @@
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// 17.4.1.2 Headers, cstddef
-
#include <cstddef>
namespace gnu
@@ -30,6 +29,7 @@ namespace gnu
int j;
};
+ // offsetof
void test01()
{
std::size_t i __attribute__((unused)) = offsetof(struct test_type, i);
@@ -37,10 +37,15 @@ namespace gnu
#error "offsetof_must_be_a_macro"
#endif
}
-}
-
-int main()
-{
- gnu::test01();
- return 0;
+
+ // 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
index 00000000000..a00dd1640e0
--- /dev/null
+++ b/libstdc++-v3/testsuite/18_support/headers/cstddef/types_std.cc
@@ -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
index 00000000000..9956158a9bf
--- /dev/null
+++ b/libstdc++-v3/testsuite/18_support/headers/cstdlib/functions_std.cc
@@ -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/17_intro/header_cassert.cc b/libstdc++-v3/testsuite/18_support/headers/cstdlib/macros.cc
index 50f5db47ed9..419ee7451e4 100644
--- a/libstdc++-v3/testsuite/17_intro/header_cassert.cc
+++ b/libstdc++-v3/testsuite/18_support/headers/cstdlib/macros.cc
@@ -1,6 +1,7 @@
+// { dg-do compile }
// 2001-02-06 Benjamin Kosnik <bkoz@redhat.com>
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// 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
@@ -18,23 +19,15 @@
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// 17.4.1.2 Headers, cassert
-
-#include <cassert>
+#include <cstddef>
namespace gnu
{
- void test01()
- {
- assert (true);
-#ifndef assert
- #error "assert_must_be_a_macro"
+#ifndef EXIT_FAILURE
+ #error "EXIT_FAILURE_must_be_a_macro"
+#endif
+
+#ifndef EXIT_SUCCESS
+ #error "EXIT_SUCCESS_must_be_a_macro"
#endif
- }
-}
-
-int main()
-{
- gnu::test01();
- return 0;
}
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
index 00000000000..5a7e56d679e
--- /dev/null
+++ b/libstdc++-v3/testsuite/18_support/headers/ctime/functions_std.cc
@@ -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
index 00000000000..de923816fd0
--- /dev/null
+++ b/libstdc++-v3/testsuite/18_support/headers/ctime/macros.cc
@@ -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
index 00000000000..c0168af19fb
--- /dev/null
+++ b/libstdc++-v3/testsuite/18_support/headers/ctime/types_std.cc
@@ -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
index 00000000000..24585ee4d61
--- /dev/null
+++ b/libstdc++-v3/testsuite/18_support/headers/exception/synopsis.cc
@@ -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
index 00000000000..467f68a3ed1
--- /dev/null
+++ b/libstdc++-v3/testsuite/18_support/headers/exception/types_std.cc
@@ -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
index 00000000000..a0db1d94362
--- /dev/null
+++ b/libstdc++-v3/testsuite/18_support/headers/limits/synopsis.cc
@@ -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
index 00000000000..6d05bb402db
--- /dev/null
+++ b/libstdc++-v3/testsuite/18_support/headers/new/synopsis.cc
@@ -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
index 00000000000..a0d2c4e941a
--- /dev/null
+++ b/libstdc++-v3/testsuite/18_support/headers/new/types_std.cc
@@ -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
index 00000000000..7e8705516f2
--- /dev/null
+++ b/libstdc++-v3/testsuite/18_support/headers/typeinfo/synopsis.cc
@@ -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
index 00000000000..8db903e993f
--- /dev/null
+++ b/libstdc++-v3/testsuite/18_support/headers/typeinfo/types_std.cc
@@ -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/sign.cc b/libstdc++-v3/testsuite/18_support/numeric_limits/is_signed.cc
index e6c5f1d8aca..e6c5f1d8aca 100644
--- a/libstdc++-v3/testsuite/18_support/numeric_limits/sign.cc
+++ b/libstdc++-v3/testsuite/18_support/numeric_limits/is_signed.cc
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
index 00000000000..77856e9080f
--- /dev/null
+++ b/libstdc++-v3/testsuite/18_support/numeric_limits/requirements/explicit_instantiation/1.cc
@@ -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/specialization.cc b/libstdc++-v3/testsuite/18_support/numeric_limits/specialization_default_values.cc
index 0a1c8fec353..0a1c8fec353 100644
--- a/libstdc++-v3/testsuite/18_support/numeric_limits/specialization.cc
+++ b/libstdc++-v3/testsuite/18_support/numeric_limits/specialization_default_values.cc
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
index 00000000000..822414c7cf9
--- /dev/null
+++ b/libstdc++-v3/testsuite/19_diagnostics/headers/cassert/macros.cc
@@ -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/17_intro/header_cerrno.cc b/libstdc++-v3/testsuite/19_diagnostics/headers/cerrno/macros.cc
index d8d28ce0785..468d4a18c32 100644
--- a/libstdc++-v3/testsuite/17_intro/header_cerrno.cc
+++ b/libstdc++-v3/testsuite/19_diagnostics/headers/cerrno/macros.cc
@@ -1,6 +1,6 @@
-// 2001-02-06 Benjamin Kosnik <bkoz@redhat.com>
+// { dg-do compile }
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+// 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
@@ -18,24 +18,19 @@
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// 17.4.1.2 Headers, cerrno
-
-#include <cerrno>
+#include <cassert>
namespace gnu
{
- int test01()
- {
- int i = errno;
+#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
- return i;
- }
-}
-
-int main()
-{
- gnu::test01();
- return 0;
}
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
index 00000000000..6be26e0e158
--- /dev/null
+++ b/libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/synopsis.cc
@@ -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
index 00000000000..160c6911514
--- /dev/null
+++ b/libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/types_std.cc
@@ -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
index 00000000000..7ac51ed09b7
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/headers/cstdlib/functions_std.cc
@@ -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
index 00000000000..f521d724c1e
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/headers/cstring/functions_std.cc
@@ -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
index 00000000000..c714d1607d7
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/headers/cstring/macros.cc
@@ -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
index 00000000000..f554d5a20c2
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/headers/cstring/types_std.cc
@@ -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/17_intro/header_ctime.cc b/libstdc++-v3/testsuite/20_util/headers/ctime/functions_std.cc
index 0df01570402..ce381b2a459 100644
--- a/libstdc++-v3/testsuite/17_intro/header_ctime.cc
+++ b/libstdc++-v3/testsuite/20_util/headers/ctime/functions_std.cc
@@ -1,6 +1,6 @@
-// 2000-01-01 bkoz
+// { dg-do compile }
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+// 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
@@ -18,13 +18,17 @@
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// 17.4.1.2 Headers, ctime
-
#include <ctime>
-int main(void)
+namespace gnu
{
- // Make sure size_t is in namespace std
- std::size_t i __attribute__((unused)) = 5;
- return 0;
+ 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
index 00000000000..7c7e1345809
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/headers/ctime/macros.cc
@@ -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/17_intro/header_iosfwd.cc b/libstdc++-v3/testsuite/20_util/headers/ctime/types_std.cc
index ccfd14ad7fe..ef0cab62840 100644
--- a/libstdc++-v3/testsuite/17_intro/header_iosfwd.cc
+++ b/libstdc++-v3/testsuite/20_util/headers/ctime/types_std.cc
@@ -1,6 +1,6 @@
-// 1999-07-01 bkoz
+// { dg-do compile }
-// Copyright (C) 1999 Free Software Foundation, Inc.
+// 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
@@ -18,13 +18,13 @@
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// 17.4.1.2 Headers, iosfwd
+#include <ctime>
-#include <iosfwd>
-#include <testsuite_hooks.h>
-
-
-int main(void)
+namespace gnu
{
- return 0;
+ 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
index 00000000000..d4853b27af4
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/headers/functional/synopsis.cc
@@ -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
index 00000000000..306a37e3312
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/headers/memory/synopsis.cc
@@ -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
index 00000000000..bb96c32435e
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/headers/utility/synopsis.cc
@@ -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
index 00000000000..1e78aeb3145
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/headers/utility/using_namespace_std_rel_ops.cc
@@ -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
index 00000000000..ed88aefe6c6
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/memory/allocator/requirements/explicit_instantiation/1.cc
@@ -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
index 00000000000..e6abacd13b6
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/memory/auto_ptr/requirements/explicit_instantiation/1.cc
@@ -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/requirements/base_classes.cc b/libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator/requirements/base_classes.cc
new file mode 100644
index 00000000000..bc2793f3d97
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator/requirements/base_classes.cc
@@ -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
index 00000000000..41023b6bcd2
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator/requirements/explicit_instantiation/1.cc
@@ -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.cc b/libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator/requirements/typedefs.cc
index 36e7d25704e..4a51c4c6fd3 100644
--- a/libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator.cc
+++ b/libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator/requirements/typedefs.cc
@@ -1,6 +1,7 @@
+// { dg-do compile }
// 2001-06-18 Benjamin Kosnik <bkoz@redhat.com>
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+// 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
@@ -26,23 +27,12 @@ void test01()
{
using namespace std;
- // Check for required base class.
+ // Check for required typedefs
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/utility/pair/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/20_util/utility/pair/requirements/explicit_instantiation/1.cc
new file mode 100644
index 00000000000..3d55f629de2
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/utility/pair/requirements/explicit_instantiation/1.cc
@@ -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/requirements/explicit_instantiation/1.cc
index ec839146a35..ec839146a35 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/1.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/1.cc
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/2.cc b/libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/debug.cc
index 8b021755786..8b021755786 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/2.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/debug.cc
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
index 00000000000..b0375f6f55d
--- /dev/null
+++ b/libstdc++-v3/testsuite/21_strings/headers/cctype/functions_std.cc
@@ -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
index 00000000000..4840dfdf78f
--- /dev/null
+++ b/libstdc++-v3/testsuite/21_strings/headers/cstdlib/functions_std.cc
@@ -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
index 00000000000..c714d1607d7
--- /dev/null
+++ b/libstdc++-v3/testsuite/21_strings/headers/cstdlib/macros.cc
@@ -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
index 00000000000..3b4662f7f64
--- /dev/null
+++ b/libstdc++-v3/testsuite/21_strings/headers/cstring/functions_std.cc
@@ -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
index 00000000000..c714d1607d7
--- /dev/null
+++ b/libstdc++-v3/testsuite/21_strings/headers/cstring/macros.cc
@@ -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
index 00000000000..f554d5a20c2
--- /dev/null
+++ b/libstdc++-v3/testsuite/21_strings/headers/cstring/types_std.cc
@@ -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
index 00000000000..377cbdcd6ed
--- /dev/null
+++ b/libstdc++-v3/testsuite/21_strings/headers/cwchar/functions_std.cc
@@ -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
index 00000000000..17d6129dd90
--- /dev/null
+++ b/libstdc++-v3/testsuite/21_strings/headers/cwchar/macros.cc
@@ -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
index 00000000000..f7cd6a7608e
--- /dev/null
+++ b/libstdc++-v3/testsuite/21_strings/headers/cwchar/types_std.cc
@@ -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
index 00000000000..88871fa07ce
--- /dev/null
+++ b/libstdc++-v3/testsuite/21_strings/headers/cwctype/functions_std.cc
@@ -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
index 00000000000..a1d78c75c00
--- /dev/null
+++ b/libstdc++-v3/testsuite/21_strings/headers/cwctype/macros.cc
@@ -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
index 00000000000..f8a48cfa96f
--- /dev/null
+++ b/libstdc++-v3/testsuite/21_strings/headers/cwctype/types_std.cc
@@ -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
index 00000000000..a482ec10cf2
--- /dev/null
+++ b/libstdc++-v3/testsuite/21_strings/headers/string/synopsis.cc
@@ -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
index 00000000000..40731c40946
--- /dev/null
+++ b/libstdc++-v3/testsuite/21_strings/headers/string/types_std.cc
@@ -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/requirements/base_classes.cc
index c0232ce8f68..15f5d64fc1e 100644
--- a/libstdc++-v3/testsuite/22_locale/codecvt/1.cc
+++ b/libstdc++-v3/testsuite/22_locale/codecvt/requirements/base_classes.cc
@@ -30,15 +30,4 @@ void test01()
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/requirements/explicit_instantiation.cc
index 4e12657623f..b73c8701bb4 100644
--- a/libstdc++-v3/testsuite/22_locale/codecvt/2.cc
+++ b/libstdc++-v3/testsuite/22_locale/codecvt/requirements/explicit_instantiation.cc
@@ -24,16 +24,4 @@
#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;
-}
+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
index 00000000000..45cfb2a21b1
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/codecvt/requirements/typedefs.cc
@@ -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/requirements/base_classes.cc
index d9c9f16a4eb..337bd101436 100644
--- a/libstdc++-v3/testsuite/22_locale/codecvt_byname/1.cc
+++ b/libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/base_classes.cc
@@ -30,15 +30,4 @@ void test01()
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/explicit_instantiation.cc b/libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/explicit_instantiation.cc
new file mode 100644
index 00000000000..094b386ddec
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/explicit_instantiation.cc
@@ -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
index 00000000000..1bb9059e8e4
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/typedefs.cc
@@ -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/requirements/base_classes.cc
index 72de0a9e1fa..765980079db 100644
--- a/libstdc++-v3/testsuite/22_locale/collate/1.cc
+++ b/libstdc++-v3/testsuite/22_locale/collate/requirements/base_classes.cc
@@ -30,14 +30,4 @@ void test01()
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/requirements/explicit_instantiation.cc
index e4d43e8f5c3..a9be3b1b0d2 100644
--- a/libstdc++-v3/testsuite/22_locale/collate/2.cc
+++ b/libstdc++-v3/testsuite/22_locale/collate/requirements/explicit_instantiation.cc
@@ -24,16 +24,4 @@
#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;
-}
+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
index 00000000000..9baafacde05
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/collate/requirements/typedefs.cc
@@ -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/requirements/base_classes.cc
index be3b7d27850..f3d6571d69b 100644
--- a/libstdc++-v3/testsuite/22_locale/collate_byname/1.cc
+++ b/libstdc++-v3/testsuite/22_locale/collate_byname/requirements/base_classes.cc
@@ -30,14 +30,4 @@ void test01()
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/explicit_instantiation.cc b/libstdc++-v3/testsuite/22_locale/collate_byname/requirements/explicit_instantiation.cc
new file mode 100644
index 00000000000..43eda6f72bc
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/collate_byname/requirements/explicit_instantiation.cc
@@ -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
index 00000000000..52ae527ce14
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/collate_byname/requirements/typedefs.cc
@@ -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/requirements/base_classes.cc
index a1e2f1f41ed..0cf4c516ce7 100644
--- a/libstdc++-v3/testsuite/22_locale/ctype/1.cc
+++ b/libstdc++-v3/testsuite/22_locale/ctype/requirements/base_classes.cc
@@ -32,13 +32,4 @@ void test01()
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/explicit_instantiation.cc b/libstdc++-v3/testsuite/22_locale/ctype/requirements/explicit_instantiation.cc
new file mode 100644
index 00000000000..85ebec3920f
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/ctype/requirements/explicit_instantiation.cc
@@ -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
index 00000000000..f88fa34ed8d
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/ctype/requirements/typedefs.cc
@@ -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/mask.cc
index 260e1b0334a..260e1b0334a 100644
--- a/libstdc++-v3/testsuite/22_locale/ctype_base/1.cc
+++ b/libstdc++-v3/testsuite/22_locale/ctype_base/mask.cc
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
index 00000000000..39626e8ac62
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/headers/clocale/functions_std.cc
@@ -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
index 00000000000..575a33a6067
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/headers/clocale/macros.cc
@@ -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
index 00000000000..125aef99b6e
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/headers/clocale/types_std.cc
@@ -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
index 00000000000..a26eab1a70f
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/headers/locale/synopsis.cc
@@ -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
index 00000000000..85e4b9d55ba
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/headers/locale/types_std.cc
@@ -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/requirements/base_classes.cc
index 55b59ef46c6..ea89f80ea16 100644
--- a/libstdc++-v3/testsuite/22_locale/messages/1.cc
+++ b/libstdc++-v3/testsuite/22_locale/messages/requirements/base_classes.cc
@@ -32,14 +32,4 @@ void test01()
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/requirements/explicit_instantiation.cc
index 42c37d9c22a..eaea1047906 100644
--- a/libstdc++-v3/testsuite/22_locale/messages/2.cc
+++ b/libstdc++-v3/testsuite/22_locale/messages/requirements/explicit_instantiation.cc
@@ -24,16 +24,4 @@
#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;
-}
+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
index 00000000000..e8c5b9528d4
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/messages/requirements/typedefs.cc
@@ -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/requirements/base_classes.cc
index 51077ca548a..4836c046d00 100644
--- a/libstdc++-v3/testsuite/22_locale/messages_byname/1.cc
+++ b/libstdc++-v3/testsuite/22_locale/messages_byname/requirements/base_classes.cc
@@ -30,14 +30,4 @@ void test01()
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/explicit_instantiation.cc b/libstdc++-v3/testsuite/22_locale/messages_byname/requirements/explicit_instantiation.cc
new file mode 100644
index 00000000000..b108ff8fe1f
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/messages_byname/requirements/explicit_instantiation.cc
@@ -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
index 00000000000..b74150e6cda
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/messages_byname/requirements/typedefs.cc
@@ -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/3.cc b/libstdc++-v3/testsuite/22_locale/money_get/cons/3.cc
index 61e2a1f813b..61e2a1f813b 100644
--- a/libstdc++-v3/testsuite/22_locale/money_get/3.cc
+++ b/libstdc++-v3/testsuite/22_locale/money_get/cons/3.cc
diff --git a/libstdc++-v3/testsuite/22_locale/money_get/1.cc b/libstdc++-v3/testsuite/22_locale/money_get/requirements/base_classes.cc
index dd7d0d26be3..a0a936ee0a8 100644
--- a/libstdc++-v3/testsuite/22_locale/money_get/1.cc
+++ b/libstdc++-v3/testsuite/22_locale/money_get/requirements/base_classes.cc
@@ -30,15 +30,4 @@ void test01()
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/requirements/explicit_instantiations.cc
index 3853a22456a..dc7f85968c8 100644
--- a/libstdc++-v3/testsuite/22_locale/money_get/2.cc
+++ b/libstdc++-v3/testsuite/22_locale/money_get/requirements/explicit_instantiations.cc
@@ -24,16 +24,4 @@
#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;
-}
+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
index 00000000000..ee3b04d9d26
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/money_get/requirements/typedefs.cc
@@ -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/3.cc b/libstdc++-v3/testsuite/22_locale/money_put/cons/3.cc
index 535ca6e8644..535ca6e8644 100644
--- a/libstdc++-v3/testsuite/22_locale/money_put/3.cc
+++ b/libstdc++-v3/testsuite/22_locale/money_put/cons/3.cc
diff --git a/libstdc++-v3/testsuite/22_locale/money_put/1.cc b/libstdc++-v3/testsuite/22_locale/money_put/requirements/base_classes.cc
index 2e0bfa05c2b..b352a25bb98 100644
--- a/libstdc++-v3/testsuite/22_locale/money_put/1.cc
+++ b/libstdc++-v3/testsuite/22_locale/money_put/requirements/base_classes.cc
@@ -30,15 +30,4 @@ void test01()
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/requirements/explicit_instantiation.cc
index 28f9005b1e4..0afb18759e0 100644
--- a/libstdc++-v3/testsuite/22_locale/money_put/2.cc
+++ b/libstdc++-v3/testsuite/22_locale/money_put/requirements/explicit_instantiation.cc
@@ -24,16 +24,4 @@
#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;
-}
+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
index 00000000000..1e5ded2cc56
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/money_put/requirements/typedefs.cc
@@ -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/2.cc b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/base_classes.cc
index 87fb4f487d4..a880d82fd1c 100644
--- a/libstdc++-v3/testsuite/22_locale/moneypunct/2.cc
+++ b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/base_classes.cc
@@ -31,14 +31,4 @@ void test02()
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/requirements/false/explicit_instantiation.cc b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/explicit_instantiation.cc
new file mode 100644
index 00000000000..9b24c0b3387
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/explicit_instantiation.cc
@@ -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/3.cc b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/intl.cc
index 2b8cdc310cb..9380ecbe76d 100644
--- a/libstdc++-v3/testsuite/22_locale/moneypunct/3.cc
+++ b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/intl.cc
@@ -20,23 +20,17 @@
// 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>
+class gnu_moneypunct_f: public std::moneypunct<char, false>
{ };
void test03()
{
- gnu_moneypunct_t facet01;
+ bool test __attribute__((unused)) = true;
gnu_moneypunct_f facet02;
- VERIFY (facet01.intl == true);
VERIFY (facet02.intl == false);
}
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
index 00000000000..cd6b92b9c9d
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/typedefs.cc
@@ -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/1.cc b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/base_classes.cc
index 29959451f84..231172e86d7 100644
--- a/libstdc++-v3/testsuite/22_locale/moneypunct/1.cc
+++ b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/base_classes.cc
@@ -22,7 +22,6 @@
// 22.2.6.3 Template class moneypunct
#include <locale>
-#include <testsuite_hooks.h>
void test01()
{
@@ -31,14 +30,4 @@ void test01()
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/requirements/true/explicit_instantiation.cc b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/explicit_instantiation.cc
new file mode 100644
index 00000000000..20cac01cdab
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/explicit_instantiation.cc
@@ -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
index 00000000000..3448737214a
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/intl.cc
@@ -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
index 00000000000..f1ced4e9872
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/typedefs.cc
@@ -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/requirements/base_classes.cc
index 0751211e282..1180f298175 100644
--- a/libstdc++-v3/testsuite/22_locale/moneypunct_byname/1.cc
+++ b/libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/base_classes.cc
@@ -31,14 +31,4 @@ void test01()
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/explicit_instantiation.cc b/libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/explicit_instantiation.cc
new file mode 100644
index 00000000000..43302856408
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/explicit_instantiation.cc
@@ -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
index 00000000000..b4b3b51039b
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/typedefs.cc
@@ -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/3.cc b/libstdc++-v3/testsuite/22_locale/num_get/cons/3.cc
index 92295c07120..92295c07120 100644
--- a/libstdc++-v3/testsuite/22_locale/num_get/3.cc
+++ b/libstdc++-v3/testsuite/22_locale/num_get/cons/3.cc
diff --git a/libstdc++-v3/testsuite/22_locale/num_get/1.cc b/libstdc++-v3/testsuite/22_locale/num_get/requirements/base_classes.cc
index f1f1f85dd2b..363ad15faf4 100644
--- a/libstdc++-v3/testsuite/22_locale/num_get/1.cc
+++ b/libstdc++-v3/testsuite/22_locale/num_get/requirements/base_classes.cc
@@ -30,14 +30,4 @@ void test01()
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/requirements/explicit_instantiation.cc
index ab2d7437ee5..87e126a7d06 100644
--- a/libstdc++-v3/testsuite/22_locale/num_get/2.cc
+++ b/libstdc++-v3/testsuite/22_locale/num_get/requirements/explicit_instantiation.cc
@@ -24,16 +24,4 @@
#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;
-}
+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
index 00000000000..1229581e864
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/num_get/requirements/typedefs.cc
@@ -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/3.cc b/libstdc++-v3/testsuite/22_locale/num_put/cons/3.cc
index 6ecad4f4790..6ecad4f4790 100644
--- a/libstdc++-v3/testsuite/22_locale/num_put/3.cc
+++ b/libstdc++-v3/testsuite/22_locale/num_put/cons/3.cc
diff --git a/libstdc++-v3/testsuite/22_locale/num_put/1.cc b/libstdc++-v3/testsuite/22_locale/num_put/requirements/base_classes.cc
index 528c1306bd5..eb8432c5cb6 100644
--- a/libstdc++-v3/testsuite/22_locale/num_put/1.cc
+++ b/libstdc++-v3/testsuite/22_locale/num_put/requirements/base_classes.cc
@@ -30,14 +30,4 @@ void test01()
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/requirements/explicit_instantiations.cc
index cec69bb54b0..08008ee8c89 100644
--- a/libstdc++-v3/testsuite/22_locale/num_put/2.cc
+++ b/libstdc++-v3/testsuite/22_locale/num_put/requirements/explicit_instantiations.cc
@@ -24,16 +24,4 @@
#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;
-}
+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
index 00000000000..2dfed978c0d
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/num_put/requirements/typedefs.cc
@@ -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/requirements/base_classes.cc
index b4dc0d9ad76..db5ce24202d 100644
--- a/libstdc++-v3/testsuite/22_locale/numpunct/1.cc
+++ b/libstdc++-v3/testsuite/22_locale/numpunct/requirements/base_classes.cc
@@ -30,14 +30,4 @@ void test01()
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/requirements/explicit_instantiations.cc
index 59aa3d9b1c2..279633a3ea0 100644
--- a/libstdc++-v3/testsuite/22_locale/numpunct/2.cc
+++ b/libstdc++-v3/testsuite/22_locale/numpunct/requirements/explicit_instantiations.cc
@@ -24,16 +24,4 @@
#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;
-}
+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
index 00000000000..e58fa1ec1ba
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/numpunct/requirements/typedefs.cc
@@ -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/requirements/base_classes.cc
index c41707873d6..9b79493cd7b 100644
--- a/libstdc++-v3/testsuite/22_locale/numpunct_byname/1.cc
+++ b/libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/base_classes.cc
@@ -30,14 +30,4 @@ void test01()
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/explicit_instantiations.cc b/libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/explicit_instantiations.cc
new file mode 100644
index 00000000000..799541de6cb
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/explicit_instantiations.cc
@@ -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
index 00000000000..d269996a674
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/typedefs.cc
@@ -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/requirements/base_classes.cc
index 1a68ce7128a..072db6dbd6d 100644
--- a/libstdc++-v3/testsuite/22_locale/time_get/1.cc
+++ b/libstdc++-v3/testsuite/22_locale/time_get/requirements/base_classes.cc
@@ -32,14 +32,4 @@ void test01()
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/requirements/explicit_instantiations.cc
index 19c145c5911..170e9e75472 100644
--- a/libstdc++-v3/testsuite/22_locale/time_get/2.cc
+++ b/libstdc++-v3/testsuite/22_locale/time_get/requirements/explicit_instantiations.cc
@@ -24,16 +24,4 @@
#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;
-}
+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
index 00000000000..1d2afa6de3e
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/time_get/requirements/typedefs.cc
@@ -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/requirements/base_classes.cc
index 69f24aec5ea..197fa6e6a64 100644
--- a/libstdc++-v3/testsuite/22_locale/time_put/1.cc
+++ b/libstdc++-v3/testsuite/22_locale/time_put/requirements/base_classes.cc
@@ -30,14 +30,4 @@ void test01()
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/requirements/explicit_instantiations.cc
index 50383559531..a1b365c597b 100644
--- a/libstdc++-v3/testsuite/22_locale/time_put/2.cc
+++ b/libstdc++-v3/testsuite/22_locale/time_put/requirements/explicit_instantiations.cc
@@ -24,16 +24,4 @@
#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;
-}
+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
index 00000000000..69e7c4ac88f
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/time_put/requirements/typedefs.cc
@@ -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
index 00000000000..bec170ea64f
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/bitset/requirements/explicit_instantiation/1.cc
@@ -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/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/1.cc
index c6aef037e18..c6aef037e18 100644
--- a/libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/1.cc
diff --git a/libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/2.cc
index 6c1b9adb786..6c1b9adb786 100644
--- a/libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/2.cc
diff --git a/libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc
index ca6cb6ad7f4..ca6cb6ad7f4 100644
--- a/libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/3.cc
+++ b/libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc
diff --git a/libstdc++-v3/testsuite/23_containers/deque/1.cc b/libstdc++-v3/testsuite/23_containers/deque/requirements/partial_specialization/1.cc
index 26882be0dc8..26882be0dc8 100644
--- a/libstdc++-v3/testsuite/23_containers/deque/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/deque/requirements/partial_specialization/1.cc
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
index 00000000000..e0ba4d45e07
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/headers/bitset/synopsis.cc
@@ -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
index 00000000000..832baf19737
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/headers/deque/synopsis.cc
@@ -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
index 00000000000..1b3fb40d52d
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/headers/list/synopsis.cc
@@ -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
index 00000000000..a8129df6aec
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/headers/map/synopsis.cc
@@ -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
index 00000000000..67a99d21acb
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/headers/queue/synopsis.cc
@@ -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
index 00000000000..e517bf479a7
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/headers/set/synopsis.cc
@@ -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
index 00000000000..b6bea1eff46
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/headers/stack/synopsis.cc
@@ -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
index 00000000000..713fb79ce55
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/headers/vector/synopsis.cc
@@ -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/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/1.cc
index 1bbc639d6e0..1bbc639d6e0 100644
--- a/libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/1.cc
diff --git a/libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/2.cc
index 8b27d10251b..8b27d10251b 100644
--- a/libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/2.cc
diff --git a/libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/3.cc
index cdbec31dec3..cdbec31dec3 100644
--- a/libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/3.cc
+++ b/libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/3.cc
diff --git a/libstdc++-v3/testsuite/23_containers/list/1.cc b/libstdc++-v3/testsuite/23_containers/list/requirements/partial_specialization/1.cc
index 57b950b432e..57b950b432e 100644
--- a/libstdc++-v3/testsuite/23_containers/list/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/list/requirements/partial_specialization/1.cc
diff --git a/libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/1.cc
index b898b4b77e8..b898b4b77e8 100644
--- a/libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/1.cc
diff --git a/libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/2.cc
index 433349434c1..433349434c1 100644
--- a/libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/2.cc
diff --git a/libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/3.cc
index 0a8866d64b2..0a8866d64b2 100644
--- a/libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/3.cc
+++ b/libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/3.cc
diff --git a/libstdc++-v3/testsuite/23_containers/map/1.cc b/libstdc++-v3/testsuite/23_containers/map/requirements/partial_specialization/1.cc
index 3d20c1fdcd2..3d20c1fdcd2 100644
--- a/libstdc++-v3/testsuite/23_containers/map/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/map/requirements/partial_specialization/1.cc
diff --git a/libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/1.cc
index 05db935721b..05db935721b 100644
--- a/libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/1.cc
diff --git a/libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/2.cc
index 86527fd1fb8..86527fd1fb8 100644
--- a/libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/2.cc
diff --git a/libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc
index cdb7e96e00a..cdb7e96e00a 100644
--- a/libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/3.cc
+++ b/libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc
diff --git a/libstdc++-v3/testsuite/23_containers/multimap/1.cc b/libstdc++-v3/testsuite/23_containers/multimap/requirements/partial_specialization/1.cc
index 2b04d68287b..2b04d68287b 100644
--- a/libstdc++-v3/testsuite/23_containers/multimap/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/multimap/requirements/partial_specialization/1.cc
diff --git a/libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/1.cc
index 3ed6701ac6b..3ed6701ac6b 100644
--- a/libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/1.cc
diff --git a/libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/2.cc
index c1e69b76832..c1e69b76832 100644
--- a/libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/2.cc
diff --git a/libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc
index 94780977369..94780977369 100644
--- a/libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/3.cc
+++ b/libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc
diff --git a/libstdc++-v3/testsuite/23_containers/multiset/1.cc b/libstdc++-v3/testsuite/23_containers/multiset/requirements/partial_specialization/1.cc
index 2df195f4fd8..2df195f4fd8 100644
--- a/libstdc++-v3/testsuite/23_containers/multiset/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/multiset/requirements/partial_specialization/1.cc
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
index 00000000000..648040d7e26
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc
@@ -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
index 00000000000..081f73ac7f3
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc
@@ -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/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/1.cc
index 7eb7248e150..7eb7248e150 100644
--- a/libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/1.cc
diff --git a/libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/2.cc
index 44bc5debb51..44bc5debb51 100644
--- a/libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/2.cc
diff --git a/libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/3.cc
index 1f2c69bb992..1f2c69bb992 100644
--- a/libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/3.cc
+++ b/libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/3.cc
diff --git a/libstdc++-v3/testsuite/23_containers/set/1.cc b/libstdc++-v3/testsuite/23_containers/set/requirements/partial_specialization/1.cc
index 9a9a78168d4..9a9a78168d4 100644
--- a/libstdc++-v3/testsuite/23_containers/set/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/set/requirements/partial_specialization/1.cc
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
index 00000000000..ee0a2446333
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc
@@ -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/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/1.cc
index 58de322b151..58de322b151 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/1.cc
diff --git a/libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/2.cc
index 0a48971380e..0a48971380e 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/2.cc
diff --git a/libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc
index 263a7c875fc..263a7c875fc 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/3.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc
diff --git a/libstdc++-v3/testsuite/23_containers/vector/1.cc b/libstdc++-v3/testsuite/23_containers/vector/requirements/partial_specialization/1.cc
index 074912db7e5..074912db7e5 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/requirements/partial_specialization/1.cc
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
index 00000000000..ce2f1ff41de
--- /dev/null
+++ b/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/2.cc
@@ -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
index 00000000000..527301af6f2
--- /dev/null
+++ b/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc
@@ -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
index 00000000000..1d2d4e0b15d
--- /dev/null
+++ b/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/container.cc
@@ -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
index 00000000000..dedcefb9b16
--- /dev/null
+++ b/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/explicit_instantiation.cc
@@ -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.cc b/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/typedefs.cc
index 9105a5591d5..3253d44a946 100644
--- a/libstdc++-v3/testsuite/24_iterators/back_insert_iterator.cc
+++ b/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/typedefs.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
@@ -27,14 +28,8 @@ 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 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;
@@ -42,30 +37,3 @@ void test01()
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/front_insert_iterator/2.cc b/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/2.cc
new file mode 100644
index 00000000000..fee624b5172
--- /dev/null
+++ b/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/2.cc
@@ -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
index 00000000000..f037f76a64a
--- /dev/null
+++ b/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc
@@ -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
index 00000000000..696292d2575
--- /dev/null
+++ b/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/container.cc
@@ -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
index 00000000000..b6f13b197ca
--- /dev/null
+++ b/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/explicit_instantiation.cc
@@ -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.cc b/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/typedefs.cc
index bdd024c1f28..a3ce57e5fda 100644
--- a/libstdc++-v3/testsuite/24_iterators/front_insert_iterator.cc
+++ b/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/typedefs.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
@@ -27,14 +28,8 @@ 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 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;
@@ -42,29 +37,3 @@ void test01()
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/headers/iterator/synopsis.cc b/libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis.cc
new file mode 100644
index 00000000000..fdb22f05239
--- /dev/null
+++ b/libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis.cc
@@ -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
index 00000000000..0db2173a890
--- /dev/null
+++ b/libstdc++-v3/testsuite/24_iterators/headers/iterator/types_std.cc
@@ -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
index 951d32987d8..00000000000
--- a/libstdc++-v3/testsuite/24_iterators/insert_iterator.cc
+++ /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
index 00000000000..4a8222a7358
--- /dev/null
+++ b/libstdc++-v3/testsuite/24_iterators/insert_iterator/2.cc
@@ -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
index 00000000000..5becd2e8755
--- /dev/null
+++ b/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/base_classes.cc
@@ -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
index 00000000000..b4efd62e762
--- /dev/null
+++ b/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/container.cc
@@ -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
index 00000000000..d056073ca5a
--- /dev/null
+++ b/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/explicit_instantiation.cc
@@ -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
index 00000000000..7ebed33a9e4
--- /dev/null
+++ b/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/typedefs.cc
@@ -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/2.cc
index db57f665d13..ea26105b43d 100644
--- a/libstdc++-v3/testsuite/24_iterators/istream_iterator.cc
+++ b/libstdc++-v3/testsuite/24_iterators/istream_iterator/2.cc
@@ -24,32 +24,6 @@
#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;
@@ -86,7 +60,6 @@ void test02()
int main()
{
- test01();
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
index 00000000000..c51013e3d50
--- /dev/null
+++ b/libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/base_classes.cc
@@ -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/17_intro/header_cstring.cc b/libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/explicit_instantiation.cc
index 0f58fc935e7..04f7bd9f469 100644
--- a/libstdc++-v3/testsuite/17_intro/header_cstring.cc
+++ b/libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/explicit_instantiation.cc
@@ -1,4 +1,5 @@
-// 2000-01-01 bkoz
+// { dg-do compile }
+// 2001-06-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
//
@@ -18,14 +19,11 @@
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// 17.4.1.2 Headers, cstring
+// 24.5.1 Template class istream_iterator
-#include <cstring>
+#include <iterator>
+#include <sstream>
+#include <testsuite_hooks.h>
-
-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;
-}
+// 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
index 00000000000..17b540cb56e
--- /dev/null
+++ b/libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/typedefs.cc
@@ -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/requirements/base_classes.cc b/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc
new file mode 100644
index 00000000000..c1ee75c767d
--- /dev/null
+++ b/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc
@@ -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/17_intro/header_sstream.cc b/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/explicit_instantiation.cc
index d8689aedae3..a9560f011ef 100644
--- a/libstdc++-v3/testsuite/17_intro/header_sstream.cc
+++ b/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/explicit_instantiation.cc
@@ -1,6 +1,7 @@
-// 1999-07-01 bkoz
+// { dg-do compile }
+// 1999-06-28 bkoz
-// Copyright (C) 1999 Free Software Foundation, Inc.
+// 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
@@ -18,13 +19,10 @@
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// 17.4.1.2 Headers, sstream
+// 24.5.3 template class istreambuf_iterator
#include <sstream>
+#include <iterator>
#include <testsuite_hooks.h>
-
-int main(void)
-{
- return 0;
-}
+template class std::istreambuf_iterator<char>;
diff --git a/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/1.cc b/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/typedefs.cc
index 3d3fec42409..810163d2d4d 100644
--- a/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/1.cc
+++ b/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/typedefs.cc
@@ -29,16 +29,8 @@ 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 istreambuf_iterator<char> test_iterator;
typedef test_iterator::value_type value_type;
typedef test_iterator::difference_type difference_type;
typedef test_iterator::pointer pointer;
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
index 00000000000..f8980f34bf2
--- /dev/null
+++ b/libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc
@@ -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
index 00000000000..0c7644c7704
--- /dev/null
+++ b/libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/explicit_instantiation.cc
@@ -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.cc b/libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/typedefs.cc
index 6e291f167ea..d7a0835683d 100644
--- a/libstdc++-v3/testsuite/24_iterators/ostream_iterator.cc
+++ b/libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/typedefs.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 2001-06-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2001 Free Software Foundation, Inc.
@@ -28,14 +29,8 @@ 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 ostream_iterator<long> test_iterator;
typedef test_iterator::value_type value_type;
typedef test_iterator::difference_type difference_type;
typedef test_iterator::pointer pointer;
@@ -46,12 +41,3 @@ void test01()
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/ostreambuf_iterator/requirements/base_classes.cc b/libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc
new file mode 100644
index 00000000000..1fe0a8f50e3
--- /dev/null
+++ b/libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc
@@ -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
index 00000000000..c46caae1fde
--- /dev/null
+++ b/libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/explicit_instantiation.cc
@@ -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/1.cc b/libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/typedefs.cc
index e6241343681..bc0266b50eb 100644
--- a/libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/1.cc
+++ b/libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/typedefs.cc
@@ -29,14 +29,8 @@ 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 ostreambuf_iterator<char> test_iterator;
typedef test_iterator::value_type value_type;
typedef test_iterator::difference_type difference_type;
typedef test_iterator::pointer pointer;
diff --git a/libstdc++-v3/testsuite/24_iterators/26020.cc b/libstdc++-v3/testsuite/24_iterators/random_access_iterator/26020.cc
index 80c4e715d1b..80c4e715d1b 100644
--- a/libstdc++-v3/testsuite/24_iterators/26020.cc
+++ b/libstdc++-v3/testsuite/24_iterators/random_access_iterator/26020.cc
diff --git a/libstdc++-v3/testsuite/24_iterators/iterator.cc b/libstdc++-v3/testsuite/24_iterators/random_access_iterator/string_vector_iterators.cc
index fb61d8004db..fb61d8004db 100644
--- a/libstdc++-v3/testsuite/24_iterators/iterator.cc
+++ b/libstdc++-v3/testsuite/24_iterators/random_access_iterator/string_vector_iterators.cc
diff --git a/libstdc++-v3/testsuite/24_iterators/reverse_iterator/2.cc b/libstdc++-v3/testsuite/24_iterators/reverse_iterator/2.cc
index 225390cd82c..481c209adf0 100644
--- a/libstdc++-v3/testsuite/24_iterators/reverse_iterator/2.cc
+++ b/libstdc++-v3/testsuite/24_iterators/reverse_iterator/2.cc
@@ -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/1.cc b/libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc
index 70c4e41a655..9029df0f699 100644
--- a/libstdc++-v3/testsuite/24_iterators/reverse_iterator/1.cc
+++ b/libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc
@@ -38,14 +38,4 @@ void test01()
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*>;
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
index 00000000000..0981dbfe884
--- /dev/null
+++ b/libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/current.cc
@@ -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
index 00000000000..f0e2351fe06
--- /dev/null
+++ b/libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/explicit_instantiation.cc
@@ -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
index 00000000000..d9870444456
--- /dev/null
+++ b/libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/typedefs.cc
@@ -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
index 00000000000..032fa31efec
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/headers/algorithm/synopsis.cc
@@ -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
index 00000000000..fcbf50bce2f
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/headers/cstdlib/functions_std.cc
@@ -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/headers/cmath/19322.cc
index f763b21bdf8..f763b21bdf8 100644
--- a/libstdc++-v3/testsuite/26_numerics/cmath/19322.cc
+++ b/libstdc++-v3/testsuite/26_numerics/headers/cmath/19322.cc
diff --git a/libstdc++-v3/testsuite/26_numerics/cmath/c99_classification_macros_c++.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c++.cc
index 5455008c428..5455008c428 100644
--- a/libstdc++-v3/testsuite/26_numerics/cmath/c99_classification_macros_c++.cc
+++ b/libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c++.cc
diff --git a/libstdc++-v3/testsuite/26_numerics/cmath/c99_classification_macros_c.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc
index a9cd0584a33..a9cd0584a33 100644
--- a/libstdc++-v3/testsuite/26_numerics/cmath/c99_classification_macros_c.cc
+++ b/libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc
diff --git a/libstdc++-v3/testsuite/26_numerics/cmath/c_math.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/c_math.cc
index fd0f7c94cf1..fd0f7c94cf1 100644
--- a/libstdc++-v3/testsuite/26_numerics/cmath/c_math.cc
+++ b/libstdc++-v3/testsuite/26_numerics/headers/cmath/c_math.cc
diff --git a/libstdc++-v3/testsuite/26_numerics/cmath/c_math_dynamic.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/c_math_dynamic.cc
index b8f2f921215..b8f2f921215 100644
--- a/libstdc++-v3/testsuite/26_numerics/cmath/c_math_dynamic.cc
+++ b/libstdc++-v3/testsuite/26_numerics/headers/cmath/c_math_dynamic.cc
diff --git a/libstdc++-v3/testsuite/26_numerics/cmath/fabs_inline.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/fabs_inline.cc
index 742a3a9b221..742a3a9b221 100644
--- a/libstdc++-v3/testsuite/26_numerics/cmath/fabs_inline.cc
+++ b/libstdc++-v3/testsuite/26_numerics/headers/cmath/fabs_inline.cc
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
index 00000000000..046b57fd4e9
--- /dev/null
+++ b/libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std.cc
@@ -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
index 00000000000..5b70b0e30d2
--- /dev/null
+++ b/libstdc++-v3/testsuite/26_numerics/headers/cmath/macros.cc
@@ -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/cmath/overloads.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/overloads.cc
index 4d41a9640b4..4d41a9640b4 100644
--- a/libstdc++-v3/testsuite/26_numerics/cmath/overloads.cc
+++ b/libstdc++-v3/testsuite/26_numerics/headers/cmath/overloads.cc
diff --git a/libstdc++-v3/testsuite/26_numerics/cmath/powi.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/powi.cc
index 8a56f2fddab..8a56f2fddab 100644
--- a/libstdc++-v3/testsuite/26_numerics/cmath/powi.cc
+++ b/libstdc++-v3/testsuite/26_numerics/headers/cmath/powi.cc
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
index 00000000000..8fba3a3c21b
--- /dev/null
+++ b/libstdc++-v3/testsuite/26_numerics/headers/complex/synopsis.cc
@@ -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/cstdlib/13943.cc b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/13943.cc
index 08ab36e4e63..08ab36e4e63 100644
--- a/libstdc++-v3/testsuite/26_numerics/cstdlib/13943.cc
+++ b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/13943.cc
diff --git a/libstdc++-v3/testsuite/17_intro/header_cstdlib.cc b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/2190.cc
index 82e21b6f012..badcecee8a1 100644
--- a/libstdc++-v3/testsuite/17_intro/header_cstdlib.cc
+++ b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/2190.cc
@@ -30,15 +30,8 @@ void test01()
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/26_numerics/headers/cstdlib/functions_std.cc b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/functions_std.cc
new file mode 100644
index 00000000000..6b5d3082f41
--- /dev/null
+++ b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/functions_std.cc
@@ -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
index 00000000000..dc8231a9ca4
--- /dev/null
+++ b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/macros.cc
@@ -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
index 00000000000..6af857dc6dc
--- /dev/null
+++ b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/types_std.cc
@@ -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
index 00000000000..c322c610255
--- /dev/null
+++ b/libstdc++-v3/testsuite/26_numerics/headers/numeric/synopsis.cc
@@ -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
index 00000000000..90a542b4066
--- /dev/null
+++ b/libstdc++-v3/testsuite/26_numerics/headers/valarray/synopsis.cc
@@ -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
index 00000000000..38824dc24dd
--- /dev/null
+++ b/libstdc++-v3/testsuite/26_numerics/headers/valarray/types_std.cc
@@ -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/valarray/27867.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/27867.cc
index 7c208f4b100..7c208f4b100 100644
--- a/libstdc++-v3/testsuite/26_numerics/valarray/27867.cc
+++ b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/27867.cc
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/28277.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/28277.cc
index 52f4c714085..52f4c714085 100644
--- a/libstdc++-v3/testsuite/26_numerics/valarray/28277.cc
+++ b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/28277.cc
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/30416.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/30416.cc
index c51329221d5..c51329221d5 100644
--- a/libstdc++-v3/testsuite/26_numerics/valarray/30416.cc
+++ b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/30416.cc
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/binary_closure.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/binary_closure.cc
index 7dbcfbd5228..7dbcfbd5228 100644
--- a/libstdc++-v3/testsuite/26_numerics/valarray/binary_closure.cc
+++ b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/binary_closure.cc
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/dr543.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/dr543.cc
index 9afa93a4b83..9afa93a4b83 100644
--- a/libstdc++-v3/testsuite/26_numerics/valarray/dr543.cc
+++ b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/dr543.cc
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/slice.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/slice.cc
index d7ad877d9d7..d7ad877d9d7 100644
--- a/libstdc++-v3/testsuite/26_numerics/valarray/slice.cc
+++ b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/slice.cc
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/slice_array_assignment.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/slice_array_assignment.cc
index 34888be44e9..34888be44e9 100644
--- a/libstdc++-v3/testsuite/26_numerics/valarray/slice_array_assignment.cc
+++ b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/slice_array_assignment.cc
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/valarray.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray.cc
index 3c206e354f5..3c206e354f5 100644
--- a/libstdc++-v3/testsuite/26_numerics/valarray/valarray.cc
+++ b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray.cc
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/valarray_const_bracket.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray_const_bracket.cc
index 512cbafd3ce..512cbafd3ce 100644
--- a/libstdc++-v3/testsuite/26_numerics/valarray/valarray_const_bracket.cc
+++ b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray_const_bracket.cc
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/valarray_name_lookup.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray_name_lookup.cc
index 735f65f5df7..735f65f5df7 100644
--- a/libstdc++-v3/testsuite/26_numerics/valarray/valarray_name_lookup.cc
+++ b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray_name_lookup.cc
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/valarray_operators.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray_operators.cc
index 70ad0b0e788..70ad0b0e788 100644
--- a/libstdc++-v3/testsuite/26_numerics/valarray/valarray_operators.cc
+++ b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray_operators.cc
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/valarray_subset_assignment.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray_subset_assignment.cc
index 4ce22afb31a..4ce22afb31a 100644
--- a/libstdc++-v3/testsuite/26_numerics/valarray/valarray_subset_assignment.cc
+++ b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray_subset_assignment.cc
diff --git a/libstdc++-v3/testsuite/26_numerics/numeric/sum_diff.cc b/libstdc++-v3/testsuite/26_numerics/numeric_operations/sum_diff.cc
index e5af462da01..e5af462da01 100644
--- a/libstdc++-v3/testsuite/26_numerics/numeric/sum_diff.cc
+++ b/libstdc++-v3/testsuite/26_numerics/numeric_operations/sum_diff.cc
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/3.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/cons/2020.cc
index 8ead347dc69..8ead347dc69 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/3.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/cons/2020.cc
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/4.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/base_classes.cc
index cef8732b979..9166a1adb2b 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/4.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/base_classes.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2003 Free Software Foundation, Inc.
@@ -31,12 +32,6 @@ void test01()
const base_type* base __attribute__((unused)) = &obj;
}
-int main()
-{
- test01();
- return 0;
-}
-
// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/2.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/explicit_instantiation.cc
index 17c54294b53..f6d3a1cc7e1 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/2.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/explicit_instantiation.cc
@@ -1,3 +1,4 @@
+// { 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
@@ -26,8 +27,6 @@
#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.
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/1.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/typedefs.cc
index baa349e007c..45dcf59479c 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/typedefs.cc
@@ -1,3 +1,4 @@
+// { 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
@@ -24,8 +25,6 @@
#include <fstream>
-// { dg-do compile }
-
// libstdc++/7216
void test01()
{
diff --git a/libstdc++-v3/testsuite/27_io/basic_fstream/3.cc b/libstdc++-v3/testsuite/27_io/basic_fstream/cons/3.cc
index 4b01bd10ef4..4b01bd10ef4 100644
--- a/libstdc++-v3/testsuite/27_io/basic_fstream/3.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_fstream/cons/3.cc
diff --git a/libstdc++-v3/testsuite/27_io/basic_fstream/4.cc b/libstdc++-v3/testsuite/27_io/basic_fstream/requirements/base_classes.cc
index be994f23be1..71089a311aa 100644
--- a/libstdc++-v3/testsuite/27_io/basic_fstream/4.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_fstream/requirements/base_classes.cc
@@ -1,4 +1,5 @@
-// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
+// { dg-do compile }
+// 2003-03-26 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2003 Free Software Foundation, Inc.
//
@@ -32,12 +33,6 @@ void test01()
const base_type* base __attribute__((unused)) = &obj;
}
-int main()
-{
- test01();
- return 0;
-}
-
// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_fstream/2.cc b/libstdc++-v3/testsuite/27_io/basic_fstream/requirements/explicit_instantiation.cc
index 66e40c81986..d3ddedc0ac9 100644
--- a/libstdc++-v3/testsuite/27_io/basic_fstream/2.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_fstream/requirements/explicit_instantiation.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@@ -34,8 +35,6 @@
#include <testsuite_hooks.h>
#include <testsuite_character.h>
-// { dg-do compile }
-
namespace std
{
using __gnu_test::pod_char;
diff --git a/libstdc++-v3/testsuite/27_io/basic_fstream/1.cc b/libstdc++-v3/testsuite/27_io/basic_fstream/requirements/typedefs.cc
index 6c294f21ab0..a858ae8bcae 100644
--- a/libstdc++-v3/testsuite/27_io/basic_fstream/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_fstream/requirements/typedefs.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
@@ -33,8 +34,6 @@
#include <fstream>
#include <testsuite_hooks.h>
-// { dg-do compile }
-
// libstdc++/7216
void test01()
{
diff --git a/libstdc++-v3/testsuite/27_io/basic_ifstream/3.cc b/libstdc++-v3/testsuite/27_io/basic_ifstream/cons/2020.cc
index 896e7028c23..896e7028c23 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ifstream/3.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ifstream/cons/2020.cc
diff --git a/libstdc++-v3/testsuite/27_io/basic_ifstream/4.cc b/libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/base_classes.cc
index 626da50d523..444c85b87e9 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ifstream/4.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/base_classes.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2003 Free Software Foundation, Inc.
@@ -32,12 +33,6 @@ void test01()
const base_type* base __attribute__((unused)) = &obj;
}
-int main()
-{
- test01();
- return 0;
-}
-
// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_ifstream/2.cc b/libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/explicit_instantiation.cc
index 191ef1f4475..630f426c218 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ifstream/2.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/explicit_instantiation.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
@@ -32,8 +33,6 @@
#include <fstream>
-// { dg-do compile }
-
namespace std
{
typedef short type_t;
diff --git a/libstdc++-v3/testsuite/27_io/basic_ifstream/1.cc b/libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/typedefs.cc
index 2a6482a8ff1..e0e32c3e040 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ifstream/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/typedefs.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2002 Free Software Foundation, Inc.
@@ -32,8 +33,6 @@
#include <fstream>
-// { dg-do compile }
-
// libstdc++/7216
void test01()
{
diff --git a/libstdc++-v3/testsuite/27_io/basic_ios/3.cc b/libstdc++-v3/testsuite/27_io/basic_ios/cons/2020.cc
index 6b3f7006f45..6b3f7006f45 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ios/3.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ios/cons/2020.cc
diff --git a/libstdc++-v3/testsuite/27_io/basic_ios/4.cc b/libstdc++-v3/testsuite/27_io/basic_ios/requirements/base_classes.cc
index de7b5495efd..f748ecef6e0 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ios/4.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ios/requirements/base_classes.cc
@@ -1,4 +1,5 @@
-// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
+// { dg-do compile }
+// 2003-03-26 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2003 Free Software Foundation, Inc.
//
@@ -34,12 +35,6 @@ void test01()
const base_type* base __attribute__((unused)) = &obj;
}
-int main()
-{
- test01();
- return 0;
-}
-
// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_ios/2.cc b/libstdc++-v3/testsuite/27_io/basic_ios/requirements/explicit_instantiation.cc
index 89c71e65e8e..581bff6ffe1 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ios/2.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ios/requirements/explicit_instantiation.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
@@ -32,8 +33,6 @@
#include <ios>
-// { dg-do compile }
-
namespace std
{
typedef short type_t;
diff --git a/libstdc++-v3/testsuite/27_io/basic_ios/1.cc b/libstdc++-v3/testsuite/27_io/basic_ios/requirements/typedefs.cc
index 6481c710284..818a159fb3d 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ios/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ios/requirements/typedefs.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2002 Free Software Foundation, Inc.
@@ -32,8 +33,6 @@
#include <ios>
-// { dg-do compile }
-
// libstdc++/7216
void test01()
{
diff --git a/libstdc++-v3/testsuite/27_io/basic_iostream/3.cc b/libstdc++-v3/testsuite/27_io/basic_iostream/cons/2020.cc
index e0af3ebd3e6..e0af3ebd3e6 100644
--- a/libstdc++-v3/testsuite/27_io/basic_iostream/3.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_iostream/cons/2020.cc
diff --git a/libstdc++-v3/testsuite/27_io/basic_iostream/4.cc b/libstdc++-v3/testsuite/27_io/basic_iostream/requirements/base_classes.cc
index 26b5fa1579c..63fffa58f4e 100644
--- a/libstdc++-v3/testsuite/27_io/basic_iostream/4.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_iostream/requirements/base_classes.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2003 Free Software Foundation, Inc.
@@ -36,12 +37,6 @@ void test01()
const base_type2* base2 __attribute__((unused)) = &obj;
}
-int main()
-{
- test01();
- return 0;
-}
-
// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_iostream/2.cc b/libstdc++-v3/testsuite/27_io/basic_iostream/requirements/explicit_instantiation.cc
index e5c72362bc5..6b8e0e0c473 100644
--- a/libstdc++-v3/testsuite/27_io/basic_iostream/2.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_iostream/requirements/explicit_instantiation.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 2002-01-08 bkoz
// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
@@ -30,8 +31,6 @@
// 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
diff --git a/libstdc++-v3/testsuite/27_io/basic_iostream/1.cc b/libstdc++-v3/testsuite/27_io/basic_iostream/requirements/typedefs.cc
index e860d4fd3ae..6ff836a6134 100644
--- a/libstdc++-v3/testsuite/27_io/basic_iostream/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_iostream/requirements/typedefs.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 2002-01-08 bkoz
// Copyright (C) 2002 Free Software Foundation, Inc.
@@ -30,8 +31,6 @@
// 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
diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/3.cc b/libstdc++-v3/testsuite/27_io/basic_istream/cons/3.cc
index a2cadef507c..a2cadef507c 100644
--- a/libstdc++-v3/testsuite/27_io/basic_istream/3.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_istream/cons/3.cc
diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/4.cc b/libstdc++-v3/testsuite/27_io/basic_istream/requirements/base_classes.cc
index 3c796f5c823..b6372d7cfa9 100644
--- a/libstdc++-v3/testsuite/27_io/basic_istream/4.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_istream/requirements/base_classes.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2003 Free Software Foundation, Inc.
@@ -34,12 +35,6 @@ void test01()
const base_type* base __attribute__((unused)) = &obj;
}
-int main()
-{
- test01();
- return 0;
-}
-
// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/2.cc b/libstdc++-v3/testsuite/27_io/basic_istream/requirements/explicit_instantiation.cc
index f0cb8011b1e..9fb06d0e46a 100644
--- a/libstdc++-v3/testsuite/27_io/basic_istream/2.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_istream/requirements/explicit_instantiation.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 1999-09-20 bkoz
// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
@@ -35,8 +36,6 @@
#include <testsuite_hooks.h>
#include <testsuite_character.h>
-// { dg-do compile }
-
namespace std
{
using __gnu_test::pod_char;
diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/1.cc b/libstdc++-v3/testsuite/27_io/basic_istream/requirements/typedefs.cc
index 0250f1274e7..932c68e73f3 100644
--- a/libstdc++-v3/testsuite/27_io/basic_istream/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_istream/requirements/typedefs.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 1999-09-20 bkoz
// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
@@ -33,8 +34,6 @@
#include <istream>
#include <testsuite_hooks.h>
-// { dg-do compile }
-
// libstdc++/7216
void test01()
{
diff --git a/libstdc++-v3/testsuite/27_io/basic_istringstream/3.cc b/libstdc++-v3/testsuite/27_io/basic_istringstream/cons/2020.cc
index 9f5285a7df1..9f5285a7df1 100644
--- a/libstdc++-v3/testsuite/27_io/basic_istringstream/3.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_istringstream/cons/2020.cc
diff --git a/libstdc++-v3/testsuite/27_io/basic_istringstream/4.cc b/libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/base_classes.cc
index da0845f733a..38e50e4f9f4 100644
--- a/libstdc++-v3/testsuite/27_io/basic_istringstream/4.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/base_classes.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2003 Free Software Foundation, Inc.
@@ -32,12 +33,6 @@ void test01()
const base_type* base __attribute__((unused)) = &obj;
}
-int main()
-{
- test01();
- return 0;
-}
-
// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_istringstream/2.cc b/libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/explicit_instantiation.cc
index 7f7f9f92520..9ad96d9b0a7 100644
--- a/libstdc++-v3/testsuite/27_io/basic_istringstream/2.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/explicit_instantiation.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
@@ -32,8 +33,6 @@
#include <sstream>
-// { dg-do compile }
-
namespace std
{
typedef short type_t;
diff --git a/libstdc++-v3/testsuite/27_io/basic_istringstream/1.cc b/libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/typedefs.cc
index b87fb24bd08..5999c59caff 100644
--- a/libstdc++-v3/testsuite/27_io/basic_istringstream/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/typedefs.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2002 Free Software Foundation, Inc.
@@ -32,8 +33,6 @@
#include <sstream>
-// { dg-do compile }
-
// libstdc++/7216
void test01()
{
diff --git a/libstdc++-v3/testsuite/27_io/basic_ofstream/3.cc b/libstdc++-v3/testsuite/27_io/basic_ofstream/cons/2020.cc
index 8ef65088924..8ef65088924 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ofstream/3.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ofstream/cons/2020.cc
diff --git a/libstdc++-v3/testsuite/27_io/basic_ofstream/4.cc b/libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/base_classes.cc
index ae5b727c243..fe2282990d4 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ofstream/4.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/base_classes.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2003 Free Software Foundation, Inc.
@@ -32,12 +33,6 @@ void test01()
const base_type* base __attribute__((unused)) = &obj;
}
-int main()
-{
- test01();
- return 0;
-}
-
// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_ofstream/2.cc b/libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/explicit_instantiations.cc
index 4f1dfc093ad..f1395e9a80b 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ofstream/2.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/explicit_instantiations.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
@@ -32,8 +33,6 @@
#include <fstream>
-// { dg-do compile }
-
namespace std
{
typedef short type_t;
diff --git a/libstdc++-v3/testsuite/27_io/basic_ofstream/1.cc b/libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/typedefs.cc
index 83a9cd17522..3c8df7fef88 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ofstream/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/typedefs.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2002 Free Software Foundation, Inc.
@@ -32,8 +33,6 @@
#include <fstream>
-// { dg-do compile }
-
// libstdc++/7216
void test01()
{
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/3.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/cons/2020.cc
index 517176628f3..517176628f3 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ostream/3.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ostream/cons/2020.cc
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/4.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/requirements/base_classes.cc
index a365762f21b..a36699768ac 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ostream/4.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ostream/requirements/base_classes.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2003 Free Software Foundation, Inc.
@@ -34,12 +35,6 @@ void test01()
const base_type* base __attribute__((unused)) = &obj;
}
-int main()
-{
- test01();
- return 0;
-}
-
// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/2.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/requirements/explicit_instantiation.cc
index 6b1f7121fe1..27e72a64f6d 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ostream/2.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ostream/requirements/explicit_instantiation.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 1999-09-20 bkoz
// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
@@ -35,8 +36,6 @@
#include <testsuite_hooks.h>
#include <testsuite_character.h>
-// { dg-do compile }
-
namespace std
{
using __gnu_test::pod_char;
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/requirements/typedefs.cc
index f72ab120f0e..5cac0450294 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ostream/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ostream/requirements/typedefs.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 1999-09-20 bkoz
// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
@@ -33,8 +34,6 @@
#include <ostream>
#include <testsuite_hooks.h>
-// { dg-do compile }
-
// libstdc++/7216
void test01()
{
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostringstream/3.cc b/libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/2020.cc
index e68ea0eeacd..e68ea0eeacd 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ostringstream/3.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/2020.cc
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostringstream/4.cc b/libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/base_classes.cc
index 5a3c40309ba..b4fbe040157 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ostringstream/4.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/base_classes.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2003 Free Software Foundation, Inc.
@@ -32,12 +33,6 @@ void test01()
const base_type* base __attribute__((unused)) = &obj;
}
-int main()
-{
- test01();
- return 0;
-}
-
// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostringstream/2.cc b/libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/explicit_instantiation.cc
index 105318941d7..dc509b818e7 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ostringstream/2.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/explicit_instantiation.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
@@ -32,8 +33,6 @@
#include <sstream>
-// { dg-do compile }
-
namespace std
{
typedef short type_t;
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostringstream/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/typedefs.cc
index fa4ae5edc30..3fbaa4f1f1b 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ostringstream/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/typedefs.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2002 Free Software Foundation, Inc.
@@ -32,8 +33,6 @@
#include <sstream>
-// { dg-do compile }
-
// libstdc++/7216
void test01()
{
diff --git a/libstdc++-v3/testsuite/27_io/basic_streambuf/3.cc b/libstdc++-v3/testsuite/27_io/basic_streambuf/cons/2020.cc
index 765ca167d38..765ca167d38 100644
--- a/libstdc++-v3/testsuite/27_io/basic_streambuf/3.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_streambuf/cons/2020.cc
diff --git a/libstdc++-v3/testsuite/27_io/basic_streambuf/2.cc b/libstdc++-v3/testsuite/27_io/basic_streambuf/requirements/base_classes.cc
index da7866c8cca..da7866c8cca 100644
--- a/libstdc++-v3/testsuite/27_io/basic_streambuf/2.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_streambuf/requirements/base_classes.cc
diff --git a/libstdc++-v3/testsuite/27_io/basic_streambuf/1.cc b/libstdc++-v3/testsuite/27_io/basic_streambuf/requirements/typedefs.cc
index cf16738dd5b..cf16738dd5b 100644
--- a/libstdc++-v3/testsuite/27_io/basic_streambuf/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_streambuf/requirements/typedefs.cc
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringbuf/3.cc b/libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/2020.cc
index ced07b58fae..ced07b58fae 100644
--- a/libstdc++-v3/testsuite/27_io/basic_stringbuf/3.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/2020.cc
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringbuf/5.cc b/libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/base_classes.cc
index b341b09c7c0..b1ab8f13ee9 100644
--- a/libstdc++-v3/testsuite/27_io/basic_stringbuf/5.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/base_classes.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2003 Free Software Foundation, Inc.
@@ -31,12 +32,6 @@ void test01()
const base_type* base __attribute__((unused)) = &obj;
}
-int main()
-{
- test01();
- return 0;
-}
-
// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringbuf/2.cc b/libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/explicit_instantiation/2.cc
index 354e2274925..696a4937bae 100644
--- a/libstdc++-v3/testsuite/27_io/basic_stringbuf/2.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/explicit_instantiation/2.cc
@@ -1,3 +1,4 @@
+// { 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
@@ -26,8 +27,6 @@
#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.
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringbuf/4.cc b/libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/explicit_instantiation/4.cc
index d4412cdb9f4..0a2c031baf6 100644
--- a/libstdc++-v3/testsuite/27_io/basic_stringbuf/4.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/explicit_instantiation/4.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 2003-04-07 bkoz
// Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
@@ -26,8 +27,6 @@
#include <testsuite_allocator.h>
#include <testsuite_character.h>
-// { dg-do compile }
-
namespace std
{
using __gnu_test::pod_char;
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringbuf/1.cc b/libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/typedefs.cc
index a2da4054d4b..34999e4e906 100644
--- a/libstdc++-v3/testsuite/27_io/basic_stringbuf/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/typedefs.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
@@ -33,8 +34,6 @@
#include <sstream>
#include <testsuite_hooks.h>
-// { dg-do compile }
-
// libstdc++/7216
void test01()
{
@@ -46,9 +45,3 @@ void test01()
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_stringstream/3.cc b/libstdc++-v3/testsuite/27_io/basic_stringstream/cons/2020.cc
index d47a67a0845..d47a67a0845 100644
--- a/libstdc++-v3/testsuite/27_io/basic_stringstream/3.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_stringstream/cons/2020.cc
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringstream/4.cc b/libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/base_classes.cc
index 43eecf9c709..a6c03712572 100644
--- a/libstdc++-v3/testsuite/27_io/basic_stringstream/4.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/base_classes.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2003 Free Software Foundation, Inc.
@@ -32,12 +33,6 @@ void test01()
const base_type* base __attribute__((unused)) = &obj;
}
-int main()
-{
- test01();
- return 0;
-}
-
// more surf!!!
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringstream/2.cc b/libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/explicit_instantiation.cc
index 97a1ea8c788..6279e42ba4d 100644
--- a/libstdc++-v3/testsuite/27_io/basic_stringstream/2.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/explicit_instantiation.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@@ -34,8 +35,6 @@
#include <testsuite_hooks.h>
#include <testsuite_character.h>
-// { dg-do compile }
-
namespace std
{
using __gnu_test::pod_char;
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringstream/1.cc b/libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/typedefs.cc
index 294e7a2f11a..6b44601dbe5 100644
--- a/libstdc++-v3/testsuite/27_io/basic_stringstream/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/typedefs.cc
@@ -1,3 +1,4 @@
+// { dg-do compile }
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
@@ -33,8 +34,6 @@
#include <sstream>
#include <testsuite_hooks.h>
-// { dg-do compile }
-
// libstdc++/7216
void test01()
{
diff --git a/libstdc++-v3/testsuite/27_io/fpos/1.cc b/libstdc++-v3/testsuite/27_io/fpos/requirements/explicit_instantiation.cc
index 588ac19b1b8..588ac19b1b8 100644
--- a/libstdc++-v3/testsuite/27_io/fpos/1.cc
+++ b/libstdc++-v3/testsuite/27_io/fpos/requirements/explicit_instantiation.cc
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
index 00000000000..c3da4ca3273
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/headers/cstdio/functions_std.cc
@@ -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
index 00000000000..4c15f4fb9dc
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/headers/cstdio/macros.cc
@@ -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
index 00000000000..0ad9807758a
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/headers/cstdio/types_std.cc
@@ -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
index 00000000000..9b8dae61989
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/headers/fstream/synopsis.cc
@@ -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
index 00000000000..9707680a9d5
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/headers/fstream/types_std.cc
@@ -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
index 00000000000..79d055026e3
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/headers/iomanip/synopsis.cc
@@ -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
index 00000000000..a8f27d945da
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/headers/ios/synopsis.cc
@@ -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
index 00000000000..b96720ac3b5
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/headers/ios/types_std.cc
@@ -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
index 00000000000..b2f0e2f02f7
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/headers/iostream/synopsis.cc
@@ -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/17_intro/header_iostream.cc b/libstdc++-v3/testsuite/27_io/headers/iostream/types_std.cc
index 2a6202d99bb..881b52ba0c5 100644
--- a/libstdc++-v3/testsuite/17_intro/header_iostream.cc
+++ b/libstdc++-v3/testsuite/27_io/headers/iostream/types_std.cc
@@ -1,6 +1,6 @@
-// 1999-07-01 bkoz
+// { dg-do compile }
-// Copyright (C) 1999 Free Software Foundation, Inc.
+// 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
@@ -18,13 +18,17 @@
// 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)
+namespace gnu
{
- return 0;
+ 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
index 00000000000..22ef87ee7d6
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/headers/istream/synopsis.cc
@@ -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/17_intro/header_istream.cc b/libstdc++-v3/testsuite/27_io/headers/istream/types_std.cc
index 90326d6c7ce..16f9680ce23 100644
--- a/libstdc++-v3/testsuite/17_intro/header_istream.cc
+++ b/libstdc++-v3/testsuite/27_io/headers/istream/types_std.cc
@@ -1,6 +1,6 @@
-// 1999-07-01 bkoz
+// { dg-do compile }
-// Copyright (C) 1999 Free Software Foundation, Inc.
+// 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
@@ -18,13 +18,13 @@
// 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)
+namespace gnu
{
- return 0;
+ 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
index 00000000000..cfb75fe04ba
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/headers/ostream/synopsis.cc
@@ -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/17_intro/header_ostream.cc b/libstdc++-v3/testsuite/27_io/headers/ostream/types_std.cc
index 901bfec22d5..973b2a00e81 100644
--- a/libstdc++-v3/testsuite/17_intro/header_ostream.cc
+++ b/libstdc++-v3/testsuite/27_io/headers/ostream/types_std.cc
@@ -1,6 +1,6 @@
-// 1999-07-01 bkoz
+// { dg-do compile }
-// Copyright (C) 1999 Free Software Foundation, Inc.
+// 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
@@ -18,13 +18,10 @@
// 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)
+namespace gnu
{
- return 0;
+ 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
index 00000000000..5fd2186e748
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/headers/sstream/synopsis.cc
@@ -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
index 00000000000..c6ebcbbb9ef
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/headers/sstream/types_std.cc
@@ -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/17_intro/header_cstdio.cc b/libstdc++-v3/testsuite/27_io/headers/streambuf/synopsis.cc
index 688df8d0840..a8a07300acd 100644
--- a/libstdc++-v3/testsuite/17_intro/header_cstdio.cc
+++ b/libstdc++-v3/testsuite/27_io/headers/streambuf/synopsis.cc
@@ -1,6 +1,6 @@
-// 2000-01-01 bkoz
+// { dg-do compile }
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+// 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
@@ -18,13 +18,11 @@
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// 17.4.1.2 Headers, cstdio
+#include <streambuf>
-#include <cstdio>
-
-int main(void)
-{
- // Make sure size_t is in namespace std
- std::size_t i __attribute__((unused)) = 5;
- return 0;
+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/17_intro/header_streambuf.cc b/libstdc++-v3/testsuite/27_io/headers/streambuf/types_std.cc
index ac67481e2b7..ca112544b6f 100644
--- a/libstdc++-v3/testsuite/17_intro/header_streambuf.cc
+++ b/libstdc++-v3/testsuite/27_io/headers/streambuf/types_std.cc
@@ -1,6 +1,6 @@
-// 1999-07-01 bkoz
+// { dg-do compile }
-// Copyright (C) 1999 Free Software Foundation, Inc.
+// 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
@@ -18,13 +18,10 @@
// 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)
+namespace gnu
{
- return 0;
+ typedef std::streambuf t1;
+ typedef std::wstreambuf t2;
}
diff --git a/libstdc++-v3/testsuite/ext/debug_allocator/instantiate.cc b/libstdc++-v3/testsuite/ext/debug_allocator/explicit_instantiation.cc
index 74731df342a..74731df342a 100644
--- a/libstdc++-v3/testsuite/ext/debug_allocator/instantiate.cc
+++ b/libstdc++-v3/testsuite/ext/debug_allocator/explicit_instantiation.cc
diff --git a/libstdc++-v3/testsuite/ext/hash_map/instantiate.cc b/libstdc++-v3/testsuite/ext/hash_map/requirements/explicit_instantiation.cc
index 85f1ba258e4..85f1ba258e4 100644
--- a/libstdc++-v3/testsuite/ext/hash_map/instantiate.cc
+++ b/libstdc++-v3/testsuite/ext/hash_map/requirements/explicit_instantiation.cc
diff --git a/libstdc++-v3/testsuite/ext/hash_set/instantiate.cc b/libstdc++-v3/testsuite/ext/hash_set/requirements/explicit_instantiation.cc
index 9d6f398d4a9..9d6f398d4a9 100644
--- a/libstdc++-v3/testsuite/ext/hash_set/instantiate.cc
+++ b/libstdc++-v3/testsuite/ext/hash_set/requirements/explicit_instantiation.cc
diff --git a/libstdc++-v3/testsuite/ext/headers.cc b/libstdc++-v3/testsuite/ext/headers.cc
index ec95fb95264..af66604377e 100644
--- a/libstdc++-v3/testsuite/ext/headers.cc
+++ b/libstdc++-v3/testsuite/ext/headers.cc
@@ -25,21 +25,37 @@
// 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/instantiate.cc b/libstdc++-v3/testsuite/ext/malloc_allocator/explicit_instantiation.cc
index ec48840c841..ec48840c841 100644
--- a/libstdc++-v3/testsuite/ext/malloc_allocator/instantiate.cc
+++ b/libstdc++-v3/testsuite/ext/malloc_allocator/explicit_instantiation.cc
diff --git a/libstdc++-v3/testsuite/ext/mt_allocator/instantiate.cc b/libstdc++-v3/testsuite/ext/mt_allocator/explicit_instantiation.cc
index 4855226ff07..4855226ff07 100644
--- a/libstdc++-v3/testsuite/ext/mt_allocator/instantiate.cc
+++ b/libstdc++-v3/testsuite/ext/mt_allocator/explicit_instantiation.cc
diff --git a/libstdc++-v3/testsuite/ext/pool_allocator/instantiate.cc b/libstdc++-v3/testsuite/ext/pool_allocator/explicit_instantiation.cc
index a52ca381031..a52ca381031 100644
--- a/libstdc++-v3/testsuite/ext/pool_allocator/instantiate.cc
+++ b/libstdc++-v3/testsuite/ext/pool_allocator/explicit_instantiation.cc
diff --git a/libstdc++-v3/testsuite/ext/slist/instantiate.cc b/libstdc++-v3/testsuite/ext/slist/requirements/explicit_instantiation.cc
index a4dff11f3ee..a4dff11f3ee 100644
--- a/libstdc++-v3/testsuite/ext/slist/instantiate.cc
+++ b/libstdc++-v3/testsuite/ext/slist/requirements/explicit_instantiation.cc
diff --git a/libstdc++-v3/testsuite/ext/stdio_filebuf/char/1.cc b/libstdc++-v3/testsuite/ext/stdio_filebuf/requirements/explicit_instantiation.cc
index 8ec2a13f32c..8ec2a13f32c 100644
--- a/libstdc++-v3/testsuite/ext/stdio_filebuf/char/1.cc
+++ b/libstdc++-v3/testsuite/ext/stdio_filebuf/requirements/explicit_instantiation.cc
diff --git a/libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/1.cc
index 0bb95ad8eaa..0bb95ad8eaa 100644
--- a/libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/1.cc
+++ b/libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/1.cc
diff --git a/libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/2.cc
index ee22b8b2064..ee22b8b2064 100644
--- a/libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/2.cc
diff --git a/libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/char/1.cc b/libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/char/1.cc
index 5d840e53707..5d840e53707 100644
--- a/libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/char/1.cc
+++ b/libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/char/1.cc
diff --git a/libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/wchar_t/1.cc b/libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/wchar_t/1.cc
index 7893c33bd86..7893c33bd86 100644
--- a/libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/wchar_t/1.cc
+++ b/libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/wchar_t/1.cc
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
index 00000000000..cd6e2b0dcfe
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/2_general_utilities/headers/functional/synopsis.cc
@@ -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
index 00000000000..d3f15203c56
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/synopsis.cc
@@ -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
index 00000000000..3a3717a3301
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/types_std_tr1.cc
@@ -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/requirements/explicit_instantiation/1.cc
index b497ebb0a4a..b497ebb0a4a 100644
--- 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/requirements/explicit_instantiation/1.cc
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/requirements/explicit_instantiation/1.cc
index 015e22ec79b..015e22ec79b 100644
--- 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/requirements/explicit_instantiation/1.cc
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/requirements/explicit_instantiation/1.cc
index 6c22459dab6..6c22459dab6 100644
--- 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/requirements/explicit_instantiation/1.cc
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
index 00000000000..836c67005e7
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/synopsis.cc
@@ -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
index 00000000000..b61e5f2acfb
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/types_std_tr1.cc
@@ -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
index 00000000000..faddc0dcc65
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/using_namespace_std_tr1_placeholders.cc
@@ -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
index 00000000000..83ea1acdf82
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/synopsis.cc
@@ -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
index 00000000000..bdb3a6e3f54
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/types_std_tr1.cc
@@ -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
index 00000000000..fe0c2df42f1
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/synopsis.cc
@@ -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
index 00000000000..2fd21499116
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/types_std_tr1.cc
@@ -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/typedefs.cc
index ced6ba17fdd..ced6ba17fdd 100644
--- 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/typedefs.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/array/requirements/instantiate.cc b/libstdc++-v3/testsuite/tr1/6_containers/array/requirements/explicit_instantiation.cc
index 7ab5c2ad68c..7ab5c2ad68c 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/array/requirements/instantiate.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/array/requirements/explicit_instantiation.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hash/24799.cc b/libstdc++-v3/testsuite/tr1/6_containers/hash/24799.cc
index 90a336bdf2e..90a336bdf2e 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hash/24799.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/hash/24799.cc
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
index 00000000000..4a4916c9cf0
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/base_classes.cc
@@ -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/unordered/instantiate/hash.cc b/libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/explicit_instantiation.cc
index 382d69f715c..382d69f715c 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/hash.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/explicit_instantiation.cc
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
index 00000000000..463f3aca9dc
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/6_containers/headers/array/synopsis.cc
@@ -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
index 00000000000..682593c295a
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/6_containers/headers/functional/synopsis.cc
@@ -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
index 00000000000..72fb92900e9
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/synopsis.cc
@@ -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
index 00000000000..2c543f0df34
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/types_std_tr1.cc
@@ -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
index 00000000000..45080fc40f5
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_map/synopsis.cc
@@ -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
index 00000000000..29cced09bd2
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_set/synopsis.cc
@@ -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
index 00000000000..c2a2321b08a
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/6_containers/tuple/requirements/explicit_instantiation.cc
@@ -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
index a5479932315..00000000000
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/23781.cc
+++ /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/hashtable/24064.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/24064.cc
index 74eabbf53f9..74eabbf53f9 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/24064.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/24064.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-map.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/capacity/29134-map.cc
index 459ace41a88..459ace41a88 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-map.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/capacity/29134-map.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-map.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/erase/24061-map.cc
index 9289b65859c..9289b65859c 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-map.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/erase/24061-map.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/map1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/find/map1.cc
index 8ff05d25d1f..8ff05d25d1f 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/map1.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/find/map1.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-map.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/24061-map.cc
index 8e290afd7f7..8e290afd7f7 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-map.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/24061-map.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/array_syntax.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/array_syntax.cc
index 2664d76eb57..2664d76eb57 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/array_syntax.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/array_syntax.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/map_range.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/map_range.cc
index 424cfb3948b..424cfb3948b 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/map_range.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/map_range.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/map_single.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/map_single.cc
index a4b02e8bdf0..a4b02e8bdf0 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/map_single.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/map_single.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/map.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/explicit_instantiation.cc
index 41ce95db89e..41ce95db89e 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/map.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/explicit_instantiation.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/types/map_iterator.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_neg.cc
index da644048f1b..da644048f1b 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/types/map_iterator.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_neg.cc
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
index 00000000000..8031c6de89d
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_null_neg.cc
@@ -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/swap/unordered_map/1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/swap/1.cc
index d379774926d..d379774926d 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_map/1.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/swap/1.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_map/2.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/swap/2.cc
index 8d708292ae3..8d708292ae3 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_map/2.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/swap/2.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-multimap.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/capacity/29134-multimap.cc
index af41fa154d6..af41fa154d6 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-multimap.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/capacity/29134-multimap.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-multimap.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/erase/24061-multimap.cc
index b9980b73136..b9980b73136 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-multimap.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/erase/24061-multimap.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/multimap1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/find/multimap1.cc
index 1fc3e18addb..1fc3e18addb 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/multimap1.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/find/multimap1.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-multimap.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/24061-multimap.cc
index a744c8bb381..a744c8bb381 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-multimap.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/24061-multimap.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multimap_range.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/multimap_range.cc
index 6296c4fd560..6296c4fd560 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multimap_range.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/multimap_range.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multimap_single.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/multimap_single.cc
index 815b8648ffa..815b8648ffa 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multimap_single.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/multimap_single.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/multimap.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/explicit_instantiation.cc
index d48aef831b6..d48aef831b6 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/multimap.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/explicit_instantiation.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/types/multimap_iterator.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_neg.cc
index a3d705ae81b..a3d705ae81b 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/types/multimap_iterator.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_neg.cc
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
index 00000000000..72b9505ff5d
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_null_neg.cc
@@ -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/swap/unordered_multimap/1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/swap/1.cc
index 7648e08bd62..7648e08bd62 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multimap/1.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/swap/1.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multimap/2.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/swap/2.cc
index f7744ebe854..f7744ebe854 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multimap/2.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/swap/2.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/24054.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/24054.cc
index 073d2407512..073d2407512 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/24054.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/24054.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-multiset.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/capacity/29134-multiset.cc
index 923af9be118..923af9be118 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-multiset.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/capacity/29134-multiset.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-multiset.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/erase/24061-multiset.cc
index a00beab4943..a00beab4943 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-multiset.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/erase/24061-multiset.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/multiset1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/find/multiset1.cc
index b06d511af82..b06d511af82 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/multiset1.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/find/multiset1.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-multiset.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/24061-multiset.cc
index 9467f418ef3..9467f418ef3 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-multiset.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/24061-multiset.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multiset_range.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/multiset_range.cc
index a83fce3cd61..a83fce3cd61 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multiset_range.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/multiset_range.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multiset_single.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/multiset_single.cc
index 48fd1d4b580..48fd1d4b580 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multiset_single.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/multiset_single.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/multiset.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/explicit_instantiation.cc
index 5d1e8710b05..5d1e8710b05 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/multiset.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/explicit_instantiation.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/types/multiset_iterator.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_neg.cc
index 3b3161a0001..3b3161a0001 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/types/multiset_iterator.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_neg.cc
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
index 00000000000..46d79ad7f9c
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_null_neg.cc
@@ -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/swap/unordered_multiset/1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/swap/1.cc
index ca0194e3375..ca0194e3375 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multiset/1.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/swap/1.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multiset/2.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/swap/2.cc
index a95ddd51fc8..a95ddd51fc8 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multiset/2.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/swap/2.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/23053.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/23053.cc
index 8d93c4feddc..8d93c4feddc 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/23053.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/23053.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/23465.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/23465.cc
index 35e52c2c693..35e52c2c693 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/23465.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/23465.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/26127.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/26127.cc
index d14a625b554..d14a625b554 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/26127.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/26127.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/26132.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/26132.cc
index 9d0076e9698..9d0076e9698 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/26132.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/26132.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-set.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/capacity/29134-set.cc
index 5822341c85e..5822341c85e 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-set.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/capacity/29134-set.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-set.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/erase/24061-set.cc
index 202a21d1ddd..202a21d1ddd 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-set.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/erase/24061-set.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/set1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/find/set1.cc
index a39612a1eea..a39612a1eea 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/set1.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/find/set1.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-set.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/24061-set.cc
index c7d670c9f49..c7d670c9f49 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-set.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/24061-set.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/set_range.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/set_range.cc
index bfa4f73b1b2..bfa4f73b1b2 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/set_range.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/set_range.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/set_single.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/set_single.cc
index ab3d68ad8b4..ab3d68ad8b4 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/set_single.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/set_single.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/set.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/explicit_instantiation.cc
index ae3214f1bae..ae3214f1bae 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/set.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/explicit_instantiation.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/types/set_iterator.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_neg.cc
index 40dc9c8ce31..40dc9c8ce31 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/types/set_iterator.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_neg.cc
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
index 00000000000..aca08c950f4
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_null_neg.cc
@@ -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/hashtable/iterators_default_constructor.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterators_default_constructor.cc
index 17705aee04c..17705aee04c 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/iterators_default_constructor.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterators_default_constructor.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_set/1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/swap/1.cc
index 1928c9e1bdc..1928c9e1bdc 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_set/1.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/swap/1.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_set/2.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/swap/2.cc
index 46e859cabac..46e859cabac 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_set/2.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/swap/2.cc
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
index 00000000000..21fc682b8f7
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/using_namespace_std_tr1.cc
@@ -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;
+}