From a024740df47c300e9797ba4ac61f9ec671fa1fd3 Mon Sep 17 00:00:00 2001 From: Benjamin Kosnik Date: Tue, 20 Feb 2007 18:15:01 +0000 Subject: [PATCH] [multiple changes] 2007-02-20 Benjamin Kosnik 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 PR libstdc++/28080 (partial) * include/bits/stl_algobase.h: Do not include , use std::numeric_limits. * include/bits/stl_bvector.h: Use __CHAR_BIT__. * config/locale/gnu/codecvt_members.cc: Include . * config/locale/generic/codecvt_members.cc: Likewise. * include/std/string: Do not include ; do not include , include instead. * include/ext/vstring_fwd.h: Likewise. * include/ext/vstring_util.h: Do not include . * include/tr1/hashtable_policy.h: Include . * 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 , for MB_CUR_MAX. * config/locale/generic/codecvt_members.cc: Likewise. From-SVN: r122168 --- libstdc++-v3/ChangeLog | 897 ++++++++++++++++++ .../testsuite/17_intro/header_cwctype.cc | 54 -- .../testsuite/17_intro/headers/all.cc | 145 +++ .../all_assert_neg.cc} | 0 .../all_c++200x_compatibility.cc} | 0 .../{headers.cc => headers/c++1998/all.cc} | 68 +- .../headers/c++1998/all_multiple_inclusion.cc | 174 ++++ .../17_intro/headers/c++1998/c++.tar | Bin 0 -> 153600 bytes .../17_intro/headers/c++1998/c++_for_c.tar | Bin 0 -> 92160 bytes .../testsuite/17_intro/headers_c++.cc | 84 -- libstdc++-v3/testsuite/17_intro/headers_c.cc | 78 -- .../{header_ios.cc => using_namespace_std.cc} | 14 +- .../18_support/headers/cfloat/values.cc | 54 ++ .../18_support/headers/climits/values.cc | 53 ++ .../headers/csetjmp/functions_std.cc} | 14 +- .../headers/csetjmp/macros.cc} | 16 +- .../18_support/headers/csetjmp/types_std.cc | 26 + .../headers/csignal/functions_std.cc | 27 + .../18_support/headers/csignal/macros.cc | 56 ++ .../18_support/headers/csignal/types_std.cc | 26 + .../headers/cstdarg/macros.cc} | 24 +- .../18_support/headers/cstdarg/types_std.cc | 26 + .../headers/cstddef/macros.cc} | 23 +- .../18_support/headers/cstddef/types_std.cc | 27 + .../headers/cstdlib/functions_std.cc | 31 + .../headers/cstdlib/macros.cc} | 25 +- .../18_support/headers/ctime/functions_std.cc | 26 + .../18_support/headers/ctime/macros.cc | 28 + .../18_support/headers/ctime/types_std.cc | 26 + .../18_support/headers/exception/synopsis.cc | 36 + .../18_support/headers/exception/types_std.cc | 27 + .../18_support/headers/limits/synopsis.cc | 48 + .../18_support/headers/new/synopsis.cc | 43 + .../18_support/headers/new/types_std.cc | 29 + .../18_support/headers/typeinfo/synopsis.cc | 27 + .../18_support/headers/typeinfo/types_std.cc | 29 + .../numeric_limits/{sign.cc => is_signed.cc} | 0 .../requirements/explicit_instantiation/1.cc | 50 + ...on.cc => specialization_default_values.cc} | 0 .../19_diagnostics/headers/cassert/macros.cc | 28 + .../headers/cerrno/macros.cc} | 27 +- .../headers/stdexcept/synopsis.cc | 34 + .../headers/stdexcept/types_std.cc | 34 + .../20_util/headers/cstdlib/functions_std.cc | 29 + .../20_util/headers/cstring/functions_std.cc | 30 + .../20_util/headers/cstring/macros.cc | 28 + .../20_util/headers/cstring/types_std.cc | 26 + .../20_util/headers/ctime/functions_std.cc | 34 + .../testsuite/20_util/headers/ctime/macros.cc | 28 + .../headers/ctime/types_std.cc} | 18 +- .../20_util/headers/functional/synopsis.cc | 101 ++ .../20_util/headers/memory/synopsis.cc | 54 ++ .../20_util/headers/utility/synopsis.cc | 46 + .../utility/using_namespace_std_rel_ops.cc | 26 + .../requirements/explicit_instantiation/1.cc | 34 + .../requirements/explicit_instantiation/1.cc | 34 + .../requirements/base_classes.cc | 37 + .../requirements/explicit_instantiation/1.cc | 34 + .../requirements/typedefs.cc} | 16 +- .../requirements/explicit_instantiation/1.cc | 34 + .../explicit_instantiation}/1.cc | 0 .../explicit_instantiation/debug.cc} | 0 .../headers/cctype/functions_std.cc | 38 + .../headers/cstdlib/functions_std.cc | 36 + .../21_strings/headers/cstdlib/macros.cc | 28 + .../headers/cstring/functions_std.cc | 47 + .../21_strings/headers/cstring/macros.cc | 28 + .../21_strings/headers/cstring/types_std.cc | 26 + .../headers/cwchar/functions_std.cc | 77 ++ .../headers/cwchar/macros.cc} | 35 +- .../21_strings/headers/cwchar/types_std.cc | 28 + .../headers/cwctype/functions_std.cc | 40 + .../21_strings/headers/cwctype/macros.cc | 28 + .../21_strings/headers/cwctype/types_std.cc | 28 + .../21_strings/headers/string/synopsis.cc | 135 +++ .../21_strings/headers/string/types_std.cc | 27 + .../{1.cc => requirements/base_classes.cc} | 11 - .../explicit_instantiation.cc} | 14 +- .../codecvt/requirements/typedefs.cc | 33 + .../{1.cc => requirements/base_classes.cc} | 11 - .../requirements/explicit_instantiation.cc | 34 + .../codecvt_byname/requirements/typedefs.cc | 33 + .../{1.cc => requirements/base_classes.cc} | 10 - .../explicit_instantiation.cc} | 14 +- .../collate/requirements/typedefs.cc | 32 + .../{1.cc => requirements/base_classes.cc} | 10 - .../requirements/explicit_instantiation.cc | 34 + .../collate_byname/requirements/typedefs.cc | 32 + .../{1.cc => requirements/base_classes.cc} | 9 - .../requirements/explicit_instantiation.cc | 34 + .../22_locale/ctype/requirements/typedefs.cc | 31 + .../22_locale/ctype_base/{1.cc => mask.cc} | 0 .../headers/clocale/functions_std.cc | 27 + .../22_locale/headers/clocale/macros.cc | 52 + .../22_locale/headers/clocale/types_std.cc | 26 + .../22_locale/headers/locale/synopsis.cc | 85 ++ .../headers/locale/types_std.cc} | 22 +- .../{1.cc => requirements/base_classes.cc} | 10 - .../explicit_instantiation.cc} | 14 +- .../messages/requirements/typedefs.cc | 32 + .../{1.cc => requirements/base_classes.cc} | 10 - .../requirements/explicit_instantiation.cc | 34 + .../messages_byname/requirements/typedefs.cc | 32 + .../22_locale/money_get/{ => cons}/3.cc | 0 .../{1.cc => requirements/base_classes.cc} | 11 - .../explicit_instantiations.cc} | 14 +- .../money_get/requirements/typedefs.cc | 33 + .../22_locale/money_put/{ => cons}/3.cc | 0 .../{1.cc => requirements/base_classes.cc} | 11 - .../explicit_instantiation.cc} | 14 +- .../money_put/requirements/typedefs.cc | 33 + .../false/base_classes.cc} | 10 - .../false/explicit_instantiation.cc | 34 + .../{3.cc => requirements/false/intl.cc} | 10 +- .../moneypunct/requirements/false/typedefs.cc | 33 + .../true/base_classes.cc} | 11 - .../true/explicit_instantiation.cc | 34 + .../moneypunct/requirements/true/intl.cc | 41 + .../moneypunct/requirements/true/typedefs.cc | 33 + .../{1.cc => requirements/base_classes.cc} | 10 - .../requirements/explicit_instantiation.cc | 34 + .../requirements/typedefs.cc | 32 + .../22_locale/num_get/{ => cons}/3.cc | 0 .../{1.cc => requirements/base_classes.cc} | 10 - .../explicit_instantiation.cc} | 14 +- .../num_get/requirements/typedefs.cc | 32 + .../22_locale/num_put/{ => cons}/3.cc | 0 .../{1.cc => requirements/base_classes.cc} | 10 - .../explicit_instantiations.cc} | 14 +- .../num_put/requirements/typedefs.cc | 32 + .../{1.cc => requirements/base_classes.cc} | 10 - .../explicit_instantiations.cc} | 14 +- .../numpunct/requirements/typedefs.cc | 32 + .../{1.cc => requirements/base_classes.cc} | 10 - .../requirements/explicit_instantiations.cc | 27 + .../numpunct_byname/requirements/typedefs.cc | 32 + .../{1.cc => requirements/base_classes.cc} | 10 - .../explicit_instantiations.cc} | 14 +- .../time_get/requirements/typedefs.cc | 32 + .../{1.cc => requirements/base_classes.cc} | 10 - .../explicit_instantiations.cc} | 14 +- .../time_put/requirements/typedefs.cc | 32 + .../requirements/explicit_instantiation/1.cc | 34 + .../explicit_instantiation/1.cc | 0 .../explicit_instantiation/2.cc | 0 .../explicit_instantiation/3.cc | 0 .../partial_specialization}/1.cc | 0 .../23_containers/headers/bitset/synopsis.cc | 43 + .../23_containers/headers/deque/synopsis.cc | 46 + .../23_containers/headers/list/synopsis.cc | 46 + .../23_containers/headers/map/synopsis.cc | 71 ++ .../23_containers/headers/queue/synopsis.cc | 51 + .../23_containers/headers/set/synopsis.cc | 85 ++ .../23_containers/headers/stack/synopsis.cc | 49 + .../23_containers/headers/vector/synopsis.cc | 81 ++ .../explicit_instantiation/1.cc | 0 .../explicit_instantiation/2.cc | 0 .../explicit_instantiation/3.cc | 0 .../partial_specialization}/1.cc | 0 .../explicit_instantiation/1.cc | 0 .../explicit_instantiation/2.cc | 0 .../explicit_instantiation/3.cc | 0 .../partial_specialization}/1.cc | 0 .../explicit_instantiation/1.cc | 0 .../explicit_instantiation/2.cc | 0 .../explicit_instantiation/3.cc | 0 .../partial_specialization}/1.cc | 0 .../explicit_instantiation/1.cc | 0 .../explicit_instantiation/2.cc | 0 .../explicit_instantiation/3.cc | 0 .../partial_specialization}/1.cc | 0 .../requirements/explicit_instantiation/1.cc | 34 + .../requirements/explicit_instantiation/1.cc | 34 + .../explicit_instantiation/1.cc | 0 .../explicit_instantiation/2.cc | 0 .../explicit_instantiation/3.cc | 0 .../partial_specialization}/1.cc | 0 .../requirements/explicit_instantiation/1.cc | 34 + .../explicit_instantiation/1.cc | 0 .../explicit_instantiation/2.cc | 0 .../explicit_instantiation/3.cc | 0 .../partial_specialization}/1.cc | 0 .../24_iterators/back_insert_iterator/2.cc | 37 + .../requirements/base_classes.cc | 37 + .../requirements/container.cc | 34 + .../requirements/explicit_instantiation.cc | 28 + .../requirements/typedefs.cc} | 36 +- .../24_iterators/front_insert_iterator/2.cc | 37 + .../requirements/base_classes.cc | 37 + .../requirements/container.cc | 34 + .../requirements/explicit_instantiation.cc | 28 + .../requirements/typedefs.cc} | 35 +- .../24_iterators/headers/iterator/synopsis.cc | 128 +++ .../headers/iterator/types_std.cc | 30 + .../testsuite/24_iterators/insert_iterator.cc | 78 -- .../24_iterators/insert_iterator/2.cc | 40 + .../requirements/base_classes.cc | 40 + .../insert_iterator/requirements/container.cc | 35 + .../requirements/explicit_instantiation.cc | 28 + .../insert_iterator/requirements/typedefs.cc | 40 + .../2.cc} | 27 - .../requirements/base_classes.cc | 38 + .../requirements/explicit_instantiation.cc} | 18 +- .../istream_iterator/requirements/typedefs.cc | 43 + .../requirements/base_classes.cc | 40 + .../requirements/explicit_instantiation.cc} | 14 +- .../{1.cc => requirements/typedefs.cc} | 10 +- .../requirements/base_classes.cc | 38 + .../requirements/explicit_instantiation.cc} | 19 +- .../requirements/typedefs.cc} | 18 +- .../requirements/base_classes.cc | 38 + .../requirements/explicit_instantiation.cc | 35 + .../{1.cc => requirements/typedefs.cc} | 8 +- .../{ => random_access_iterator}/26020.cc | 0 .../string_vector_iterators.cc} | 0 .../24_iterators/reverse_iterator/2.cc | 8 - .../{1.cc => requirements/base_classes.cc} | 10 - .../reverse_iterator/requirements/current.cc | 32 + .../requirements/explicit_instantiation.cc | 27 + .../reverse_iterator/requirements/typedefs.cc | 37 + .../headers/algorithm/synopsis.cc | 404 ++++++++ .../headers/cstdlib/functions_std.cc | 27 + .../26_numerics/{ => headers}/cmath/19322.cc | 0 .../cmath/c99_classification_macros_c++.cc | 0 .../cmath/c99_classification_macros_c.cc | 0 .../26_numerics/{ => headers}/cmath/c_math.cc | 0 .../{ => headers}/cmath/c_math_dynamic.cc | 0 .../{ => headers}/cmath/fabs_inline.cc | 0 .../headers/cmath/functions_std.cc | 47 + .../26_numerics/headers/cmath/macros.cc | 28 + .../{ => headers}/cmath/overloads.cc | 0 .../26_numerics/{ => headers}/cmath/powi.cc | 0 .../26_numerics/headers/complex/synopsis.cc | 88 ++ .../{ => headers}/cstdlib/13943.cc | 0 .../headers/cstdlib/2190.cc} | 7 - .../headers/cstdlib/functions_std.cc | 31 + .../26_numerics/headers/cstdlib/macros.cc | 28 + .../26_numerics/headers/cstdlib/types_std.cc | 27 + .../26_numerics/headers/numeric/synopsis.cc | 65 ++ .../26_numerics/headers/valarray/synopsis.cc | 128 +++ .../26_numerics/headers/valarray/types_std.cc | 27 + .../{valarray => numeric_arrays}/27867.cc | 0 .../{valarray => numeric_arrays}/28277.cc | 0 .../{valarray => numeric_arrays}/30416.cc | 0 .../binary_closure.cc | 0 .../{valarray => numeric_arrays}/dr543.cc | 0 .../{valarray => numeric_arrays}/slice.cc | 0 .../slice_array_assignment.cc | 0 .../{valarray => numeric_arrays}/valarray.cc | 0 .../valarray_const_bracket.cc | 0 .../valarray_name_lookup.cc | 0 .../valarray_operators.cc | 0 .../valarray_subset_assignment.cc | 0 .../sum_diff.cc | 0 .../basic_filebuf/{3.cc => cons/2020.cc} | 0 .../{4.cc => requirements/base_classes.cc} | 7 +- .../explicit_instantiation.cc} | 3 +- .../{1.cc => requirements/typedefs.cc} | 3 +- .../27_io/basic_fstream/{ => cons}/3.cc | 0 .../{4.cc => requirements/base_classes.cc} | 9 +- .../explicit_instantiation.cc} | 3 +- .../{1.cc => requirements/typedefs.cc} | 3 +- .../basic_ifstream/{3.cc => cons/2020.cc} | 0 .../{4.cc => requirements/base_classes.cc} | 7 +- .../explicit_instantiation.cc} | 3 +- .../{1.cc => requirements/typedefs.cc} | 3 +- .../27_io/basic_ios/{3.cc => cons/2020.cc} | 0 .../{4.cc => requirements/base_classes.cc} | 9 +- .../explicit_instantiation.cc} | 3 +- .../{1.cc => requirements/typedefs.cc} | 3 +- .../basic_iostream/{3.cc => cons/2020.cc} | 0 .../{4.cc => requirements/base_classes.cc} | 7 +- .../explicit_instantiation.cc} | 3 +- .../{1.cc => requirements/typedefs.cc} | 3 +- .../27_io/basic_istream/{ => cons}/3.cc | 0 .../{4.cc => requirements/base_classes.cc} | 7 +- .../explicit_instantiation.cc} | 3 +- .../{1.cc => requirements/typedefs.cc} | 3 +- .../{3.cc => cons/2020.cc} | 0 .../{4.cc => requirements/base_classes.cc} | 7 +- .../explicit_instantiation.cc} | 3 +- .../{1.cc => requirements/typedefs.cc} | 3 +- .../basic_ofstream/{3.cc => cons/2020.cc} | 0 .../{4.cc => requirements/base_classes.cc} | 7 +- .../explicit_instantiations.cc} | 3 +- .../{1.cc => requirements/typedefs.cc} | 3 +- .../basic_ostream/{3.cc => cons/2020.cc} | 0 .../{4.cc => requirements/base_classes.cc} | 7 +- .../explicit_instantiation.cc} | 3 +- .../{1.cc => requirements/typedefs.cc} | 3 +- .../{3.cc => cons/2020.cc} | 0 .../{4.cc => requirements/base_classes.cc} | 7 +- .../explicit_instantiation.cc} | 3 +- .../{1.cc => requirements/typedefs.cc} | 3 +- .../basic_streambuf/{3.cc => cons/2020.cc} | 0 .../{2.cc => requirements/base_classes.cc} | 0 .../{1.cc => requirements/typedefs.cc} | 0 .../basic_stringbuf/{3.cc => cons/2020.cc} | 0 .../{5.cc => requirements/base_classes.cc} | 7 +- .../explicit_instantiation}/2.cc | 3 +- .../explicit_instantiation}/4.cc | 3 +- .../{1.cc => requirements/typedefs.cc} | 9 +- .../basic_stringstream/{3.cc => cons/2020.cc} | 0 .../{4.cc => requirements/base_classes.cc} | 7 +- .../explicit_instantiation.cc} | 3 +- .../{1.cc => requirements/typedefs.cc} | 3 +- .../explicit_instantiation.cc} | 0 .../27_io/headers/cstdio/functions_std.cc | 66 ++ .../testsuite/27_io/headers/cstdio/macros.cc | 88 ++ .../27_io/headers/cstdio/types_std.cc | 28 + .../27_io/headers/fstream/synopsis.cc | 43 + .../27_io/headers/fstream/types_std.cc | 36 + .../27_io/headers/iomanip/synopsis.cc | 33 + .../testsuite/27_io/headers/ios/synopsis.cc | 60 ++ .../testsuite/27_io/headers/ios/types_std.cc | 28 + .../27_io/headers/iostream/synopsis.cc | 32 + .../headers/iostream/types_std.cc} | 20 +- .../27_io/headers/istream/synopsis.cc | 34 + .../headers/istream/types_std.cc} | 16 +- .../27_io/headers/ostream/synopsis.cc | 34 + .../headers/ostream/types_std.cc} | 13 +- .../27_io/headers/sstream/synopsis.cc | 43 + .../27_io/headers/sstream/types_std.cc | 36 + .../headers/streambuf/synopsis.cc} | 18 +- .../headers/streambuf/types_std.cc} | 13 +- ...stantiate.cc => explicit_instantiation.cc} | 0 .../explicit_instantiation.cc} | 0 .../explicit_instantiation.cc} | 0 libstdc++-v3/testsuite/ext/headers.cc | 30 +- ...stantiate.cc => explicit_instantiation.cc} | 0 ...stantiate.cc => explicit_instantiation.cc} | 0 ...stantiate.cc => explicit_instantiation.cc} | 0 .../explicit_instantiation.cc} | 0 .../explicit_instantiation.cc} | 0 .../explicit_instantiation/1.cc | 0 .../explicit_instantiation/2.cc | 0 .../explicit_instantiation/char/1.cc | 0 .../explicit_instantiation/wchar_t/1.cc | 0 .../headers/functional/synopsis.cc | 35 + .../headers/memory/synopsis.cc | 66 ++ .../headers/memory/types_std_tr1.cc | 26 + .../explicit_instantiation/1.cc | 0 .../explicit_instantiation/1.cc | 0 .../explicit_instantiation/1.cc | 0 .../headers/functional/synopsis.cc | 80 ++ .../headers/functional/types_std_tr1.cc | 26 + .../using_namespace_std_tr1_placeholders.cc | 26 + .../headers/type_traits/synopsis.cc | 104 ++ .../headers/type_traits/types_std_tr1.cc | 27 + .../headers/random/synopsis.cc | 97 ++ .../headers/random/types_std_tr1.cc | 27 + .../{requirements.cc => typedefs.cc} | 0 ...stantiate.cc => explicit_instantiation.cc} | 0 .../{unordered => }/hash/24799.cc | 0 .../hash/requirements/base_classes.cc | 33 + .../requirements/explicit_instantiation.cc} | 0 .../6_containers/headers/array/synopsis.cc | 52 + .../headers/functional/synopsis.cc | 51 + .../6_containers/headers/tuple/synopsis.cc | 71 ++ .../headers/tuple/types_std_tr1.cc | 26 + .../headers/unordered_map/synopsis.cc | 54 ++ .../headers/unordered_set/synopsis.cc | 53 ++ .../requirements/explicit_instantiation.cc | 34 + .../tr1/6_containers/unordered/23781.cc | 43 - .../hashtable => unordered_map}/24064.cc | 0 .../capacity/29134-map.cc | 0 .../erase/24061-map.cc | 0 .../{unordered => unordered_map}/find/map1.cc | 0 .../insert/24061-map.cc | 0 .../insert/array_syntax.cc | 0 .../insert/map_range.cc | 0 .../insert/map_single.cc | 0 .../requirements/explicit_instantiation.cc} | 0 .../requirements/iterator_neg.cc} | 0 .../requirements/iterator_null_neg.cc | 36 + .../unordered_map => unordered_map/swap}/1.cc | 0 .../unordered_map => unordered_map/swap}/2.cc | 0 .../capacity/29134-multimap.cc | 0 .../erase/24061-multimap.cc | 0 .../find/multimap1.cc | 0 .../insert/24061-multimap.cc | 0 .../insert/multimap_range.cc | 0 .../insert/multimap_single.cc | 0 .../requirements/explicit_instantiation.cc} | 0 .../requirements/iterator_neg.cc} | 0 .../requirements/iterator_null_neg.cc | 36 + .../swap}/1.cc | 0 .../swap}/2.cc | 0 .../hashtable => unordered_multiset}/24054.cc | 0 .../capacity/29134-multiset.cc | 0 .../erase/24061-multiset.cc | 0 .../find/multiset1.cc | 0 .../insert/24061-multiset.cc | 0 .../insert/multiset_range.cc | 0 .../insert/multiset_single.cc | 0 .../requirements/explicit_instantiation.cc} | 0 .../requirements/iterator_neg.cc} | 0 .../requirements/iterator_null_neg.cc | 36 + .../swap}/1.cc | 0 .../swap}/2.cc | 0 .../hashtable => unordered_set}/23053.cc | 0 .../hashtable => unordered_set}/23465.cc | 0 .../hashtable => unordered_set}/26127.cc | 0 .../hashtable => unordered_set}/26132.cc | 0 .../capacity/29134-set.cc | 0 .../erase/24061-set.cc | 0 .../{unordered => unordered_set}/find/set1.cc | 0 .../insert/24061-set.cc | 0 .../insert/set_range.cc | 0 .../insert/set_single.cc | 0 .../requirements/explicit_instantiation.cc} | 0 .../requirements/iterator_neg.cc} | 0 .../requirements/iterator_null_neg.cc | 36 + .../iterators_default_constructor.cc | 0 .../unordered_set => unordered_set/swap}/1.cc | 0 .../unordered_set => unordered_set/swap}/2.cc | 0 .../testsuite/tr1/using_namespace_std_tr1.cc | 26 + 417 files changed, 8574 insertions(+), 1181 deletions(-) delete mode 100644 libstdc++-v3/testsuite/17_intro/header_cwctype.cc create mode 100644 libstdc++-v3/testsuite/17_intro/headers/all.cc rename libstdc++-v3/testsuite/17_intro/{no_assert_neg.cc => headers/all_assert_neg.cc} (100%) rename libstdc++-v3/testsuite/17_intro/{headers_c++_c++0x_compat.cc => headers/all_c++200x_compatibility.cc} (100%) rename libstdc++-v3/testsuite/17_intro/{headers.cc => headers/c++1998/all.cc} (78%) create mode 100644 libstdc++-v3/testsuite/17_intro/headers/c++1998/all_multiple_inclusion.cc create mode 100644 libstdc++-v3/testsuite/17_intro/headers/c++1998/c++.tar create mode 100644 libstdc++-v3/testsuite/17_intro/headers/c++1998/c++_for_c.tar delete mode 100644 libstdc++-v3/testsuite/17_intro/headers_c++.cc delete mode 100644 libstdc++-v3/testsuite/17_intro/headers_c.cc rename libstdc++-v3/testsuite/17_intro/{header_ios.cc => using_namespace_std.cc} (82%) create mode 100644 libstdc++-v3/testsuite/18_support/headers/cfloat/values.cc create mode 100644 libstdc++-v3/testsuite/18_support/headers/climits/values.cc rename libstdc++-v3/testsuite/{17_intro/header_iomanip.cc => 18_support/headers/csetjmp/functions_std.cc} (81%) rename libstdc++-v3/testsuite/{17_intro/header_fstream.cc => 18_support/headers/csetjmp/macros.cc} (81%) create mode 100644 libstdc++-v3/testsuite/18_support/headers/csetjmp/types_std.cc create mode 100644 libstdc++-v3/testsuite/18_support/headers/csignal/functions_std.cc create mode 100644 libstdc++-v3/testsuite/18_support/headers/csignal/macros.cc create mode 100644 libstdc++-v3/testsuite/18_support/headers/csignal/types_std.cc rename libstdc++-v3/testsuite/{17_intro/header_cstdarg.cc => 18_support/headers/cstdarg/macros.cc} (79%) create mode 100644 libstdc++-v3/testsuite/18_support/headers/cstdarg/types_std.cc rename libstdc++-v3/testsuite/{17_intro/header_cstddef.cc => 18_support/headers/cstddef/macros.cc} (81%) create mode 100644 libstdc++-v3/testsuite/18_support/headers/cstddef/types_std.cc create mode 100644 libstdc++-v3/testsuite/18_support/headers/cstdlib/functions_std.cc rename libstdc++-v3/testsuite/{17_intro/header_cassert.cc => 18_support/headers/cstdlib/macros.cc} (77%) create mode 100644 libstdc++-v3/testsuite/18_support/headers/ctime/functions_std.cc create mode 100644 libstdc++-v3/testsuite/18_support/headers/ctime/macros.cc create mode 100644 libstdc++-v3/testsuite/18_support/headers/ctime/types_std.cc create mode 100644 libstdc++-v3/testsuite/18_support/headers/exception/synopsis.cc create mode 100644 libstdc++-v3/testsuite/18_support/headers/exception/types_std.cc create mode 100644 libstdc++-v3/testsuite/18_support/headers/limits/synopsis.cc create mode 100644 libstdc++-v3/testsuite/18_support/headers/new/synopsis.cc create mode 100644 libstdc++-v3/testsuite/18_support/headers/new/types_std.cc create mode 100644 libstdc++-v3/testsuite/18_support/headers/typeinfo/synopsis.cc create mode 100644 libstdc++-v3/testsuite/18_support/headers/typeinfo/types_std.cc rename libstdc++-v3/testsuite/18_support/numeric_limits/{sign.cc => is_signed.cc} (100%) create mode 100644 libstdc++-v3/testsuite/18_support/numeric_limits/requirements/explicit_instantiation/1.cc rename libstdc++-v3/testsuite/18_support/numeric_limits/{specialization.cc => specialization_default_values.cc} (100%) create mode 100644 libstdc++-v3/testsuite/19_diagnostics/headers/cassert/macros.cc rename libstdc++-v3/testsuite/{17_intro/header_cerrno.cc => 19_diagnostics/headers/cerrno/macros.cc} (76%) create mode 100644 libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/synopsis.cc create mode 100644 libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/types_std.cc create mode 100644 libstdc++-v3/testsuite/20_util/headers/cstdlib/functions_std.cc create mode 100644 libstdc++-v3/testsuite/20_util/headers/cstring/functions_std.cc create mode 100644 libstdc++-v3/testsuite/20_util/headers/cstring/macros.cc create mode 100644 libstdc++-v3/testsuite/20_util/headers/cstring/types_std.cc create mode 100644 libstdc++-v3/testsuite/20_util/headers/ctime/functions_std.cc create mode 100644 libstdc++-v3/testsuite/20_util/headers/ctime/macros.cc rename libstdc++-v3/testsuite/{17_intro/header_iosfwd.cc => 20_util/headers/ctime/types_std.cc} (81%) create mode 100644 libstdc++-v3/testsuite/20_util/headers/functional/synopsis.cc create mode 100644 libstdc++-v3/testsuite/20_util/headers/memory/synopsis.cc create mode 100644 libstdc++-v3/testsuite/20_util/headers/utility/synopsis.cc create mode 100644 libstdc++-v3/testsuite/20_util/headers/utility/using_namespace_std_rel_ops.cc create mode 100644 libstdc++-v3/testsuite/20_util/memory/allocator/requirements/explicit_instantiation/1.cc create mode 100644 libstdc++-v3/testsuite/20_util/memory/auto_ptr/requirements/explicit_instantiation/1.cc create mode 100644 libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator/requirements/base_classes.cc create mode 100644 libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator/requirements/explicit_instantiation/1.cc rename libstdc++-v3/testsuite/20_util/memory/{raw_storage_iterator.cc => raw_storage_iterator/requirements/typedefs.cc} (81%) create mode 100644 libstdc++-v3/testsuite/20_util/utility/pair/requirements/explicit_instantiation/1.cc rename libstdc++-v3/testsuite/21_strings/basic_string/{ => requirements/explicit_instantiation}/1.cc (100%) rename libstdc++-v3/testsuite/21_strings/basic_string/{2.cc => requirements/explicit_instantiation/debug.cc} (100%) create mode 100644 libstdc++-v3/testsuite/21_strings/headers/cctype/functions_std.cc create mode 100644 libstdc++-v3/testsuite/21_strings/headers/cstdlib/functions_std.cc create mode 100644 libstdc++-v3/testsuite/21_strings/headers/cstdlib/macros.cc create mode 100644 libstdc++-v3/testsuite/21_strings/headers/cstring/functions_std.cc create mode 100644 libstdc++-v3/testsuite/21_strings/headers/cstring/macros.cc create mode 100644 libstdc++-v3/testsuite/21_strings/headers/cstring/types_std.cc create mode 100644 libstdc++-v3/testsuite/21_strings/headers/cwchar/functions_std.cc rename libstdc++-v3/testsuite/{17_intro/header_csetjmp.cc => 21_strings/headers/cwchar/macros.cc} (69%) create mode 100644 libstdc++-v3/testsuite/21_strings/headers/cwchar/types_std.cc create mode 100644 libstdc++-v3/testsuite/21_strings/headers/cwctype/functions_std.cc create mode 100644 libstdc++-v3/testsuite/21_strings/headers/cwctype/macros.cc create mode 100644 libstdc++-v3/testsuite/21_strings/headers/cwctype/types_std.cc create mode 100644 libstdc++-v3/testsuite/21_strings/headers/string/synopsis.cc create mode 100644 libstdc++-v3/testsuite/21_strings/headers/string/types_std.cc rename libstdc++-v3/testsuite/22_locale/codecvt/{1.cc => requirements/base_classes.cc} (85%) rename libstdc++-v3/testsuite/22_locale/codecvt/{2.cc => requirements/explicit_instantiation.cc} (86%) create mode 100644 libstdc++-v3/testsuite/22_locale/codecvt/requirements/typedefs.cc rename libstdc++-v3/testsuite/22_locale/codecvt_byname/{1.cc => requirements/base_classes.cc} (85%) create mode 100644 libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/explicit_instantiation.cc create mode 100644 libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/typedefs.cc rename libstdc++-v3/testsuite/22_locale/collate/{1.cc => requirements/base_classes.cc} (88%) rename libstdc++-v3/testsuite/22_locale/collate/{2.cc => requirements/explicit_instantiation.cc} (87%) create mode 100644 libstdc++-v3/testsuite/22_locale/collate/requirements/typedefs.cc rename libstdc++-v3/testsuite/22_locale/collate_byname/{1.cc => requirements/base_classes.cc} (88%) create mode 100644 libstdc++-v3/testsuite/22_locale/collate_byname/requirements/explicit_instantiation.cc create mode 100644 libstdc++-v3/testsuite/22_locale/collate_byname/requirements/typedefs.cc rename libstdc++-v3/testsuite/22_locale/ctype/{1.cc => requirements/base_classes.cc} (91%) create mode 100644 libstdc++-v3/testsuite/22_locale/ctype/requirements/explicit_instantiation.cc create mode 100644 libstdc++-v3/testsuite/22_locale/ctype/requirements/typedefs.cc rename libstdc++-v3/testsuite/22_locale/ctype_base/{1.cc => mask.cc} (100%) create mode 100644 libstdc++-v3/testsuite/22_locale/headers/clocale/functions_std.cc create mode 100644 libstdc++-v3/testsuite/22_locale/headers/clocale/macros.cc create mode 100644 libstdc++-v3/testsuite/22_locale/headers/clocale/types_std.cc create mode 100644 libstdc++-v3/testsuite/22_locale/headers/locale/synopsis.cc rename libstdc++-v3/testsuite/{17_intro/header_cwchar.cc => 22_locale/headers/locale/types_std.cc} (73%) rename libstdc++-v3/testsuite/22_locale/messages/{1.cc => requirements/base_classes.cc} (89%) rename libstdc++-v3/testsuite/22_locale/messages/{2.cc => requirements/explicit_instantiation.cc} (87%) create mode 100644 libstdc++-v3/testsuite/22_locale/messages/requirements/typedefs.cc rename libstdc++-v3/testsuite/22_locale/messages_byname/{1.cc => requirements/base_classes.cc} (88%) create mode 100644 libstdc++-v3/testsuite/22_locale/messages_byname/requirements/explicit_instantiation.cc create mode 100644 libstdc++-v3/testsuite/22_locale/messages_byname/requirements/typedefs.cc rename libstdc++-v3/testsuite/22_locale/money_get/{ => cons}/3.cc (100%) rename libstdc++-v3/testsuite/22_locale/money_get/{1.cc => requirements/base_classes.cc} (85%) rename libstdc++-v3/testsuite/22_locale/money_get/{2.cc => requirements/explicit_instantiations.cc} (87%) create mode 100644 libstdc++-v3/testsuite/22_locale/money_get/requirements/typedefs.cc rename libstdc++-v3/testsuite/22_locale/money_put/{ => cons}/3.cc (100%) rename libstdc++-v3/testsuite/22_locale/money_put/{1.cc => requirements/base_classes.cc} (85%) rename libstdc++-v3/testsuite/22_locale/money_put/{2.cc => requirements/explicit_instantiation.cc} (87%) create mode 100644 libstdc++-v3/testsuite/22_locale/money_put/requirements/typedefs.cc rename libstdc++-v3/testsuite/22_locale/moneypunct/{2.cc => requirements/false/base_classes.cc} (88%) create mode 100644 libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/explicit_instantiation.cc rename libstdc++-v3/testsuite/22_locale/moneypunct/{3.cc => requirements/false/intl.cc} (83%) create mode 100644 libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/typedefs.cc rename libstdc++-v3/testsuite/22_locale/moneypunct/{1.cc => requirements/true/base_classes.cc} (86%) create mode 100644 libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/explicit_instantiation.cc create mode 100644 libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/intl.cc create mode 100644 libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/typedefs.cc rename libstdc++-v3/testsuite/22_locale/moneypunct_byname/{1.cc => requirements/base_classes.cc} (88%) create mode 100644 libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/explicit_instantiation.cc create mode 100644 libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/typedefs.cc rename libstdc++-v3/testsuite/22_locale/num_get/{ => cons}/3.cc (100%) rename libstdc++-v3/testsuite/22_locale/num_get/{1.cc => requirements/base_classes.cc} (88%) rename libstdc++-v3/testsuite/22_locale/num_get/{2.cc => requirements/explicit_instantiation.cc} (87%) create mode 100644 libstdc++-v3/testsuite/22_locale/num_get/requirements/typedefs.cc rename libstdc++-v3/testsuite/22_locale/num_put/{ => cons}/3.cc (100%) rename libstdc++-v3/testsuite/22_locale/num_put/{1.cc => requirements/base_classes.cc} (88%) rename libstdc++-v3/testsuite/22_locale/num_put/{2.cc => requirements/explicit_instantiations.cc} (87%) create mode 100644 libstdc++-v3/testsuite/22_locale/num_put/requirements/typedefs.cc rename libstdc++-v3/testsuite/22_locale/numpunct/{1.cc => requirements/base_classes.cc} (88%) rename libstdc++-v3/testsuite/22_locale/numpunct/{2.cc => requirements/explicit_instantiations.cc} (87%) create mode 100644 libstdc++-v3/testsuite/22_locale/numpunct/requirements/typedefs.cc rename libstdc++-v3/testsuite/22_locale/numpunct_byname/{1.cc => requirements/base_classes.cc} (88%) create mode 100644 libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/explicit_instantiations.cc create mode 100644 libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/typedefs.cc rename libstdc++-v3/testsuite/22_locale/time_get/{1.cc => requirements/base_classes.cc} (89%) rename libstdc++-v3/testsuite/22_locale/time_get/{2.cc => requirements/explicit_instantiations.cc} (87%) create mode 100644 libstdc++-v3/testsuite/22_locale/time_get/requirements/typedefs.cc rename libstdc++-v3/testsuite/22_locale/time_put/{1.cc => requirements/base_classes.cc} (88%) rename libstdc++-v3/testsuite/22_locale/time_put/{2.cc => requirements/explicit_instantiations.cc} (87%) create mode 100644 libstdc++-v3/testsuite/22_locale/time_put/requirements/typedefs.cc create mode 100644 libstdc++-v3/testsuite/23_containers/bitset/requirements/explicit_instantiation/1.cc rename libstdc++-v3/testsuite/23_containers/deque/{ => requirements}/explicit_instantiation/1.cc (100%) rename libstdc++-v3/testsuite/23_containers/deque/{ => requirements}/explicit_instantiation/2.cc (100%) rename libstdc++-v3/testsuite/23_containers/deque/{ => requirements}/explicit_instantiation/3.cc (100%) rename libstdc++-v3/testsuite/23_containers/deque/{ => requirements/partial_specialization}/1.cc (100%) create mode 100644 libstdc++-v3/testsuite/23_containers/headers/bitset/synopsis.cc create mode 100644 libstdc++-v3/testsuite/23_containers/headers/deque/synopsis.cc create mode 100644 libstdc++-v3/testsuite/23_containers/headers/list/synopsis.cc create mode 100644 libstdc++-v3/testsuite/23_containers/headers/map/synopsis.cc create mode 100644 libstdc++-v3/testsuite/23_containers/headers/queue/synopsis.cc create mode 100644 libstdc++-v3/testsuite/23_containers/headers/set/synopsis.cc create mode 100644 libstdc++-v3/testsuite/23_containers/headers/stack/synopsis.cc create mode 100644 libstdc++-v3/testsuite/23_containers/headers/vector/synopsis.cc rename libstdc++-v3/testsuite/23_containers/list/{ => requirements}/explicit_instantiation/1.cc (100%) rename libstdc++-v3/testsuite/23_containers/list/{ => requirements}/explicit_instantiation/2.cc (100%) rename libstdc++-v3/testsuite/23_containers/list/{ => requirements}/explicit_instantiation/3.cc (100%) rename libstdc++-v3/testsuite/23_containers/list/{ => requirements/partial_specialization}/1.cc (100%) rename libstdc++-v3/testsuite/23_containers/map/{ => requirements}/explicit_instantiation/1.cc (100%) rename libstdc++-v3/testsuite/23_containers/map/{ => requirements}/explicit_instantiation/2.cc (100%) rename libstdc++-v3/testsuite/23_containers/map/{ => requirements}/explicit_instantiation/3.cc (100%) rename libstdc++-v3/testsuite/23_containers/map/{ => requirements/partial_specialization}/1.cc (100%) rename libstdc++-v3/testsuite/23_containers/multimap/{ => requirements}/explicit_instantiation/1.cc (100%) rename libstdc++-v3/testsuite/23_containers/multimap/{ => requirements}/explicit_instantiation/2.cc (100%) rename libstdc++-v3/testsuite/23_containers/multimap/{ => requirements}/explicit_instantiation/3.cc (100%) rename libstdc++-v3/testsuite/23_containers/multimap/{ => requirements/partial_specialization}/1.cc (100%) rename libstdc++-v3/testsuite/23_containers/multiset/{ => requirements}/explicit_instantiation/1.cc (100%) rename libstdc++-v3/testsuite/23_containers/multiset/{ => requirements}/explicit_instantiation/2.cc (100%) rename libstdc++-v3/testsuite/23_containers/multiset/{ => requirements}/explicit_instantiation/3.cc (100%) rename libstdc++-v3/testsuite/23_containers/multiset/{ => requirements/partial_specialization}/1.cc (100%) create mode 100644 libstdc++-v3/testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc create mode 100644 libstdc++-v3/testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc rename libstdc++-v3/testsuite/23_containers/set/{ => requirements}/explicit_instantiation/1.cc (100%) rename libstdc++-v3/testsuite/23_containers/set/{ => requirements}/explicit_instantiation/2.cc (100%) rename libstdc++-v3/testsuite/23_containers/set/{ => requirements}/explicit_instantiation/3.cc (100%) rename libstdc++-v3/testsuite/23_containers/set/{ => requirements/partial_specialization}/1.cc (100%) create mode 100644 libstdc++-v3/testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc rename libstdc++-v3/testsuite/23_containers/vector/{ => requirements}/explicit_instantiation/1.cc (100%) rename libstdc++-v3/testsuite/23_containers/vector/{ => requirements}/explicit_instantiation/2.cc (100%) rename libstdc++-v3/testsuite/23_containers/vector/{ => requirements}/explicit_instantiation/3.cc (100%) rename libstdc++-v3/testsuite/23_containers/vector/{ => requirements/partial_specialization}/1.cc (100%) create mode 100644 libstdc++-v3/testsuite/24_iterators/back_insert_iterator/2.cc create mode 100644 libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc create mode 100644 libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/container.cc create mode 100644 libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/explicit_instantiation.cc rename libstdc++-v3/testsuite/24_iterators/{back_insert_iterator.cc => back_insert_iterator/requirements/typedefs.cc} (65%) create mode 100644 libstdc++-v3/testsuite/24_iterators/front_insert_iterator/2.cc create mode 100644 libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc create mode 100644 libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/container.cc create mode 100644 libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/explicit_instantiation.cc rename libstdc++-v3/testsuite/24_iterators/{front_insert_iterator.cc => front_insert_iterator/requirements/typedefs.cc} (64%) create mode 100644 libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis.cc create mode 100644 libstdc++-v3/testsuite/24_iterators/headers/iterator/types_std.cc delete mode 100644 libstdc++-v3/testsuite/24_iterators/insert_iterator.cc create mode 100644 libstdc++-v3/testsuite/24_iterators/insert_iterator/2.cc create mode 100644 libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/base_classes.cc create mode 100644 libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/container.cc create mode 100644 libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/explicit_instantiation.cc create mode 100644 libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/typedefs.cc rename libstdc++-v3/testsuite/24_iterators/{istream_iterator.cc => istream_iterator/2.cc} (69%) create mode 100644 libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/base_classes.cc rename libstdc++-v3/testsuite/{17_intro/header_cstring.cc => 24_iterators/istream_iterator/requirements/explicit_instantiation.cc} (77%) create mode 100644 libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/typedefs.cc create mode 100644 libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc rename libstdc++-v3/testsuite/{17_intro/header_sstream.cc => 24_iterators/istreambuf_iterator/requirements/explicit_instantiation.cc} (79%) rename libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/{1.cc => requirements/typedefs.cc} (84%) create mode 100644 libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc rename libstdc++-v3/testsuite/{17_intro/header_cstdio.cc => 24_iterators/ostream_iterator/requirements/explicit_instantiation.cc} (73%) rename libstdc++-v3/testsuite/24_iterators/{ostream_iterator.cc => ostream_iterator/requirements/typedefs.cc} (81%) create mode 100644 libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc create mode 100644 libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/explicit_instantiation.cc rename libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/{1.cc => requirements/typedefs.cc} (86%) rename libstdc++-v3/testsuite/24_iterators/{ => random_access_iterator}/26020.cc (100%) rename libstdc++-v3/testsuite/24_iterators/{iterator.cc => random_access_iterator/string_vector_iterators.cc} (100%) rename libstdc++-v3/testsuite/24_iterators/reverse_iterator/{1.cc => requirements/base_classes.cc} (79%) create mode 100644 libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/current.cc create mode 100644 libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/explicit_instantiation.cc create mode 100644 libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/typedefs.cc create mode 100644 libstdc++-v3/testsuite/25_algorithms/headers/algorithm/synopsis.cc create mode 100644 libstdc++-v3/testsuite/25_algorithms/headers/cstdlib/functions_std.cc rename libstdc++-v3/testsuite/26_numerics/{ => headers}/cmath/19322.cc (100%) rename libstdc++-v3/testsuite/26_numerics/{ => headers}/cmath/c99_classification_macros_c++.cc (100%) rename libstdc++-v3/testsuite/26_numerics/{ => headers}/cmath/c99_classification_macros_c.cc (100%) rename libstdc++-v3/testsuite/26_numerics/{ => headers}/cmath/c_math.cc (100%) rename libstdc++-v3/testsuite/26_numerics/{ => headers}/cmath/c_math_dynamic.cc (100%) rename libstdc++-v3/testsuite/26_numerics/{ => headers}/cmath/fabs_inline.cc (100%) create mode 100644 libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std.cc create mode 100644 libstdc++-v3/testsuite/26_numerics/headers/cmath/macros.cc rename libstdc++-v3/testsuite/26_numerics/{ => headers}/cmath/overloads.cc (100%) rename libstdc++-v3/testsuite/26_numerics/{ => headers}/cmath/powi.cc (100%) create mode 100644 libstdc++-v3/testsuite/26_numerics/headers/complex/synopsis.cc rename libstdc++-v3/testsuite/26_numerics/{ => headers}/cstdlib/13943.cc (100%) rename libstdc++-v3/testsuite/{17_intro/header_cstdlib.cc => 26_numerics/headers/cstdlib/2190.cc} (90%) create mode 100644 libstdc++-v3/testsuite/26_numerics/headers/cstdlib/functions_std.cc create mode 100644 libstdc++-v3/testsuite/26_numerics/headers/cstdlib/macros.cc create mode 100644 libstdc++-v3/testsuite/26_numerics/headers/cstdlib/types_std.cc create mode 100644 libstdc++-v3/testsuite/26_numerics/headers/numeric/synopsis.cc create mode 100644 libstdc++-v3/testsuite/26_numerics/headers/valarray/synopsis.cc create mode 100644 libstdc++-v3/testsuite/26_numerics/headers/valarray/types_std.cc rename libstdc++-v3/testsuite/26_numerics/{valarray => numeric_arrays}/27867.cc (100%) rename libstdc++-v3/testsuite/26_numerics/{valarray => numeric_arrays}/28277.cc (100%) rename libstdc++-v3/testsuite/26_numerics/{valarray => numeric_arrays}/30416.cc (100%) rename libstdc++-v3/testsuite/26_numerics/{valarray => numeric_arrays}/binary_closure.cc (100%) rename libstdc++-v3/testsuite/26_numerics/{valarray => numeric_arrays}/dr543.cc (100%) rename libstdc++-v3/testsuite/26_numerics/{valarray => numeric_arrays}/slice.cc (100%) rename libstdc++-v3/testsuite/26_numerics/{valarray => numeric_arrays}/slice_array_assignment.cc (100%) rename libstdc++-v3/testsuite/26_numerics/{valarray => numeric_arrays}/valarray.cc (100%) rename libstdc++-v3/testsuite/26_numerics/{valarray => numeric_arrays}/valarray_const_bracket.cc (100%) rename libstdc++-v3/testsuite/26_numerics/{valarray => numeric_arrays}/valarray_name_lookup.cc (100%) rename libstdc++-v3/testsuite/26_numerics/{valarray => numeric_arrays}/valarray_operators.cc (100%) rename libstdc++-v3/testsuite/26_numerics/{valarray => numeric_arrays}/valarray_subset_assignment.cc (100%) rename libstdc++-v3/testsuite/26_numerics/{numeric => numeric_operations}/sum_diff.cc (100%) rename libstdc++-v3/testsuite/27_io/basic_filebuf/{3.cc => cons/2020.cc} (100%) rename libstdc++-v3/testsuite/27_io/basic_filebuf/{4.cc => requirements/base_classes.cc} (96%) rename libstdc++-v3/testsuite/27_io/basic_filebuf/{2.cc => requirements/explicit_instantiation.cc} (99%) rename libstdc++-v3/testsuite/27_io/basic_filebuf/{1.cc => requirements/typedefs.cc} (99%) rename libstdc++-v3/testsuite/27_io/basic_fstream/{ => cons}/3.cc (100%) rename libstdc++-v3/testsuite/27_io/basic_fstream/{4.cc => requirements/base_classes.cc} (92%) rename libstdc++-v3/testsuite/27_io/basic_fstream/{2.cc => requirements/explicit_instantiation.cc} (99%) rename libstdc++-v3/testsuite/27_io/basic_fstream/{1.cc => requirements/typedefs.cc} (99%) rename libstdc++-v3/testsuite/27_io/basic_ifstream/{3.cc => cons/2020.cc} (100%) rename libstdc++-v3/testsuite/27_io/basic_ifstream/{4.cc => requirements/base_classes.cc} (96%) rename libstdc++-v3/testsuite/27_io/basic_ifstream/{2.cc => requirements/explicit_instantiation.cc} (99%) rename libstdc++-v3/testsuite/27_io/basic_ifstream/{1.cc => requirements/typedefs.cc} (99%) rename libstdc++-v3/testsuite/27_io/basic_ios/{3.cc => cons/2020.cc} (100%) rename libstdc++-v3/testsuite/27_io/basic_ios/{4.cc => requirements/base_classes.cc} (92%) rename libstdc++-v3/testsuite/27_io/basic_ios/{2.cc => requirements/explicit_instantiation.cc} (99%) rename libstdc++-v3/testsuite/27_io/basic_ios/{1.cc => requirements/typedefs.cc} (99%) rename libstdc++-v3/testsuite/27_io/basic_iostream/{3.cc => cons/2020.cc} (100%) rename libstdc++-v3/testsuite/27_io/basic_iostream/{4.cc => requirements/base_classes.cc} (97%) rename libstdc++-v3/testsuite/27_io/basic_iostream/{2.cc => requirements/explicit_instantiation.cc} (99%) rename libstdc++-v3/testsuite/27_io/basic_iostream/{1.cc => requirements/typedefs.cc} (99%) rename libstdc++-v3/testsuite/27_io/basic_istream/{ => cons}/3.cc (100%) rename libstdc++-v3/testsuite/27_io/basic_istream/{4.cc => requirements/base_classes.cc} (96%) rename libstdc++-v3/testsuite/27_io/basic_istream/{2.cc => requirements/explicit_instantiation.cc} (99%) rename libstdc++-v3/testsuite/27_io/basic_istream/{1.cc => requirements/typedefs.cc} (99%) rename libstdc++-v3/testsuite/27_io/basic_istringstream/{3.cc => cons/2020.cc} (100%) rename libstdc++-v3/testsuite/27_io/basic_istringstream/{4.cc => requirements/base_classes.cc} (96%) rename libstdc++-v3/testsuite/27_io/basic_istringstream/{2.cc => requirements/explicit_instantiation.cc} (99%) rename libstdc++-v3/testsuite/27_io/basic_istringstream/{1.cc => requirements/typedefs.cc} (99%) rename libstdc++-v3/testsuite/27_io/basic_ofstream/{3.cc => cons/2020.cc} (100%) rename libstdc++-v3/testsuite/27_io/basic_ofstream/{4.cc => requirements/base_classes.cc} (96%) rename libstdc++-v3/testsuite/27_io/basic_ofstream/{2.cc => requirements/explicit_instantiations.cc} (99%) rename libstdc++-v3/testsuite/27_io/basic_ofstream/{1.cc => requirements/typedefs.cc} (99%) rename libstdc++-v3/testsuite/27_io/basic_ostream/{3.cc => cons/2020.cc} (100%) rename libstdc++-v3/testsuite/27_io/basic_ostream/{4.cc => requirements/base_classes.cc} (96%) rename libstdc++-v3/testsuite/27_io/basic_ostream/{2.cc => requirements/explicit_instantiation.cc} (99%) rename libstdc++-v3/testsuite/27_io/basic_ostream/{1.cc => requirements/typedefs.cc} (99%) rename libstdc++-v3/testsuite/27_io/basic_ostringstream/{3.cc => cons/2020.cc} (100%) rename libstdc++-v3/testsuite/27_io/basic_ostringstream/{4.cc => requirements/base_classes.cc} (96%) rename libstdc++-v3/testsuite/27_io/basic_ostringstream/{2.cc => requirements/explicit_instantiation.cc} (99%) rename libstdc++-v3/testsuite/27_io/basic_ostringstream/{1.cc => requirements/typedefs.cc} (99%) rename libstdc++-v3/testsuite/27_io/basic_streambuf/{3.cc => cons/2020.cc} (100%) rename libstdc++-v3/testsuite/27_io/basic_streambuf/{2.cc => requirements/base_classes.cc} (100%) rename libstdc++-v3/testsuite/27_io/basic_streambuf/{1.cc => requirements/typedefs.cc} (100%) rename libstdc++-v3/testsuite/27_io/basic_stringbuf/{3.cc => cons/2020.cc} (100%) rename libstdc++-v3/testsuite/27_io/basic_stringbuf/{5.cc => requirements/base_classes.cc} (96%) rename libstdc++-v3/testsuite/27_io/basic_stringbuf/{ => requirements/explicit_instantiation}/2.cc (99%) rename libstdc++-v3/testsuite/27_io/basic_stringbuf/{ => requirements/explicit_instantiation}/4.cc (99%) rename libstdc++-v3/testsuite/27_io/basic_stringbuf/{1.cc => requirements/typedefs.cc} (97%) rename libstdc++-v3/testsuite/27_io/basic_stringstream/{3.cc => cons/2020.cc} (100%) rename libstdc++-v3/testsuite/27_io/basic_stringstream/{4.cc => requirements/base_classes.cc} (96%) rename libstdc++-v3/testsuite/27_io/basic_stringstream/{2.cc => requirements/explicit_instantiation.cc} (99%) rename libstdc++-v3/testsuite/27_io/basic_stringstream/{1.cc => requirements/typedefs.cc} (99%) rename libstdc++-v3/testsuite/27_io/fpos/{1.cc => requirements/explicit_instantiation.cc} (100%) create mode 100644 libstdc++-v3/testsuite/27_io/headers/cstdio/functions_std.cc create mode 100644 libstdc++-v3/testsuite/27_io/headers/cstdio/macros.cc create mode 100644 libstdc++-v3/testsuite/27_io/headers/cstdio/types_std.cc create mode 100644 libstdc++-v3/testsuite/27_io/headers/fstream/synopsis.cc create mode 100644 libstdc++-v3/testsuite/27_io/headers/fstream/types_std.cc create mode 100644 libstdc++-v3/testsuite/27_io/headers/iomanip/synopsis.cc create mode 100644 libstdc++-v3/testsuite/27_io/headers/ios/synopsis.cc create mode 100644 libstdc++-v3/testsuite/27_io/headers/ios/types_std.cc create mode 100644 libstdc++-v3/testsuite/27_io/headers/iostream/synopsis.cc rename libstdc++-v3/testsuite/{17_intro/header_iostream.cc => 27_io/headers/iostream/types_std.cc} (76%) create mode 100644 libstdc++-v3/testsuite/27_io/headers/istream/synopsis.cc rename libstdc++-v3/testsuite/{17_intro/header_istream.cc => 27_io/headers/istream/types_std.cc} (79%) create mode 100644 libstdc++-v3/testsuite/27_io/headers/ostream/synopsis.cc rename libstdc++-v3/testsuite/{17_intro/header_ostream.cc => 27_io/headers/ostream/types_std.cc} (83%) create mode 100644 libstdc++-v3/testsuite/27_io/headers/sstream/synopsis.cc create mode 100644 libstdc++-v3/testsuite/27_io/headers/sstream/types_std.cc rename libstdc++-v3/testsuite/{17_intro/header_ctime.cc => 27_io/headers/streambuf/synopsis.cc} (74%) rename libstdc++-v3/testsuite/{17_intro/header_streambuf.cc => 27_io/headers/streambuf/types_std.cc} (83%) rename libstdc++-v3/testsuite/ext/debug_allocator/{instantiate.cc => explicit_instantiation.cc} (100%) rename libstdc++-v3/testsuite/ext/hash_map/{instantiate.cc => requirements/explicit_instantiation.cc} (100%) rename libstdc++-v3/testsuite/ext/hash_set/{instantiate.cc => requirements/explicit_instantiation.cc} (100%) rename libstdc++-v3/testsuite/ext/malloc_allocator/{instantiate.cc => explicit_instantiation.cc} (100%) rename libstdc++-v3/testsuite/ext/mt_allocator/{instantiate.cc => explicit_instantiation.cc} (100%) rename libstdc++-v3/testsuite/ext/pool_allocator/{instantiate.cc => explicit_instantiation.cc} (100%) rename libstdc++-v3/testsuite/ext/slist/{instantiate.cc => requirements/explicit_instantiation.cc} (100%) rename libstdc++-v3/testsuite/ext/stdio_filebuf/{char/1.cc => requirements/explicit_instantiation.cc} (100%) rename libstdc++-v3/testsuite/ext/vstring/{ => requirements}/explicit_instantiation/1.cc (100%) rename libstdc++-v3/testsuite/ext/vstring/{ => requirements}/explicit_instantiation/2.cc (100%) rename libstdc++-v3/testsuite/ext/vstring/{ => requirements}/explicit_instantiation/char/1.cc (100%) rename libstdc++-v3/testsuite/ext/vstring/{ => requirements}/explicit_instantiation/wchar_t/1.cc (100%) create mode 100644 libstdc++-v3/testsuite/tr1/2_general_utilities/headers/functional/synopsis.cc create mode 100644 libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/synopsis.cc create mode 100644 libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/types_std_tr1.cc rename libstdc++-v3/testsuite/tr1/2_general_utilities/memory/enable_shared_from_this/{ => requirements}/explicit_instantiation/1.cc (100%) rename libstdc++-v3/testsuite/tr1/2_general_utilities/memory/shared_ptr/{ => requirements}/explicit_instantiation/1.cc (100%) rename libstdc++-v3/testsuite/tr1/2_general_utilities/memory/weak_ptr/{ => requirements}/explicit_instantiation/1.cc (100%) create mode 100644 libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/synopsis.cc create mode 100644 libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/types_std_tr1.cc create mode 100644 libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/using_namespace_std_tr1_placeholders.cc create mode 100644 libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/synopsis.cc create mode 100644 libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/types_std_tr1.cc create mode 100644 libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/synopsis.cc create mode 100644 libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/types_std_tr1.cc rename libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/requirements/{requirements.cc => typedefs.cc} (100%) rename libstdc++-v3/testsuite/tr1/6_containers/array/requirements/{instantiate.cc => explicit_instantiation.cc} (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered => }/hash/24799.cc (100%) create mode 100644 libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/base_classes.cc rename libstdc++-v3/testsuite/tr1/6_containers/{unordered/instantiate/hash.cc => hash/requirements/explicit_instantiation.cc} (100%) create mode 100644 libstdc++-v3/testsuite/tr1/6_containers/headers/array/synopsis.cc create mode 100644 libstdc++-v3/testsuite/tr1/6_containers/headers/functional/synopsis.cc create mode 100644 libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/synopsis.cc create mode 100644 libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/types_std_tr1.cc create mode 100644 libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_map/synopsis.cc create mode 100644 libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_set/synopsis.cc create mode 100644 libstdc++-v3/testsuite/tr1/6_containers/tuple/requirements/explicit_instantiation.cc delete mode 100644 libstdc++-v3/testsuite/tr1/6_containers/unordered/23781.cc rename libstdc++-v3/testsuite/tr1/6_containers/{unordered/hashtable => unordered_map}/24064.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered => unordered_map}/capacity/29134-map.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered => unordered_map}/erase/24061-map.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered => unordered_map}/find/map1.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered => unordered_map}/insert/24061-map.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered => unordered_map}/insert/array_syntax.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered => unordered_map}/insert/map_range.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered => unordered_map}/insert/map_single.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered/instantiate/map.cc => unordered_map/requirements/explicit_instantiation.cc} (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered/types/map_iterator.cc => unordered_map/requirements/iterator_neg.cc} (100%) create mode 100644 libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_null_neg.cc rename libstdc++-v3/testsuite/tr1/6_containers/{unordered/swap/unordered_map => unordered_map/swap}/1.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered/swap/unordered_map => unordered_map/swap}/2.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered => unordered_multimap}/capacity/29134-multimap.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered => unordered_multimap}/erase/24061-multimap.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered => unordered_multimap}/find/multimap1.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered => unordered_multimap}/insert/24061-multimap.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered => unordered_multimap}/insert/multimap_range.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered => unordered_multimap}/insert/multimap_single.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered/instantiate/multimap.cc => unordered_multimap/requirements/explicit_instantiation.cc} (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered/types/multimap_iterator.cc => unordered_multimap/requirements/iterator_neg.cc} (100%) create mode 100644 libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_null_neg.cc rename libstdc++-v3/testsuite/tr1/6_containers/{unordered/swap/unordered_multimap => unordered_multimap/swap}/1.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered/swap/unordered_multimap => unordered_multimap/swap}/2.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered/hashtable => unordered_multiset}/24054.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered => unordered_multiset}/capacity/29134-multiset.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered => unordered_multiset}/erase/24061-multiset.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered => unordered_multiset}/find/multiset1.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered => unordered_multiset}/insert/24061-multiset.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered => unordered_multiset}/insert/multiset_range.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered => unordered_multiset}/insert/multiset_single.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered/instantiate/multiset.cc => unordered_multiset/requirements/explicit_instantiation.cc} (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered/types/multiset_iterator.cc => unordered_multiset/requirements/iterator_neg.cc} (100%) create mode 100644 libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_null_neg.cc rename libstdc++-v3/testsuite/tr1/6_containers/{unordered/swap/unordered_multiset => unordered_multiset/swap}/1.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered/swap/unordered_multiset => unordered_multiset/swap}/2.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered/hashtable => unordered_set}/23053.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered/hashtable => unordered_set}/23465.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered/hashtable => unordered_set}/26127.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered/hashtable => unordered_set}/26132.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered => unordered_set}/capacity/29134-set.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered => unordered_set}/erase/24061-set.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered => unordered_set}/find/set1.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered => unordered_set}/insert/24061-set.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered => unordered_set}/insert/set_range.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered => unordered_set}/insert/set_single.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered/instantiate/set.cc => unordered_set/requirements/explicit_instantiation.cc} (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered/types/set_iterator.cc => unordered_set/requirements/iterator_neg.cc} (100%) create mode 100644 libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_null_neg.cc rename libstdc++-v3/testsuite/tr1/6_containers/{unordered/hashtable => unordered_set/requirements}/iterators_default_constructor.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered/swap/unordered_set => unordered_set/swap}/1.cc (100%) rename libstdc++-v3/testsuite/tr1/6_containers/{unordered/swap/unordered_set => unordered_set/swap}/2.cc (100%) create mode 100644 libstdc++-v3/testsuite/tr1/using_namespace_std_tr1.cc diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index eb1a05b3161c..937d3150cb5b 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,900 @@ +2007-02-20 Benjamin Kosnik + + 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 PR libstdc++/28080 (partial) 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 850e58b2a4c1..000000000000 --- 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 -// 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 000000000000..c0ef4bfa5f2a --- /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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// C++ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// TR1 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// Extensions +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include diff --git a/libstdc++-v3/testsuite/17_intro/no_assert_neg.cc b/libstdc++-v3/testsuite/17_intro/headers/all_assert_neg.cc similarity index 100% rename from libstdc++-v3/testsuite/17_intro/no_assert_neg.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/17_intro/headers_c++_c++0x_compat.cc rename to 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 similarity index 78% rename from libstdc++-v3/testsuite/17_intro/headers.cc rename to libstdc++-v3/testsuite/17_intro/headers/c++1998/all.cc index 46975408c321..2704e491f4d5 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// "C" compatibility headers +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include // "C++" headers #include @@ -58,29 +98,3 @@ #include #include -// "C" headers -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// "C" headers that might not work if wchar_t support is disabled. -#include -#if _GLIBCXX_USE_WCHAR_T - #include - #include -#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 000000000000..a1cb289039a0 --- /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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// "C" compatibility headers +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// "C++" headers +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +// "C" headers +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// "C" compatibility headers +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// "C++" headers +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include 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 0000000000000000000000000000000000000000..bbe7c5aac89f70f75bfefc263466a66d09a083c3 GIT binary patch literal 153600 zc-rlqTaVku6@dNhUok*m64lHUNntW8lA52^3N;hZ_MCr_R~>Uactq;c&2Orp>J+>b|L5GS$zO$K_q zFbGxnNW_mkjP0h$Y9SuoeyslaXWO0o|Nql5)A66@zi;#B!-#(pr#k+jj8fw7H~#q_ z#irRjo6S0je-cGsioZ<4xQ%~g;;%w|Nr-^>cRrp!7ylCT4?oN+F{_sAqRhp=A3xUr z`m$Q@>f*y)Bffk2y^uO$;#HmJ;<{Qi_gS5bSJiek&zhoIJr$R$*)#nj^SYb6Vj~u2 zKl;ygRyU$rh~_RAKfit_F0bE+mrtIEUy9p0t9Q?Y+q`r?npZ6Jdzjs9_HXk-?5eGp zWh+tVbA5r<#qGAy`))+Gnm?~mvye}PK8WwK#vErYsnMyQ-7-aqAbO2F1DL|u`QpPUFeO) zZ3%zIkG3sp9?DQEid-(OI ztCxS*FS+>f@|Vk-_vRzKy1aS))AhA@_2x=kh_@G4H?7-oCqf`{w#59jog+ zKb)UGIim|36n)m_d6O08#(nJfI*J>8Y~@_sWuI~#%~@W2(npr*>u$X}A1QlE%WCz( zen`D>dm3MejXN@T-MxJC_WkASpY;J>F2t&8o{Iar(AP{;*$YE&_T>vX4)uR#tB<7) z#dV`M)31J2Ec6?`Dyyotr~k)l)0l04y%2#6!{CQd1>sZi?)t)g)QgS&P@8o=EA)rR z|Cr@#w{LSHFSDJAq&s|jv{`$XWcKPmUixNVhYRHp*g7{?%gpT11jM|_qL^i6xqB*# zg{bVcY4*F(7nA;GTQ!Bg1lF*xZEGvOPq5 zh13=&K>O_pkdbb)Id^X}Q0%-w&t9VGn<4zb3!+cpg9gOR<`j+j%bjY6<+e z$G!4@Y0mPx%>QAJ%6?(}k6hp^|5bA0e^T>5j?x7F!+-b>|KUIUp9ueZ5CX&hRes-T z4)E*qKVc*TW%7Ti49NfZ@;?**?y^5$lmAhN_^U{TI{q@&8i@blfA}B%hyUS!BlkZ| z;9jynE&sdA{(MdTN4ETr0+as<;XnL`|L`CF!~co!zZV@a{MVOMo-J>;i;l8D-=6=` zw-xh$dWe5FS)jB2C&Od>^^a!$PZ}xw5C6me@IU+y{~Npi9SQ6`3-mevyU7Bb<$sj4 z{11))B`Svh@E`uefA|mor^J8HQn2U0KE2&d0s8j*PZ+6~{EtWfGx6_i3efraKPUdD zZ2m{4)PLcB_#gg<|KWdA@IUk`9DcQ{s;cUfA|mo;s0d# z@81Xv|8LDXZ-$Wn31a=r=6|Fl|KrR5_VFJ;{zu0@NNoNmVg5J%hyUS!_#gf^djE3- z?koSZ=l=lmKS3O&k<0(UfA|mo;XnL`|C8areHm-f z)PKW&_z(Z#Km4B%|Gg`L;s5cJ^uPX(OhReb|B;JU;?|uCr&Huoz|C5C9AO6FC_z(Z#|AhGOSqcpQKjpKgst30I z5A%P#`QJYNgIND3OafQ`MgLd)5C6me@IU--^#11v+*keAp8tbb|0hgCSN|2kfA|mo z;XnL`|5M?=ezbuyetPgDd zPeA_1m;deKKZN-|N=oJC|M2_||HJ?AKl~5>8@>NI0{1olXV3p3%>Pl+_Wz8Ng!TX6 zKm3RP@E`t9hX4MJ!0^AQI!yjNDE||rlKL-i{%7LfS@P$r@;~ZW|DPsy{#T6u;eYra z{)hkJf8+N*P2fI~KPUX}Ecx>_{8zH&e`@nTA?yFafA|mo;XnMJ2>*N00sH)?(pOME zsQEuCq5jKv{0A}rM+I*Fk7WHv{15-b|L{NjZ~V{yEP;EQ|Ks>Si1|M%bp7AM6#m11 z_z(Z#Km4Bx|NR?*d;YV`R>gWq{omt6k^k}c{LjUI0R7)(>el~>B+viwKl~5>!~gKV z2|WL^1n#N-`+@%h=>INL>H5D**8hY5@E`uefA~Kg{(Dyf!+(99%szHl0rr6Wk5m!) zA7B3G;@@2b*!lcVe0=_wBxe0b6$Z@z!T<0-{15-b|3>eBmcYGKfVKSZt^(|Q{Z~8x zH%aaMpIB=k{D=SWAO6FC_&*K)_aFqe|7TX3uZLY%DWC`Bf6|!spS}6tG5#H;fX?^- zI_dwaZ2l(+nE!+S;eYra{)hjKzyIr=!2VM}pYgw=6wvwkKT*qnvt6i-fch`^5C7pm z{D=P&;=gYvu+M+=HI-+}A=Q5+K}`O~+w;GD{0C6~rOaG#Q~wp=fA}B%hyUS!_}}=S z|2YEpRR4A0{{ZU0l>W`ue?|2Fg#Yj#{=E#oB!$f52XK> zN`ln&|Dyg2|HJ?AKl~5>8^8bMO^^M*4F3nx|4St@a{a&P{|W!$Km3RP@P8Wo??ngf z`hWUMDr>5GNcCR{^PGI=IZHlsJc7v+_Qq2GH=6{Fy51{@l3WLbjeHYOuK!nv|KWf5AO45`;eVs|zXO5$ zssB3ie*pczg2eUzlC1v>|KUIUhyU<@Lj3pb1cv{=Z}V;5;S8V$S$#=pY_pwHKTwf-j~ z)Bjbbk;MP-Kl~5>!~gKVvHPDPa6bz`ANk+m0?_B{zfSmX*Z+$Z{D=SWAO6FC_&*i? z_u&I}{%^O_f4(LEBa-a0%|6SpK_#gg<|KWf5-}vW$_ci_J zGyV^t|GP|->;JBp{|o=&Km3RP@P9h|_pStn|C?s+&Pqoapa-n~6DsEac=NwD{@rAN z&ewm1$LD`(X!^e^+y4#!!~gI<{15-b|HkcqM*@4#0DaE?ZZbgU^FQtS&#AQaUn*t& zXZR2Q;XnL`|5M_>XDQg%e=qLm-Bo}+p#Ce8Z|D@^vZvGDc;XnL`|L`CFPlf;fjll4K zwO!`=q8dW|*CGEC)Bnq#{~h8#fch^LC4sB|!vF9;{15-b|M0)j``@0xJ=K35_&`E6{O>>iWBkwMe|Y`_|KUIUhyU<@Lj3ox1cv|1 zT;H#|Vby=Bl>Cn`|J%oZ5cOZm<$o0YU-3Wu5C6me@W1i%1h)QrIQ_rc`Y-1Hc=NwvIQ_p=DDC>sk!1Zx{15-b|L{Nj zZ~XQDz4reqhSUE`Y4p4LFXsQkfA|mo;XnMJ4*!Rs1Plg)!C){L3bf2B2ahFa~=Uom(!3L@x z`aX_w$+7{HL(X2m`^e5N-m{bE&)Hki%cFeSW#;h2{HV?t&}XP>irL2;vS~J9ag?&0 z_o-v%qBoILw`5V;Kge=6%KBn3RR(Gf&(%k%^Cizm#qvkL<|)skgngLw5)o4iVxAV9 zMbt=TDTchydei&UAG_2;#swXcvm2fl^fPnz88u=zlB%6K%f{-cJyk`NPFWJk#j)Ma z+&@bfytt@76RB?QFdK9F57kLmbt{sD^*Eapd@xD&RTXqF`|IrT&HIm+?D*X$_SfwVl++!)l8R>N2#2WM^p`ezB)g7L#G`7arXA?@{_uR)3eKW zuP!dw>HBkb%sw2SU!I+Oe0zM(K72g?@c!Zz#p;6dd;k24M+Z76jkM5d!K#0I5wAhT+l@oV;&2-2!0pyv8h{it6Vs#w(g2xjX z^;DIr0#%W&qo2{S6e)EB5`uU#pgZ2UN%fRsl1M>;U!1Qhrh6jJ=+@Hr?R{h)??3m? znt4DLpE}HL>4wQw9U{Gn5<$Iz>-*PSOU|Q0x#f1KpAXCJ(9Iv|$K;Q;r_=eLNaJME z=j`_xdyhH|;QvT@dz|nq-8%i?`bjOYmj9l!;D6{4|3k;Nz<=-`{0INRfAGIG{I6UR zEb+e(*J+eAB>&@t$p2KV|7P*8HUAUXR-p1fz8^yWLH|MjLH|MjLH}*N{xj^YH~%x^ zf35kSz}D}7LtDN71OLH)@E`mK|H1#3@V|0Nu;BkdkMiqPQ=bo3O(I*hP^4E(IZ1_*Ns3XqmACOQ%2zDLPs+K^PM&?kxyHBM^3|!6 z$|mjIvPrwQY%=~W+l+%(Y}&(Rn{sj4Vtl+}(@tKoX)iypk((dbME1Z$j$XAXPnT`V z)n$wJ^{VOKZ!?8UwUg{Pa9+N2I%zcG#W*6t*o*Scmky)8FX_>d?Zza*BvaL~-|qJ4 z7hmXEAt!mts3i$ccklKNiCte0J3A;(%KzwqHst+ZVB!5=J@K#i{h#9n82^p@A7nmc zKJtIa|FtInH~X`t0sOD`{hy_z(Vr|KNXX_+PmsDDhwA0-G}a8}t9G z*MB z_z(Vr|Lx&_^@?D5{I6a|sww-wV*F3#z)5)1&&_-$HMwQ(0|Z>(0|Z>(0?r$ z|2h-@J3*&#lfAAmt2mitU_VB-QNwCC!wX*mohW|Vz|KnL$|EFsG zr{lkY;XmJz|M3_4&sF2UJ;%lRkI;Y6f6#x>f6#y1um8-(ISt_d28REv=f4{)_^*z$ zgTTf7Z}1=d2mir;@V_nmuR#zj@n3J%)|mNU0rEc;>pv6!dgp%yuI-!oUs(Sc`VaaK z`VaaK`fvO7-)u|b2JpY$`CozS==Gn;3jTxt;6L~e{)7K*;eYjtV2S@pMjeSaWd4_J zBmYye{+q?W=J{W?+5gK${s;OG`VaaK`VabV`}Ln;Z@u%sX8f;t{+HwE{l8on{0INR zfAAmt2mf2c|H>u7691#3;JIwd`ahWeRki+`#lPPDzx+_=e*zo&5Bd-K5Bd-K5BhKW z^`BvHz4@OR|LfiVE3h21{twoF2LHi-@E`mK|J%d=$|b=P|6@5F^QO%I3NinyYW-*8 zU-SN7YAm>#|K(u(5A+}OAM_veAN1e$>p#ujn&*ER{@1+!SKyibzg(>U4E}@v;6L~e z{MfBr)vE-i+{cIzihMqvmfI9AM_veAM_veAM{@f_W#iA zt$F`1!~c5cf7zay{}o{TFZd7sga6<^_}?D>S1t)k>;G+N0MJwNKY@?@PsRH0c2fg@ zekA|nn(;qsOEBm^=s)N`=s)N`=)dh>|FNb4Ko9v}Z~n*i&HnG0{|)|w|KLCP5B|4^ z|CLLE1^)*kFXUBxrJ_uCLr)|^POs=9(knXXXEeYX{=2Sg`0oUSe^>KA@G<_QKK_%D zfKLxL=Y?Z2b>-id1lGR#YU{57<6icMUnQL7LVBL^R?+u_3aX{K|jUeXx{&dZlh zCyhqD7)K- zX9wlS@;|zhHfH{Ri1&ZB#J}$O|AAir(Np99q5qNpgTRNtNB$4_zb()I&Hg}W0RQWr z{~wzDUtR3~3jTxt;6L~e{dd$p85B z@n235s{D`RA^!vY2mJ^A2mJ^AxBdFhye@43|2L5SS;D9ShxMPqfAAmt z2mitUw(!3OK~P@*hq_x+)_=tQuT|^6S^Vpr|L-`iUjGs6KSBRN|3Uvj|3Uw?WBn&R zsJ;RGuXp~xW9I+aKHmR;|KLCP5B`Jy?csmrlAz3g(VY2T9`Zlc>pxNV{I9^V%=|A0 z|4mQ?C@3f> QC@3f>C@3f>DBD>64_V(2Z2$lO literal 0 Hc-jL100001 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 03c902a32171..000000000000 --- 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 -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// "C" headers -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// "C++" headers that might not work if wchar_t support is disabled. -#include -#if _GLIBCXX_USE_WCHAR_T - #include - #include - #include - #include -#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 369639c49cc0..000000000000 --- 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 -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// C++ headers -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// "C" headers that might not work if wchar_t support is disabled. -#include -#if _GLIBCXX_USE_WCHAR_T - #include - #include - #include - #include -#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 similarity index 82% rename from libstdc++-v3/testsuite/17_intro/header_ios.cc rename to libstdc++-v3/testsuite/17_intro/using_namespace_std.cc index d04e14a4384f..26a2c6544e7a 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 -#include -#include - - -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 000000000000..7a06a68e71cd --- /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 + +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 000000000000..2d15600c82be --- /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 + +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 similarity index 81% rename from libstdc++-v3/testsuite/17_intro/header_iomanip.cc rename to libstdc++-v3/testsuite/18_support/headers/csetjmp/functions_std.cc index 6d4622414060..d0a24948d742 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 -#include -#include - - -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 similarity index 81% rename from libstdc++-v3/testsuite/17_intro/header_fstream.cc rename to libstdc++-v3/testsuite/18_support/headers/csetjmp/macros.cc index c190d5018730..01a90130ced3 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 -#include -#include - - -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 000000000000..ecf7f6650f87 --- /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 + +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 000000000000..6823376de47d --- /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 + +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 000000000000..884261173a74 --- /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 + +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 000000000000..75627271a739 --- /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 + +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 similarity index 79% rename from libstdc++-v3/testsuite/17_intro/header_cstdarg.cc rename to libstdc++-v3/testsuite/18_support/headers/cstdarg/macros.cc index e23edbba011f..add2f90191ad 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 +// { 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 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 000000000000..52151524d778 --- /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 + +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 similarity index 81% rename from libstdc++-v3/testsuite/17_intro/header_cstddef.cc rename to libstdc++-v3/testsuite/18_support/headers/cstddef/macros.cc index ec195bb9ca13..4751d161e8e9 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 -// 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 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 000000000000..a00dd1640e08 --- /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 + +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 000000000000..9956158a9bf3 --- /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 + +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 similarity index 77% rename from libstdc++-v3/testsuite/17_intro/header_cassert.cc rename to libstdc++-v3/testsuite/18_support/headers/cstdlib/macros.cc index 50f5db47ed95..419ee7451e4c 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 -// 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 +#include 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 000000000000..5a7e56d679ef --- /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 + +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 000000000000..de923816fd09 --- /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 + +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 000000000000..c0168af19fb1 --- /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 + +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 000000000000..24585ee4d61c --- /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 + +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 000000000000..467f68a3ed1f --- /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 + +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 000000000000..a0db1d943620 --- /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 + +namespace std { + template class numeric_limits; + +#if 0 + enum float_round_style; + enum float_denorm_style; +#endif + + template<> class numeric_limits; + + template<> class numeric_limits; + template<> class numeric_limits; + template<> class numeric_limits; + template<> class numeric_limits; + + template<> class numeric_limits; + template<> class numeric_limits; + template<> class numeric_limits; + template<> class numeric_limits; + template<> class numeric_limits; + template<> class numeric_limits; + + template<> class numeric_limits; + template<> class numeric_limits; + template<> class numeric_limits; +} 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 000000000000..6d05bb402db7 --- /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 + +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 000000000000..a0d2c4e941a1 --- /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 + +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 000000000000..7e8705516f24 --- /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 + +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 000000000000..8db903e993f8 --- /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 + +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 similarity index 100% rename from libstdc++-v3/testsuite/18_support/numeric_limits/sign.cc rename to 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 000000000000..77856e9080f3 --- /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 + +template + 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 >; diff --git a/libstdc++-v3/testsuite/18_support/numeric_limits/specialization.cc b/libstdc++-v3/testsuite/18_support/numeric_limits/specialization_default_values.cc similarity index 100% rename from libstdc++-v3/testsuite/18_support/numeric_limits/specialization.cc rename to 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 000000000000..822414c7cf97 --- /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 + +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 similarity index 76% rename from libstdc++-v3/testsuite/17_intro/header_cerrno.cc rename to libstdc++-v3/testsuite/19_diagnostics/headers/cerrno/macros.cc index d8d28ce07851..468d4a18c329 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 +// { 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 +#include 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 000000000000..6be26e0e158d --- /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 + +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 000000000000..160c6911514e --- /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 + +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 000000000000..7ac51ed09b7a --- /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 + +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 000000000000..f521d724c1e6 --- /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 + +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 000000000000..c714d1607d75 --- /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 + +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 000000000000..f554d5a20c21 --- /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 + +namespace gnu +{ + std::size_t s; +} diff --git a/libstdc++-v3/testsuite/20_util/headers/ctime/functions_std.cc b/libstdc++-v3/testsuite/20_util/headers/ctime/functions_std.cc new file mode 100644 index 000000000000..ce381b2a459a --- /dev/null +++ b/libstdc++-v3/testsuite/20_util/headers/ctime/functions_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 + +namespace gnu +{ + using std::asctime; + using std::clock; + using std::difftime; + using std::localtime; + using std::strftime; + using std::ctime; + using std::gmtime; + using std::mktime; + using std::time; +} diff --git a/libstdc++-v3/testsuite/20_util/headers/ctime/macros.cc b/libstdc++-v3/testsuite/20_util/headers/ctime/macros.cc new file mode 100644 index 000000000000..7c7e1345809f --- /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 + +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 similarity index 81% rename from libstdc++-v3/testsuite/17_intro/header_iosfwd.cc rename to libstdc++-v3/testsuite/20_util/headers/ctime/types_std.cc index ccfd14ad7fee..ef0cab628401 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 -#include -#include - - -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 000000000000..d4853b27af49 --- /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 + +namespace std { + // lib.base, base: + template struct unary_function; + template struct binary_function; + + // lib.arithmetic.operations, arithmetic operations: + template struct plus; + template struct minus; + template struct multiplies; + template struct divides; + template struct modulus; + template struct negate; + + // lib.comparisons, comparisons: + template struct equal_to; + template struct not_equal_to; + template struct greater; + template struct less; + template struct greater_equal; + template struct less_equal; + + // lib.logical.operations, logical operations: + template struct logical_and; + template struct logical_or; + template struct logical_not; + + // lib.negators, negators: + template struct unary_negate; + template + unary_negate not1(const Predicate&); + template struct binary_negate; + template + binary_negate not2(const Predicate&); + + // lib.binders, binders: + template class binder1st; + template + binder1st bind1st(const Operation&, const T&); + template class binder2nd; + template + binder2nd bind2nd(const Operation&, const T&); + + // lib.function.pointer.adaptors, adaptors: + template class pointer_to_unary_function; + template + pointer_to_unary_function ptr_fun(Result (*)(Arg)); + template + class pointer_to_binary_function; + template + pointer_to_binary_function + ptr_fun(Result (*)(Arg1,Arg2)); + + // lib.member.pointer.adaptors, adaptors: + template class mem_fun_t; + template class mem_fun1_t; + template + mem_fun_t mem_fun(S (T::*f)()); + template + mem_fun1_t mem_fun(S (T::*f)(A)); + template class mem_fun_ref_t; + template class mem_fun1_ref_t; + template + mem_fun_ref_t mem_fun_ref(S (T::*f)()); + template + mem_fun1_ref_t mem_fun_ref(S (T::*f)(A)); + + template class const_mem_fun_t; + template class const_mem_fun1_t; + template + const_mem_fun_t mem_fun(S (T::*f)() const); + template + const_mem_fun1_t mem_fun(S (T::*f)(A) const); + template class const_mem_fun_ref_t; + template class const_mem_fun1_ref_t; + template + const_mem_fun_ref_t mem_fun_ref(S (T::*f)() const); + template + const_mem_fun1_ref_t 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 000000000000..306a37e33129 --- /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 + +namespace std { + // lib.default.allocator, the default allocator: + template class allocator; + template <> class allocator; + template + bool operator==(const allocator&, const allocator&) throw(); + template + bool operator!=(const allocator&, const allocator&) throw(); + + // lib.storage.iterator, raw storage iterator: + template class raw_storage_iterator; + + // lib.temporary.buffer, temporary buffers: + template + pair get_temporary_buffer(ptrdiff_t n); + template + void return_temporary_buffer(T* p); + + // lib.specialized.algorithms, specialized algorithms: + template + ForwardIterator + uninitialized_copy(InputIterator first, InputIterator last, + ForwardIterator result); + template + void uninitialized_fill(ForwardIterator first, ForwardIterator last, + const T& x); + template + void uninitialized_fill_n(ForwardIterator first, Size n, const T& x); + + // lib.auto.ptr, pointers: + template 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 000000000000..bb96c32435e3 --- /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 + +namespace std { + // lib.operators, operators: + namespace rel_ops { + template bool operator!=(const T&, const T&); + template bool operator> (const T&, const T&); + template bool operator<=(const T&, const T&); + template bool operator>=(const T&, const T&); + } + + // lib.pairs, pairs: + template struct pair; + template + bool operator==(const pair&, const pair&); + template + bool operator< (const pair&, const pair&); + template + bool operator!=(const pair&, const pair&); + template + bool operator> (const pair&, const pair&); + template + bool operator>=(const pair&, const pair&); + template + bool operator<=(const pair&, const pair&); +} 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 000000000000..1e78aeb31452 --- /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 + +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 000000000000..ed88aefe6c6d --- /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 + +template class std::allocator; 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 000000000000..e6abacd13b60 --- /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 + +template class std::auto_ptr; 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 000000000000..bc2793f3d973 --- /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 + +// 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 + +void test01() +{ + using namespace std; + + // Check for required base class. + long l; + typedef raw_storage_iterator test_iterator; + typedef iterator 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 000000000000..41023b6bcd25 --- /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 + +template class std::raw_storage_iterator; 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 similarity index 81% rename from libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator.cc rename to libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator/requirements/typedefs.cc index 36e7d25704ed..4a51c4c6fd34 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 -// 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 test_iterator; - typedef iterator 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 000000000000..3d55f629de25 --- /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 + +template class std::pair; 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 similarity index 100% rename from libstdc++-v3/testsuite/21_strings/basic_string/1.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/21_strings/basic_string/2.cc rename to 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 000000000000..b0375f6f55df --- /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 + +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 000000000000..4840dfdf78f3 --- /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 + +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 000000000000..c714d1607d75 --- /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 + +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 000000000000..3b4662f7f648 --- /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 + +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 000000000000..c714d1607d75 --- /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 + +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 000000000000..f554d5a20c21 --- /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 + +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 000000000000..377cbdcd6edc --- /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 + +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/17_intro/header_csetjmp.cc b/libstdc++-v3/testsuite/21_strings/headers/cwchar/macros.cc similarity index 69% rename from libstdc++-v3/testsuite/17_intro/header_csetjmp.cc rename to libstdc++-v3/testsuite/21_strings/headers/cwchar/macros.cc index 28d363101d4b..17d6129dd901 100644 --- a/libstdc++-v3/testsuite/17_intro/header_csetjmp.cc +++ b/libstdc++-v3/testsuite/21_strings/headers/cwchar/macros.cc @@ -1,6 +1,6 @@ -// 2001-02-06 Benjamin Kosnik +// { 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,23 @@ // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, // USA. -// 17.4.1.2 Headers, csetjmp - -#include +#include namespace gnu { - void test01() - { - std::jmp_buf env; - int i __attribute__((unused)) = setjmp(env); -#ifndef setjmp - #error "setjmp_must_be_a_macro" +#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 - } -} - -int main() -{ - gnu::test01(); - return 0; } 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 000000000000..f7cd6a7608eb --- /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 + +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 000000000000..88871fa07ce2 --- /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 + +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 000000000000..a1d78c75c00c --- /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 + +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 000000000000..f8a48cfa96f1 --- /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 + +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 000000000000..a482ec10cf2c --- /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 + +namespace std { + // lib.char.traits, character traits: + template + struct char_traits; + template <> struct char_traits; + template <> struct char_traits; + + // lib.basic.string, basic_string: + template + class basic_string; + + template + basic_string + operator+(const basic_string& lhs, + const basic_string& rhs); + template + basic_string + operator+(const charT* lhs, + const basic_string& rhs); + template + basic_string + operator+(charT lhs, const basic_string& rhs); + template + basic_string + operator+(const basic_string& lhs, + const charT* rhs); + template + basic_string + operator+(const basic_string& lhs, charT rhs); + + template + bool operator==(const basic_string& lhs, + const basic_string& rhs); + template + bool operator==(const charT* lhs, + const basic_string& rhs); + template + bool operator==(const basic_string& lhs, + const charT* rhs); + template + bool operator!=(const basic_string& lhs, + const basic_string& rhs); + template + bool operator!=(const charT* lhs, + const basic_string& rhs); + template + bool operator!=(const basic_string& lhs, + const charT* rhs); + + template + bool operator< (const basic_string& lhs, + const basic_string& rhs); + template + bool operator< (const basic_string& lhs, + const charT* rhs); + template + bool operator< (const charT* lhs, + const basic_string& rhs); + template + bool operator> (const basic_string& lhs, + const basic_string& rhs); + template + bool operator> (const basic_string& lhs, + const charT* rhs); + template + bool operator> (const charT* lhs, + const basic_string& rhs); + + template + bool operator<=(const basic_string& lhs, + const basic_string& rhs); + template + bool operator<=(const basic_string& lhs, + const charT* rhs); + template + bool operator<=(const charT* lhs, + const basic_string& rhs); + template + bool operator>=(const basic_string& lhs, + const basic_string& rhs); + template + bool operator>=(const basic_string& lhs, + const charT* rhs); + template + bool operator>=(const charT* lhs, + const basic_string& rhs); + + // lib.string.special: + template + void swap(basic_string& lhs, + basic_string& rhs); + + template + basic_istream& + operator>>(basic_istream& is, + basic_string& str); + template + basic_ostream& + operator<<(basic_ostream& os, + const basic_string& str); + template + basic_istream& + getline(basic_istream& is, + basic_string& str, + charT delim); + template + basic_istream& + getline(basic_istream& is, + basic_string& str); + + typedef basic_string string; + typedef basic_string 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 000000000000..40731c40946c --- /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 + +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 similarity index 85% rename from libstdc++-v3/testsuite/22_locale/codecvt/1.cc rename to libstdc++-v3/testsuite/22_locale/codecvt/requirements/base_classes.cc index c0232ce8f686..15f5d64fc1e6 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(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 similarity index 86% rename from libstdc++-v3/testsuite/22_locale/codecvt/2.cc rename to libstdc++-v3/testsuite/22_locale/codecvt/requirements/explicit_instantiation.cc index 4e12657623f3..b73c8701bb44 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 // Should be able to instantiate this for other types besides char, wchar_t -class gnu_codecvt: public std::codecvt -{ }; - -void test02() -{ - gnu_codecvt facet01; -} - -int main() -{ - test02(); - return 0; -} +template class std::codecvt; 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 000000000000..45cfb2a21b15 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/codecvt/requirements/typedefs.cc @@ -0,0 +1,33 @@ +// { dg-do compile } +// 2001-08-27 Benjamin Kosnik + +// 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 + +void test01() +{ + // Check for required typedefs + typedef std::codecvt 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 similarity index 85% rename from libstdc++-v3/testsuite/22_locale/codecvt_byname/1.cc rename to libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/base_classes.cc index d9c9f16a4eb0..337bd1014367 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 base_type; const test_type& obj = std::use_facet(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 000000000000..094b386ddec5 --- /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 + +template class std::codecvt_byname; 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 000000000000..1bb9059e8e40 --- /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 + +// 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 + +void test01() +{ + // Check for required typedefs + typedef std::codecvt_byname 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 similarity index 88% rename from libstdc++-v3/testsuite/22_locale/collate/1.cc rename to libstdc++-v3/testsuite/22_locale/collate/requirements/base_classes.cc index 72de0a9e1faf..765980079db3 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(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 similarity index 87% rename from libstdc++-v3/testsuite/22_locale/collate/2.cc rename to libstdc++-v3/testsuite/22_locale/collate/requirements/explicit_instantiation.cc index e4d43e8f5c30..a9be3b1b0d29 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 // Should be able to instantiate this for other types besides char, wchar_t -class gnu_collate: public std::collate -{ }; - -void test02() -{ - gnu_collate facet01; -} - -int main() -{ - test02(); - return 0; -} +template class std::collate; 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 000000000000..9baafacde058 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/collate/requirements/typedefs.cc @@ -0,0 +1,32 @@ +// { dg-do compile } +// 2001-08-15 Benjamin Kosnik + +// 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 + +void test01() +{ + // Check for required typedefs + typedef std::collate 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 similarity index 88% rename from libstdc++-v3/testsuite/22_locale/collate_byname/1.cc rename to libstdc++-v3/testsuite/22_locale/collate_byname/requirements/base_classes.cc index be3b7d278502..f3d6571d69b1 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 base_type; const test_type& obj = std::use_facet(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 000000000000..43eda6f72bc8 --- /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 + +template class std::collate_byname; 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 000000000000..52ae527ce14e --- /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 + +// 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 + +void test01() +{ + // Check for required typedefs + typedef std::collate_byname 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 similarity index 91% rename from libstdc++-v3/testsuite/22_locale/ctype/1.cc rename to libstdc++-v3/testsuite/22_locale/ctype/requirements/base_classes.cc index a1e2f1f41edd..0cf4c516ce78 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(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 000000000000..85ebec3920f7 --- /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 + +template class std::ctype; 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 000000000000..f88fa34ed8dd --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/ctype/requirements/typedefs.cc @@ -0,0 +1,31 @@ +// { dg-do compile } +// 2001-08-15 Benjamin Kosnik + +// 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 + +void test01() +{ + // Check for required typedefs + typedef std::ctype 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 similarity index 100% rename from libstdc++-v3/testsuite/22_locale/ctype_base/1.cc rename to 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 000000000000..39626e8ac628 --- /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 + +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 000000000000..575a33a60670 --- /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 + +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 000000000000..125aef99b6e9 --- /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 + +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 000000000000..a26eab1a70ff --- /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 + +namespace std { + // lib.locale, locale: + class locale; + template const Facet& use_facet(const locale&); + template bool has_facet(const locale&) throw(); + + // lib.locale.convenience, convenience interfaces: + template bool isspace (charT c, const locale& loc); + template bool isprint (charT c, const locale& loc); + template bool iscntrl (charT c, const locale& loc); + template bool isupper (charT c, const locale& loc); + template bool islower (charT c, const locale& loc); + template bool isalpha (charT c, const locale& loc); + template bool isdigit (charT c, const locale& loc); + template bool ispunct (charT c, const locale& loc); + template bool isxdigit(charT c, const locale& loc); + template bool isalnum (charT c, const locale& loc); + template bool isgraph (charT c, const locale& loc); + template charT toupper(charT c, const locale& loc); + template charT tolower(charT c, const locale& loc); + + // lib.category.ctype and lib.facet.ctype.special, ctype: + class ctype_base; + template class ctype; + template <> class ctype; // specialization + template class ctype_byname; + template <> class ctype_byname; // specialization + class codecvt_base; + template + class codecvt; + template + class codecvt_byname; + + // lib.category.numeric and lib.facet.numpunct, numeric: + template class num_get; + template class num_put; + template class numpunct; + template class numpunct_byname; + + // lib.category.collate, collation: + template class collate; + template class collate_byname; + + // lib.category.time, date and time: + class time_base; + template class time_get; + template class time_get_byname; + template class time_put; + template class time_put_byname; + + // lib.category.monetary, money: + class money_base; + template class money_get; + template class money_put; + template class moneypunct; + template class moneypunct_byname; + + // lib.category.messages, message retrieval: + class messages_base; + template class messages; + template class messages_byname; +} diff --git a/libstdc++-v3/testsuite/17_intro/header_cwchar.cc b/libstdc++-v3/testsuite/22_locale/headers/locale/types_std.cc similarity index 73% rename from libstdc++-v3/testsuite/17_intro/header_cwchar.cc rename to libstdc++-v3/testsuite/22_locale/headers/locale/types_std.cc index faf623c117df..85e4b9d55bab 100644 --- a/libstdc++-v3/testsuite/17_intro/header_cwchar.cc +++ b/libstdc++-v3/testsuite/22_locale/headers/locale/types_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,16 +18,14 @@ // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, // USA. -// 17.4.1.2 Headers, cwchar +#include -#include - -int main(void) +namespace gnu { - // Make sure size_t is in namespace std - std::size_t i __attribute__((unused)) = 5; - - std::tm __attribute__((unused)) mytime; - - return 0; + 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 similarity index 89% rename from libstdc++-v3/testsuite/22_locale/messages/1.cc rename to libstdc++-v3/testsuite/22_locale/messages/requirements/base_classes.cc index 55b59ef46c64..ea89f80ea165 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(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 similarity index 87% rename from libstdc++-v3/testsuite/22_locale/messages/2.cc rename to libstdc++-v3/testsuite/22_locale/messages/requirements/explicit_instantiation.cc index 42c37d9c22a7..eaea10479066 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 // Should be able to instantiate this for other types besides char, wchar_t -class gnu_messages: public std::messages -{ }; - -void test02() -{ - gnu_messages facet01; -} - -int main() -{ - test02(); - return 0; -} +template class std::messages; 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 000000000000..e8c5b9528d49 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/messages/requirements/typedefs.cc @@ -0,0 +1,32 @@ +// { dg-do compile } +// 2001-07-17 Benjamin Kosnik + +// 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 + +void test01() +{ + // Check for required typedefs + typedef std::messages 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 similarity index 88% rename from libstdc++-v3/testsuite/22_locale/messages_byname/1.cc rename to libstdc++-v3/testsuite/22_locale/messages_byname/requirements/base_classes.cc index 51077ca548a7..4836c046d000 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 base_type; const test_type& obj = std::use_facet(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 000000000000..b108ff8fe1fb --- /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 + +template class std::messages_byname; 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 000000000000..b74150e6cda0 --- /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 + +// 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 + +void test01() +{ + // Check for required typedefs + typedef std::messages_byname 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 similarity index 100% rename from libstdc++-v3/testsuite/22_locale/money_get/3.cc rename to 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 similarity index 85% rename from libstdc++-v3/testsuite/22_locale/money_get/1.cc rename to libstdc++-v3/testsuite/22_locale/money_get/requirements/base_classes.cc index dd7d0d26be3c..a0a936ee0a84 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(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 similarity index 87% rename from libstdc++-v3/testsuite/22_locale/money_get/2.cc rename to libstdc++-v3/testsuite/22_locale/money_get/requirements/explicit_instantiations.cc index 3853a22456af..dc7f85968c8e 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 // Should be able to instantiate this for other types besides char, wchar_t -class gnu_money_get: public std::money_get -{ }; - -void test02() -{ - gnu_money_get facet01; -} - -int main() -{ - test02(); - return 0; -} +template class std::money_get; 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 000000000000..ee3b04d9d265 --- /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 + +// 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 + +void test01() +{ + // Check for required typedefs + typedef std::money_get 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 similarity index 100% rename from libstdc++-v3/testsuite/22_locale/money_put/3.cc rename to 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 similarity index 85% rename from libstdc++-v3/testsuite/22_locale/money_put/1.cc rename to libstdc++-v3/testsuite/22_locale/money_put/requirements/base_classes.cc index 2e0bfa05c2b2..b352a25bb98b 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(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 similarity index 87% rename from libstdc++-v3/testsuite/22_locale/money_put/2.cc rename to libstdc++-v3/testsuite/22_locale/money_put/requirements/explicit_instantiation.cc index 28f9005b1e47..0afb18759e01 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 // Should be able to instantiate this for other types besides char, wchar_t -class gnu_money_put: public std::money_put -{ }; - -void test02() -{ - gnu_money_put facet01; -} - -int main() -{ - test02(); - return 0; -} +template class std::money_put; 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 000000000000..1e5ded2cc56c --- /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 + +// 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 + +void test01() +{ + // Check for required typedefs + typedef std::money_put 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 similarity index 88% rename from libstdc++-v3/testsuite/22_locale/moneypunct/2.cc rename to libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/base_classes.cc index 87fb4f487d4d..a880d82fd1c3 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(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 000000000000..9b24c0b33875 --- /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 + +template class std::moneypunct; diff --git a/libstdc++-v3/testsuite/22_locale/moneypunct/3.cc b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/intl.cc similarity index 83% rename from libstdc++-v3/testsuite/22_locale/moneypunct/3.cc rename to libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/intl.cc index 2b8cdc310cb2..9380ecbe76de 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 #include // Should be able to instantiate this for other types besides char, wchar_t -class gnu_moneypunct_t: public std::moneypunct -{ }; - -class gnu_moneypunct_f: public std::moneypunct +class gnu_moneypunct_f: public std::moneypunct { }; 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 000000000000..cd6b92b9c9de --- /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 + +// 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 +#include + +void test02() +{ + // Check for required typedefs + typedef std::moneypunct 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 similarity index 86% rename from libstdc++-v3/testsuite/22_locale/moneypunct/1.cc rename to libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/base_classes.cc index 29959451f844..231172e86d74 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 -#include void test01() { @@ -31,14 +30,4 @@ void test01() typedef std::locale::facet base_type; const test_type& obj = std::use_facet(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 000000000000..20cac01cdab2 --- /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 + +template class std::moneypunct; 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 000000000000..3448737214a9 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/intl.cc @@ -0,0 +1,41 @@ +// 2001-08-23 Benjamin Kosnik + +// 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 +#include + +// Should be able to instantiate this for other types besides char, wchar_t +class gnu_moneypunct_t: public std::moneypunct +{ }; + +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 000000000000..f1ced4e9872a --- /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 + +// 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 +#include + +void test01() +{ + // Check for required typedefs + typedef std::moneypunct 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 similarity index 88% rename from libstdc++-v3/testsuite/22_locale/moneypunct_byname/1.cc rename to libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/base_classes.cc index 0751211e282d..1180f2981755 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 base_type; const test_type& obj = std::use_facet(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 000000000000..43302856408e --- /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 + +template class std::moneypunct_byname; 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 000000000000..b4b3b51039b6 --- /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 + +// 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 + +void test01() +{ + // Check for required typedefs + typedef std::moneypunct_byname 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 similarity index 100% rename from libstdc++-v3/testsuite/22_locale/num_get/3.cc rename to 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 similarity index 88% rename from libstdc++-v3/testsuite/22_locale/num_get/1.cc rename to libstdc++-v3/testsuite/22_locale/num_get/requirements/base_classes.cc index f1f1f85dd2bb..363ad15faf43 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(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 similarity index 87% rename from libstdc++-v3/testsuite/22_locale/num_get/2.cc rename to libstdc++-v3/testsuite/22_locale/num_get/requirements/explicit_instantiation.cc index ab2d7437ee5b..87e126a7d06a 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 // Should be able to instantiate this for other types besides char, wchar_t -class gnu_num_get: public std::num_get -{ }; - -void test02() -{ - gnu_num_get facet01; -} - -int main() -{ - test02(); - return 0; -} +template class std::num_get ; 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 000000000000..1229581e8648 --- /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 + +// 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 + +void test01() +{ + // Check for required typedefs + typedef std::num_get 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 similarity index 100% rename from libstdc++-v3/testsuite/22_locale/num_put/3.cc rename to 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 similarity index 88% rename from libstdc++-v3/testsuite/22_locale/num_put/1.cc rename to libstdc++-v3/testsuite/22_locale/num_put/requirements/base_classes.cc index 528c1306bd51..eb8432c5cb69 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(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 similarity index 87% rename from libstdc++-v3/testsuite/22_locale/num_put/2.cc rename to libstdc++-v3/testsuite/22_locale/num_put/requirements/explicit_instantiations.cc index cec69bb54b09..08008ee8c890 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 // Should be able to instantiate this for other types besides char, wchar_t -class gnu_num_put: public std::num_put -{ }; - -void test02() -{ - gnu_num_put facet01; -} - -int main() -{ - test02(); - return 0; -} +template class std::num_put; 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 000000000000..2dfed978c0d1 --- /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 + +// 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 + +void test01() +{ + // Check for required typedefs + typedef std::num_put 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 similarity index 88% rename from libstdc++-v3/testsuite/22_locale/numpunct/1.cc rename to libstdc++-v3/testsuite/22_locale/numpunct/requirements/base_classes.cc index b4dc0d9ad762..db5ce24202d9 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(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 similarity index 87% rename from libstdc++-v3/testsuite/22_locale/numpunct/2.cc rename to libstdc++-v3/testsuite/22_locale/numpunct/requirements/explicit_instantiations.cc index 59aa3d9b1c20..279633a3ea0a 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 // Should be able to instantiate this for other types besides char, wchar_t -class gnu_numpunct: public std::numpunct -{ }; - -void test02() -{ - gnu_numpunct facet01; -} - -int main() -{ - test02(); - return 0; -} +template class std::numpunct; 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 000000000000..e58fa1ec1ba0 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/numpunct/requirements/typedefs.cc @@ -0,0 +1,32 @@ +// { dg-do compile } +// 2001-01-23 Benjamin Kosnik + +// 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 + +void test01() +{ + // Check for required typedefs + typedef std::numpunct 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 similarity index 88% rename from libstdc++-v3/testsuite/22_locale/numpunct_byname/1.cc rename to libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/base_classes.cc index c41707873d6c..9b79493cd7b7 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 base_type; const test_type& obj = std::use_facet(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 000000000000..799541de6cbb --- /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 + +// 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 + +// Should be able to instantiate this for other types besides char, wchar_t +template class std::numpunct_byname; 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 000000000000..d269996a6743 --- /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 + +// 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 + +void test01() +{ + // Check for required typedefs + typedef std::numpunct_byname 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 similarity index 89% rename from libstdc++-v3/testsuite/22_locale/time_get/1.cc rename to libstdc++-v3/testsuite/22_locale/time_get/requirements/base_classes.cc index 1a68ce7128a2..072db6dbd6d9 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(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 similarity index 87% rename from libstdc++-v3/testsuite/22_locale/time_get/2.cc rename to libstdc++-v3/testsuite/22_locale/time_get/requirements/explicit_instantiations.cc index 19c145c59119..170e9e754725 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 // Should be able to instantiate this for other types besides char, wchar_t -class gnu_time_get: public std::time_get -{ }; - -void test02() -{ - gnu_time_get facet01; -} - -int main() -{ - test02(); - return 0; -} +template class std::time_get; 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 000000000000..1d2afa6de3e8 --- /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 + +// 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 + +void test01() +{ + // Check for required typedefs + typedef std::time_get 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 similarity index 88% rename from libstdc++-v3/testsuite/22_locale/time_put/1.cc rename to libstdc++-v3/testsuite/22_locale/time_put/requirements/base_classes.cc index 69f24aec5ea8..197fa6e6a644 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(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 similarity index 87% rename from libstdc++-v3/testsuite/22_locale/time_put/2.cc rename to libstdc++-v3/testsuite/22_locale/time_put/requirements/explicit_instantiations.cc index 50383559531a..a1b365c597b2 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 // Should be able to instantiate this for other types besides char, wchar_t -class gnu_time_put: public std::time_put -{ }; - -void test02() -{ - gnu_time_put facet01; -} - -int main() -{ - test02(); - return 0; -} +template class std::time_put; 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 000000000000..69e7c4ac88f1 --- /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 + +// 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 + +void test01() +{ + // Check for required typedefs + typedef std::time_put 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 000000000000..bec170ea64fb --- /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 + +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 similarity index 100% rename from libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/1.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/2.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/3.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/23_containers/deque/1.cc rename to 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 000000000000..e0ba4d45e07f --- /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 + +namespace std { + template class bitset; + + // 23.3.5.3 bitset operations: + template + bitset operator&(const bitset&, const bitset&); + + template + bitset operator|(const bitset&, const bitset&); + + template + bitset operator^(const bitset&, const bitset&); + + template + basic_istream& + operator>>(basic_istream& is, bitset& x); + + template + basic_ostream& + operator<<(basic_ostream& os, const bitset& 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 000000000000..832baf197373 --- /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 + +namespace std { + template class deque; + + template + bool operator== (const deque& x, const deque& y); + + template + bool operator< (const deque& x, const deque& y); + + template + bool operator!= (const deque& x, const deque& y); + + template + bool operator> (const deque& x, const deque& y); + + template + bool operator>= (const deque& x, const deque& y); + + template + bool operator<= (const deque& x, const deque& y); + + template + void swap(deque& x, deque& 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 000000000000..1b3fb40d52d1 --- /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 + +namespace std { + template class list; + + template + bool operator==(const list& x, const list&); + + template + bool operator< (const list& x, const list&); + + template + bool operator!=(const list& x, const list&); + + template + bool operator> (const list& x, const list&); + + template + bool operator>=(const list& x, const list&); + + template + bool operator<=(const list& x, const list&); + + template + void swap(list& x, list& 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 000000000000..a8129df6aec7 --- /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 + +namespace std { + template + class map; + template + bool operator==(const map& x, + const map& y); + template + bool operator< (const map& x, + const map& y); + template + bool operator!=(const map& x, + const map& y); + template + bool operator> (const map& x, + const map& y); + template + bool operator>=(const map& x, + const map& y); + template + bool operator<=(const map& x, + const map& y); + template + void swap(map& x, + map& y); + + template + class multimap; + template + bool operator==(const multimap& x, + const multimap& y); + template + bool operator< (const multimap& x, + const multimap& y); + template + bool operator!=(const multimap& x, + const multimap& y); + template + bool operator> (const multimap& x, + const multimap& y); + template + bool operator>=(const multimap& x, + const multimap& y); + template + bool operator<=(const multimap& x, + const multimap& y); + template + void swap(multimap& x, + multimap& 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 000000000000..67a99d21acb4 --- /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 + +namespace std { + template class queue; + template + bool operator==(const queue& x, + const queue& y); + + template + bool operator< (const queue& x, + const queue& y); + + template + bool operator!=(const queue& x, + const queue& y); + + template + bool operator> (const queue& x, + const queue& y); + + template + bool operator>=(const queue& x, + const queue& y); + + template + bool operator<=(const queue& x, + const queue& y); + + template + 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 000000000000..e517bf479a7e --- /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 + +namespace std { + template + class set; + + template + bool operator==(const set& x, + const set& y); + + template + bool operator< (const set& x, + const set& y); + + template + bool operator!=(const set& x, + const set& y); + + template + bool operator> (const set& x, + const set& y); + + template + bool operator>=(const set& x, + const set& y); + + template + bool operator<=(const set& x, + const set& y); + + template + void swap(set& x, + set& y); + + template + class multiset; + + template + bool operator==(const multiset& x, + const multiset& y); + + template + bool operator< (const multiset& x, + const multiset& y); + + template + bool operator!=(const multiset& x, + const multiset& y); + + template + bool operator> (const multiset& x, + const multiset& y); + + template + bool operator>=(const multiset& x, + const multiset& y); + + template + bool operator<=(const multiset& x, + const multiset& y); + + template + void swap(multiset& x, + multiset& 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 000000000000..b6bea1eff46a --- /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 + +namespace std { + template class stack; + + template + bool operator==(const stack& x, + const stack& y); + + template + bool operator< (const stack& x, + const stack& y); + + template + bool operator!=(const stack& x, + const stack& y); + + template + bool operator> (const stack& x, + const stack& y); + + template + bool operator>=(const stack& x, + const stack& y); + + template + bool operator<=(const stack& x, + const stack& 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 000000000000..713fb79ce556 --- /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 + +namespace std { + template class vector; + + template + bool operator==(const vector& x, + const vector& y); + + template + bool operator< (const vector& x, + const vector& y); + + template + bool operator!=(const vector& x, + const vector& y); + + template + bool operator> (const vector& x, + const vector& y); + + template + bool operator>=(const vector& x, + const vector& y); + + template + bool operator<=(const vector& x, + const vector& y); + + template + void swap(vector& x, vector& y); + + template class vector; + + template + bool operator==(const vector& x, + const vector& y); + + template + bool operator< (const vector& x, + const vector& y); + + template + bool operator!=(const vector& x, + const vector& y); + + template + bool operator> (const vector& x, + const vector& y); + + template + bool operator>=(const vector& x, + const vector& y); + + template + bool operator<=(const vector& x, + const vector& y); + + template + void swap(vector& x, vector& 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 similarity index 100% rename from libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/1.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/2.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/3.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/23_containers/list/1.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/1.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/2.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/3.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/23_containers/map/1.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/1.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/2.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/3.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/23_containers/multimap/1.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/1.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/2.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/3.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/23_containers/multiset/1.cc rename to 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 000000000000..648040d7e260 --- /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 + +template class std::priority_queue; 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 000000000000..081f73ac7f35 --- /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 + +template class std::queue; 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 similarity index 100% rename from libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/1.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/2.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/3.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/23_containers/set/1.cc rename to 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 000000000000..ee0a2446333d --- /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 + +template class std::stack; 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 similarity index 100% rename from libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/1.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/2.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/3.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/23_containers/vector/1.cc rename to 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 000000000000..ce2f1ff41def --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/2.cc @@ -0,0 +1,37 @@ +// 2001-06-21 Benjamin Kosnik + +// 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 +#include + +void test02() +{ + typedef std::back_insert_iterator > iterator_type; + std::list 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 000000000000..527301af6f2e --- /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 + +// 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 +#include + +void test01() +{ + using namespace std; + + // Check for required base class. + list l; + typedef back_insert_iterator > test_iterator; + typedef iterator 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 000000000000..1d2d4e0b15d9 --- /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 + +// 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 +#include + +// Check data member 'container' accessible. +class test_dm : public std::back_insert_iterator > +{ + container_type l; + container_type* p; +public: + test_dm(): std::back_insert_iterator >(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 000000000000..dedcefb9b168 --- /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 + +// 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 +#include + +// Make sure iterator can be instantiated. +template class std::back_insert_iterator >; diff --git a/libstdc++-v3/testsuite/24_iterators/back_insert_iterator.cc b/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/typedefs.cc similarity index 65% rename from libstdc++-v3/testsuite/24_iterators/back_insert_iterator.cc rename to libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/typedefs.cc index 9105a5591d55..3253d44a946e 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 // 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 l; - typedef back_insert_iterator > test_iterator; - typedef iterator base_iterator; - test_iterator r_it(l); - base_iterator* base __attribute__((unused)) = &r_it; - // Check for required typedefs + typedef back_insert_iterator > 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 >; - -void test02() -{ - typedef std::back_insert_iterator > iterator_type; - std::list li; - iterator_type it = std::back_inserter(li); -} - -// Check data member 'container' accessible. -class test_dm : public std::back_insert_iterator > -{ - container_type l; - container_type* p; -public: - test_dm(): std::back_insert_iterator >(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 000000000000..fee624b5172a --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/2.cc @@ -0,0 +1,37 @@ +// 2001-06-21 Benjamin Kosnik + +// 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 +#include + +void test02() +{ + typedef std::front_insert_iterator > iterator_type; + std::list 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 000000000000..f037f76a64a1 --- /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 + +// 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 +#include + +void test01() +{ + using namespace std; + + // Check for required base class. + list l; + typedef front_insert_iterator > test_iterator; + typedef iterator 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 000000000000..696292d25757 --- /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 + +// 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 +#include + +// Check data member 'container' accessible. +class test_dm : public std::front_insert_iterator > +{ + container_type l; + container_type* p; +public: + test_dm(): std::front_insert_iterator >(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 000000000000..b6f13b197ca7 --- /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 + +// 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 +#include + +// Make sure iterator can be instantiated. +template class std::front_insert_iterator >; diff --git a/libstdc++-v3/testsuite/24_iterators/front_insert_iterator.cc b/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/typedefs.cc similarity index 64% rename from libstdc++-v3/testsuite/24_iterators/front_insert_iterator.cc rename to libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/typedefs.cc index bdd024c1f289..a3ce57e5fda8 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 // Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc. @@ -27,14 +28,8 @@ void test01() { using namespace std; - // Check for required base class. - list l; - typedef front_insert_iterator > test_iterator; - typedef iterator base_iterator; - test_iterator r_it(l); - base_iterator* base __attribute__((unused)) = &r_it; - // Check for required typedefs + typedef front_insert_iterator > 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 >; - -void test02() -{ - typedef std::front_insert_iterator > iterator_type; - std::list li; - iterator_type it = std::front_inserter(li); -} - -// Check data member 'container' accessible. -class test_dm : public std::front_insert_iterator > -{ - container_type l; - container_type* p; -public: - test_dm(): std::front_insert_iterator >(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 000000000000..fdb22f05239d --- /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 + +namespace std { + + // 24.3, primitives: + template struct iterator_traits; + template struct iterator_traits; + + template 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 + void + advance(InputIterator& i, Distance n); + + template + typename iterator_traits::difference_type + distance(InputIterator first, InputIterator last); + + // 24.4, predefined iterators: + template class reverse_iterator; + + template + bool operator==(const reverse_iterator& x, + const reverse_iterator& y); + + template + bool operator<(const reverse_iterator& x, + const reverse_iterator& y); + + template + bool operator!=(const reverse_iterator& x, + const reverse_iterator& y); + + template + bool operator>(const reverse_iterator& x, + const reverse_iterator& y); + + template + bool operator>=(const reverse_iterator& x, + const reverse_iterator& y); + + template + bool operator<=(const reverse_iterator& x, + const reverse_iterator& y); + + template + typename reverse_iterator::difference_type + operator-(const reverse_iterator& x, + const reverse_iterator& y); + + template + reverse_iterator + operator+(typename reverse_iterator::difference_type n, + const reverse_iterator& x); + + template class back_insert_iterator; + + template + back_insert_iterator back_inserter(Container& x); + + template class front_insert_iterator; + + template + front_insert_iterator front_inserter(Container& x); + + template class insert_iterator; + + template + insert_iterator inserter(Container& x, Iterator i); + + // 24.5, stream iterators: + template + class istream_iterator; + + template + bool operator==(const istream_iterator& x, + const istream_iterator& y); + + template + bool operator!=(const istream_iterator& x, + const istream_iterator& y); + + template + class ostream_iterator; + + template + class istreambuf_iterator; + + template + bool + operator==(const istreambuf_iterator&, + const istreambuf_iterator&); + + template + bool operator!=(const istreambuf_iterator&, + const istreambuf_iterator&); + + template + 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 000000000000..0db2173a890f --- /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 + +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 951d32987d87..000000000000 --- a/libstdc++-v3/testsuite/24_iterators/insert_iterator.cc +++ /dev/null @@ -1,78 +0,0 @@ -// 2001-06-21 Benjamin Kosnik - -// 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 -#include - -void test01() -{ - using namespace std; - - // Check for required base class. - list l; - list::iterator li = l.begin(); - - typedef insert_iterator > test_iterator; - typedef iterator 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 >; - -void test02() -{ - typedef std::insert_iterator > iterator_type; - - std::list li; - std::list::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 > -{ - container_type l; - container_type::iterator i; - container_type* p; -public: - test_dm(): std::insert_iterator >(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 000000000000..4a8222a7358c --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/insert_iterator/2.cc @@ -0,0 +1,40 @@ +// 2001-06-21 Benjamin Kosnik + +// 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 +#include + +void test02() +{ + typedef std::insert_iterator > iterator_type; + + std::list li; + std::list::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 000000000000..5becd2e8755e --- /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 + +// 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 +#include + +void test01() +{ + using namespace std; + + // Check for required base class. + list l; + list::iterator li = l.begin(); + + typedef insert_iterator > test_iterator; + typedef iterator 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 000000000000..b4efd62e762a --- /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 + +// 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 +#include + +// Check data member 'container' accessible. +class test_dm : public std::insert_iterator > +{ + container_type l; + container_type::iterator i; + container_type* p; +public: + test_dm(): std::insert_iterator >(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 000000000000..d056073ca5a4 --- /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 + +// 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 +#include + +// Make sure iterator can be instantiated. +template class std::insert_iterator >; 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 000000000000..7ebed33a9e48 --- /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 + +// 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 +#include + +void test01() +{ + using namespace std; + + // Check for required typedefs + typedef insert_iterator > 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 similarity index 69% rename from libstdc++-v3/testsuite/24_iterators/istream_iterator.cc rename to libstdc++-v3/testsuite/24_iterators/istream_iterator/2.cc index db57f665d134..ea26105b43d2 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 #include -void test01() -{ - using namespace std; - - // Check for required base class. - typedef istream_iterator test_iterator; - typedef iterator 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; - 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 000000000000..c51013e3d50a --- /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 + +// 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 +#include +#include + +void test01() +{ + using namespace std; + + // Check for required base class. + typedef istream_iterator test_iterator; + typedef iterator 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 similarity index 77% rename from libstdc++-v3/testsuite/17_intro/header_cstring.cc rename to libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/explicit_instantiation.cc index 0f58fc935e7d..04f7bd9f4696 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 // 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 +#include +#include +#include - -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; 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 000000000000..17b540cb56e5 --- /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 + +// 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 +#include +#include + +void test01() +{ + using namespace std; + + // Check for required typedefs + typedef istream_iterator 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 000000000000..c1ee75c767d6 --- /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 +#include +#include + +void test01() +{ + using namespace std; + + // Check for required base class. + typedef istreambuf_iterator test_iterator; + typedef char_traits::off_type off_type; + typedef iterator 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 similarity index 79% rename from libstdc++-v3/testsuite/17_intro/header_sstream.cc rename to libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/explicit_instantiation.cc index d8689aedae33..a9560f011ef0 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 +#include #include - -int main(void) -{ - return 0; -} +template class std::istreambuf_iterator; diff --git a/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/1.cc b/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/typedefs.cc similarity index 84% rename from libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/1.cc rename to libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/typedefs.cc index 3d3fec42409a..810163d2d4d7 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 test_iterator; - typedef char_traits::off_type off_type; - typedef iterator 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 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 000000000000..f8980f34bf29 --- /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 + +// 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 +#include +#include + +void test01() +{ + using namespace std; + + // Check for required base class. + typedef ostream_iterator test_iterator; + typedef iterator base_iterator; + ostringstream osstream("this tag"); + test_iterator r_it(osstream); + base_iterator* base __attribute__((unused)) = &r_it; +} diff --git a/libstdc++-v3/testsuite/17_intro/header_cstdio.cc b/libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/explicit_instantiation.cc similarity index 73% rename from libstdc++-v3/testsuite/17_intro/header_cstdio.cc rename to libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/explicit_instantiation.cc index 688df8d0840d..0c7644c7704e 100644 --- a/libstdc++-v3/testsuite/17_intro/header_cstdio.cc +++ b/libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/explicit_instantiation.cc @@ -1,6 +1,7 @@ -// 2000-01-01 bkoz +// { dg-do compile } +// 2001-06-25 Benjamin Kosnik -// Copyright (C) 2001, 2003 Free Software Foundation, Inc. +// 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 @@ -18,13 +19,11 @@ // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, // USA. -// 17.4.1.2 Headers, cstdio +// 24.5.4 Template class ostream_iterator -#include +#include +#include +#include -int main(void) -{ - // Make sure size_t is in namespace std - std::size_t i __attribute__((unused)) = 5; - return 0; -} +// Instantiate +template class std::ostream_iterator; diff --git a/libstdc++-v3/testsuite/24_iterators/ostream_iterator.cc b/libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/typedefs.cc similarity index 81% rename from libstdc++-v3/testsuite/24_iterators/ostream_iterator.cc rename to libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/typedefs.cc index 6e291f167eac..d7a0835683dd 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 // Copyright (C) 2001 Free Software Foundation, Inc. @@ -28,14 +29,8 @@ void test01() { using namespace std; - // Check for required base class. - typedef ostream_iterator test_iterator; - typedef iterator 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 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; - -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 000000000000..1fe0a8f50e3a --- /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 + +// 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 +#include +#include + +void test01() +{ + using namespace std; + + // Check for required base class. + typedef ostreambuf_iterator test_iterator; + typedef iterator 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 000000000000..c46caae1fde6 --- /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 +#include + +template class std::ostreambuf_iterator; diff --git a/libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/1.cc b/libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/typedefs.cc similarity index 86% rename from libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/1.cc rename to libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/typedefs.cc index e62413436812..bc0266b50ebd 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 test_iterator; - typedef iterator 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 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 similarity index 100% rename from libstdc++-v3/testsuite/24_iterators/26020.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/24_iterators/iterator.cc rename to 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 225390cd82c5..481c209adf07 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* 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 similarity index 79% rename from libstdc++-v3/testsuite/24_iterators/reverse_iterator/1.cc rename to libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc index 70c4e41a655a..9029df0f6994 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; 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 000000000000..0981dbfe884a --- /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 + +// 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 + +// Check data member 'current' accessible. +class test_dm : public std::reverse_iterator +{ + 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 000000000000..f0e2351fe062 --- /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 + +// 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 + +// Make sure iterator can be instantiated. +template class std::reverse_iterator; 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 000000000000..d9870444456c --- /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 + +// 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 + +void test01() +{ + using namespace std; + + // Check for required typedefs + typedef reverse_iterator 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 000000000000..032fa31efecf --- /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 + +namespace std { + // 25.1, non-modifying sequence operations: + template + Function for_each(InputIterator first, InputIterator last, Function f); + template + InputIterator find(InputIterator first, InputIterator last, + const T& value); + template + InputIterator find_if(InputIterator first, InputIterator last, + Predicate pred); + template + ForwardIterator1 + find_end(ForwardIterator1 first1, ForwardIterator1 last1, + ForwardIterator2 first2, ForwardIterator2 last2); + template + ForwardIterator1 + find_end(ForwardIterator1 first1, ForwardIterator1 last1, + ForwardIterator2 first2, ForwardIterator2 last2, + BinaryPredicate pred); + template + ForwardIterator1 + find_first_of(ForwardIterator1 first1, ForwardIterator1 last1, + ForwardIterator2 first2, ForwardIterator2 last2); + template + ForwardIterator1 + find_first_of(ForwardIterator1 first1, ForwardIterator1 last1, + ForwardIterator2 first2, ForwardIterator2 last2, + BinaryPredicate pred); + +template + ForwardIterator adjacent_find(ForwardIterator first, + ForwardIterator last); + +template + ForwardIterator adjacent_find(ForwardIterator first, + ForwardIterator last, BinaryPredicate pred); + +template + typename iterator_traits::difference_type + count(InputIterator first, InputIterator last, const T& value); + +template + typename iterator_traits::difference_type + count_if(InputIterator first, InputIterator last, Predicate pred); +template + pair + mismatch(InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2); +template + + pair + mismatch(InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, BinaryPredicate pred); +template + bool equal(InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2); +template + + bool equal(InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, BinaryPredicate pred); + +template + ForwardIterator1 search + (ForwardIterator1 first1, ForwardIterator1 last1, + ForwardIterator2 first2, ForwardIterator2 last2); + +template + ForwardIterator1 search + (ForwardIterator1 first1, ForwardIterator1 last1, + ForwardIterator2 first2, ForwardIterator2 last2, + BinaryPredicate pred); + +template + ForwardIterator search_n(ForwardIterator first, ForwardIterator last, + Size count, const T& value); + +template + ForwardIterator search_n(ForwardIterator first, ForwardIterator last, + Size count, const T& value, + BinaryPredicate pred); + +// 25.2, modifying sequence operations: +// 25.2.1, copy: +template + OutputIterator copy(InputIterator first, InputIterator last, + OutputIterator result); +template + BidirectionalIterator2 + copy_backward + (BidirectionalIterator1 first, BidirectionalIterator1 last, + BidirectionalIterator2 result); +// 25.2.2, swap: +template void swap(T& a, T& b); +template + ForwardIterator2 swap_ranges(ForwardIterator1 first1, + ForwardIterator1 last1, ForwardIterator2 first2); +template + void iter_swap(ForwardIterator1 a, ForwardIterator2 b); +template + OutputIterator transform(InputIterator first, InputIterator last, + OutputIterator result, UnaryOperation op); +template + OutputIterator transform(InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, OutputIterator result, + BinaryOperation binary_op); +template + void replace(ForwardIterator first, ForwardIterator last, + const T& old_value, const T& new_value); +template + void replace_if(ForwardIterator first, ForwardIterator last, + Predicate pred, const T& new_value); +template + OutputIterator replace_copy(InputIterator first, InputIterator last, + OutputIterator result, + const T& old_value, const T& new_value); +template + OutputIterator replace_copy_if(Iterator first, Iterator last, + OutputIterator result, + Predicate pred, const T& new_value); +template + void fill(ForwardIterator first, ForwardIterator last, const T& value); +template + void fill_n(OutputIterator first, Size n, const T& value); +template + void generate(ForwardIterator first, ForwardIterator last, + Generator gen); +template + void generate_n(OutputIterator first, Size n, Generator gen); + +template + ForwardIterator remove(ForwardIterator first, ForwardIterator last, + const T& value); +template + ForwardIterator remove_if(ForwardIterator first, ForwardIterator last, + Predicate pred); +template + OutputIterator remove_copy(InputIterator first, InputIterator last, + OutputIterator result, const T& value); +template + OutputIterator remove_copy_if(InputIterator first, InputIterator last, + OutputIterator result, Predicate pred); +template + ForwardIterator unique(ForwardIterator first, ForwardIterator last); +template + ForwardIterator unique(ForwardIterator first, ForwardIterator last, + BinaryPredicate pred); +template + OutputIterator unique_copy(InputIterator first, InputIterator last, + OutputIterator result); +template + OutputIterator unique_copy(InputIterator first, InputIterator last, + OutputIterator result, BinaryPredicate pred); +template + void reverse(BidirectionalIterator first, BidirectionalIterator last); +template + OutputIterator reverse_copy(BidirectionalIterator first, + BidirectionalIterator last, + OutputIterator result); +template + void rotate(ForwardIterator first, ForwardIterator middle, + ForwardIterator last); +template + OutputIterator rotate_copy + (ForwardIterator first, ForwardIterator middle, + ForwardIterator last, OutputIterator result); +template + void random_shuffle(RandomAccessIterator first, + RandomAccessIterator last); +template + void random_shuffle(RandomAccessIterator first, + RandomAccessIterator last, + RandomNumberGenerator& rand); +// 25.2.12, partitions: +template + BidirectionalIterator partition(BidirectionalIterator first, + BidirectionalIterator last, + Predicate pred); +template + BidirectionalIterator stable_partition(BidirectionalIterator first, + BidirectionalIterator last, + Predicate pred); +// 25.3, sorting and related operations: +// 25.3.1, sorting: +template + void sort(RandomAccessIterator first, RandomAccessIterator last); +template + void sort(RandomAccessIterator first, RandomAccessIterator last, + Compare comp); +template + void stable_sort(RandomAccessIterator first, RandomAccessIterator last); +template + void stable_sort(RandomAccessIterator first, RandomAccessIterator last, + Compare comp); +template + void partial_sort(RandomAccessIterator first, + RandomAccessIterator middle, + RandomAccessIterator last); +template + void partial_sort(RandomAccessIterator first, + RandomAccessIterator middle, + RandomAccessIterator last, Compare comp); +template + RandomAccessIterator + partial_sort_copy(InputIterator first, InputIterator last, + RandomAccessIterator result_first, + RandomAccessIterator result_last); +template + RandomAccessIterator + partial_sort_copy(InputIterator first, InputIterator last, + RandomAccessIterator result_first, + RandomAccessIterator result_last, + Compare comp); +template + void nth_element(RandomAccessIterator first, RandomAccessIterator nth, + RandomAccessIterator last); +template + void nth_element(RandomAccessIterator first, RandomAccessIterator nth, + RandomAccessIterator last, Compare comp); +// 25.3.3, binary search: +template + ForwardIterator lower_bound(ForwardIterator first, ForwardIterator last, + const T& value); +template + ForwardIterator lower_bound(ForwardIterator first, ForwardIterator last, + const T& value, Compare comp); +template + ForwardIterator upper_bound(ForwardIterator first, ForwardIterator last, + const T& value); +template + ForwardIterator upper_bound(ForwardIterator first, ForwardIterator last, + const T& value, Compare comp); +template + pair + equal_range(ForwardIterator first, ForwardIterator last, + const T& value); +template + pair + equal_range(ForwardIterator first, ForwardIterator last, + const T& value, Compare comp); +template + bool binary_search(ForwardIterator first, ForwardIterator last, + const T& value); +template + bool binary_search(ForwardIterator first, ForwardIterator last, + const T& value, Compare comp); +// 25.3.4, merge: +template + OutputIterator merge(InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + OutputIterator result); +template + OutputIterator merge(InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + OutputIterator result, Compare comp); +template + void inplace_merge(BidirectionalIterator first, + BidirectionalIterator middle, + BidirectionalIterator last); +template + void inplace_merge(BidirectionalIterator first, + BidirectionalIterator middle, + BidirectionalIterator last, Compare comp); +// 25.3.5, set operations: +template + bool includes(InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2); +template + bool includes + (InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, Compare comp); +template + OutputIterator set_union(InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + OutputIterator result); +template + OutputIterator set_union(InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + OutputIterator result, Compare comp); +template + OutputIterator set_intersection + (InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + OutputIterator result); +template + OutputIterator set_intersection + (InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + OutputIterator result, Compare comp); +template + OutputIterator set_difference + (InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + OutputIterator result); +template + OutputIterator set_difference + (InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + OutputIterator result, Compare comp); +template + OutputIterator + set_symmetric_difference(InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + OutputIterator result); +template + OutputIterator + set_symmetric_difference(InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + OutputIterator result, Compare comp); +// 25.3.6, heap operations: +template + void push_heap(RandomAccessIterator first, RandomAccessIterator last); +template + void push_heap(RandomAccessIterator first, RandomAccessIterator last, + Compare comp); +template + void pop_heap(RandomAccessIterator first, RandomAccessIterator last); +template + void pop_heap(RandomAccessIterator first, RandomAccessIterator last, + Compare comp); +template + void make_heap(RandomAccessIterator first, RandomAccessIterator last); +template + void make_heap(RandomAccessIterator first, RandomAccessIterator last, + Compare comp); +template + void sort_heap(RandomAccessIterator first, RandomAccessIterator last); +template + void sort_heap(RandomAccessIterator first, RandomAccessIterator last, + Compare comp); + + // 25.3.7, minimum and maximum: + template const T& min(const T& a, const T& b); + template + const T& min(const T& a, const T& b, Compare comp); + template const T& max(const T& a, const T& b); + template + const T& max(const T& a, const T& b, Compare comp); + template + ForwardIterator min_element + (ForwardIterator first, ForwardIterator last); + template + ForwardIterator min_element(ForwardIterator first, ForwardIterator last, + Compare comp); + template + ForwardIterator max_element + (ForwardIterator first, ForwardIterator last); + template + ForwardIterator max_element(ForwardIterator first, ForwardIterator last, + Compare comp); + template + bool lexicographical_compare + (InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2); + template + bool lexicographical_compare + (InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + Compare comp); + + // 25.3.9, permutations + template + bool next_permutation(BidirectionalIterator first, + BidirectionalIterator last); + template + bool next_permutation(BidirectionalIterator first, + BidirectionalIterator last, Compare comp); + template + bool prev_permutation(BidirectionalIterator first, + BidirectionalIterator last); + template + 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 000000000000..fcbf50bce2f2 --- /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 + +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 similarity index 100% rename from libstdc++-v3/testsuite/26_numerics/cmath/19322.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/26_numerics/cmath/c99_classification_macros_c++.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/26_numerics/cmath/c99_classification_macros_c.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/26_numerics/cmath/c_math.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/26_numerics/cmath/c_math_dynamic.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/26_numerics/cmath/fabs_inline.cc rename to 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 000000000000..046b57fd4e94 --- /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 + +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 000000000000..5b70b0e30d2b --- /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 + +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 similarity index 100% rename from libstdc++-v3/testsuite/26_numerics/cmath/overloads.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/26_numerics/cmath/powi.cc rename to 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 000000000000..8fba3a3c21b5 --- /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 + +namespace std { + template class complex; + template<> class complex; + template<> class complex; + template<> class complex; + + // 26.2.6 operators: + template + complex operator+(const complex&, const complex&); + template complex operator+(const complex&, const T&); + template complex operator+(const T&, const complex&); + template complex operator- + (const complex&, const complex&); + template complex operator-(const complex&, const T&); + template complex operator-(const T&, const complex&); + template complex operator* + (const complex&, const complex&); + template complex operator*(const complex&, const T&); + template complex operator*(const T&, const complex&); + template complex operator/ + (const complex&, const complex&); + template complex operator/(const complex&, const T&); + template complex operator/(const T&, const complex&); + template complex operator+(const complex&); + template complex operator-(const complex&); + template bool operator== + (const complex&, const complex&); + template bool operator==(const complex&, const T&); + template bool operator==(const T&, const complex&); + + + template bool operator!=(const complex&, const complex&); + template bool operator!=(const complex&, const T&); + template bool operator!=(const T&, const complex&); + template + basic_istream& + operator>>(basic_istream&, complex&); + template + basic_ostream& + operator<<(basic_ostream&, const complex&); + + // 26.2.7 values: + template T real(const complex&); + template T imag(const complex&); + template T abs(const complex&); + template T arg(const complex&); + template T norm(const complex&); + template complex conj(const complex&); + template complex polar(const T& rho, const T& theta = 0); + + // 26.2.8 transcendentals: + template complex cos(const complex&); + template complex cosh(const complex&); + template complex exp(const complex&); + template complex log(const complex&); + template complex log10(const complex&); + template complex pow(const complex&, int); + template complex pow(const complex&, const T&); + template complex pow(const complex&, const complex&); + template complex pow(const T&, const complex&); + template complex sin (const complex&); + template complex sinh(const complex&); + template complex sqrt(const complex&); + template complex tan(const complex&); + template complex tanh(const complex&); +} diff --git a/libstdc++-v3/testsuite/26_numerics/cstdlib/13943.cc b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/13943.cc similarity index 100% rename from libstdc++-v3/testsuite/26_numerics/cstdlib/13943.cc rename to 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 similarity index 90% rename from libstdc++-v3/testsuite/17_intro/header_cstdlib.cc rename to libstdc++-v3/testsuite/26_numerics/headers/cstdlib/2190.cc index 82e21b6f0128..badcecee8a1d 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 000000000000..6b5d3082f41c --- /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 + +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 000000000000..dc8231a9ca4a --- /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 + +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 000000000000..6af857dc6dcb --- /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 + +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 000000000000..c322c610255b --- /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 + +namespace std { + template + T accumulate(InputIterator first, InputIterator last, T init); + + template + T accumulate(InputIterator first, InputIterator last, T init, + BinaryOperation binary_op); + + template + T inner_product(InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, T init); + + template + T inner_product(InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, T init, + BinaryOperation1 binary_op1, + BinaryOperation2 binary_op2); + + template + OutputIterator partial_sum(InputIterator first, + InputIterator last, + OutputIterator result); + + template + OutputIterator partial_sum(InputIterator first, + InputIterator last, + OutputIterator result, + BinaryOperation binary_op); + + template + OutputIterator adjacent_difference(InputIterator first, + InputIterator last, + OutputIterator result); + + template + 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 000000000000..90a542b40668 --- /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 + +namespace std { + template class valarray; + + class slice; + template class slice_array; + + class gslice; + template class gslice_array; + template class mask_array; + template class indirect_array; + template valarray operator* + (const valarray&, const valarray&); + template valarray operator* (const valarray&, const T&); + template valarray operator* (const T&, const valarray&); + +template valarray operator/ + (const valarray&, const valarray&); +template valarray operator/ (const valarray&, const T&); +template valarray operator/ (const T&, const valarray&); +template valarray operator% + (const valarray&, const valarray&); +template valarray operator% (const valarray&, const T&); +template valarray operator% (const T&, const valarray&); +template valarray operator+ + (const valarray&, const valarray&); +template valarray operator+ (const valarray&, const T&); +template valarray operator+ (const T&, const valarray&); +template valarray operator- + (const valarray&, const valarray&); +template valarray operator- (const valarray&, const T&); +template valarray operator- (const T&, const valarray&); +template valarray operator^ + (const valarray&, const valarray&); +template valarray operator^ (const valarray&, const T&); +template valarray operator^ (const T&, const valarray&); +template valarray operator& + (const valarray&, const valarray&); +template valarray operator& (const valarray&, const T&); +template valarray operator& (const T&, const valarray&); +template valarray operator| + (const valarray&, const valarray&); +template valarray operator| (const valarray&, const T&); +template valarray operator| (const T&, const valarray&); +template valarray operator<< + (const valarray&, const valarray&); +template valarray operator<<(const valarray&, const T&); +template valarray operator<<(const T&, const valarray&); +template valarray operator>> + (const valarray&, const valarray&); +template valarray operator>>(const valarray&, const T&); +template valarray operator>>(const T&, const valarray&); +template valarray operator&& + (const valarray&, const valarray&); +template valarray operator&&(const valarray&, const T&); +template valarray operator&&(const T&, const valarray&); +template valarray operator|| + (const valarray&, const valarray&); +template valarray operator||(const valarray&, const T&); +template valarray operator||(const T&, const valarray&); + + template + valarray operator==(const valarray&, const valarray&); + template valarray operator==(const valarray&, const T&); + template valarray operator==(const T&, const valarray&); + template + valarray operator!=(const valarray&, const valarray&); + template valarray operator!=(const valarray&, const T&); + template valarray operator!=(const T&, const valarray&); + template + valarray operator< (const valarray&, const valarray&); + template valarray operator< (const valarray&, const T&); + template valarray operator< (const T&, const valarray&); + template + valarray operator> (const valarray&, const valarray&); + template valarray operator> (const valarray&, const T&); + template valarray operator> (const T&, const valarray&); + template + valarray operator<=(const valarray&, const valarray&); + template valarray operator<=(const valarray&, const T&); + template valarray operator<=(const T&, const valarray&); + template + valarray operator>=(const valarray&, const valarray&); + template valarray operator>=(const valarray&, const T&); + template valarray operator>=(const T&, const valarray&); + template valarray abs (const valarray&); + template valarray acos (const valarray&); + template valarray asin (const valarray&); + template valarray atan (const valarray&); + template valarray atan2 + (const valarray&, const valarray&); + template valarray atan2(const valarray&, const T&); + template valarray atan2(const T&, const valarray&); + template valarray cos (const valarray&); + template valarray cosh (const valarray&); + template valarray exp (const valarray&); + template valarray log (const valarray&); + template valarray log10(const valarray&); + template valarray pow(const valarray&, const valarray&); + template valarray pow(const valarray&, const T&); + template valarray pow(const T&, const valarray&); + template valarray sin (const valarray&); + template valarray sinh (const valarray&); + template valarray sqrt (const valarray&); + template valarray tan (const valarray&); + template valarray tanh (const valarray&); +} 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 000000000000..38824dc24ddd --- /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 + +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 similarity index 100% rename from libstdc++-v3/testsuite/26_numerics/valarray/27867.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/26_numerics/valarray/28277.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/26_numerics/valarray/30416.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/26_numerics/valarray/binary_closure.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/26_numerics/valarray/dr543.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/26_numerics/valarray/slice.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/26_numerics/valarray/slice_array_assignment.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/26_numerics/valarray/valarray.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/26_numerics/valarray/valarray_const_bracket.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/26_numerics/valarray/valarray_name_lookup.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/26_numerics/valarray/valarray_operators.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/26_numerics/valarray/valarray_subset_assignment.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/26_numerics/numeric/sum_diff.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/27_io/basic_filebuf/3.cc rename to 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 similarity index 96% rename from libstdc++-v3/testsuite/27_io/basic_filebuf/4.cc rename to libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/base_classes.cc index cef8732b9797..9166a1adb2b6 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 // 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 similarity index 99% rename from libstdc++-v3/testsuite/27_io/basic_filebuf/2.cc rename to libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/explicit_instantiation.cc index 17c54294b537..f6d3a1cc7e1e 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 #include -// { 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 similarity index 99% rename from libstdc++-v3/testsuite/27_io/basic_filebuf/1.cc rename to libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/typedefs.cc index baa349e007c7..45dcf59479cd 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 -// { 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 similarity index 100% rename from libstdc++-v3/testsuite/27_io/basic_fstream/3.cc rename to 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 similarity index 92% rename from libstdc++-v3/testsuite/27_io/basic_fstream/4.cc rename to libstdc++-v3/testsuite/27_io/basic_fstream/requirements/base_classes.cc index be994f23be15..71089a311aad 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 +// { dg-do compile } +// 2003-03-26 Benjamin Kosnik // 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 similarity index 99% rename from libstdc++-v3/testsuite/27_io/basic_fstream/2.cc rename to libstdc++-v3/testsuite/27_io/basic_fstream/requirements/explicit_instantiation.cc index 66e40c819864..d3ddedc0ac9b 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 // Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @@ -34,8 +35,6 @@ #include #include -// { 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 similarity index 99% rename from libstdc++-v3/testsuite/27_io/basic_fstream/1.cc rename to libstdc++-v3/testsuite/27_io/basic_fstream/requirements/typedefs.cc index 6c294f21ab0d..a858ae8bcae7 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 // Copyright (C) 2002, 2003 Free Software Foundation, Inc. @@ -33,8 +34,6 @@ #include #include -// { 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 similarity index 100% rename from libstdc++-v3/testsuite/27_io/basic_ifstream/3.cc rename to 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 similarity index 96% rename from libstdc++-v3/testsuite/27_io/basic_ifstream/4.cc rename to libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/base_classes.cc index 626da50d523a..444c85b87e9e 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 // 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 similarity index 99% rename from libstdc++-v3/testsuite/27_io/basic_ifstream/2.cc rename to libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/explicit_instantiation.cc index 191ef1f4475d..630f426c2182 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 // Copyright (C) 2002, 2004 Free Software Foundation, Inc. @@ -32,8 +33,6 @@ #include -// { 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 similarity index 99% rename from libstdc++-v3/testsuite/27_io/basic_ifstream/1.cc rename to libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/typedefs.cc index 2a6482a8ff1e..e0e32c3e040f 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 // Copyright (C) 2002 Free Software Foundation, Inc. @@ -32,8 +33,6 @@ #include -// { 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 similarity index 100% rename from libstdc++-v3/testsuite/27_io/basic_ios/3.cc rename to 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 similarity index 92% rename from libstdc++-v3/testsuite/27_io/basic_ios/4.cc rename to libstdc++-v3/testsuite/27_io/basic_ios/requirements/base_classes.cc index de7b5495efd9..f748ecef6e04 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 +// { dg-do compile } +// 2003-03-26 Benjamin Kosnik // 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 similarity index 99% rename from libstdc++-v3/testsuite/27_io/basic_ios/2.cc rename to libstdc++-v3/testsuite/27_io/basic_ios/requirements/explicit_instantiation.cc index 89c71e65e8e4..581bff6ffe13 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 // Copyright (C) 2002, 2004 Free Software Foundation, Inc. @@ -32,8 +33,6 @@ #include -// { 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 similarity index 99% rename from libstdc++-v3/testsuite/27_io/basic_ios/1.cc rename to libstdc++-v3/testsuite/27_io/basic_ios/requirements/typedefs.cc index 6481c7102846..818a159fb3d1 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 // Copyright (C) 2002 Free Software Foundation, Inc. @@ -32,8 +33,6 @@ #include -// { 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 similarity index 100% rename from libstdc++-v3/testsuite/27_io/basic_iostream/3.cc rename to 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 similarity index 97% rename from libstdc++-v3/testsuite/27_io/basic_iostream/4.cc rename to libstdc++-v3/testsuite/27_io/basic_iostream/requirements/base_classes.cc index 26b5fa1579cf..63fffa58f4e5 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 // 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 similarity index 99% rename from libstdc++-v3/testsuite/27_io/basic_iostream/2.cc rename to libstdc++-v3/testsuite/27_io/basic_iostream/requirements/explicit_instantiation.cc index e5c72362bc54..6b8e0e0c4733 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 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 similarity index 99% rename from libstdc++-v3/testsuite/27_io/basic_iostream/1.cc rename to libstdc++-v3/testsuite/27_io/basic_iostream/requirements/typedefs.cc index e860d4fd3ae2..6ff836a61346 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 // 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 similarity index 100% rename from libstdc++-v3/testsuite/27_io/basic_istream/3.cc rename to 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 similarity index 96% rename from libstdc++-v3/testsuite/27_io/basic_istream/4.cc rename to libstdc++-v3/testsuite/27_io/basic_istream/requirements/base_classes.cc index 3c796f5c8236..b6372d7cfa9e 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 // 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 similarity index 99% rename from libstdc++-v3/testsuite/27_io/basic_istream/2.cc rename to libstdc++-v3/testsuite/27_io/basic_istream/requirements/explicit_instantiation.cc index f0cb8011b1e6..9fb06d0e46a6 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 #include -// { 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 similarity index 99% rename from libstdc++-v3/testsuite/27_io/basic_istream/1.cc rename to libstdc++-v3/testsuite/27_io/basic_istream/requirements/typedefs.cc index 0250f1274e73..932c68e73f3d 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 #include -// { 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 similarity index 100% rename from libstdc++-v3/testsuite/27_io/basic_istringstream/3.cc rename to 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 similarity index 96% rename from libstdc++-v3/testsuite/27_io/basic_istringstream/4.cc rename to libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/base_classes.cc index da0845f733a6..38e50e4f9f41 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 // 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 similarity index 99% rename from libstdc++-v3/testsuite/27_io/basic_istringstream/2.cc rename to libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/explicit_instantiation.cc index 7f7f9f925207..9ad96d9b0a78 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 // Copyright (C) 2002, 2004 Free Software Foundation, Inc. @@ -32,8 +33,6 @@ #include -// { 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 similarity index 99% rename from libstdc++-v3/testsuite/27_io/basic_istringstream/1.cc rename to libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/typedefs.cc index b87fb24bd082..5999c59caff1 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 // Copyright (C) 2002 Free Software Foundation, Inc. @@ -32,8 +33,6 @@ #include -// { 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 similarity index 100% rename from libstdc++-v3/testsuite/27_io/basic_ofstream/3.cc rename to 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 similarity index 96% rename from libstdc++-v3/testsuite/27_io/basic_ofstream/4.cc rename to libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/base_classes.cc index ae5b727c2437..fe2282990d40 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 // 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 similarity index 99% rename from libstdc++-v3/testsuite/27_io/basic_ofstream/2.cc rename to libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/explicit_instantiations.cc index 4f1dfc093ad7..f1395e9a80b3 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 // Copyright (C) 2002, 2004 Free Software Foundation, Inc. @@ -32,8 +33,6 @@ #include -// { 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 similarity index 99% rename from libstdc++-v3/testsuite/27_io/basic_ofstream/1.cc rename to libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/typedefs.cc index 83a9cd17522b..3c8df7fef882 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 // Copyright (C) 2002 Free Software Foundation, Inc. @@ -32,8 +33,6 @@ #include -// { 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 similarity index 100% rename from libstdc++-v3/testsuite/27_io/basic_ostream/3.cc rename to 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 similarity index 96% rename from libstdc++-v3/testsuite/27_io/basic_ostream/4.cc rename to libstdc++-v3/testsuite/27_io/basic_ostream/requirements/base_classes.cc index a365762f21b6..a36699768ac6 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 // 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 similarity index 99% rename from libstdc++-v3/testsuite/27_io/basic_ostream/2.cc rename to libstdc++-v3/testsuite/27_io/basic_ostream/requirements/explicit_instantiation.cc index 6b1f7121fe10..27e72a64f6de 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 #include -// { 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 similarity index 99% rename from libstdc++-v3/testsuite/27_io/basic_ostream/1.cc rename to libstdc++-v3/testsuite/27_io/basic_ostream/requirements/typedefs.cc index f72ab120f0e8..5cac04502947 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 #include -// { 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 similarity index 100% rename from libstdc++-v3/testsuite/27_io/basic_ostringstream/3.cc rename to 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 similarity index 96% rename from libstdc++-v3/testsuite/27_io/basic_ostringstream/4.cc rename to libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/base_classes.cc index 5a3c40309ba3..b4fbe040157c 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 // 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 similarity index 99% rename from libstdc++-v3/testsuite/27_io/basic_ostringstream/2.cc rename to libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/explicit_instantiation.cc index 105318941d73..dc509b818e74 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 // Copyright (C) 2002, 2004 Free Software Foundation, Inc. @@ -32,8 +33,6 @@ #include -// { 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 similarity index 99% rename from libstdc++-v3/testsuite/27_io/basic_ostringstream/1.cc rename to libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/typedefs.cc index fa4ae5edc30b..3fbaa4f1f1bb 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 // Copyright (C) 2002 Free Software Foundation, Inc. @@ -32,8 +33,6 @@ #include -// { 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 similarity index 100% rename from libstdc++-v3/testsuite/27_io/basic_streambuf/3.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/27_io/basic_streambuf/2.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/27_io/basic_streambuf/1.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/27_io/basic_stringbuf/3.cc rename to 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 similarity index 96% rename from libstdc++-v3/testsuite/27_io/basic_stringbuf/5.cc rename to libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/base_classes.cc index b341b09c7c09..b1ab8f13ee99 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 // 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 similarity index 99% rename from libstdc++-v3/testsuite/27_io/basic_stringbuf/2.cc rename to libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/explicit_instantiation/2.cc index 354e22749252..696a4937baef 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 #include -// { 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 similarity index 99% rename from libstdc++-v3/testsuite/27_io/basic_stringbuf/4.cc rename to libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/explicit_instantiation/4.cc index d4412cdb9f45..0a2c031baf6d 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 #include -// { 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 similarity index 97% rename from libstdc++-v3/testsuite/27_io/basic_stringbuf/1.cc rename to libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/typedefs.cc index a2da4054d4b5..34999e4e9068 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 // Copyright (C) 2002, 2003 Free Software Foundation, Inc. @@ -33,8 +34,6 @@ #include #include -// { 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 similarity index 100% rename from libstdc++-v3/testsuite/27_io/basic_stringstream/3.cc rename to 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 similarity index 96% rename from libstdc++-v3/testsuite/27_io/basic_stringstream/4.cc rename to libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/base_classes.cc index 43eecf9c709c..a6c037125724 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 // 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 similarity index 99% rename from libstdc++-v3/testsuite/27_io/basic_stringstream/2.cc rename to libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/explicit_instantiation.cc index 97a1ea8c7887..6279e42ba4d6 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 // Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @@ -34,8 +35,6 @@ #include #include -// { 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 similarity index 99% rename from libstdc++-v3/testsuite/27_io/basic_stringstream/1.cc rename to libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/typedefs.cc index 294e7a2f11a9..6b44601dbe54 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 // Copyright (C) 2002, 2003 Free Software Foundation, Inc. @@ -33,8 +34,6 @@ #include #include -// { 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 similarity index 100% rename from libstdc++-v3/testsuite/27_io/fpos/1.cc rename to 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 000000000000..c3da4ca32739 --- /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 + +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 000000000000..4c15f4fb9dc2 --- /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 + +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 000000000000..0ad9807758a6 --- /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 + +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 000000000000..9b8dae61989e --- /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 + +namespace std { + template + class basic_filebuf; + typedef basic_filebuf filebuf; + typedef basic_filebuf wfilebuf; + + template + class basic_ifstream; + typedef basic_ifstream ifstream; + typedef basic_ifstream wifstream; + + template + class basic_ofstream; + typedef basic_ofstream ofstream; + typedef basic_ofstream wofstream; + + template + class basic_fstream; + typedef basic_fstream fstream; + typedef basic_fstream 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 000000000000..9707680a9d59 --- /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 + +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 000000000000..79d055026e39 --- /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 + +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 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 000000000000..a8f27d945da0 --- /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 + +namespace std { +#if 0 + typedef OFF_T streamoff; + typedef SZ_T streamsize; +#endif + + template class fpos; + class ios_base; + template + 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 000000000000..b96720ac3b5f --- /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 + +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 000000000000..b2f0e2f02f7f --- /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 + +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 similarity index 76% rename from libstdc++-v3/testsuite/17_intro/header_iostream.cc rename to libstdc++-v3/testsuite/27_io/headers/iostream/types_std.cc index 2a6202d99bb5..881b52ba0c59 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 -#include - -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 000000000000..22ef87ee7d69 --- /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 + +namespace std { + template + class basic_istream; + typedef basic_istream istream; + typedef basic_istream wistream; + template + class basic_iostream; + typedef basic_iostream iostream; + typedef basic_iostream wiostream; + template + basic_istream& ws(basic_istream& is); +} diff --git a/libstdc++-v3/testsuite/17_intro/header_istream.cc b/libstdc++-v3/testsuite/27_io/headers/istream/types_std.cc similarity index 79% rename from libstdc++-v3/testsuite/17_intro/header_istream.cc rename to libstdc++-v3/testsuite/27_io/headers/istream/types_std.cc index 90326d6c7ce5..16f9680ce23b 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 -#include - -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 000000000000..cfb75fe04bad --- /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 + +namespace std { + template + class basic_ostream; + typedef basic_ostream ostream; + typedef basic_ostream wostream; + template + basic_ostream& endl(basic_ostream& os); + template + basic_ostream& ends(basic_ostream& os); + template + basic_ostream& flush(basic_ostream& os); +} diff --git a/libstdc++-v3/testsuite/17_intro/header_ostream.cc b/libstdc++-v3/testsuite/27_io/headers/ostream/types_std.cc similarity index 83% rename from libstdc++-v3/testsuite/17_intro/header_ostream.cc rename to libstdc++-v3/testsuite/27_io/headers/ostream/types_std.cc index 901bfec22d57..973b2a00e81e 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 -#include - -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 000000000000..5fd2186e7489 --- /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 + +namespace std { + template + class basic_stringbuf; + typedef basic_stringbuf stringbuf; + typedef basic_stringbuf wstringbuf; + + template + class basic_istringstream; + typedef basic_istringstream istringstream; + typedef basic_istringstream wistringstream; + + template + class basic_ostringstream; + typedef basic_ostringstream ostringstream; + typedef basic_ostringstream wostringstream; + + template + class basic_stringstream; + typedef basic_stringstream stringstream; + typedef basic_stringstream 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 000000000000..c6ebcbbb9ef2 --- /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 + +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_ctime.cc b/libstdc++-v3/testsuite/27_io/headers/streambuf/synopsis.cc similarity index 74% rename from libstdc++-v3/testsuite/17_intro/header_ctime.cc rename to libstdc++-v3/testsuite/27_io/headers/streambuf/synopsis.cc index 0df015704025..a8a07300acd0 100644 --- a/libstdc++-v3/testsuite/17_intro/header_ctime.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, ctime +#include -#include - -int main(void) -{ - // Make sure size_t is in namespace std - std::size_t i __attribute__((unused)) = 5; - return 0; +namespace std { + template + class basic_streambuf; + typedef basic_streambuf streambuf; + typedef basic_streambuf wstreambuf; } diff --git a/libstdc++-v3/testsuite/17_intro/header_streambuf.cc b/libstdc++-v3/testsuite/27_io/headers/streambuf/types_std.cc similarity index 83% rename from libstdc++-v3/testsuite/17_intro/header_streambuf.cc rename to libstdc++-v3/testsuite/27_io/headers/streambuf/types_std.cc index ac67481e2b78..ca112544b6ff 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 -#include - -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 similarity index 100% rename from libstdc++-v3/testsuite/ext/debug_allocator/instantiate.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/ext/hash_map/instantiate.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/ext/hash_set/instantiate.cc rename to 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 ec95fb952648..af66604377e4 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 +#include +#include +#include +#include +#include +#include +#include #include #include #include #include +#include #include +#include +#include #include +#include +#include #include #include #include -#include -#include -#include -#include -#include -#include #include #include - +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include diff --git a/libstdc++-v3/testsuite/ext/malloc_allocator/instantiate.cc b/libstdc++-v3/testsuite/ext/malloc_allocator/explicit_instantiation.cc similarity index 100% rename from libstdc++-v3/testsuite/ext/malloc_allocator/instantiate.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/ext/mt_allocator/instantiate.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/ext/pool_allocator/instantiate.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/ext/slist/instantiate.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/ext/stdio_filebuf/char/1.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/1.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/2.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/char/1.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/wchar_t/1.cc rename to 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 000000000000..cd6e2b0dcfe9 --- /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 +// +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with 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 + +namespace std { +namespace tr1 { + + template class reference_wrapper; + template reference_wrapper ref(T&); + template reference_wrapper cref(const T&); + template reference_wrapper ref(reference_wrapper); + template reference_wrapper cref(reference_wrapper); + +} // 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 000000000000..d3f15203c568 --- /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 +// +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with 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 + +namespace std { +namespace tr1 { + + // [2.2.2] Class bad_weak_ptr + class bad_weak_ptr; + + // [2.2.3] Class template shared_ptr + template class shared_ptr; + + // [2.2.3.6] shared_ptr comparisons + template bool operator==(shared_ptr const& a, shared_ptr const& b); + template bool operator!=(shared_ptr const& a, shared_ptr const& b); + template bool operator<(shared_ptr const& a, shared_ptr const& b); + + // [2.2.3.8] shared_ptr specialized algorithms + template void swap(shared_ptr& a, shared_ptr& b); + + // [2.2.3.9] shared_ptr casts + template shared_ptr static_pointer_cast(shared_ptr const& r); + template shared_ptr dynamic_pointer_cast(shared_ptr const& r); + template shared_ptr const_pointer_cast(shared_ptr const& r); + + // [2.2.3.7] shared_ptr I/O + template + basic_ostream& operator<< (basic_ostream& os, shared_ptr const& p); + + // [2.2.3.10] shared_ptr get_deleter + template D* get_deleter(shared_ptr const& p); + + // [2.2.4] Class template weak_ptr + template class weak_ptr; + + // [2.2.4.6] weak_ptr comparison + template bool operator<(weak_ptr const& a, weak_ptr const& b); + + // [2.2.4.7] weak_ptr specialized algorithms + template void swap(weak_ptr& a, weak_ptr& b); + + // [2.2.5] Class enable_shared_from_this + template 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 000000000000..3a3717a33016 --- /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 + +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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/2_general_utilities/memory/enable_shared_from_this/explicit_instantiation/1.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/2_general_utilities/memory/shared_ptr/explicit_instantiation/1.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/2_general_utilities/memory/weak_ptr/explicit_instantiation/1.cc rename to 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 000000000000..836c67005e77 --- /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 +// +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with 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 + +namespace std { +namespace tr1 { + + // [3.4] class template result_of + template class result_of; + +#if 0 + // [3.5] function template mem_fn + template unspecified mem_fn(R T::* pm); +#endif + + // [3.6] function object binders + template struct is_bind_expression; + template struct is_placeholder; + +#if 0 + template + unspecified bind(F f, T1 t1, ..., TN tN); + + template + 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; + template + void swap(function&, function&); + template + void operator==(const function&, const function&); + template + void operator!=(const function&, const function&); + +#if 0 + template + bool operator==(const function&, unspecified-null-pointer-type); + template + bool operator==(unspecified-null-pointer-type, const function&); + template + bool operator!=(const function&, unspecified-null-pointer-type); + template + bool operator!=(unspecified-null-pointer-type, const 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 000000000000..b61e5f2acfb4 --- /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 + +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 000000000000..faddc0dcc659 --- /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 + +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 000000000000..83ea1acdf82e --- /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 +// +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with 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 + +namespace std { +namespace tr1 { + + // [4.3] helper class: + template struct integral_constant; + typedef integral_constant true_type; + typedef integral_constant false_type; + + // [4.5.1] primary type categories: + template struct is_void; + template struct is_integral; + template struct is_floating_point; + template struct is_array; + template struct is_pointer; + template struct is_reference; + template struct is_member_object_pointer; + template struct is_member_function_pointer; + template struct is_enum; + template struct is_union; + template struct is_class; + template struct is_function; + + // [4.5.2] composite type categories: + template struct is_arithmetic; + template struct is_fundamental; + template struct is_object; + template struct is_scalar; + template struct is_compound; + template struct is_member_pointer; + + // [4.5.3] type properties: + template struct is_const; + template struct is_volatile; + template struct is_pod; + template struct is_empty; + template struct is_polymorphic; + template struct is_abstract; + template struct has_trivial_constructor; + template struct has_trivial_copy; + template struct has_trivial_assign; + template struct has_trivial_destructor; + template struct has_nothrow_constructor; + template struct has_nothrow_copy; + template struct has_nothrow_assign; + template struct has_virtual_destructor; + template struct is_signed; + template struct is_unsigned; + template struct alignment_of; + template struct rank; + template struct extent; + + // [4.6] type relations: + template struct is_same; + template struct is_base_of; + template struct is_convertible; + + // [4.7.1] const-volatile modifications: + template struct remove_const; + template struct remove_volatile; + template struct remove_cv; + template struct add_const; + template struct add_volatile; + template struct add_cv; + + // [4.7.2] reference modifications: + template struct remove_reference; + template struct add_reference; + + // [4.7.3] array modifications: + template struct remove_extent; + template struct remove_all_extents; + + // [4.7.4] pointer modifications: + template struct remove_pointer; + template struct add_pointer; + + // [4.8] other transformations: + template 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 000000000000..bdb3a6e3f546 --- /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 + +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 000000000000..fe0c2df42f14 --- /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 +// +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with 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 + +namespace std { +namespace tr1 { + + // [5.1.3] Class template variate_generator + template + class variate_generator; + + // [5.1.4.1] Class template linear_congruential + template + class linear_congruential; + + // [5.1.4.2] Class template mersenne_twister + template + class mersenne_twister; + + // [5.1.4.3] Class template subtract_with_carry + template + class subtract_with_carry; + + // [5.1.4.4] Class template subtract_with_carry_01 + template + class subtract_with_carry_01; + + // [5.1.4.5] Class template discard_block + template + class discard_block; + + // [5.1.4.6] Class template xor_combine + template + class xor_combine; + + // [5.1.6] Class random_device + class random_device; + + // [5.1.7.1] Class template uniform_int + template + class uniform_int; + + // [5.1.7.2] Class bernoulli_distribution + class bernoulli_distribution; + + // [5.1.7.3] Class template geometric_distribution + template + class geometric_distribution; + + // [5.1.7.4] Class template poisson_distribution + template + class poisson_distribution; + + // [5.1.7.5] Class template binomial_distribution + template + class binomial_distribution; + + // [5.1.7.6] Class template uniform_real + template + class uniform_real; + + // [5.1.7.7] Class template exponential_distribution + template + class exponential_distribution; + + // [5.1.7.8] Class template normal_distribution + template + class normal_distribution; + + // [5.1.7.9] Class template gamma_distribution + template + 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 000000000000..2fd214991168 --- /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 + +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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/requirements/requirements.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/array/requirements/instantiate.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/hash/24799.cc rename to 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 000000000000..4a4916c9cf07 --- /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 + +void test01() +{ + // Check for required base class. + typedef long value_type; + typedef std::tr1::hash test_type; + typedef std::unary_function 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/hash.cc rename to 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 000000000000..463f3aca9dc0 --- /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 +// +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with 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 + +namespace std { +namespace tr1 { + + // [6.2.2] Class template array + template struct array; + + // Array comparisons + template bool operator==(const array& x, const array& y); + template bool operator!=(const array& x, const array& y); + template bool operator<(const array& x, const array& y); + template bool operator>(const array& x, const array& y); + template bool operator<=(const array& x, const array& y); + template bool operator>=(const array& x, const array& y); + + // [6.2.2.2] Specialized algorithms + template void swap(array& x, array& y); + + // [6.2.2.5] Tuple interface to class template array + template class tuple_size; // forward declaration + template class tuple_element; // forward declaration + template struct tuple_size >; + template struct tuple_element >; + template T& get(array&); + template const T& get(const array&); + +} // 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 000000000000..682593c295aa --- /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 +// +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with 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 + +namespace std { +namespace tr1 { + + // [6.3.3] Hash function base template + template struct hash; + + // Hash function specializations + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + template struct hash; + template <> struct hash; + template <> struct hash; + +} // 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 000000000000..72fb92900e95 --- /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 +// +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with 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 + +namespace std { +namespace tr1 { + +#if 0 + // [6.1.3] Class template tuple + template class tuple; + + // [6.1.3.2] Tuple creation functions + const unspecified ignore; + template + tuple make_tuple(const T1&, const T2& , ..., const TN&); + + template + tuple tie(T1&, T2& , ..., TN&); +#endif + + // [6.1.3.3] Tuple helper classes + template class tuple_size; + template class tuple_element; + +#if 0 + // [6.1.3.4] Element access + template + RJ get(tuple&); + template + PJ get(const tuple&); + + // [6.1.3.5] relational operators + template + bool operator==(const tuple&, const tuple&); + template + bool operator<(const tuple&, const tuple&); + template + bool operator!=(const tuple&, const tuple&); + template + bool operator>(const tuple&, const tuple&); + template + bool operator<=(const tuple&, const tuple&); + template + bool operator>=(const tuple&, const tuple&); +#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 000000000000..2c543f0df348 --- /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 + +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 000000000000..45080fc40f5a --- /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 +// +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with 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 + +namespace std { +namespace tr1 { + + // [6.3.4.4] Class template unordered_map + template + class unordered_map; + + // [6.3.4.6] Class template unordered_multimap + template + class unordered_multimap; + +template + void swap(unordered_map& x, + unordered_map& y); +template + void swap(unordered_multimap& x, + unordered_multimap& 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 000000000000..29cced09bd2f --- /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 +// +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with 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 + +namespace std { +namespace tr1 { + + // [6.3.4.3] Class template unordered_set + template + class unordered_set; + + // [6.3.4.5] Class template unordered_multiset + template + class unordered_multiset; + + template + void swap(unordered_set& x, + unordered_set& y); + + template + void swap(unordered_multiset& x, + unordered_multiset& 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 000000000000..c2a2321b08ad --- /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 + +template class std::tr1::tuple; 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 a54799323150..000000000000 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/23781.cc +++ /dev/null @@ -1,43 +0,0 @@ -// 2005-09-10 Paolo Carlini -// -// 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 -#include - -std::tr1::unordered_map::iterator it1 = NULL; // { dg-error "conversion" } -std::tr1::unordered_map::const_iterator cit1 = NULL; // { dg-error "conversion" } -std::tr1::unordered_multimap::iterator it2 = NULL; // { dg-error "conversion" } -std::tr1::unordered_multimap::const_iterator cit2 = NULL; // { dg-error "conversion" } -std::tr1::unordered_multiset::iterator it3 = NULL; // { dg-error "conversion" } -std::tr1::unordered_multiset::const_iterator cit3 = NULL; // { dg-error "conversion" } -std::tr1::unordered_set::iterator it4 = NULL; // { dg-error "conversion" } -std::tr1::unordered_set::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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/24064.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-map.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-map.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/find/map1.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-map.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/array_syntax.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/map_range.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/map_single.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/map.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/types/map_iterator.cc rename to 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 000000000000..8031c6de89dd --- /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 +// +// 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 + +std::tr1::unordered_map::iterator it1 = NULL; // { dg-error "conversion" } +std::tr1::unordered_map::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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_map/1.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_map/2.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-multimap.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-multimap.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/find/multimap1.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-multimap.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multimap_range.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multimap_single.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/multimap.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/types/multimap_iterator.cc rename to 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 000000000000..72b9505ff5da --- /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 +// +// 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 + +std::tr1::unordered_multimap::iterator it2 = NULL; // { dg-error "conversion" } +std::tr1::unordered_multimap::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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multimap/1.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multimap/2.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/24054.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-multiset.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-multiset.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/find/multiset1.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-multiset.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multiset_range.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multiset_single.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/multiset.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/types/multiset_iterator.cc rename to 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 000000000000..46d79ad7f9c1 --- /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 +// +// 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 + +std::tr1::unordered_multiset::iterator it3 = NULL; // { dg-error "conversion" } +std::tr1::unordered_multiset::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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multiset/1.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multiset/2.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/23053.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/23465.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/26127.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/26132.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-set.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-set.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/find/set1.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-set.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/set_range.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/set_single.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/set.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/types/set_iterator.cc rename to 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 000000000000..aca08c950f43 --- /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 +// +// 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 + +std::tr1::unordered_set::iterator it4 = NULL; // { dg-error "conversion" } +std::tr1::unordered_set::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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/iterators_default_constructor.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_set/1.cc rename to 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 similarity index 100% rename from libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_set/2.cc rename to 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 000000000000..21fc682b8f7c --- /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 + +namespace gnu +{ + using namespace std::tr1; +} -- 2.39.5