+2007-02-20 Benjamin Kosnik <bkoz@redhat.com>
+
+ Revamp library API testing.
+ Added:
+ * 17_intro/headers
+ * 17_intro/headers/all_assert_neg.cc
+ * 17_intro/headers/all_c++200x_compatibility.cc
+ * 17_intro/headers/all.cc
+ * 17_intro/headers/c++1998
+ * 17_intro/headers/c++1998/all.cc
+ * 17_intro/headers/c++1998/all_multiple_inclusion.cc
+ * 17_intro/headers/c++1998/c++_for_c.tar
+ * 17_intro/headers/c++1998/c++.tar
+ * 17_intro/using_namespace_std.cc
+ * 18_support/headers
+ * 18_support/headers/cfloat
+ * 18_support/headers/cfloat/values.cc
+ * 18_support/headers/climits
+ * 18_support/headers/climits/values.cc
+ * 18_support/headers/csetjmp
+ * 18_support/headers/csetjmp/functions_std.cc
+ * 18_support/headers/csetjmp/macros.cc
+ * 18_support/headers/csetjmp/types_std.cc
+ * 18_support/headers/csignal
+ * 18_support/headers/csignal/functions_std.cc
+ * 18_support/headers/csignal/macros.cc
+ * 18_support/headers/csignal/types_std.cc
+ * 18_support/headers/cstdarg
+ * 18_support/headers/cstdarg/macros.cc
+ * 18_support/headers/cstdarg/types_std.cc
+ * 18_support/headers/cstddef
+ * 18_support/headers/cstddef/macros.cc
+ * 18_support/headers/cstddef/types_std.cc
+ * 18_support/headers/cstdlib
+ * 18_support/headers/cstdlib/functions_std.cc
+ * 18_support/headers/cstdlib/macros.cc
+ * 18_support/headers/ctime
+ * 18_support/headers/ctime/functions_std.cc
+ * 18_support/headers/ctime/macros.cc
+ * 18_support/headers/ctime/types_std.cc
+ * 18_support/headers/exception
+ * 18_support/headers/exception/synopsis.cc
+ * 18_support/headers/exception/types_std.cc
+ * 18_support/headers/limits
+ * 18_support/headers/limits/synopsis.cc
+ * 18_support/headers/new
+ * 18_support/headers/new/synopsis.cc
+ * 18_support/headers/new/types_std.cc
+ * 18_support/headers/typeinfo
+ * 18_support/headers/typeinfo/synopsis.cc
+ * 18_support/headers/typeinfo/types_std.cc
+ * 18_support/numeric_limits/is_signed.cc
+ * 18_support/numeric_limits/requirements
+ * 18_support/numeric_limits/requirements/explicit_instantiation
+ * 18_support/numeric_limits/requirements/explicit_instantiation/1.cc
+ * 18_support/numeric_limits/specialization_default_values.cc
+ * 19_diagnostics/headers
+ * 19_diagnostics/headers/cassert
+ * 19_diagnostics/headers/cassert/macros.cc
+ * 19_diagnostics/headers/cerrno
+ * 19_diagnostics/headers/cerrno/macros.cc
+ * 19_diagnostics/headers/stdexcept
+ * 19_diagnostics/headers/stdexcept/synopsis.cc
+ * 19_diagnostics/headers/stdexcept/types_std.cc
+ * 20_util/headers
+ * 20_util/headers/cstdlib
+ * 20_util/headers/cstdlib/functions_std.cc
+ * 20_util/headers/cstring
+ * 20_util/headers/cstring/functions_std.cc
+ * 20_util/headers/cstring/macros.cc
+ * 20_util/headers/cstring/types_std.cc
+ * 20_util/headers/ctime
+ * 20_util/headers/ctime/functions_std.cc
+ * 20_util/headers/ctime/macros.cc
+ * 20_util/headers/ctime/types_std.cc
+ * 20_util/headers/functional
+ * 20_util/headers/functional/synopsis.cc
+ * 20_util/headers/memory
+ * 20_util/headers/memory/synopsis.cc
+ * 20_util/headers/utility
+ * 20_util/headers/utility/synopsis.cc
+ * 20_util/headers/utility/using_namespace_std_rel_ops.cc
+ * 20_util/memory/allocator/requirements
+ * 20_util/memory/allocator/requirements/explicit_instantiation
+ * 20_util/memory/allocator/requirements/explicit_instantiation/1.cc
+ * 20_util/memory/auto_ptr/requirements
+ * 20_util/memory/auto_ptr/requirements/explicit_instantiation
+ * 20_util/memory/auto_ptr/requirements/explicit_instantiation/1.cc
+ * 20_util/memory/raw_storage_iterator
+ * 20_util/memory/raw_storage_iterator/requirements
+ * 20_util/memory/raw_storage_iterator/requirements/base_classes.cc
+ * 20_util/memory/raw_storage_iterator/requirements/
+ explicit_instantiation
+ * 20_util/memory/raw_storage_iterator/requirements/
+ explicit_instantiation/1.cc
+ * 20_util/memory/raw_storage_iterator/requirements/typedefs.cc
+ * 20_util/utility/pair/requirements
+ * 20_util/utility/pair/requirements/explicit_instantiation
+ * 20_util/utility/pair/requirements/explicit_instantiation/1.cc
+ * 21_strings/basic_string/requirements
+ * 21_strings/basic_string/requirements/explicit_instantiation
+ * 21_strings/basic_string/requirements/explicit_instantiation/1.cc
+ * 21_strings/basic_string/requirements/explicit_instantiation/debug.cc
+ * 21_strings/headers
+ * 21_strings/headers/cctype
+ * 21_strings/headers/cctype/functions_std.cc
+ * 21_strings/headers/cstdlib
+ * 21_strings/headers/cstdlib/functions_std.cc
+ * 21_strings/headers/cstdlib/macros.cc
+ * 21_strings/headers/cstring
+ * 21_strings/headers/cstring/functions_std.cc
+ * 21_strings/headers/cstring/macros.cc
+ * 21_strings/headers/cstring/types_std.cc
+ * 21_strings/headers/cwchar
+ * 21_strings/headers/cwchar/functions_std.cc
+ * 21_strings/headers/cwchar/macros.cc
+ * 21_strings/headers/cwchar/types_std.cc
+ * 21_strings/headers/cwctype
+ * 21_strings/headers/cwctype/functions_std.cc
+ * 21_strings/headers/cwctype/macros.cc
+ * 21_strings/headers/cwctype/types_std.cc
+ * 21_strings/headers/string
+ * 21_strings/headers/string/synopsis.cc
+ * 21_strings/headers/string/types_std.cc
+ * 22_locale/codecvt_byname/requirements
+ * 22_locale/codecvt_byname/requirements/base_classes.cc
+ * 22_locale/codecvt_byname/requirements/explicit_instantiation.cc
+ * 22_locale/codecvt_byname/requirements/typedefs.cc
+ * 22_locale/codecvt/requirements
+ * 22_locale/codecvt/requirements/base_classes.cc
+ * 22_locale/codecvt/requirements/explicit_instantiation.cc
+ * 22_locale/codecvt/requirements/typedefs.cc
+ * 22_locale/collate_byname/requirements
+ * 22_locale/collate_byname/requirements/base_classes.cc
+ * 22_locale/collate_byname/requirements/explicit_instantiation.cc
+ * 22_locale/collate_byname/requirements/typedefs.cc
+ * 22_locale/collate/requirements
+ * 22_locale/collate/requirements/base_classes.cc
+ * 22_locale/collate/requirements/explicit_instantiation.cc
+ * 22_locale/collate/requirements/typedefs.cc
+ * 22_locale/ctype_base/mask.cc
+ * 22_locale/ctype/requirements
+ * 22_locale/ctype/requirements/base_classes.cc
+ * 22_locale/ctype/requirements/explicit_instantiation.cc
+ * 22_locale/ctype/requirements/typedefs.cc
+ * 22_locale/headers
+ * 22_locale/headers/clocale
+ * 22_locale/headers/clocale/functions_std.cc
+ * 22_locale/headers/clocale/macros.cc
+ * 22_locale/headers/clocale/types_std.cc
+ * 22_locale/headers/locale
+ * 22_locale/headers/locale/synopsis.cc
+ * 22_locale/headers/locale/types_std.cc
+ * 22_locale/messages_byname/requirements
+ * 22_locale/messages_byname/requirements/base_classes.cc
+ * 22_locale/messages_byname/requirements/explicit_instantiation.cc
+ * 22_locale/messages_byname/requirements/typedefs.cc
+ * 22_locale/messages/requirements
+ * 22_locale/messages/requirements/base_classes.cc
+ * 22_locale/messages/requirements/explicit_instantiation.cc
+ * 22_locale/messages/requirements/typedefs.cc
+ * 22_locale/money_get/cons
+ * 22_locale/money_get/cons/3.cc
+ * 22_locale/money_get/requirements
+ * 22_locale/money_get/requirements/base_classes.cc
+ * 22_locale/money_get/requirements/explicit_instantiations.cc
+ * 22_locale/money_get/requirements/typedefs.cc
+ * 22_locale/moneypunct_byname/requirements
+ * 22_locale/moneypunct_byname/requirements/base_classes.cc
+ * 22_locale/moneypunct_byname/requirements/explicit_instantiation.cc
+ * 22_locale/moneypunct_byname/requirements/typedefs.cc
+ * 22_locale/moneypunct/requirements
+ * 22_locale/moneypunct/requirements/false
+ * 22_locale/moneypunct/requirements/false/base_classes.cc
+ * 22_locale/moneypunct/requirements/false/explicit_instantiation.cc
+ * 22_locale/moneypunct/requirements/false/intl.cc
+ * 22_locale/moneypunct/requirements/false/typedefs.cc
+ * 22_locale/moneypunct/requirements/true
+ * 22_locale/moneypunct/requirements/true/base_classes.cc
+ * 22_locale/moneypunct/requirements/true/explicit_instantiation.cc
+ * 22_locale/moneypunct/requirements/true/intl.cc
+ * 22_locale/moneypunct/requirements/true/typedefs.cc
+ * 22_locale/money_put/cons
+ * 22_locale/money_put/cons/3.cc
+ * 22_locale/money_put/requirements
+ * 22_locale/money_put/requirements/base_classes.cc
+ * 22_locale/money_put/requirements/explicit_instantiation.cc
+ * 22_locale/money_put/requirements/typedefs.cc
+ * 22_locale/num_get/cons
+ * 22_locale/num_get/cons/3.cc
+ * 22_locale/num_get/requirements
+ * 22_locale/num_get/requirements/base_classes.cc
+ * 22_locale/num_get/requirements/explicit_instantiation.cc
+ * 22_locale/num_get/requirements/typedefs.cc
+ * 22_locale/numpunct_byname/requirements
+ * 22_locale/numpunct_byname/requirements/base_classes.cc
+ * 22_locale/numpunct_byname/requirements/explicit_instantiations.cc
+ * 22_locale/numpunct_byname/requirements/typedefs.cc
+ * 22_locale/numpunct/requirements
+ * 22_locale/numpunct/requirements/base_classes.cc
+ * 22_locale/numpunct/requirements/explicit_instantiations.cc
+ * 22_locale/numpunct/requirements/typedefs.cc
+ * 22_locale/num_put/cons
+ * 22_locale/num_put/cons/3.cc
+ * 22_locale/num_put/requirements
+ * 22_locale/num_put/requirements/base_classes.cc
+ * 22_locale/num_put/requirements/explicit_instantiations.cc
+ * 22_locale/num_put/requirements/typedefs.cc
+ * 22_locale/time_get/requirements
+ * 22_locale/time_get/requirements/base_classes.cc
+ * 22_locale/time_get/requirements/explicit_instantiations.cc
+ * 22_locale/time_get/requirements/typedefs.cc
+ * 22_locale/time_put/requirements
+ * 22_locale/time_put/requirements/base_classes.cc
+ * 22_locale/time_put/requirements/explicit_instantiations.cc
+ * 22_locale/time_put/requirements/typedefs.cc
+ * 23_containers/bitset/requirements
+ * 23_containers/bitset/requirements/explicit_instantiation
+ * 23_containers/bitset/requirements/explicit_instantiation/1.cc
+ * 23_containers/deque/requirements
+ * 23_containers/deque/requirements/explicit_instantiation
+ * 23_containers/deque/requirements/partial_specialization
+ * 23_containers/deque/requirements/partial_specialization/1.cc
+ * 23_containers/headers
+ * 23_containers/headers/bitset
+ * 23_containers/headers/bitset/synopsis.cc
+ * 23_containers/headers/deque
+ * 23_containers/headers/deque/synopsis.cc
+ * 23_containers/headers/list
+ * 23_containers/headers/list/synopsis.cc
+ * 23_containers/headers/map
+ * 23_containers/headers/map/synopsis.cc
+ * 23_containers/headers/queue
+ * 23_containers/headers/queue/synopsis.cc
+ * 23_containers/headers/set
+ * 23_containers/headers/set/synopsis.cc
+ * 23_containers/headers/stack
+ * 23_containers/headers/stack/synopsis.cc
+ * 23_containers/headers/vector
+ * 23_containers/headers/vector/synopsis.cc
+ * 23_containers/list/requirements
+ * 23_containers/list/requirements/explicit_instantiation
+ * 23_containers/list/requirements/partial_specialization
+ * 23_containers/list/requirements/partial_specialization/1.cc
+ * 23_containers/map/requirements
+ * 23_containers/map/requirements/explicit_instantiation
+ * 23_containers/map/requirements/partial_specialization
+ * 23_containers/map/requirements/partial_specialization/1.cc
+ * 23_containers/multimap/requirements
+ * 23_containers/multimap/requirements/explicit_instantiation
+ * 23_containers/multimap/requirements/partial_specialization
+ * 23_containers/multimap/requirements/partial_specialization/1.cc
+ * 23_containers/multiset/requirements
+ * 23_containers/multiset/requirements/explicit_instantiation
+ * 23_containers/multiset/requirements/partial_specialization
+ * 23_containers/multiset/requirements/partial_specialization/1.cc
+ * 23_containers/priority_queue/requirements
+ * 23_containers/priority_queue/requirements/explicit_instantiation
+ * 23_containers/priority_queue/requirements/explicit_instantiation/1.cc
+ * 23_containers/queue/requirements
+ * 23_containers/queue/requirements/explicit_instantiation
+ * 23_containers/queue/requirements/explicit_instantiation/1.cc
+ * 23_containers/set/requirements
+ * 23_containers/set/requirements/explicit_instantiation
+ * 23_containers/set/requirements/partial_specialization
+ * 23_containers/set/requirements/partial_specialization/1.cc
+ * 23_containers/stack/requirements
+ * 23_containers/stack/requirements/explicit_instantiation
+ * 23_containers/stack/requirements/explicit_instantiation/1.cc
+ * 23_containers/vector/requirements
+ * 23_containers/vector/requirements/explicit_instantiation
+ * 23_containers/vector/requirements/partial_specialization
+ * 23_containers/vector/requirements/partial_specialization/1.cc
+ * 24_iterators/back_insert_iterator
+ * 24_iterators/back_insert_iterator/2.cc
+ * 24_iterators/back_insert_iterator/requirements
+ * 24_iterators/back_insert_iterator/requirements/base_classes.cc
+ * 24_iterators/back_insert_iterator/requirements/container.cc
+ * 24_iterators/back_insert_iterator/requirements/
+ explicit_instantiation.cc
+ * 24_iterators/back_insert_iterator/requirements/typedefs.cc
+ * 24_iterators/front_insert_iterator
+ * 24_iterators/front_insert_iterator/2.cc
+ * 24_iterators/front_insert_iterator/requirements
+ * 24_iterators/front_insert_iterator/requirements/base_classes.cc
+ * 24_iterators/front_insert_iterator/requirements/container.cc
+ * 24_iterators/front_insert_iterator/requirements/
+ explicit_instantiation.cc
+ * 24_iterators/front_insert_iterator/requirements/typedefs.cc
+ * 24_iterators/headers
+ * 24_iterators/headers/iterator
+ * 24_iterators/headers/iterator/synopsis.cc
+ * 24_iterators/headers/iterator/types_std.cc
+ * 24_iterators/insert_iterator
+ * 24_iterators/insert_iterator/2.cc
+ * 24_iterators/insert_iterator/requirements
+ * 24_iterators/insert_iterator/requirements/base_classes.cc
+ * 24_iterators/insert_iterator/requirements/container.cc
+ * 24_iterators/insert_iterator/requirements/explicit_instantiation.cc
+ * 24_iterators/insert_iterator/requirements/typedefs.cc
+ * 24_iterators/istreambuf_iterator/requirements
+ * 24_iterators/istreambuf_iterator/requirements/base_classes.cc
+ * 24_iterators/istreambuf_iterator/requirements/
+ explicit_instantiation.cc
+ * 24_iterators/istreambuf_iterator/requirements/typedefs.cc
+ * 24_iterators/istream_iterator
+ * 24_iterators/istream_iterator/2.cc
+ * 24_iterators/istream_iterator/requirements
+ * 24_iterators/istream_iterator/requirements/base_classes.cc
+ * 24_iterators/istream_iterator/requirements/explicit_instantiation.cc
+ * 24_iterators/istream_iterator/requirements/typedefs.cc
+ * 24_iterators/ostreambuf_iterator/requirements
+ * 24_iterators/ostreambuf_iterator/requirements/base_classes.cc
+ * 24_iterators/ostreambuf_iterator/requirements/
+ explicit_instantiation.cc
+ * 24_iterators/ostreambuf_iterator/requirements/typedefs.cc
+ * 24_iterators/ostream_iterator
+ * 24_iterators/ostream_iterator/requirements
+ * 24_iterators/ostream_iterator/requirements/base_classes.cc
+ * 24_iterators/ostream_iterator/requirements/explicit_instantiation.cc
+ * 24_iterators/ostream_iterator/requirements/typedefs.cc
+ * 24_iterators/random_access_iterator
+ * 24_iterators/random_access_iterator/26020.cc
+ * 24_iterators/random_access_iterator/string_vector_iterators.cc
+ * 24_iterators/reverse_iterator/requirements
+ * 24_iterators/reverse_iterator/requirements/base_classes.cc
+ * 24_iterators/reverse_iterator/requirements/current.cc
+ * 24_iterators/reverse_iterator/requirements/explicit_instantiation.cc
+ * 24_iterators/reverse_iterator/requirements/typedefs.cc
+ * 25_algorithms/headers
+ * 25_algorithms/headers/algorithm
+ * 25_algorithms/headers/algorithm/synopsis.cc
+ * 25_algorithms/headers/cstdlib
+ * 25_algorithms/headers/cstdlib/functions_std.cc
+ * 26_numerics/headers
+ * 26_numerics/headers/cmath
+ * 26_numerics/headers/cmath/19322.cc
+ * 26_numerics/headers/cmath/c99_classification_macros_c.cc
+ * 26_numerics/headers/cmath/c99_classification_macros_c++.cc
+ * 26_numerics/headers/cmath/c_math.cc
+ * 26_numerics/headers/cmath/c_math_dynamic.cc
+ * 26_numerics/headers/cmath/fabs_inline.cc
+ * 26_numerics/headers/cmath/functions_std.cc
+ * 26_numerics/headers/cmath/macros.cc
+ * 26_numerics/headers/cmath/overloads.cc
+ * 26_numerics/headers/cmath/powi.cc
+ * 26_numerics/headers/complex
+ * 26_numerics/headers/complex/synopsis.cc
+ * 26_numerics/headers/cstdlib
+ * 26_numerics/headers/cstdlib/13943.cc
+ * 26_numerics/headers/cstdlib/2190.cc
+ * 26_numerics/headers/cstdlib/functions_std.cc
+ * 26_numerics/headers/cstdlib/macros.cc
+ * 26_numerics/headers/cstdlib/types_std.cc
+ * 26_numerics/headers/numeric
+ * 26_numerics/headers/numeric/synopsis.cc
+ * 26_numerics/headers/valarray
+ * 26_numerics/headers/valarray/synopsis.cc
+ * 26_numerics/headers/valarray/types_std.cc
+ * 26_numerics/numeric_arrays
+ * 26_numerics/numeric_operations
+ * 27_io/basic_filebuf/cons/2020.cc
+ * 27_io/basic_filebuf/requirements
+ * 27_io/basic_filebuf/requirements/base_classes.cc
+ * 27_io/basic_filebuf/requirements/explicit_instantiation.cc
+ * 27_io/basic_filebuf/requirements/typedefs.cc
+ * 27_io/basic_fstream/cons
+ * 27_io/basic_fstream/cons/3.cc
+ * 27_io/basic_fstream/requirements
+ * 27_io/basic_fstream/requirements/base_classes.cc
+ * 27_io/basic_fstream/requirements/explicit_instantiation.cc
+ * 27_io/basic_fstream/requirements/typedefs.cc
+ * 27_io/basic_ifstream/cons/2020.cc
+ * 27_io/basic_ifstream/requirements
+ * 27_io/basic_ifstream/requirements/base_classes.cc
+ * 27_io/basic_ifstream/requirements/explicit_instantiation.cc
+ * 27_io/basic_ifstream/requirements/typedefs.cc
+ * 27_io/basic_ios/cons/2020.cc
+ * 27_io/basic_ios/requirements
+ * 27_io/basic_ios/requirements/base_classes.cc
+ * 27_io/basic_ios/requirements/explicit_instantiation.cc
+ * 27_io/basic_ios/requirements/typedefs.cc
+ * 27_io/basic_iostream/cons
+ * 27_io/basic_iostream/cons/2020.cc
+ * 27_io/basic_iostream/requirements
+ * 27_io/basic_iostream/requirements/base_classes.cc
+ * 27_io/basic_iostream/requirements/explicit_instantiation.cc
+ * 27_io/basic_iostream/requirements/typedefs.cc
+ * 27_io/basic_istream/cons
+ * 27_io/basic_istream/cons/3.cc
+ * 27_io/basic_istream/requirements
+ * 27_io/basic_istream/requirements/base_classes.cc
+ * 27_io/basic_istream/requirements/explicit_instantiation.cc
+ * 27_io/basic_istream/requirements/typedefs.cc
+ * 27_io/basic_istringstream/cons
+ * 27_io/basic_istringstream/cons/2020.cc
+ * 27_io/basic_istringstream/requirements
+ * 27_io/basic_istringstream/requirements/base_classes.cc
+ * 27_io/basic_istringstream/requirements/explicit_instantiation.cc
+ * 27_io/basic_istringstream/requirements/typedefs.cc
+ * 27_io/basic_ofstream/cons/2020.cc
+ * 27_io/basic_ofstream/requirements
+ * 27_io/basic_ofstream/requirements/base_classes.cc
+ * 27_io/basic_ofstream/requirements/explicit_instantiations.cc
+ * 27_io/basic_ofstream/requirements/typedefs.cc
+ * 27_io/basic_ostream/cons/2020.cc
+ * 27_io/basic_ostream/requirements
+ * 27_io/basic_ostream/requirements/base_classes.cc
+ * 27_io/basic_ostream/requirements/explicit_instantiation.cc
+ * 27_io/basic_ostream/requirements/typedefs.cc
+ * 27_io/basic_ostringstream/cons/2020.cc
+ * 27_io/basic_ostringstream/requirements
+ * 27_io/basic_ostringstream/requirements/base_classes.cc
+ * 27_io/basic_ostringstream/requirements/explicit_instantiation.cc
+ * 27_io/basic_ostringstream/requirements/typedefs.cc
+ * 27_io/basic_streambuf/cons/2020.cc
+ * 27_io/basic_streambuf/requirements
+ * 27_io/basic_streambuf/requirements/base_classes.cc
+ * 27_io/basic_streambuf/requirements/typedefs.cc
+ * 27_io/basic_stringbuf/cons/2020.cc
+ * 27_io/basic_stringbuf/requirements
+ * 27_io/basic_stringbuf/requirements/base_classes.cc
+ * 27_io/basic_stringbuf/requirements/explicit_instantiation
+ * 27_io/basic_stringbuf/requirements/explicit_instantiation/2.cc
+ * 27_io/basic_stringbuf/requirements/explicit_instantiation/4.cc
+ * 27_io/basic_stringbuf/requirements/typedefs.cc
+ * 27_io/basic_stringstream/cons
+ * 27_io/basic_stringstream/cons/2020.cc
+ * 27_io/basic_stringstream/requirements
+ * 27_io/basic_stringstream/requirements/base_classes.cc
+ * 27_io/basic_stringstream/requirements/explicit_instantiation.cc
+ * 27_io/basic_stringstream/requirements/typedefs.cc
+ * 27_io/fpos/requirements
+ * 27_io/fpos/requirements/explicit_instantiation.cc
+ * 27_io/headers
+ * 27_io/headers/cstdio
+ * 27_io/headers/cstdio/functions_std.cc
+ * 27_io/headers/cstdio/macros.cc
+ * 27_io/headers/cstdio/types_std.cc
+ * 27_io/headers/cstdlib
+ * 27_io/headers/fstream
+ * 27_io/headers/fstream/synopsis.cc
+ * 27_io/headers/fstream/types_std.cc
+ * 27_io/headers/iomanip
+ * 27_io/headers/iomanip/synopsis.cc
+ * 27_io/headers/ios
+ * 27_io/headers/ios/synopsis.cc
+ * 27_io/headers/iostream
+ * 27_io/headers/iostream/synopsis.cc
+ * 27_io/headers/iostream/types_std.cc
+ * 27_io/headers/ios/types_std.cc
+ * 27_io/headers/istream
+ * 27_io/headers/istream/synopsis.cc
+ * 27_io/headers/istream/types_std.cc
+ * 27_io/headers/ostream
+ * 27_io/headers/ostream/synopsis.cc
+ * 27_io/headers/ostream/types_std.cc
+ * 27_io/headers/sstream
+ * 27_io/headers/sstream/synopsis.cc
+ * 27_io/headers/sstream/types_std.cc
+ * 27_io/headers/streambuf
+ * 27_io/headers/streambuf/synopsis.cc
+ * 27_io/headers/streambuf/types_std.cc
+ * ext/debug_allocator/explicit_instantiation.cc
+ * ext/hash_map/requirements
+ * ext/hash_map/requirements/explicit_instantiation.cc
+ * ext/hash_set/requirements
+ * ext/hash_set/requirements/explicit_instantiation.cc
+ * ext/malloc_allocator/explicit_instantiation.cc
+ * ext/mt_allocator/explicit_instantiation.cc
+ * ext/pool_allocator/explicit_instantiation.cc
+ * ext/slist/requirements
+ * ext/slist/requirements/explicit_instantiation.cc
+ * ext/stdio_filebuf/requirements
+ * ext/stdio_filebuf/requirements/explicit_instantiation.cc
+ * ext/vstring/requirements
+ * ext/vstring/requirements/explicit_instantiation
+ * tr1/2_general_utilities/headers
+ * tr1/2_general_utilities/headers/functional
+ * tr1/2_general_utilities/headers/functional/synopsis.cc
+ * tr1/2_general_utilities/headers/memory
+ * tr1/2_general_utilities/headers/memory/synopsis.cc
+ * tr1/2_general_utilities/headers/memory/types_std_tr1.cc
+ * tr1/2_general_utilities/memory/enable_shared_from_this/requirements
+ * tr1/2_general_utilities/memory/enable_shared_from_this/
+ requirements/explicit_instantiation
+ * tr1/2_general_utilities/memory/shared_ptr/requirements
+ * tr1/2_general_utilities/memory/shared_ptr/requirements/
+ explicit_instantiation
+ * tr1/2_general_utilities/memory/weak_ptr/requirements
+ * tr1/2_general_utilities/memory/weak_ptr/requirements/
+ explicit_instantiation
+ * tr1/3_function_objects/headers
+ * tr1/3_function_objects/headers/functional
+ * tr1/3_function_objects/headers/functional/synopsis.cc
+ * tr1/3_function_objects/headers/functional/types_std_tr1.cc
+ * tr1/3_function_objects/headers/functional/
+ using_namespace_std_tr1_placeholders.cc
+ * tr1/4_metaprogramming/headers
+ * tr1/4_metaprogramming/headers/type_traits
+ * tr1/4_metaprogramming/headers/type_traits/synopsis.cc
+ * tr1/4_metaprogramming/headers/type_traits/types_std_tr1.cc
+ * tr1/5_numerical_facilities/headers
+ * tr1/5_numerical_facilities/headers/random
+ * tr1/5_numerical_facilities/headers/random/synopsis.cc
+ * tr1/5_numerical_facilities/headers/random/types_std_tr1.cc
+ * tr1/5_numerical_facilities/random/discard_block/
+ requirements/typedefs.cc
+ * tr1/6_containers/array/requirements/explicit_instantiation.cc
+ * tr1/6_containers/hash
+ * tr1/6_containers/hash/requirements
+ * tr1/6_containers/hash/requirements/base_classes.cc
+ * tr1/6_containers/hash/requirements/explicit_instantiation.cc
+ * tr1/6_containers/headers
+ * tr1/6_containers/headers/array
+ * tr1/6_containers/headers/array/synopsis.cc
+ * tr1/6_containers/headers/functional
+ * tr1/6_containers/headers/functional/synopsis.cc
+ * tr1/6_containers/headers/tuple
+ * tr1/6_containers/headers/tuple/synopsis.cc
+ * tr1/6_containers/headers/tuple/types_std_tr1.cc
+ * tr1/6_containers/headers/unordered_map
+ * tr1/6_containers/headers/unordered_map/synopsis.cc
+ * tr1/6_containers/headers/unordered_set
+ * tr1/6_containers/headers/unordered_set/synopsis.cc
+ * tr1/6_containers/tuple/requirements
+ * tr1/6_containers/tuple/requirements/explicit_instantiation.cc
+ * tr1/6_containers/unordered_map
+ * tr1/6_containers/unordered_map/24064.cc
+ * tr1/6_containers/unordered_map/capacity
+ * tr1/6_containers/unordered_map/capacity/29134-map.cc
+ * tr1/6_containers/unordered_map/erase
+ * tr1/6_containers/unordered_map/erase/24061-map.cc
+ * tr1/6_containers/unordered_map/find
+ * tr1/6_containers/unordered_map/find/map1.cc
+ * tr1/6_containers/unordered_map/insert
+ * tr1/6_containers/unordered_map/insert/24061-map.cc
+ * tr1/6_containers/unordered_map/insert/array_syntax.cc
+ * tr1/6_containers/unordered_map/insert/map_range.cc
+ * tr1/6_containers/unordered_map/insert/map_single.cc
+ * tr1/6_containers/unordered_map/requirements
+ * tr1/6_containers/unordered_map/requirements/explicit_instantiation.cc
+ * tr1/6_containers/unordered_map/requirements/iterator_neg.cc
+ * tr1/6_containers/unordered_map/requirements/iterator_null_neg.cc
+ * tr1/6_containers/unordered_map/swap
+ * tr1/6_containers/unordered_map/swap/1.cc
+ * tr1/6_containers/unordered_map/swap/2.cc
+ * tr1/6_containers/unordered_multimap
+ * tr1/6_containers/unordered_multimap/capacity
+ * tr1/6_containers/unordered_multimap/capacity/29134-multimap.cc
+ * tr1/6_containers/unordered_multimap/erase
+ * tr1/6_containers/unordered_multimap/erase/24061-multimap.cc
+ * tr1/6_containers/unordered_multimap/find
+ * tr1/6_containers/unordered_multimap/find/multimap1.cc
+ * tr1/6_containers/unordered_multimap/insert
+ * tr1/6_containers/unordered_multimap/insert/24061-multimap.cc
+ * tr1/6_containers/unordered_multimap/insert/multimap_range.cc
+ * tr1/6_containers/unordered_multimap/insert/multimap_single.cc
+ * tr1/6_containers/unordered_multimap/requirements
+ * tr1/6_containers/unordered_multimap/requirements/
+ explicit_instantiation.cc
+ * tr1/6_containers/unordered_multimap/requirements/iterator_neg.cc
+ * tr1/6_containers/unordered_multimap/requirements/iterator_null_neg.cc
+ * tr1/6_containers/unordered_multimap/swap
+ * tr1/6_containers/unordered_multimap/swap/1.cc
+ * tr1/6_containers/unordered_multimap/swap/2.cc
+ * tr1/6_containers/unordered_multiset
+ * tr1/6_containers/unordered_multiset/24054.cc
+ * tr1/6_containers/unordered_multiset/capacity
+ * tr1/6_containers/unordered_multiset/capacity/29134-multiset.cc
+ * tr1/6_containers/unordered_multiset/erase
+ * tr1/6_containers/unordered_multiset/erase/24061-multiset.cc
+ * tr1/6_containers/unordered_multiset/find
+ * tr1/6_containers/unordered_multiset/find/multiset1.cc
+ * tr1/6_containers/unordered_multiset/insert
+ * tr1/6_containers/unordered_multiset/insert/24061-multiset.cc
+ * tr1/6_containers/unordered_multiset/insert/multiset_range.cc
+ * tr1/6_containers/unordered_multiset/insert/multiset_single.cc
+ * tr1/6_containers/unordered_multiset/requirements
+ * tr1/6_containers/unordered_multiset/requirements/
+ explicit_instantiation.cc
+ * tr1/6_containers/unordered_multiset/requirements/iterator_neg.cc
+ * tr1/6_containers/unordered_multiset/requirements/iterator_null_neg.cc
+ * tr1/6_containers/unordered_multiset/swap
+ * tr1/6_containers/unordered_multiset/swap/1.cc
+ * tr1/6_containers/unordered_multiset/swap/2.cc
+ * tr1/6_containers/unordered_set
+ * tr1/6_containers/unordered_set/23053.cc
+ * tr1/6_containers/unordered_set/23465.cc
+ * tr1/6_containers/unordered_set/26127.cc
+ * tr1/6_containers/unordered_set/26132.cc
+ * tr1/6_containers/unordered_set/capacity
+ * tr1/6_containers/unordered_set/capacity/29134-set.cc
+ * tr1/6_containers/unordered_set/erase
+ * tr1/6_containers/unordered_set/erase/24061-set.cc
+ * tr1/6_containers/unordered_set/find
+ * tr1/6_containers/unordered_set/find/set1.cc
+ * tr1/6_containers/unordered_set/insert
+ * tr1/6_containers/unordered_set/insert/24061-set.cc
+ * tr1/6_containers/unordered_set/insert/set_range.cc
+ * tr1/6_containers/unordered_set/insert/set_single.cc
+ * tr1/6_containers/unordered_set/requirements
+ * tr1/6_containers/unordered_set/requirements/explicit_instantiation.cc
+ * tr1/6_containers/unordered_set/requirements/iterator_neg.cc
+ * tr1/6_containers/unordered_set/requirements/iterator_null_neg.cc
+ * tr1/6_containers/unordered_set/requirements/
+ iterators_default_constructor.cc
+ * tr1/6_containers/unordered_set/swap
+ * tr1/6_containers/unordered_set/swap/1.cc
+ * tr1/6_containers/unordered_set/swap/2.cc
+ * tr1/using_namespace_std_tr1.cc
+
+ Deleted:
+ * 17_intro/header_cassert.cc
+ * 17_intro/header_cerrno.cc
+ * 17_intro/header_csetjmp.cc
+ * 17_intro/header_cstdarg.cc
+ * 17_intro/header_cstddef.cc
+ * 17_intro/header_cstdio.cc
+ * 17_intro/header_cstdlib.cc
+ * 17_intro/header_cstring.cc
+ * 17_intro/header_ctime.cc
+ * 17_intro/header_cwchar.cc
+ * 17_intro/header_cwctype.cc
+ * 17_intro/header_fstream.cc
+ * 17_intro/header_iomanip.cc
+ * 17_intro/header_ios.cc
+ * 17_intro/header_iosfwd.cc
+ * 17_intro/header_iostream.cc
+ * 17_intro/header_istream.cc
+ * 17_intro/header_ostream.cc
+ * 17_intro/headers.cc
+ * 17_intro/headers_c++_c++0x_compat.cc
+ * 17_intro/headers_c.cc
+ * 17_intro/headers_c++.cc
+ * 17_intro/header_sstream.cc
+ * 17_intro/header_streambuf.cc
+ * 17_intro/no_assert_neg.cc
+ * 18_support/numeric_limits/sign.cc
+ * 18_support/numeric_limits/specialization.cc
+ * 20_util/memory/raw_storage_iterator.cc
+ * 21_strings/basic_string/1.cc
+ * 21_strings/basic_string/2.cc
+ * 22_locale/codecvt/1.cc
+ * 22_locale/codecvt/2.cc
+ * 22_locale/codecvt_byname/1.cc
+ * 22_locale/collate/1.cc
+ * 22_locale/collate/2.cc
+ * 22_locale/collate_byname/1.cc
+ * 22_locale/ctype/1.cc
+ * 22_locale/ctype_base/1.cc
+ * 22_locale/messages/1.cc
+ * 22_locale/messages/2.cc
+ * 22_locale/messages_byname/1.cc
+ * 22_locale/money_get/1.cc
+ * 22_locale/money_get/2.cc
+ * 22_locale/money_get/3.cc
+ * 22_locale/moneypunct/1.cc
+ * 22_locale/moneypunct/2.cc
+ * 22_locale/moneypunct/3.cc
+ * 22_locale/moneypunct_byname/1.cc
+ * 22_locale/money_put/1.cc
+ * 22_locale/money_put/2.cc
+ * 22_locale/money_put/3.cc
+ * 22_locale/num_get/1.cc
+ * 22_locale/num_get/2.cc
+ * 22_locale/num_get/3.cc
+ * 22_locale/numpunct/1.cc
+ * 22_locale/numpunct/2.cc
+ * 22_locale/numpunct_byname/1.cc
+ * 22_locale/num_put/1.cc
+ * 22_locale/num_put/2.cc
+ * 22_locale/num_put/3.cc
+ * 22_locale/time_get/1.cc
+ * 22_locale/time_get/2.cc
+ * 22_locale/time_put/1.cc
+ * 22_locale/time_put/2.cc
+ * 23_containers/deque/1.cc
+ * 23_containers/deque/explicit_instantiation
+ * 23_containers/deque/explicit_instantiation/1.cc
+ * 23_containers/deque/explicit_instantiation/2.cc
+ * 23_containers/deque/explicit_instantiation/3.cc
+ * 23_containers/list/1.cc
+ * 23_containers/list/explicit_instantiation
+ * 23_containers/list/explicit_instantiation/1.cc
+ * 23_containers/list/explicit_instantiation/2.cc
+ * 23_containers/list/explicit_instantiation/3.cc
+ * 23_containers/map/1.cc
+ * 23_containers/map/explicit_instantiation
+ * 23_containers/map/explicit_instantiation/1.cc
+ * 23_containers/map/explicit_instantiation/2.cc
+ * 23_containers/map/explicit_instantiation/3.cc
+ * 23_containers/multimap/1.cc
+ * 23_containers/multimap/explicit_instantiation
+ * 23_containers/multimap/explicit_instantiation/1.cc
+ * 23_containers/multimap/explicit_instantiation/2.cc
+ * 23_containers/multimap/explicit_instantiation/3.cc
+ * 23_containers/multiset/1.cc
+ * 23_containers/multiset/explicit_instantiation
+ * 23_containers/multiset/explicit_instantiation/1.cc
+ * 23_containers/multiset/explicit_instantiation/2.cc
+ * 23_containers/multiset/explicit_instantiation/3.cc
+ * 23_containers/set/1.cc
+ * 23_containers/set/explicit_instantiation
+ * 23_containers/set/explicit_instantiation/1.cc
+ * 23_containers/set/explicit_instantiation/2.cc
+ * 23_containers/set/explicit_instantiation/3.cc
+ * 23_containers/vector/1.cc
+ * 23_containers/vector/explicit_instantiation
+ * 23_containers/vector/explicit_instantiation/1.cc
+ * 23_containers/vector/explicit_instantiation/2.cc
+ * 23_containers/vector/explicit_instantiation/3.cc
+ * 24_iterators/26020.cc
+ * 24_iterators/back_insert_iterator.cc
+ * 24_iterators/front_insert_iterator.cc
+ * 24_iterators/insert_iterator.cc
+ * 24_iterators/istreambuf_iterator/1.cc
+ * 24_iterators/istream_iterator.cc
+ * 24_iterators/iterator.cc
+ * 24_iterators/ostreambuf_iterator/1.cc
+ * 24_iterators/ostream_iterator.cc
+ * 24_iterators/reverse_iterator/1.cc
+ * 26_numerics/cmath
+ * 26_numerics/cmath/19322.cc
+ * 26_numerics/cmath/c99_classification_macros_c.cc
+ * 26_numerics/cmath/c99_classification_macros_c++.cc
+ * 26_numerics/cmath/c_math.cc
+ * 26_numerics/cmath/c_math_dynamic.cc
+ * 26_numerics/cmath/fabs_inline.cc
+ * 26_numerics/cmath/overloads.cc
+ * 26_numerics/cmath/powi.cc
+ * 26_numerics/cstdlib
+ * 26_numerics/cstdlib/13943.cc
+ * 26_numerics/numeric
+ * 26_numerics/numeric/sum_diff.cc
+ * 26_numerics/valarray
+ * 26_numerics/valarray/27867.cc
+ * 26_numerics/valarray/28277.cc
+ * 26_numerics/valarray/30416.cc
+ * 26_numerics/valarray/binary_closure.cc
+ * 26_numerics/valarray/dr543.cc
+ * 26_numerics/valarray/slice_array_assignment.cc
+ * 26_numerics/valarray/slice.cc
+ * 26_numerics/valarray/valarray.cc
+ * 26_numerics/valarray/valarray_const_bracket.cc
+ * 26_numerics/valarray/valarray_name_lookup.cc
+ * 26_numerics/valarray/valarray_operators.cc
+ * 26_numerics/valarray/valarray_subset_assignment.cc
+ * 27_io/basic_filebuf/1.cc
+ * 27_io/basic_filebuf/2.cc
+ * 27_io/basic_filebuf/3.cc
+ * 27_io/basic_filebuf/4.cc
+ * 27_io/basic_fstream/1.cc
+ * 27_io/basic_fstream/2.cc
+ * 27_io/basic_fstream/3.cc
+ * 27_io/basic_fstream/4.cc
+ * 27_io/basic_ifstream/1.cc
+ * 27_io/basic_ifstream/2.cc
+ * 27_io/basic_ifstream/3.cc
+ * 27_io/basic_ifstream/4.cc
+ * 27_io/basic_ios/1.cc
+ * 27_io/basic_ios/2.cc
+ * 27_io/basic_ios/3.cc
+ * 27_io/basic_ios/4.cc
+ * 27_io/basic_iostream/1.cc
+ * 27_io/basic_iostream/2.cc
+ * 27_io/basic_iostream/3.cc
+ * 27_io/basic_iostream/4.cc
+ * 27_io/basic_istream/1.cc
+ * 27_io/basic_istream/2.cc
+ * 27_io/basic_istream/3.cc
+ * 27_io/basic_istream/4.cc
+ * 27_io/basic_istringstream/1.cc
+ * 27_io/basic_istringstream/2.cc
+ * 27_io/basic_istringstream/3.cc
+ * 27_io/basic_istringstream/4.cc
+ * 27_io/basic_ofstream/1.cc
+ * 27_io/basic_ofstream/2.cc
+ * 27_io/basic_ofstream/3.cc
+ * 27_io/basic_ofstream/4.cc
+ * 27_io/basic_ostream/1.cc
+ * 27_io/basic_ostream/2.cc
+ * 27_io/basic_ostream/3.cc
+ * 27_io/basic_ostream/4.cc
+ * 27_io/basic_ostringstream/1.cc
+ * 27_io/basic_ostringstream/2.cc
+ * 27_io/basic_ostringstream/3.cc
+ * 27_io/basic_ostringstream/4.cc
+ * 27_io/basic_streambuf/1.cc
+ * 27_io/basic_streambuf/2.cc
+ * 27_io/basic_streambuf/3.cc
+ * 27_io/basic_stringbuf/1.cc
+ * 27_io/basic_stringbuf/2.cc
+ * 27_io/basic_stringbuf/3.cc
+ * 27_io/basic_stringbuf/4.cc
+ * 27_io/basic_stringbuf/5.cc
+ * 27_io/basic_stringstream/1.cc
+ * 27_io/basic_stringstream/2.cc
+ * 27_io/basic_stringstream/3.cc
+ * 27_io/basic_stringstream/4.cc
+ * 27_io/fpos/1.cc
+ * ext/debug_allocator/instantiate.cc
+ * ext/hash_map/instantiate.cc
+ * ext/hash_set/instantiate.cc
+ * ext/malloc_allocator/instantiate.cc
+ * ext/mt_allocator/instantiate.cc
+ * ext/pool_allocator/instantiate.cc
+ * ext/slist/instantiate.cc
+ * ext/stdio_filebuf/char/1.cc
+ * ext/vstring/explicit_instantiation
+ * ext/vstring/explicit_instantiation/1.cc
+ * ext/vstring/explicit_instantiation/2.cc
+ * ext/vstring/explicit_instantiation/char
+ * ext/vstring/explicit_instantiation/char/1.cc
+ * ext/vstring/explicit_instantiation/wchar_t
+ * ext/vstring/explicit_instantiation/wchar_t/1.cc
+ * tr1/2_general_utilities/memory/enable_shared_from_this/
+ explicit_instantiation
+ * tr1/2_general_utilities/memory/enable_shared_from_this/
+ explicit_instantiation/1.cc
+ * tr1/2_general_utilities/memory/shared_ptr/explicit_instantiation
+ * tr1/2_general_utilities/memory/shared_ptr/explicit_instantiation/1.cc
+ * tr1/2_general_utilities/memory/weak_ptr/explicit_instantiation
+ * tr1/2_general_utilities/memory/weak_ptr/explicit_instantiation/1.cc
+ * tr1/5_numerical_facilities/random/discard_block/requirements/
+ requirements.cc
+ * tr1/6_containers/array/requirements/instantiate.cc
+ * tr1/6_containers/unordered
+ * tr1/6_containers/unordered/23781.cc
+ * tr1/6_containers/unordered/capacity
+ * tr1/6_containers/unordered/capacity/29134-map.cc
+ * tr1/6_containers/unordered/capacity/29134-multimap.cc
+ * tr1/6_containers/unordered/capacity/29134-multiset.cc
+ * tr1/6_containers/unordered/capacity/29134-set.cc
+ * tr1/6_containers/unordered/erase
+ * tr1/6_containers/unordered/erase/24061-map.cc
+ * tr1/6_containers/unordered/erase/24061-multimap.cc
+ * tr1/6_containers/unordered/erase/24061-multiset.cc
+ * tr1/6_containers/unordered/erase/24061-set.cc
+ * tr1/6_containers/unordered/find
+ * tr1/6_containers/unordered/find/map1.cc
+ * tr1/6_containers/unordered/find/multimap1.cc
+ * tr1/6_containers/unordered/find/multiset1.cc
+ * tr1/6_containers/unordered/find/set1.cc
+ * tr1/6_containers/unordered/hash
+ * tr1/6_containers/unordered/hash/24799.cc
+ * tr1/6_containers/unordered/hashtable
+ * tr1/6_containers/unordered/hashtable/23053.cc
+ * tr1/6_containers/unordered/hashtable/23465.cc
+ * tr1/6_containers/unordered/hashtable/24054.cc
+ * tr1/6_containers/unordered/hashtable/24064.cc
+ * tr1/6_containers/unordered/hashtable/26127.cc
+ * tr1/6_containers/unordered/hashtable/26132.cc
+ * tr1/6_containers/unordered/hashtable/iterators_default_constructor.cc
+ * tr1/6_containers/unordered/insert
+ * tr1/6_containers/unordered/insert/24061-map.cc
+ * tr1/6_containers/unordered/insert/24061-multimap.cc
+ * tr1/6_containers/unordered/insert/24061-multiset.cc
+ * tr1/6_containers/unordered/insert/24061-set.cc
+ * tr1/6_containers/unordered/insert/array_syntax.cc
+ * tr1/6_containers/unordered/insert/map_range.cc
+ * tr1/6_containers/unordered/insert/map_single.cc
+ * tr1/6_containers/unordered/insert/multimap_range.cc
+ * tr1/6_containers/unordered/insert/multimap_single.cc
+ * tr1/6_containers/unordered/insert/multiset_range.cc
+ * tr1/6_containers/unordered/insert/multiset_single.cc
+ * tr1/6_containers/unordered/insert/set_range.cc
+ * tr1/6_containers/unordered/insert/set_single.cc
+ * tr1/6_containers/unordered/instantiate
+ * tr1/6_containers/unordered/instantiate/hash.cc
+ * tr1/6_containers/unordered/instantiate/map.cc
+ * tr1/6_containers/unordered/instantiate/multimap.cc
+ * tr1/6_containers/unordered/instantiate/multiset.cc
+ * tr1/6_containers/unordered/instantiate/set.cc
+ * tr1/6_containers/unordered/swap
+ * tr1/6_containers/unordered/swap/unordered_map
+ * tr1/6_containers/unordered/swap/unordered_map/1.cc
+ * tr1/6_containers/unordered/swap/unordered_map/2.cc
+ * tr1/6_containers/unordered/swap/unordered_multimap
+ * tr1/6_containers/unordered/swap/unordered_multimap/1.cc
+ * tr1/6_containers/unordered/swap/unordered_multimap/2.cc
+ * tr1/6_containers/unordered/swap/unordered_multiset
+ * tr1/6_containers/unordered/swap/unordered_multiset/1.cc
+ * tr1/6_containers/unordered/swap/unordered_multiset/2.cc
+ * tr1/6_containers/unordered/swap/unordered_set
+ * tr1/6_containers/unordered/swap/unordered_set/1.cc
+ * tr1/6_containers/unordered/swap/unordered_set/2.cc
+ * tr1/6_containers/unordered/types
+ * tr1/6_containers/unordered/types/map_iterator.cc
+ * tr1/6_containers/unordered/types/multimap_iterator.cc
+ * tr1/6_containers/unordered/types/multiset_iterator.cc
+ * tr1/6_containers/unordered/types/set_iterator.cc
+
+ * 24_iterators/reverse_iterator/2.cc: To just one
+ non-requirements test.
+ * ext/headers.cc: Add new includes.
+
2007-02-18 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/28080 (partial)
+++ /dev/null
-// 2001-02-06 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, cassert
-
-#include <cassert>
-
-namespace gnu
-{
- void test01()
- {
- assert (true);
-#ifndef assert
- #error "assert_must_be_a_macro"
-#endif
- }
-}
-
-int main()
-{
- gnu::test01();
- return 0;
-}
+++ /dev/null
-// 2001-02-06 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, cerrno
-
-#include <cerrno>
-
-namespace gnu
-{
- int test01()
- {
- int i = errno;
-#ifndef errno
- #error "errno_must_be_a_macro"
-#endif
- return i;
- }
-}
-
-int main()
-{
- gnu::test01();
- return 0;
-}
+++ /dev/null
-// 2001-02-06 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, csetjmp
-
-#include <csetjmp>
-
-namespace gnu
-{
- void test01()
- {
- std::jmp_buf env;
- int i __attribute__((unused)) = setjmp(env);
-#ifndef setjmp
- #error "setjmp_must_be_a_macro"
-#endif
- }
-}
-
-int main()
-{
- gnu::test01();
- return 0;
-}
+++ /dev/null
-// 2001-02-06 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, cstdarg
-
-#include <cstdarg>
-
-namespace gnu
-{
- void test01()
- {
- std::va_list __attribute__((unused)) list;
-#ifndef va_arg
- #error "va_arg_must_be_a_macro"
-#endif
-#ifndef va_end
- #error "va_end_must_be_a_macro"
-#endif
-#ifndef va_start
- #error "va_start_must_be_a_macro"
-#endif
- }
-}
-
-int main()
-{
- gnu::test01();
- return 0;
-}
+++ /dev/null
-// 2001-02-06 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, cstddef
-
-#include <cstddef>
-
-namespace gnu
-{
- struct test_type
- {
- int i;
- int j;
- };
-
- void test01()
- {
- std::size_t i __attribute__((unused)) = offsetof(struct test_type, i);
-#ifndef offsetof
- #error "offsetof_must_be_a_macro"
-#endif
- }
-}
-
-int main()
-{
- gnu::test01();
- return 0;
-}
+++ /dev/null
-// 2000-01-01 bkoz
-
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, cstdio
-
-#include <cstdio>
-
-int main(void)
-{
- // Make sure size_t is in namespace std
- std::size_t i __attribute__((unused)) = 5;
- return 0;
-}
+++ /dev/null
-// 2000-01-01 bkoz
-
-// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, cstdlib
-
-#include <cstdlib>
-
-// libstdc++/2190
-void test01()
-{
- long a __attribute__((unused)) = std::abs(1L);
- std::div(2L, 1L);
- std::ldiv_t b __attribute__((unused));
-}
-
-void test02()
-{
- // Make sure size_t is in namespace std.
- std::size_t i __attribute__((unused)) = 5;
-}
-
-int main()
-{
- test01();
- test02();
- return 0;
-}
+++ /dev/null
-// 2000-01-01 bkoz
-
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, cstring
-
-#include <cstring>
-
-
-int main(void)
-{
- // Make sure size_t is in namespace std
- std::size_t i __attribute__((unused)) = std::strlen("tibet shop/san francisco (415) 982-0326");
- return 0;
-}
+++ /dev/null
-// 2000-01-01 bkoz
-
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, ctime
-
-#include <ctime>
-
-int main(void)
-{
- // Make sure size_t is in namespace std
- std::size_t i __attribute__((unused)) = 5;
- return 0;
-}
+++ /dev/null
-// 2000-01-01 bkoz
-
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, cwchar
-
-#include <cwchar>
-
-int main(void)
-{
- // Make sure size_t is in namespace std
- std::size_t i __attribute__((unused)) = 5;
-
- std::tm __attribute__((unused)) mytime;
-
- return 0;
-}
+++ /dev/null
-// 2000-01-03 bkoz
-
-// Copyright (C) 2001 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, cwctype
-
-#if _GLIBCXX_USE_WCHAR_T
-#include <cwctype>
-// Make sure wint_t is in namespace std
-std::wint_t i = 5;
-
-// Make sure table 46 is in namespace std.
-using std::wctype_t;
-using std::wctrans_t;
-using std::iswalpha;
-using std::iswupper;
-using std::iswlower;
-using std::iswdigit;
-using std::iswxdigit;
-using std::iswalnum;
-using std::iswspace;
-using std::iswpunct;
-using std::iswprint;
-using std::iswgraph;
-using std::iswcntrl;
-using std::iswctype;
-using std::towctrans;
-using std::towlower;
-using std::towupper;
-using std::wctrans;
-using std::wctype;
-#endif
-
-int main(void)
-{
- return 0;
-}
-
+++ /dev/null
-// 1999-07-01 bkoz
-
-// Copyright (C) 1999 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, fstream
-
-#include <fstream>
-#include <testsuite_hooks.h>
-
-
-int main(void)
-{
- return 0;
-}
+++ /dev/null
-// 1999-07-01 bkoz
-
-// Copyright (C) 1999 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, iomanip
-
-#include <iomanip>
-#include <testsuite_hooks.h>
-
-
-int main(void)
-{
- return 0;
-}
+++ /dev/null
-// 1999-07-01 bkoz
-
-// Copyright (C) 1999 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, ios
-
-#include <ios>
-#include <testsuite_hooks.h>
-
-
-int main(void)
-{
- return 0;
-}
+++ /dev/null
-// 1999-07-01 bkoz
-
-// Copyright (C) 1999 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, iosfwd
-
-#include <iosfwd>
-#include <testsuite_hooks.h>
-
-
-int main(void)
-{
- return 0;
-}
+++ /dev/null
-// 1999-07-01 bkoz
-
-// Copyright (C) 1999 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, iostream
-
-#include <iostream>
-#include <testsuite_hooks.h>
-
-
-int main(void)
-{
- return 0;
-}
+++ /dev/null
-// 1999-07-01 bkoz
-
-// Copyright (C) 1999 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, istream
-
-#include <istream>
-#include <testsuite_hooks.h>
-
-
-int main(void)
-{
- return 0;
-}
+++ /dev/null
-// 1999-07-01 bkoz
-
-// Copyright (C) 1999 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, ostream
-
-#include <ostream>
-#include <testsuite_hooks.h>
-
-
-int main(void)
-{
- return 0;
-}
+++ /dev/null
-// 1999-07-01 bkoz
-
-// Copyright (C) 1999 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, sstream
-
-#include <sstream>
-#include <testsuite_hooks.h>
-
-
-int main(void)
-{
- return 0;
-}
+++ /dev/null
-// 1999-07-01 bkoz
-
-// Copyright (C) 1999 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers, streambuf
-
-#include <streambuf>
-#include <testsuite_hooks.h>
-
-
-int main(void)
-{
- return 0;
-}
+++ /dev/null
-// 1999-05-12 bkoz
-
-// Copyright (C) 1999 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// FreeBSD wants warning clean system headers:
-// { dg-options "-Wall -Wsystem-headers" { target *-*-freebsd* } }
-
-// 17.4.1.2 Headers
-
-
-// "C++" headers
-#include <algorithm>
-#include <bitset>
-#include <complex>
-#include <deque>
-#include <exception>
-#include <fstream>
-#include <functional>
-#include <iomanip>
-#include <ios>
-#include <iosfwd>
-#include <iostream>
-#include <istream>
-#include <iterator>
-#include <limits>
-#include <list>
-#include <locale>
-#include <map>
-#include <memory>
-#include <new>
-#include <numeric>
-#include <ostream>
-#include <queue>
-#include <set>
-#include <sstream>
-#include <stack>
-#include <stdexcept>
-#include <streambuf>
-#include <string>
-#include <typeinfo>
-#include <utility>
-#include <valarray>
-#include <vector>
-
-// "C" headers
-#include <cassert>
-#include <cctype>
-#include <cerrno>
-#include <cfloat>
-#include <ciso646>
-#include <climits>
-#include <clocale>
-#include <cmath>
-#include <csetjmp>
-#include <csignal>
-#include <cstdarg>
-#include <cstddef>
-#include <cstdio>
-#include <cstdlib>
-#include <cstring>
-#include <ctime>
-
-// "C" headers that might not work if wchar_t support is disabled.
-#include <bits/c++config.h>
-#if _GLIBCXX_USE_WCHAR_T
- #include <cwchar>
- #include <cwctype>
-#endif
-
-int main() { return 0; }
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// Make sure all the includes can be compiled with -Wc++0x-compat
+// libstdc++/30571
+
+// C
+#include <cassert>
+#include <cctype>
+#include <cerrno>
+#include <cfloat>
+#include <ciso646>
+#include <climits>
+#include <clocale>
+#include <cmath>
+#include <csetjmp>
+#include <csignal>
+#include <cstdarg>
+#include <cstddef>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <ctime>
+
+// C++
+#include <algorithm>
+#include <bitset>
+#include <complex>
+#include <deque>
+#include <exception>
+#include <fstream>
+#include <functional>
+#include <iomanip>
+#include <ios>
+#include <iosfwd>
+#include <iostream>
+#include <istream>
+#include <iterator>
+#include <limits>
+#include <list>
+#include <locale>
+#include <map>
+#include <memory>
+#include <new>
+#include <numeric>
+#include <ostream>
+#include <queue>
+#include <set>
+#include <sstream>
+#include <stack>
+#include <stdexcept>
+#include <streambuf>
+#include <string>
+#include <typeinfo>
+#include <utility>
+#include <valarray>
+#include <vector>
+
+// TR1
+#include <tr1/array>
+#include <tr1/cctype>
+#include <tr1/cfenv>
+#include <tr1/cfloat>
+#include <tr1/cinttypes>
+#include <tr1/climits>
+#include <tr1/cmath>
+#include <tr1/complex>
+#include <tr1/cstdarg>
+#include <tr1/cstdbool>
+#include <tr1/cstdint>
+#include <tr1/cstdio>
+#include <tr1/cstdlib>
+#include <tr1/ctgmath>
+#include <tr1/ctime>
+#include <tr1/cwchar>
+#include <tr1/cwctype>
+#include <tr1/functional>
+#include <tr1/random>
+#include <tr1/tuple>
+#include <tr1/unordered_map>
+#include <tr1/unordered_set>
+#include <tr1/utility>
+
+// Extensions
+#include <ext/algorithm>
+#include <ext/array_allocator.h>
+#include <ext/atomicity.h>
+#include <ext/bitmap_allocator.h>
+#include <ext/codecvt_specializations.h>
+#include <ext/concurrence.h>
+#include <ext/debug_allocator.h>
+#include <ext/enc_filebuf.h>
+#include <ext/functional>
+#include <ext/hash_map>
+#include <ext/hash_set>
+#include <ext/iterator>
+#include <ext/malloc_allocator.h>
+#include <ext/memory>
+#include <ext/mt_allocator.h>
+#include <ext/new_allocator.h>
+#include <ext/numeric>
+#include <ext/pod_char_traits.h>
+#include <ext/pool_allocator.h>
+#include <ext/rb_tree>
+#include <ext/rope>
+#include <ext/slist>
+#include <ext/stdio_filebuf.h>
+#include <ext/stdio_sync_filebuf.h>
+#include <ext/throw_allocator.h>
+#include <ext/typelist.h>
+#include <ext/type_traits.h>
+#include <ext/vstring.h>
+#include <ext/pb_ds/assoc_container.hpp>
+#include <ext/pb_ds/priority_queue.hpp>
+#include <ext/pb_ds/exception.hpp>
+#include <ext/pb_ds/hash_policy.hpp>
+#include <ext/pb_ds/list_update_policy.hpp>
+#include <ext/pb_ds/tree_policy.hpp>
+#include <ext/pb_ds/trie_policy.hpp>
--- /dev/null
+// { dg-do compile }
+// { dg-options "-D__GLIBCXX__=99999999" }
+// NB: This is done to force any generated and possibly included PCH
+// to be invalid.
+
+// 2005-05-24 bkoz
+
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 17.4.1.2 Headers
+
+// This file tests that assert is not included in any of the standard
+// includes by accident.
+
+// C++ headers
+#include <algorithm>
+#include <bitset>
+#include <complex>
+#include <deque>
+#include <exception>
+#include <fstream>
+#include <functional>
+#include <iomanip>
+#include <ios>
+#include <iosfwd>
+#include <iostream>
+#include <istream>
+#include <iterator>
+#include <limits>
+#include <list>
+#include <locale>
+#include <map>
+#include <memory>
+#include <new>
+#include <numeric>
+#include <ostream>
+#include <queue>
+#include <set>
+#include <sstream>
+#include <stack>
+#include <stdexcept>
+#include <streambuf>
+#include <string>
+#include <typeinfo>
+#include <utility>
+#include <valarray>
+#include <vector>
+
+// C headers
+#include <cctype>
+#include <cerrno>
+#include <cfloat>
+#include <ciso646>
+#include <climits>
+#include <clocale>
+#include <cmath>
+#include <csetjmp>
+#include <csignal>
+#include <cstdarg>
+#include <cstddef>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <ctime>
+
+void foo()
+{
+ assert(true);
+}
+
+// { dg-error "not declared" "" { target *-*-* } 84 }
+
+
--- /dev/null
+// { dg-do compile }
+// { dg-options "-Wc++0x-compat -Werror" }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// Make sure all the includes can be compiled with -Wc++0x-compat
+// libstdc++/30571
+
+// C
+#include <cassert>
+#include <cctype>
+#include <cerrno>
+#include <cfloat>
+#include <ciso646>
+#include <climits>
+#include <clocale>
+#include <cmath>
+#include <csetjmp>
+#include <csignal>
+#include <cstdarg>
+#include <cstddef>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <ctime>
+
+// C++
+#include <algorithm>
+#include <bitset>
+#include <complex>
+#include <deque>
+#include <exception>
+#include <fstream>
+#include <functional>
+#include <iomanip>
+#include <ios>
+#include <iosfwd>
+#include <iostream>
+#include <istream>
+#include <iterator>
+#include <limits>
+#include <list>
+#include <locale>
+#include <map>
+#include <memory>
+#include <new>
+#include <numeric>
+#include <ostream>
+#include <queue>
+#include <set>
+#include <sstream>
+#include <stack>
+#include <stdexcept>
+#include <streambuf>
+#include <string>
+#include <typeinfo>
+#include <utility>
+#include <valarray>
+#include <vector>
+
+// TR1
+#include <tr1/array>
+#include <tr1/cctype>
+#include <tr1/cfenv>
+#include <tr1/cfloat>
+#include <tr1/cinttypes>
+#include <tr1/climits>
+#include <tr1/cmath>
+#include <tr1/complex>
+#include <tr1/cstdarg>
+#include <tr1/cstdbool>
+#include <tr1/cstdint>
+#include <tr1/cstdio>
+#include <tr1/cstdlib>
+#include <tr1/ctgmath>
+#include <tr1/ctime>
+#include <tr1/cwchar>
+#include <tr1/cwctype>
+#include <tr1/functional>
+#include <tr1/random>
+#include <tr1/tuple>
+#include <tr1/unordered_map>
+#include <tr1/unordered_set>
+#include <tr1/utility>
+
+// Extensions
+#include <ext/algorithm>
+#include <ext/array_allocator.h>
+#include <ext/atomicity.h>
+#include <ext/bitmap_allocator.h>
+#include <ext/codecvt_specializations.h>
+#include <ext/concurrence.h>
+#include <ext/debug_allocator.h>
+#include <ext/enc_filebuf.h>
+#include <ext/functional>
+#include <ext/hash_map>
+#include <ext/hash_set>
+#include <ext/iterator>
+#include <ext/malloc_allocator.h>
+#include <ext/memory>
+#include <ext/mt_allocator.h>
+#include <ext/new_allocator.h>
+#include <ext/numeric>
+#include <ext/pod_char_traits.h>
+#include <ext/pool_allocator.h>
+#include <ext/rb_tree>
+#include <ext/rope>
+#include <ext/slist>
+#include <ext/stdio_filebuf.h>
+#include <ext/stdio_sync_filebuf.h>
+#include <ext/throw_allocator.h>
+#include <ext/typelist.h>
+#include <ext/type_traits.h>
+#include <ext/vstring.h>
+#include <ext/pb_ds/assoc_container.hpp>
+#include <ext/pb_ds/priority_queue.hpp>
+#include <ext/pb_ds/exception.hpp>
+#include <ext/pb_ds/hash_policy.hpp>
+#include <ext/pb_ds/list_update_policy.hpp>
+#include <ext/pb_ds/tree_policy.hpp>
+#include <ext/pb_ds/trie_policy.hpp>
--- /dev/null
+// { dg-do compile }
+// 1999-05-12 bkoz
+
+// Copyright (C) 1999, 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// FreeBSD wants warning clean system headers:
+// { dg-options "-Wall -Wsystem-headers" { target *-*-freebsd* } }
+
+// 17.4.1.2 Headers
+
+// "C" headers
+#include <cassert>
+#include <cctype>
+#include <cerrno>
+#include <cfloat>
+#include <ciso646>
+#include <climits>
+#include <clocale>
+#include <cmath>
+#include <csetjmp>
+#include <csignal>
+#include <cstdarg>
+#include <cstddef>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <ctime>
+#include <cwchar>
+#include <cwctype>
+
+// "C" compatibility headers
+#include <assert.h>
+#include <ctype.h>
+#include <errno.h>
+#include <float.h>
+#include <iso646.h>
+#include <limits.h>
+#include <locale.h>
+#include <math.h>
+#include <setjmp.h>
+#include <signal.h>
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <wchar.h>
+#include <wctype.h>
+
+// "C++" headers
+#include <algorithm>
+#include <bitset>
+#include <complex>
+#include <deque>
+#include <exception>
+#include <fstream>
+#include <functional>
+#include <iomanip>
+#include <ios>
+#include <iosfwd>
+#include <iostream>
+#include <istream>
+#include <iterator>
+#include <limits>
+#include <list>
+#include <locale>
+#include <map>
+#include <memory>
+#include <new>
+#include <numeric>
+#include <ostream>
+#include <queue>
+#include <set>
+#include <sstream>
+#include <stack>
+#include <stdexcept>
+#include <streambuf>
+#include <string>
+#include <typeinfo>
+#include <utility>
+#include <valarray>
+#include <vector>
+
--- /dev/null
+// { dg-do compile }
+// 1999-05-12 bkoz
+
+// Copyright (C) 1999, 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// FreeBSD wants warning clean system headers:
+// { dg-options "-Wall -Wsystem-headers" { target *-*-freebsd* } }
+
+// 17.4.1.2 Headers
+
+// "C" headers
+#include <cassert>
+#include <cctype>
+#include <cerrno>
+#include <cfloat>
+#include <ciso646>
+#include <climits>
+#include <clocale>
+#include <cmath>
+#include <csetjmp>
+#include <csignal>
+#include <cstdarg>
+#include <cstddef>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <ctime>
+#include <cwchar>
+#include <cwctype>
+
+// "C" compatibility headers
+#include <assert.h>
+#include <ctype.h>
+#include <errno.h>
+#include <float.h>
+#include <iso646.h>
+#include <limits.h>
+#include <locale.h>
+#include <math.h>
+#include <setjmp.h>
+#include <signal.h>
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <wchar.h>
+#include <wctype.h>
+
+// "C++" headers
+#include <algorithm>
+#include <bitset>
+#include <complex>
+#include <deque>
+#include <exception>
+#include <fstream>
+#include <functional>
+#include <iomanip>
+#include <ios>
+#include <iosfwd>
+#include <iostream>
+#include <istream>
+#include <iterator>
+#include <limits>
+#include <list>
+#include <locale>
+#include <map>
+#include <memory>
+#include <new>
+#include <numeric>
+#include <ostream>
+#include <queue>
+#include <set>
+#include <sstream>
+#include <stack>
+#include <stdexcept>
+#include <streambuf>
+#include <string>
+#include <typeinfo>
+#include <utility>
+#include <valarray>
+#include <vector>
+
+
+// "C" headers
+#include <cassert>
+#include <cctype>
+#include <cerrno>
+#include <cfloat>
+#include <ciso646>
+#include <climits>
+#include <clocale>
+#include <cmath>
+#include <csetjmp>
+#include <csignal>
+#include <cstdarg>
+#include <cstddef>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <ctime>
+#include <cwchar>
+#include <cwctype>
+
+// "C" compatibility headers
+#include <assert.h>
+#include <ctype.h>
+#include <errno.h>
+#include <float.h>
+#include <iso646.h>
+#include <limits.h>
+#include <locale.h>
+#include <math.h>
+#include <setjmp.h>
+#include <signal.h>
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <wchar.h>
+#include <wctype.h>
+
+// "C++" headers
+#include <algorithm>
+#include <bitset>
+#include <complex>
+#include <deque>
+#include <exception>
+#include <fstream>
+#include <functional>
+#include <iomanip>
+#include <ios>
+#include <iosfwd>
+#include <iostream>
+#include <istream>
+#include <iterator>
+#include <limits>
+#include <list>
+#include <locale>
+#include <map>
+#include <memory>
+#include <new>
+#include <numeric>
+#include <ostream>
+#include <queue>
+#include <set>
+#include <sstream>
+#include <stack>
+#include <stdexcept>
+#include <streambuf>
+#include <string>
+#include <typeinfo>
+#include <utility>
+#include <valarray>
+#include <vector>
+++ /dev/null
-// 2001-01-01 bkoz
-
-// Copyright (C) 2001 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers
-
-// This file tests C++ inclusion then C inclusion.
-
-// C++ headers
-#include <cassert>
-#include <cctype>
-#include <cerrno>
-#include <cfloat>
-#include <ciso646>
-#include <climits>
-#include <clocale>
-#include <cmath>
-#include <csetjmp>
-#include <csignal>
-#include <cstdarg>
-#include <cstddef>
-#include <cstdio>
-#include <cstdlib>
-#include <cstring>
-#include <ctime>
-
-// "C" headers
-#include <assert.h>
-#include <ctype.h>
-#include <errno.h>
-#include <float.h>
-#include <iso646.h>
-#include <limits.h>
-#include <locale.h>
-#include <math.h>
-#include <setjmp.h>
-#include <signal.h>
-#include <stdarg.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-
-// "C++" headers that might not work if wchar_t support is disabled.
-#include <bits/c++config.h>
-#if _GLIBCXX_USE_WCHAR_T
- #include <cwchar>
- #include <cwctype>
- #include <wchar.h>
- #include <wctype.h>
-#endif
-
-// libstdc++/2992
-namespace bar
-{
- int foo(const char *x)
- { return strlen(x); }
-};
-
-
-int main() { return 0; }
-
-
-
-
-
-
+++ /dev/null
-// { dg-do compile }
-// { dg-options "-Wc++0x-compat -Werror" }
-
-// Copyright (C) 2007 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Make sure all the includes can be compiled with -Wc++0x-compat
-// libstdc++/30571
-
-// C
-#include <cassert>
-#include <cctype>
-#include <cerrno>
-#include <cfloat>
-#include <ciso646>
-#include <climits>
-#include <clocale>
-#include <cmath>
-#include <csetjmp>
-#include <csignal>
-#include <cstdarg>
-#include <cstddef>
-#include <cstdio>
-#include <cstdlib>
-#include <cstring>
-#include <ctime>
-
-// C++
-#include <algorithm>
-#include <bitset>
-#include <complex>
-#include <deque>
-#include <exception>
-#include <fstream>
-#include <functional>
-#include <iomanip>
-#include <ios>
-#include <iosfwd>
-#include <iostream>
-#include <istream>
-#include <iterator>
-#include <limits>
-#include <list>
-#include <locale>
-#include <map>
-#include <memory>
-#include <new>
-#include <numeric>
-#include <ostream>
-#include <queue>
-#include <set>
-#include <sstream>
-#include <stack>
-#include <stdexcept>
-#include <streambuf>
-#include <string>
-#include <typeinfo>
-#include <utility>
-#include <valarray>
-#include <vector>
-
-// TR1
-#include <tr1/array>
-#include <tr1/cctype>
-#include <tr1/cfenv>
-#include <tr1/cfloat>
-#include <tr1/cinttypes>
-#include <tr1/climits>
-#include <tr1/cmath>
-#include <tr1/complex>
-#include <tr1/cstdarg>
-#include <tr1/cstdbool>
-#include <tr1/cstdint>
-#include <tr1/cstdio>
-#include <tr1/cstdlib>
-#include <tr1/ctgmath>
-#include <tr1/ctime>
-#include <tr1/cwchar>
-#include <tr1/cwctype>
-#include <tr1/functional>
-#include <tr1/random>
-#include <tr1/tuple>
-#include <tr1/unordered_map>
-#include <tr1/unordered_set>
-#include <tr1/utility>
-
-// Extensions
-#include <ext/algorithm>
-#include <ext/array_allocator.h>
-#include <ext/atomicity.h>
-#include <ext/bitmap_allocator.h>
-#include <ext/codecvt_specializations.h>
-#include <ext/concurrence.h>
-#include <ext/debug_allocator.h>
-#include <ext/enc_filebuf.h>
-#include <ext/functional>
-#include <ext/hash_map>
-#include <ext/hash_set>
-#include <ext/iterator>
-#include <ext/malloc_allocator.h>
-#include <ext/memory>
-#include <ext/mt_allocator.h>
-#include <ext/new_allocator.h>
-#include <ext/numeric>
-#include <ext/pod_char_traits.h>
-#include <ext/pool_allocator.h>
-#include <ext/rb_tree>
-#include <ext/rope>
-#include <ext/slist>
-#include <ext/stdio_filebuf.h>
-#include <ext/stdio_sync_filebuf.h>
-#include <ext/throw_allocator.h>
-#include <ext/typelist.h>
-#include <ext/type_traits.h>
-#include <ext/vstring.h>
-#include <ext/pb_ds/assoc_container.hpp>
-#include <ext/pb_ds/priority_queue.hpp>
-#include <ext/pb_ds/exception.hpp>
-#include <ext/pb_ds/hash_policy.hpp>
-#include <ext/pb_ds/list_update_policy.hpp>
-#include <ext/pb_ds/tree_policy.hpp>
-#include <ext/pb_ds/trie_policy.hpp>
+++ /dev/null
-// 2000-12-20 bkoz
-
-// Copyright (C) 2000, 2001 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers
-
-// This file tests C inclusion then C++ inclusion.
-
-// "C" headers
-#include <assert.h>
-#include <ctype.h>
-#include <errno.h>
-#include <float.h>
-#include <iso646.h>
-#include <limits.h>
-#include <locale.h>
-#include <math.h>
-#include <setjmp.h>
-#include <signal.h>
-#include <stdarg.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-
-// C++ headers
-#include <cassert>
-#include <cctype>
-#include <cerrno>
-#include <cfloat>
-#include <ciso646>
-#include <climits>
-#include <clocale>
-#include <cmath>
-#include <csetjmp>
-#include <csignal>
-#include <cstdarg>
-#include <cstddef>
-#include <cstdio>
-#include <cstdlib>
-#include <cstring>
-#include <ctime>
-
-// "C" headers that might not work if wchar_t support is disabled.
-#include <bits/c++config.h>
-#if _GLIBCXX_USE_WCHAR_T
- #include <wchar.h>
- #include <wctype.h>
- #include <cwchar>
- #include <cwctype>
-#endif
-
-// libstdc++/2992
-namespace bar
-{
- int foo(const char *x)
- { return strlen(x); }
-};
-
-
-int main() { return 0; }
+++ /dev/null
-// { dg-do compile }
-// { dg-options "-D__GLIBCXX__=99999999" }
-// NB: This is done to force any generated and possibly included PCH
-// to be invalid.
-
-// 2005-05-24 bkoz
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 17.4.1.2 Headers
-
-// This file tests that assert is not included in any of the standard
-// includes by accident.
-
-// C++ headers
-#include <algorithm>
-#include <bitset>
-#include <complex>
-#include <deque>
-#include <exception>
-#include <fstream>
-#include <functional>
-#include <iomanip>
-#include <ios>
-#include <iosfwd>
-#include <iostream>
-#include <istream>
-#include <iterator>
-#include <limits>
-#include <list>
-#include <locale>
-#include <map>
-#include <memory>
-#include <new>
-#include <numeric>
-#include <ostream>
-#include <queue>
-#include <set>
-#include <sstream>
-#include <stack>
-#include <stdexcept>
-#include <streambuf>
-#include <string>
-#include <typeinfo>
-#include <utility>
-#include <valarray>
-#include <vector>
-
-// C headers
-#include <cctype>
-#include <cerrno>
-#include <cfloat>
-#include <ciso646>
-#include <climits>
-#include <clocale>
-#include <cmath>
-#include <csetjmp>
-#include <csignal>
-#include <cstdarg>
-#include <cstddef>
-#include <cstdio>
-#include <cstdlib>
-#include <cstring>
-#include <ctime>
-
-void foo()
-{
- assert(true);
-}
-
-// { dg-error "not declared" "" { target *-*-* } 84 }
-
-
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <new>
+
+namespace gnu
+{
+ using namespace std;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cfloat>
+
+namespace gnu
+{
+ double d1 = DBL_DIG;
+ double d2 = DBL_EPSILON;
+ double d3 = DBL_MANT_DIG;
+ double d4 = DBL_MAX;
+ double d5 = DBL_MAX_10_EXP;
+ double d6 = DBL_MAX_EXP;
+ double d7 = DBL_MIN;
+ double d8 = DBL_MIN_10_EXP;
+ double d9 = DBL_MIN_EXP;
+
+ float f1 = FLT_DIG;
+ float f2 = FLT_EPSILON;
+ float f3 = FLT_MANT_DIG;
+ float f4 = FLT_MAX;
+ float f5 = FLT_MAX_10_EXP;
+ float f6 = FLT_MAX_EXP;
+ float f7 = FLT_MIN;
+ float f8 = FLT_MIN_10_EXP;
+ float f9 = FLT_MIN_EXP;
+
+ long double ld1 = LDBL_DIG;
+ long double ld2 = LDBL_EPSILON;
+ long double ld3 = LDBL_MANT_DIG;
+ long double ld4 = LDBL_MAX;
+ long double ld5 = LDBL_MAX_10_EXP;
+ long double ld6 = LDBL_MAX_EXP;
+ long double ld7 = LDBL_MIN;
+ long double ld8 = LDBL_MIN_10_EXP;
+ long double ld9 = LDBL_MIN_EXP;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <climits>
+
+namespace gnu
+{
+ // char
+ char c1 = CHAR_BIT;
+ char c2 = CHAR_MAX;
+ char c3 = CHAR_MIN;
+
+ // int
+ int i2 = INT_MAX;
+ int i3 = INT_MIN;
+
+ // short
+ short s2 = SHRT_MAX;
+ short s3 = SHRT_MIN;
+
+ // long
+ long l2 = LONG_MAX;
+ long l3 = LONG_MIN;
+
+ unsigned long mb = MB_LEN_MAX;
+
+ // signed char
+ signed char sc1 = SCHAR_MIN;
+ signed char sc2 = SCHAR_MAX;
+
+ // unsigned
+ unsigned int ui = UINT_MAX;
+ unsigned short us = USHRT_MAX;
+ unsigned long ul = ULONG_MAX;
+
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <csetjmp>
+
+namespace gnu
+{
+ using std::longjmp;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <csetjmp>
+
+namespace gnu
+{
+#ifndef setjmp
+ #error "setjmp_must_be_a_macro"
+#endif
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <csetjmp>
+
+namespace gnu
+{
+ std::jmp_buf j;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <csignal>
+
+namespace gnu
+{
+ using std::raise;
+ using std::signal;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <csignal>
+
+namespace gnu
+{
+#ifndef SIGABRT
+ #error "SIGABRT_must_be_a_macro"
+#endif
+
+#ifndef SIGILL
+ #error "SIGILL_must_be_a_macro"
+#endif
+
+#ifndef SIGSEGV
+ #error "SIGSEGV_must_be_a_macro"
+#endif
+
+#ifndef SIG_DFL
+ #error "SIG_DFL_must_be_a_macro"
+#endif
+
+#ifndef SIGFPE
+ #error "SIGFPE_must_be_a_macro"
+#endif
+
+#ifndef SIGINT
+ #error "SIGINT_must_be_a_macro"
+#endif
+
+#ifndef SIGTERM
+ #error "SIGTERM_must_be_a_macro"
+#endif
+
+#ifndef SIG_ERR
+ #error "SIG_ERR_must_be_a_macro"
+#endif
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <csignal>
+
+namespace gnu
+{
+ std::sig_atomic_t s;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstdarg>
+
+namespace gnu
+{
+#ifndef va_arg
+ #error "va_arg_must_be_a_macro"
+#endif
+
+#ifndef va_start
+ #error "va_start_must_be_a_macro"
+#endif
+
+#ifndef va_end
+ #error "va_end_must_be_a_macro"
+#endif
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstdarg>
+
+namespace gnu
+{
+ std::va_list v;
+}
--- /dev/null
+// { dg-do compile }
+// 2001-02-06 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003, 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstddef>
+
+namespace gnu
+{
+ struct test_type
+ {
+ int i;
+ int j;
+ };
+
+ // offsetof
+ void test01()
+ {
+ std::size_t i __attribute__((unused)) = offsetof(struct test_type, i);
+#ifndef offsetof
+ #error "offsetof_must_be_a_macro"
+#endif
+ }
+
+ // NULL
+ void test02()
+ {
+ // Must not be (void*)0
+ const int j = NULL;
+
+#ifndef NULL
+ #error "NULL_must_be_a_macro"
+#endif
+ }
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstddef>
+
+namespace gnu
+{
+ std::size_t s;
+ std::ptrdiff_t p;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstdlib>
+
+namespace gnu
+{
+ using std::abort;
+ using std::atexit;
+ using std::exit;
+
+ using std::getenv;
+ using std::system;
+}
--- /dev/null
+// { dg-do compile }
+// 2001-02-06 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003, 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstddef>
+
+namespace gnu
+{
+#ifndef EXIT_FAILURE
+ #error "EXIT_FAILURE_must_be_a_macro"
+#endif
+
+#ifndef EXIT_SUCCESS
+ #error "EXIT_SUCCESS_must_be_a_macro"
+#endif
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <ctime>
+
+namespace gnu
+{
+ using std::clock;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <ctime>
+
+namespace gnu
+{
+#ifndef CLOCKS_PER_SEC
+ #error "CLOCKS_PER_SEC_must_be_a_macro"
+#endif
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <ctime>
+
+namespace gnu
+{
+ std::clock_t c;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <exception>
+
+namespace std {
+ class exception;
+ class bad_exception;
+
+ typedef void (*unexpected_handler)();
+ unexpected_handler set_unexpected(unexpected_handler f ) throw();
+ void unexpected();
+
+ typedef void (*terminate_handler)();
+ terminate_handler set_terminate(terminate_handler f ) throw();
+ void terminate();
+
+ bool uncaught_exception() throw();
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <exception>
+
+namespace gnu
+{
+ typedef std::exception t1;
+ typedef std::bad_exception t2;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <limits>
+
+namespace std {
+ template<class T> class numeric_limits;
+
+#if 0
+ enum float_round_style;
+ enum float_denorm_style;
+#endif
+
+ template<> class numeric_limits<bool>;
+
+ template<> class numeric_limits<char>;
+ template<> class numeric_limits<signed char>;
+ template<> class numeric_limits<unsigned char>;
+ template<> class numeric_limits<wchar_t>;
+
+ template<> class numeric_limits<short>;
+ template<> class numeric_limits<int>;
+ template<> class numeric_limits<long>;
+ template<> class numeric_limits<unsigned short>;
+ template<> class numeric_limits<unsigned int>;
+ template<> class numeric_limits<unsigned long>;
+
+ template<> class numeric_limits<float>;
+ template<> class numeric_limits<double>;
+ template<> class numeric_limits<long double>;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <new>
+
+namespace std {
+ class bad_alloc;
+ struct nothrow_t;
+ extern const nothrow_t nothrow;
+ typedef void (*new_handler)();
+ new_handler set_new_handler(new_handler new_p) throw();
+}
+
+void* operator new(std::size_t size) throw(std::bad_alloc);
+void* operator new(std::size_t size, const std::nothrow_t&) throw();
+void operator delete(void* ptr) throw();
+void operator delete(void* ptr, const std::nothrow_t&) throw();
+void* operator new[](std::size_t size) throw(std::bad_alloc);
+void* operator new[](std::size_t size, const std::nothrow_t&) throw();
+void operator delete[](void* ptr) throw();
+void operator delete[](void* ptr, const std::nothrow_t&) throw();
+
+void* operator new (std::size_t size, void* ptr) throw();
+void* operator new[](std::size_t size, void* ptr) throw();
+void operator delete (void* ptr, void*) throw();
+void operator delete[](void* ptr, void*) throw();
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <new>
+
+namespace gnu
+{
+ typedef std::bad_alloc t1;
+ typedef std::nothrow_t t2;
+
+ typedef std::new_handler t3;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <typeinfo>
+
+namespace std {
+ class type_info;
+ class bad_cast;
+ class bad_typeid;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <typeinfo>
+
+namespace gnu
+{
+ typedef std::type_info t1;
+ typedef std::bad_cast t2;
+
+ typedef std::bad_typeid t3;
+}
--- /dev/null
+// { dg-options "-mieee" { target alpha*-*-* } }
+// { dg-options "-mieee" { target sh*-*-* } }
+
+// 1999-08-23 bkoz
+
+// Copyright (C) 1999, 2001, 2002, 2003, 2004 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 18.2.1.1 template class numeric_limits
+
+#include <limits>
+#include <limits.h>
+#include <float.h>
+#include <cwchar>
+#include <testsuite_hooks.h>
+
+#ifdef __CHAR_UNSIGNED__
+#define char_is_signed false
+#else
+#define char_is_signed true
+#endif
+
+void test_sign()
+{
+ bool test __attribute__((unused)) = true;
+ VERIFY( std::numeric_limits<char>::is_signed == char_is_signed );
+ VERIFY( std::numeric_limits<signed char>::is_signed == true );
+ VERIFY( std::numeric_limits<unsigned char>::is_signed == false );
+ VERIFY( std::numeric_limits<short>::is_signed == true );
+ VERIFY( std::numeric_limits<unsigned short>::is_signed == false );
+ VERIFY( std::numeric_limits<int>::is_signed == true );
+ VERIFY( std::numeric_limits<unsigned>::is_signed == false );
+ VERIFY( std::numeric_limits<long>::is_signed == true );
+ VERIFY( std::numeric_limits<unsigned long>::is_signed == false );
+ VERIFY( std::numeric_limits<float>::is_signed == true );
+ VERIFY( std::numeric_limits<double>::is_signed == true );
+ VERIFY( std::numeric_limits<long double>::is_signed == true );
+}
+
+int main()
+{
+ test_sign();
+
+ return 0;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <limits>
+
+template<typename T>
+ struct A
+ {
+ int key;
+ public:
+ A(int i = 0): key(i) { }
+ bool
+ operator==(int i) { return i == key; }
+ };
+
+struct B
+{
+ B(int = 0) { }
+};
+
+// XXX Should this work for POD types?
+template class std::numeric_limits<A<B> >;
+++ /dev/null
-// { dg-options "-mieee" { target alpha*-*-* } }
-// { dg-options "-mieee" { target sh*-*-* } }
-
-// 1999-08-23 bkoz
-
-// Copyright (C) 1999, 2001, 2002, 2003, 2004 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 18.2.1.1 template class numeric_limits
-
-#include <limits>
-#include <limits.h>
-#include <float.h>
-#include <cwchar>
-#include <testsuite_hooks.h>
-
-#ifdef __CHAR_UNSIGNED__
-#define char_is_signed false
-#else
-#define char_is_signed true
-#endif
-
-void test_sign()
-{
- bool test __attribute__((unused)) = true;
- VERIFY( std::numeric_limits<char>::is_signed == char_is_signed );
- VERIFY( std::numeric_limits<signed char>::is_signed == true );
- VERIFY( std::numeric_limits<unsigned char>::is_signed == false );
- VERIFY( std::numeric_limits<short>::is_signed == true );
- VERIFY( std::numeric_limits<unsigned short>::is_signed == false );
- VERIFY( std::numeric_limits<int>::is_signed == true );
- VERIFY( std::numeric_limits<unsigned>::is_signed == false );
- VERIFY( std::numeric_limits<long>::is_signed == true );
- VERIFY( std::numeric_limits<unsigned long>::is_signed == false );
- VERIFY( std::numeric_limits<float>::is_signed == true );
- VERIFY( std::numeric_limits<double>::is_signed == true );
- VERIFY( std::numeric_limits<long double>::is_signed == true );
-}
-
-int main()
-{
- test_sign();
-
- return 0;
-}
+++ /dev/null
-// { dg-options "-mieee" { target alpha*-*-* } }
-// { dg-options "-mieee" { target sh*-*-* } }
-
-// 1999-08-23 bkoz
-
-// Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 18.2.1.1 template class numeric_limits
-
-#include <limits>
-#include <limits.h>
-#include <float.h>
-#include <cwchar>
-#include <testsuite_hooks.h>
-
-template<typename T>
- struct A
- {
- int key;
- public:
- A(int i = 0): key(i) { }
- bool
- operator==(int i) { return i == key; }
- };
-
-struct B
-{
- B(int = 0) { }
-};
-
-
-bool test01()
-{
- bool test __attribute__((unused)) = true;
- std::numeric_limits< A<B> > obj;
-
- VERIFY( !obj.is_specialized );
- VERIFY( obj.min() == 0 );
- VERIFY( obj.max() == 0 );
- VERIFY( obj.digits == 0 );
- VERIFY( obj.digits10 == 0 );
- VERIFY( !obj.is_signed );
- VERIFY( !obj.is_integer );
- VERIFY( !obj.is_exact );
- VERIFY( obj.radix == 0 );
- VERIFY( obj.epsilon() == 0 );
- VERIFY( obj.round_error() == 0 );
- VERIFY( obj.min_exponent == 0 );
- VERIFY( obj.min_exponent10 == 0 );
- VERIFY( obj.max_exponent == 0 );
- VERIFY( obj.max_exponent10 == 0 );
- VERIFY( !obj.has_infinity );
- VERIFY( !obj.has_quiet_NaN );
- VERIFY( !obj.has_signaling_NaN );
- VERIFY( !obj.has_denorm );
- VERIFY( !obj.has_denorm_loss );
- VERIFY( obj.infinity() == 0 );
- VERIFY( obj.quiet_NaN() == 0 );
- VERIFY( obj.signaling_NaN() == 0 );
- VERIFY( obj.denorm_min() == 0 );
- VERIFY( !obj.is_iec559 );
- VERIFY( !obj.is_bounded );
- VERIFY( !obj.is_modulo );
- VERIFY( !obj.traps );
- VERIFY( !obj.tinyness_before );
- VERIFY( obj.round_style == std::round_toward_zero );
- return test;
-}
-
-// test linkage of the generic bits
-template struct std::numeric_limits<B>;
-
-void test02()
-{
- typedef std::numeric_limits<B> b_nl_type;
-
- // Should probably do all of them...
- const int* __attribute__((unused)) pi1 = &b_nl_type::digits;
- const int* __attribute__((unused)) pi2 = &b_nl_type::digits10;
- const int* __attribute__((unused)) pi3 = &b_nl_type::max_exponent10;
- const bool* __attribute__((unused)) pb1 = &b_nl_type::traps;
-}
-
-
-int main()
-{
- test01();
- test02();
-
- return 0;
-}
--- /dev/null
+// { dg-options "-mieee" { target alpha*-*-* } }
+// { dg-options "-mieee" { target sh*-*-* } }
+
+// 1999-08-23 bkoz
+
+// Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 18.2.1.1 template class numeric_limits
+
+#include <limits>
+#include <limits.h>
+#include <float.h>
+#include <cwchar>
+#include <testsuite_hooks.h>
+
+template<typename T>
+ struct A
+ {
+ int key;
+ public:
+ A(int i = 0): key(i) { }
+ bool
+ operator==(int i) { return i == key; }
+ };
+
+struct B
+{
+ B(int = 0) { }
+};
+
+
+bool test01()
+{
+ bool test __attribute__((unused)) = true;
+ std::numeric_limits< A<B> > obj;
+
+ VERIFY( !obj.is_specialized );
+ VERIFY( obj.min() == 0 );
+ VERIFY( obj.max() == 0 );
+ VERIFY( obj.digits == 0 );
+ VERIFY( obj.digits10 == 0 );
+ VERIFY( !obj.is_signed );
+ VERIFY( !obj.is_integer );
+ VERIFY( !obj.is_exact );
+ VERIFY( obj.radix == 0 );
+ VERIFY( obj.epsilon() == 0 );
+ VERIFY( obj.round_error() == 0 );
+ VERIFY( obj.min_exponent == 0 );
+ VERIFY( obj.min_exponent10 == 0 );
+ VERIFY( obj.max_exponent == 0 );
+ VERIFY( obj.max_exponent10 == 0 );
+ VERIFY( !obj.has_infinity );
+ VERIFY( !obj.has_quiet_NaN );
+ VERIFY( !obj.has_signaling_NaN );
+ VERIFY( !obj.has_denorm );
+ VERIFY( !obj.has_denorm_loss );
+ VERIFY( obj.infinity() == 0 );
+ VERIFY( obj.quiet_NaN() == 0 );
+ VERIFY( obj.signaling_NaN() == 0 );
+ VERIFY( obj.denorm_min() == 0 );
+ VERIFY( !obj.is_iec559 );
+ VERIFY( !obj.is_bounded );
+ VERIFY( !obj.is_modulo );
+ VERIFY( !obj.traps );
+ VERIFY( !obj.tinyness_before );
+ VERIFY( obj.round_style == std::round_toward_zero );
+ return test;
+}
+
+// test linkage of the generic bits
+template struct std::numeric_limits<B>;
+
+void test02()
+{
+ typedef std::numeric_limits<B> b_nl_type;
+
+ // Should probably do all of them...
+ const int* __attribute__((unused)) pi1 = &b_nl_type::digits;
+ const int* __attribute__((unused)) pi2 = &b_nl_type::digits10;
+ const int* __attribute__((unused)) pi3 = &b_nl_type::max_exponent10;
+ const bool* __attribute__((unused)) pb1 = &b_nl_type::traps;
+}
+
+
+int main()
+{
+ test01();
+ test02();
+
+ return 0;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cassert>
+
+namespace gnu
+{
+#ifndef assert
+ #error "assert_must_be_a_macro"
+#endif
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cassert>
+
+namespace gnu
+{
+#ifndef EDOM
+ #error "EDOM_must_be_a_macro"
+#endif
+
+#ifndef ERANGE
+ #error "ERANGE_must_be_a_macro"
+#endif
+
+#ifndef errno
+ #error "errno_must_be_a_macro"
+#endif
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <stdexcept>
+
+namespace std {
+ class logic_error;
+ class domain_error;
+ class invalid_argument;
+ class length_error;
+ class out_of_range;
+ class runtime_error;
+ class range_error;
+ class overflow_error;
+ class underflow_error;
+}
+
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <stdexcept>
+
+namespace gnu
+{
+ typedef std::logic_error t1;
+ typedef std::domain_error t2;
+ typedef std::invalid_argument t3;
+ typedef std::length_error t4;
+ typedef std::out_of_range t5;
+ typedef std::runtime_error t6;
+ typedef std::range_error t7;
+ typedef std::overflow_error t8;
+ typedef std::underflow_error t9;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstdlib>
+
+namespace gnu
+{
+ using std::calloc;
+ using std::malloc;
+ using std::free;
+ using std::realloc;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstring>
+
+namespace gnu
+{
+ using std::memchr;
+ using std::memcmp;
+ using std::memcpy;
+ using std::memmove;
+ using std::memset;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstring>
+
+namespace gnu
+{
+#ifndef NULL
+ #error "NULL_must_be_a_macro"
+#endif
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstring>
+
+namespace gnu
+{
+ std::size_t s;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <ctime>
+
+namespace gnu
+{
+ using std::asctime;
+ using std::clock;
+ using std::difftime;
+ using std::localtime;
+ using std::strftime;
+ using std::ctime;
+ using std::gmtime;
+ using std::mktime;
+ using std::time;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <ctime>
+
+namespace gnu
+{
+#ifndef NULL
+ #error "NULL_must_be_a_macro"
+#endif
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <ctime>
+
+namespace gnu
+{
+ std::size_t s;
+ std::clock_t c;
+ std::time_t t;
+
+ std::tm t2;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <functional>
+
+namespace std {
+ // lib.base, base:
+ template <class Arg, class Result> struct unary_function;
+ template <class Arg1, class Arg2, class Result> struct binary_function;
+
+ // lib.arithmetic.operations, arithmetic operations:
+ template <class T> struct plus;
+ template <class T> struct minus;
+ template <class T> struct multiplies;
+ template <class T> struct divides;
+ template <class T> struct modulus;
+ template <class T> struct negate;
+
+ // lib.comparisons, comparisons:
+ template <class T> struct equal_to;
+ template <class T> struct not_equal_to;
+ template <class T> struct greater;
+ template <class T> struct less;
+ template <class T> struct greater_equal;
+ template <class T> struct less_equal;
+
+ // lib.logical.operations, logical operations:
+ template <class T> struct logical_and;
+ template <class T> struct logical_or;
+ template <class T> struct logical_not;
+
+ // lib.negators, negators:
+ template <class Predicate> struct unary_negate;
+ template <class Predicate>
+ unary_negate<Predicate> not1(const Predicate&);
+ template <class Predicate> struct binary_negate;
+ template <class Predicate>
+ binary_negate<Predicate> not2(const Predicate&);
+
+ // lib.binders, binders:
+ template <class Operation> class binder1st;
+ template <class Operation, class T>
+ binder1st<Operation> bind1st(const Operation&, const T&);
+ template <class Operation> class binder2nd;
+ template <class Operation, class T>
+ binder2nd<Operation> bind2nd(const Operation&, const T&);
+
+ // lib.function.pointer.adaptors, adaptors:
+ template <class Arg, class Result> class pointer_to_unary_function;
+ template <class Arg, class Result>
+ pointer_to_unary_function<Arg,Result> ptr_fun(Result (*)(Arg));
+ template <class Arg1, class Arg2, class Result>
+ class pointer_to_binary_function;
+ template <class Arg1, class Arg2, class Result>
+ pointer_to_binary_function<Arg1,Arg2,Result>
+ ptr_fun(Result (*)(Arg1,Arg2));
+
+ // lib.member.pointer.adaptors, adaptors:
+ template<class S, class T> class mem_fun_t;
+ template<class S, class T, class A> class mem_fun1_t;
+ template<class S, class T>
+ mem_fun_t<S,T> mem_fun(S (T::*f)());
+ template<class S, class T, class A>
+ mem_fun1_t<S,T,A> mem_fun(S (T::*f)(A));
+ template<class S, class T> class mem_fun_ref_t;
+ template<class S, class T, class A> class mem_fun1_ref_t;
+ template<class S, class T>
+ mem_fun_ref_t<S,T> mem_fun_ref(S (T::*f)());
+ template<class S, class T, class A>
+ mem_fun1_ref_t<S,T,A> mem_fun_ref(S (T::*f)(A));
+
+ template <class S, class T> class const_mem_fun_t;
+ template <class S, class T, class A> class const_mem_fun1_t;
+ template <class S, class T>
+ const_mem_fun_t<S,T> mem_fun(S (T::*f)() const);
+ template <class S, class T, class A>
+ const_mem_fun1_t<S,T,A> mem_fun(S (T::*f)(A) const);
+ template <class S, class T> class const_mem_fun_ref_t;
+ template <class S, class T, class A> class const_mem_fun1_ref_t;
+ template <class S, class T>
+ const_mem_fun_ref_t<S,T> mem_fun_ref(S (T::*f)() const);
+ template <class S, class T, class A>
+ const_mem_fun1_ref_t<S,T,A> mem_fun_ref(S (T::*f)(A) const);
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <memory>
+
+namespace std {
+ // lib.default.allocator, the default allocator:
+ template <class T> class allocator;
+ template <> class allocator<void>;
+ template <class T, class U>
+ bool operator==(const allocator<T>&, const allocator<U>&) throw();
+ template <class T, class U>
+ bool operator!=(const allocator<T>&, const allocator<U>&) throw();
+
+ // lib.storage.iterator, raw storage iterator:
+ template <class OutputIterator, class T> class raw_storage_iterator;
+
+ // lib.temporary.buffer, temporary buffers:
+ template <class T>
+ pair<T*,ptrdiff_t> get_temporary_buffer(ptrdiff_t n);
+ template <class T>
+ void return_temporary_buffer(T* p);
+
+ // lib.specialized.algorithms, specialized algorithms:
+ template <class InputIterator, class ForwardIterator>
+ ForwardIterator
+ uninitialized_copy(InputIterator first, InputIterator last,
+ ForwardIterator result);
+ template <class ForwardIterator, class T>
+ void uninitialized_fill(ForwardIterator first, ForwardIterator last,
+ const T& x);
+ template <class ForwardIterator, class Size, class T>
+ void uninitialized_fill_n(ForwardIterator first, Size n, const T& x);
+
+ // lib.auto.ptr, pointers:
+ template<class X> class auto_ptr;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <utility>
+
+namespace std {
+ // lib.operators, operators:
+ namespace rel_ops {
+ template<class T> bool operator!=(const T&, const T&);
+ template<class T> bool operator> (const T&, const T&);
+ template<class T> bool operator<=(const T&, const T&);
+ template<class T> bool operator>=(const T&, const T&);
+ }
+
+ // lib.pairs, pairs:
+ template <class T1, class T2> struct pair;
+ template <class T1, class T2>
+ bool operator==(const pair<T1,T2>&, const pair<T1,T2>&);
+ template <class T1, class T2>
+ bool operator< (const pair<T1,T2>&, const pair<T1,T2>&);
+ template <class T1, class T2>
+ bool operator!=(const pair<T1,T2>&, const pair<T1,T2>&);
+ template <class T1, class T2>
+ bool operator> (const pair<T1,T2>&, const pair<T1,T2>&);
+ template <class T1, class T2>
+ bool operator>=(const pair<T1,T2>&, const pair<T1,T2>&);
+ template <class T1, class T2>
+ bool operator<=(const pair<T1,T2>&, const pair<T1,T2>&);
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <utility>
+
+namespace gnu
+{
+ using namespace std::rel_ops;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <memory>
+
+template class std::allocator<int>;
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <memory>
+
+template class std::auto_ptr<int>;
+++ /dev/null
-// 2001-06-18 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 20.4.2 raw storage iterator
-
-#include <memory>
-
-void test01()
-{
- using namespace std;
-
- // Check for required base class.
- long l;
- typedef raw_storage_iterator<long*, long> test_iterator;
- typedef iterator<output_iterator_tag, void, void, void, void> base_iterator;
- test_iterator rs_it(&l);
- base_iterator* base __attribute__((unused)) = &rs_it;
-
- // Check for required typedefs
- typedef test_iterator::value_type value_type;
- typedef test_iterator::difference_type difference_type;
- typedef test_iterator::pointer pointer;
- typedef test_iterator::reference reference;
- typedef test_iterator::iterator_category iteratory_category;
-}
-
-int main()
-{
- test01();
- return 0;
-}
--- /dev/null
+// { dg-do compile }
+
+// 2001-06-18 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003, 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 20.4.2 raw storage iterator
+
+#include <memory>
+
+void test01()
+{
+ using namespace std;
+
+ // Check for required base class.
+ long l;
+ typedef raw_storage_iterator<long*, long> test_iterator;
+ typedef iterator<output_iterator_tag, void, void, void, void> base_iterator;
+ test_iterator rs_it(&l);
+ base_iterator* base __attribute__((unused)) = &rs_it;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <memory>
+
+template class std::raw_storage_iterator<int*, int>;
--- /dev/null
+// { dg-do compile }
+// 2001-06-18 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003, 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 20.4.2 raw storage iterator
+
+#include <memory>
+
+void test01()
+{
+ using namespace std;
+
+ // Check for required typedefs
+ long l;
+ typedef raw_storage_iterator<long*, long> test_iterator;
+ typedef test_iterator::value_type value_type;
+ typedef test_iterator::difference_type difference_type;
+ typedef test_iterator::pointer pointer;
+ typedef test_iterator::reference reference;
+ typedef test_iterator::iterator_category iteratory_category;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <utility>
+
+template class std::pair<int, long>;
+++ /dev/null
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of basic_string
-
-#include <string>
-
-// { dg-do compile }
-
-// libstdc++/21770
-template class std::basic_string<int, std::char_traits<int>,
- std::allocator<char> >;
+++ /dev/null
-// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of basic_string
-
-#include <debug/string>
-
-// { dg-do compile }
-
-// libstdc++/21770
-namespace debug = __gnu_debug;
-template class debug::basic_string<int, std::char_traits<int>,
- std::allocator<char> >;
--- /dev/null
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of basic_string
+
+#include <string>
+
+// { dg-do compile }
+
+// libstdc++/21770
+template class std::basic_string<int, std::char_traits<int>,
+ std::allocator<char> >;
--- /dev/null
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of basic_string
+
+#include <debug/string>
+
+// { dg-do compile }
+
+// libstdc++/21770
+namespace debug = __gnu_debug;
+template class debug::basic_string<int, std::char_traits<int>,
+ std::allocator<char> >;
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cctype>
+
+namespace gnu
+{
+ using std::isalnum;
+ using std::isdigit;
+ using std::isprint;
+ using std::isupper;
+ using std::tolower;
+ using std::isalpha;
+ using std::isgraph;
+ using std::ispunct;
+ using std::isxdigit;
+ using std::toupper;
+ using std::iscntrl;
+ using std::islower;
+ using std::isspace;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstdlib>
+
+namespace gnu
+{
+ using std::atol;
+ using std::atof;
+ using std::atoi;
+ using std::mblen;
+ using std::mbstowcs;
+ using std::mbtowc;
+ using std::strtod;
+ using std::strtol;
+ using std::strtoul;
+ using std::wctomb;
+ using std::wcstombs;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstring>
+
+namespace gnu
+{
+#ifndef NULL
+ #error "NULL_must_be_a_macro"
+#endif
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstring>
+
+namespace gnu
+{
+ using std::memchr;
+ using std::memcmp;
+ using std::memcpy;
+ using std::memmove;
+ using std::memset;
+ using std::strcat;
+ using std::strchr;
+ using std::strcmp;
+ using std::strcoll;
+ using std::strcpy;
+ using std::strcspn;
+ using std::strerror;
+ using std::strlen;
+ using std::strncat;
+ using std::strncmp;
+ using std::strncpy;
+ using std::strpbrk;
+ using std::strrchr;
+ using std::strspn;
+ using std::strstr;
+ using std::strtok;
+ using std::strxfrm;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstring>
+
+namespace gnu
+{
+#ifndef NULL
+ #error "NULL_must_be_a_macro"
+#endif
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstring>
+
+namespace gnu
+{
+ std::size_t s;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cwchar>
+
+namespace gnu
+{
+ using std::btowc;
+ using std::fgetwc;
+ using std::fgetws;
+ using std::fputwc;
+ using std::fputws;
+ using std::fwide;
+ using std::fwprintf;
+ using std::fwscanf;
+ using std::getwc;
+ using std::getwchar;
+ using std::mbrlen;
+ using std::mbrtowc;
+ using std::mbsinit;
+ using std::mbsrtowcs;
+ using std::putwc;
+ using std::putwchar;
+ using std::swprintf;
+ using std::swscanf;
+ using std::ungetwc;
+ using std::vfwprintf;
+ using std::vswprintf;
+ using std::vwprintf;
+ using std::wcrtomb;
+ using std::wcscat;
+ using std::wcschr;
+ using std::wcscmp;
+ using std::wcscoll;
+ using std::wcscpy;
+ using std::wcscmp;
+ using std::wcsftime;
+ using std::wcslen;
+ using std::wcsncat;
+ using std::wcsncmp;
+ using std::wcsncpy;
+ using std::wcspbrk;
+ using std::wcsrchr;
+ using std::wcsrtombs;
+ using std::wcsspn;
+ using std::wcsstr;
+ using std::wcstod;
+ using std::wcstok;
+ using std::wcstol;
+ using std::wcstoul;
+ using std::wcsxfrm;
+ using std::wctob;
+ using std::wmemchr;
+ using std::wmemcmp;
+ using std::wmemcpy;
+ using std::wmemmove;
+ using std::wmemset;
+ using std::wprintf;
+ using std::wscanf;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cwchar>
+
+namespace gnu
+{
+#ifndef NULL
+ #error "NULL_must_be_a_macro"
+#endif
+
+#ifndef WCHAR_MAX
+ #error "WCHAR_MAX_must_be_a_macro"
+#endif
+
+#ifndef WCHAR_MIN
+ #error "WCHAR_MIN_must_be_a_macro"
+#endif
+
+#ifndef WEOF
+ #error "WEOF_must_be_a_macro"
+#endif
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cwchar>
+
+namespace gnu
+{
+ std::mbstate_t mb;
+ std::wint_t wt;
+ std::size_t s;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cwctype>
+
+namespace gnu
+{
+ using std::iswalnum;
+ using std::iswdigit;
+ using std::iswprint;
+ using std::iswupper;
+ using std::iswalpha;
+ using std::iswgraph;
+ using std::iswpunct;
+ using std::iswxdigit;
+ using std::iswspace;
+ using std::iswcntrl;
+ using std::towlower;
+ using std::towupper;
+ using std::towctrans;
+ using std::wctrans;
+ using std::wctype;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cwctype>
+
+namespace gnu
+{
+#ifndef WEOF
+ #error "WEOF_must_be_a_macro"
+#endif
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cwctype>
+
+namespace gnu
+{
+ std::wctrans_t wt;
+ std::wctype_t wct;
+ std::wint_t wint;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <string>
+
+namespace std {
+ // lib.char.traits, character traits:
+ template<class charT>
+ struct char_traits;
+ template <> struct char_traits<char>;
+ template <> struct char_traits<wchar_t>;
+
+ // lib.basic.string, basic_string:
+ template<class charT, class traits, class Allocator >
+ class basic_string;
+
+ template<class charT, class traits, class Allocator>
+ basic_string<charT,traits,Allocator>
+ operator+(const basic_string<charT,traits,Allocator>& lhs,
+ const basic_string<charT,traits,Allocator>& rhs);
+ template<class charT, class traits, class Allocator>
+ basic_string<charT,traits,Allocator>
+ operator+(const charT* lhs,
+ const basic_string<charT,traits,Allocator>& rhs);
+ template<class charT, class traits, class Allocator>
+ basic_string<charT,traits,Allocator>
+ operator+(charT lhs, const basic_string<charT,traits,Allocator>& rhs);
+ template<class charT, class traits, class Allocator>
+ basic_string<charT,traits,Allocator>
+ operator+(const basic_string<charT,traits,Allocator>& lhs,
+ const charT* rhs);
+ template<class charT, class traits, class Allocator>
+ basic_string<charT,traits,Allocator>
+ operator+(const basic_string<charT,traits,Allocator>& lhs, charT rhs);
+
+ template<class charT, class traits, class Allocator>
+ bool operator==(const basic_string<charT,traits,Allocator>& lhs,
+ const basic_string<charT,traits,Allocator>& rhs);
+ template<class charT, class traits, class Allocator>
+ bool operator==(const charT* lhs,
+ const basic_string<charT,traits,Allocator>& rhs);
+ template<class charT, class traits, class Allocator>
+ bool operator==(const basic_string<charT,traits,Allocator>& lhs,
+ const charT* rhs);
+ template<class charT, class traits, class Allocator>
+ bool operator!=(const basic_string<charT,traits,Allocator>& lhs,
+ const basic_string<charT,traits,Allocator>& rhs);
+ template<class charT, class traits, class Allocator>
+ bool operator!=(const charT* lhs,
+ const basic_string<charT,traits,Allocator>& rhs);
+ template<class charT, class traits, class Allocator>
+ bool operator!=(const basic_string<charT,traits,Allocator>& lhs,
+ const charT* rhs);
+
+ template<class charT, class traits, class Allocator>
+ bool operator< (const basic_string<charT,traits,Allocator>& lhs,
+ const basic_string<charT,traits,Allocator>& rhs);
+ template<class charT, class traits, class Allocator>
+ bool operator< (const basic_string<charT,traits,Allocator>& lhs,
+ const charT* rhs);
+ template<class charT, class traits, class Allocator>
+ bool operator< (const charT* lhs,
+ const basic_string<charT,traits,Allocator>& rhs);
+ template<class charT, class traits, class Allocator>
+ bool operator> (const basic_string<charT,traits,Allocator>& lhs,
+ const basic_string<charT,traits,Allocator>& rhs);
+ template<class charT, class traits, class Allocator>
+ bool operator> (const basic_string<charT,traits,Allocator>& lhs,
+ const charT* rhs);
+ template<class charT, class traits, class Allocator>
+ bool operator> (const charT* lhs,
+ const basic_string<charT,traits,Allocator>& rhs);
+
+ template<class charT, class traits, class Allocator>
+ bool operator<=(const basic_string<charT,traits,Allocator>& lhs,
+ const basic_string<charT,traits,Allocator>& rhs);
+ template<class charT, class traits, class Allocator>
+ bool operator<=(const basic_string<charT,traits,Allocator>& lhs,
+ const charT* rhs);
+ template<class charT, class traits, class Allocator>
+ bool operator<=(const charT* lhs,
+ const basic_string<charT,traits,Allocator>& rhs);
+ template<class charT, class traits, class Allocator>
+ bool operator>=(const basic_string<charT,traits,Allocator>& lhs,
+ const basic_string<charT,traits,Allocator>& rhs);
+ template<class charT, class traits, class Allocator>
+ bool operator>=(const basic_string<charT,traits,Allocator>& lhs,
+ const charT* rhs);
+ template<class charT, class traits, class Allocator>
+ bool operator>=(const charT* lhs,
+ const basic_string<charT,traits,Allocator>& rhs);
+
+ // lib.string.special:
+ template<class charT, class traits, class Allocator>
+ void swap(basic_string<charT,traits,Allocator>& lhs,
+ basic_string<charT,traits,Allocator>& rhs);
+
+ template<class charT, class traits, class Allocator>
+ basic_istream<charT,traits>&
+ operator>>(basic_istream<charT,traits>& is,
+ basic_string<charT,traits,Allocator>& str);
+ template<class charT, class traits, class Allocator>
+ basic_ostream<charT, traits>&
+ operator<<(basic_ostream<charT, traits>& os,
+ const basic_string<charT,traits,Allocator>& str);
+ template<class charT, class traits, class Allocator>
+ basic_istream<charT,traits>&
+ getline(basic_istream<charT,traits>& is,
+ basic_string<charT,traits,Allocator>& str,
+ charT delim);
+ template<class charT, class traits, class Allocator>
+ basic_istream<charT,traits>&
+ getline(basic_istream<charT,traits>& is,
+ basic_string<charT,traits,Allocator>& str);
+
+ typedef basic_string<char> string;
+ typedef basic_string<wchar_t> wstring;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <string>
+
+namespace gnu
+{
+ typedef std::string t1;
+ typedef std::wstring t2;
+}
+++ /dev/null
-// { dg-do compile }
-// 2001-08-27 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.1.5 Template class codecvt
-
-#include <locale>
-
-void test01()
-{
- // Check for required base class.
- typedef std::codecvt<char, char, mbstate_t> test_type;
- typedef std::locale::facet base_type;
- const test_type& obj = std::use_facet<test_type>(std::locale());
- const base_type* base __attribute__((unused)) = &obj;
-
- // Check for required typedefs
- typedef test_type::intern_type intern_type;
- typedef test_type::extern_type extern_type;
- typedef test_type::state_type state_type;
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// { dg-do compile }
-// 2001-08-27 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.1.5 Template class codecvt
-
-#include <locale>
-
-// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_codecvt: public std::codecvt<unsigned char, unsigned long, char>
-{ };
-
-void test02()
-{
- gnu_codecvt facet01;
-}
-
-int main()
-{
- test02();
- return 0;
-}
--- /dev/null
+// { dg-do compile }
+// 2001-08-27 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.1.5 Template class codecvt
+
+#include <locale>
+
+void test01()
+{
+ // Check for required base class.
+ typedef std::codecvt<char, char, mbstate_t> test_type;
+ typedef std::locale::facet base_type;
+ const test_type& obj = std::use_facet<test_type>(std::locale());
+ const base_type* base __attribute__((unused)) = &obj;
+}
--- /dev/null
+// { dg-do compile }
+// 2001-08-27 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.1.5 Template class codecvt
+
+#include <locale>
+
+// Should be able to instantiate this for other types besides char, wchar_t
+template class std::codecvt<unsigned char, unsigned long, char>;
--- /dev/null
+// { dg-do compile }
+// 2001-08-27 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.1.5 Template class codecvt
+
+#include <locale>
+
+void test01()
+{
+ // Check for required typedefs
+ typedef std::codecvt<char, char, mbstate_t> test_type;
+ typedef test_type::intern_type intern_type;
+ typedef test_type::extern_type extern_type;
+ typedef test_type::state_type state_type;
+}
+++ /dev/null
-// { dg-do compile }
-// 2001-08-27 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.1.5 Template class codecvt
-
-#include <locale>
-
-void test01()
-{
- // Check for required base class.
- typedef std::codecvt_byname<char, char, mbstate_t> test_type;
- typedef std::codecvt<char, char, mbstate_t> base_type;
- const test_type& obj = std::use_facet<test_type>(std::locale::classic());
- const base_type* base __attribute__((unused)) = &obj;
-
- // Check for required typedefs
- typedef test_type::intern_type intern_type;
- typedef test_type::extern_type extern_type;
- typedef test_type::state_type state_type;
-}
-
-int main()
-{
- test01();
- return 0;
-}
--- /dev/null
+// { dg-do compile }
+// 2001-08-27 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.1.5 Template class codecvt
+
+#include <locale>
+
+void test01()
+{
+ // Check for required base class.
+ typedef std::codecvt_byname<char, char, mbstate_t> test_type;
+ typedef std::codecvt<char, char, mbstate_t> base_type;
+ const test_type& obj = std::use_facet<test_type>(std::locale::classic());
+ const base_type* base __attribute__((unused)) = &obj;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <locale>
+
+template class std::codecvt_byname<short, short, mbstate_t>;
--- /dev/null
+// { dg-do compile }
+// 2001-08-27 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.1.5 Template class codecvt
+
+#include <locale>
+
+void test01()
+{
+ // Check for required typedefs
+ typedef std::codecvt_byname<char, char, mbstate_t> test_type;
+ typedef test_type::intern_type intern_type;
+ typedef test_type::extern_type extern_type;
+ typedef test_type::state_type state_type;
+}
+++ /dev/null
-// { dg-do compile }
-// 2001-08-15 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.4 The collate category
-
-#include <locale>
-
-void test01()
-{
- // Check for required base class.
- typedef std::collate<char> test_type;
- typedef std::locale::facet base_type;
- const test_type& obj = std::use_facet<test_type>(std::locale());
- const base_type* base __attribute__((unused)) = &obj;
-
- // Check for required typedefs
- typedef test_type::char_type char_type;
- typedef test_type::string_type string_type;
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// { dg-do compile }
-// 2001-08-15 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.4 The collate category
-
-#include <locale>
-
-// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_collate: public std::collate<unsigned char>
-{ };
-
-void test02()
-{
- gnu_collate facet01;
-}
-
-int main()
-{
- test02();
- return 0;
-}
--- /dev/null
+// { dg-do compile }
+// 2001-08-15 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.4 The collate category
+
+#include <locale>
+
+void test01()
+{
+ // Check for required base class.
+ typedef std::collate<char> test_type;
+ typedef std::locale::facet base_type;
+ const test_type& obj = std::use_facet<test_type>(std::locale());
+ const base_type* base __attribute__((unused)) = &obj;
+}
--- /dev/null
+// { dg-do compile }
+// 2001-08-15 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.4 The collate category
+
+#include <locale>
+
+// Should be able to instantiate this for other types besides char, wchar_t
+template class std::collate<unsigned char>;
--- /dev/null
+// { dg-do compile }
+// 2001-08-15 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.4 The collate category
+
+#include <locale>
+
+void test01()
+{
+ // Check for required typedefs
+ typedef std::collate<char> test_type;
+ typedef test_type::char_type char_type;
+ typedef test_type::string_type string_type;
+}
+++ /dev/null
-// { dg-do compile }
-// 2001-08-15 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.4 The collate category
-
-#include <locale>
-
-void test01()
-{
- // Check for required base class.
- typedef std::collate_byname<char> test_type;
- typedef std::collate<char> base_type;
- const test_type& obj = std::use_facet<test_type>(std::locale::classic());
- const base_type* base __attribute__((unused)) = &obj;
-
- // Check for required typedefs
- typedef test_type::char_type char_type;
- typedef test_type::string_type string_type;
-}
-
-int main()
-{
- test01();
- return 0;
-}
--- /dev/null
+// { dg-do compile }
+// 2001-08-15 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.4 The collate category
+
+#include <locale>
+
+void test01()
+{
+ // Check for required base class.
+ typedef std::collate_byname<char> test_type;
+ typedef std::collate<char> base_type;
+ const test_type& obj = std::use_facet<test_type>(std::locale::classic());
+ const base_type* base __attribute__((unused)) = &obj;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <locale>
+
+template class std::collate_byname<short>;
--- /dev/null
+// { dg-do compile }
+// 2001-08-15 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.4 The collate category
+
+#include <locale>
+
+void test01()
+{
+ // Check for required typedefs
+ typedef std::collate_byname<char> test_type;
+ typedef test_type::char_type char_type;
+ typedef test_type::string_type string_type;
+}
+++ /dev/null
-// { dg-do compile }
-// 2001-08-15 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.1.1 - Template class ctype
-
-#include <locale>
-
-void test01()
-{
- // Check for required base class.
- typedef std::ctype<char> test_type;
- typedef std::locale::facet base_type1;
- typedef std::ctype_base base_type2;
- const test_type& obj = std::use_facet<test_type>(std::locale::classic());
- const base_type1* base1 __attribute__((unused)) = &obj;
- const base_type2* base2 __attribute__((unused)) = &obj;
-
- // Check for required typedefs
- typedef test_type::char_type char_type;
-}
-
-int main()
-{
- test01();
- return 0;
-}
--- /dev/null
+// { dg-do compile }
+// 2001-08-15 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.1.1 - Template class ctype
+
+#include <locale>
+
+void test01()
+{
+ // Check for required base class.
+ typedef std::ctype<char> test_type;
+ typedef std::locale::facet base_type1;
+ typedef std::ctype_base base_type2;
+ const test_type& obj = std::use_facet<test_type>(std::locale::classic());
+ const base_type1* base1 __attribute__((unused)) = &obj;
+ const base_type2* base2 __attribute__((unused)) = &obj;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <locale>
+
+template class std::ctype<short>;
--- /dev/null
+// { dg-do compile }
+// 2001-08-15 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.1.1 - Template class ctype
+
+#include <locale>
+
+void test01()
+{
+ // Check for required typedefs
+ typedef std::ctype<char> test_type;
+ typedef test_type::char_type char_type;
+}
+++ /dev/null
-// { dg-do compile }
-// 1999-08-24 bkoz
-
-// Copyright (C) 1999, 2000, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.1 The ctype category
-
-// 1: Test that the locale headers are picking up the correct declaration
-// of the internal type `ctype_base::mask'.
-int mask ();
-
-#include <locale>
-
-// 2: Sanity check ctype_base::mask bitmask requirements
-void
-test01()
-{
- using namespace std;
-
- ctype_base::mask m01;
- ctype_base::mask m02;
- ctype_base::mask res;
-
- m01 = ctype_base::space;
- m02 = ctype_base::xdigit;
-
- res = m01 & m02;
- res = m01 | m02;
- res = m01 ^ m02;
- res = ~m01;
- m01 &= m02;
- m01 |= m02;
- m01 ^= m02;
-}
-
-int main()
-{
- test01();
- return 0;
-}
--- /dev/null
+// { dg-do compile }
+// 1999-08-24 bkoz
+
+// Copyright (C) 1999, 2000, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.1 The ctype category
+
+// 1: Test that the locale headers are picking up the correct declaration
+// of the internal type `ctype_base::mask'.
+int mask ();
+
+#include <locale>
+
+// 2: Sanity check ctype_base::mask bitmask requirements
+void
+test01()
+{
+ using namespace std;
+
+ ctype_base::mask m01;
+ ctype_base::mask m02;
+ ctype_base::mask res;
+
+ m01 = ctype_base::space;
+ m02 = ctype_base::xdigit;
+
+ res = m01 & m02;
+ res = m01 | m02;
+ res = m01 ^ m02;
+ res = ~m01;
+ m01 &= m02;
+ m01 |= m02;
+ m01 ^= m02;
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <clocale>
+
+namespace gnu
+{
+ using std::localeconv;
+ using std::setlocale;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <clocale>
+
+namespace gnu
+{
+#ifndef NULL
+ #error "NULL_must_be_a_macro"
+#endif
+
+#ifndef LC_ALL
+ #error "LC_ALL_must_be_a_macro"
+#endif
+
+#ifndef LC_COLLATE
+ #error "LC_COLLATE_must_be_a_macro"
+#endif
+
+#ifndef LC_CTYPE
+ #error "LC_CTYPE_must_be_a_macro"
+#endif
+
+#ifndef LC_MONETARY
+ #error "LC_MONETARY_must_be_a_macro"
+#endif
+
+#ifndef LC_NUMERIC
+ #error "LC_NUMERIC_must_be_a_macro"
+#endif
+
+#ifndef LC_TIME
+ #error "LC_TIME_must_be_a_macro"
+#endif
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <clocale>
+
+namespace gnu
+{
+ std::lconv l;
+}
--- /dev/null
+// { dg-do compile { xfail *-*-* } }
+// { dg-excess-errors "" }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <locale>
+
+namespace std {
+ // lib.locale, locale:
+ class locale;
+ template <class Facet> const Facet& use_facet(const locale&);
+ template <class Facet> bool has_facet(const locale&) throw();
+
+ // lib.locale.convenience, convenience interfaces:
+ template <class charT> bool isspace (charT c, const locale& loc);
+ template <class charT> bool isprint (charT c, const locale& loc);
+ template <class charT> bool iscntrl (charT c, const locale& loc);
+ template <class charT> bool isupper (charT c, const locale& loc);
+ template <class charT> bool islower (charT c, const locale& loc);
+ template <class charT> bool isalpha (charT c, const locale& loc);
+ template <class charT> bool isdigit (charT c, const locale& loc);
+ template <class charT> bool ispunct (charT c, const locale& loc);
+ template <class charT> bool isxdigit(charT c, const locale& loc);
+ template <class charT> bool isalnum (charT c, const locale& loc);
+ template <class charT> bool isgraph (charT c, const locale& loc);
+ template <class charT> charT toupper(charT c, const locale& loc);
+ template <class charT> charT tolower(charT c, const locale& loc);
+
+ // lib.category.ctype and lib.facet.ctype.special, ctype:
+ class ctype_base;
+ template <class charT> class ctype;
+ template <> class ctype<char>; // specialization
+ template <class charT> class ctype_byname;
+ template <> class ctype_byname<char>; // specialization
+ class codecvt_base;
+ template <class internT, class externT, class stateT>
+ class codecvt;
+ template <class internT, class externT, class stateT>
+ class codecvt_byname;
+
+ // lib.category.numeric and lib.facet.numpunct, numeric:
+ template <class charT, class InputIterator> class num_get;
+ template <class charT, class OutputIterator> class num_put;
+ template <class charT> class numpunct;
+ template <class charT> class numpunct_byname;
+
+ // lib.category.collate, collation:
+ template <class charT> class collate;
+ template <class charT> class collate_byname;
+
+ // lib.category.time, date and time:
+ class time_base;
+ template <class charT, class InputIterator> class time_get;
+ template <class charT, class InputIterator> class time_get_byname;
+ template <class charT, class OutputIterator> class time_put;
+ template <class charT, class OutputIterator> class time_put_byname;
+
+ // lib.category.monetary, money:
+ class money_base;
+ template <class charT, class InputIterator> class money_get;
+ template <class charT, class OutputIterator> class money_put;
+ template <class charT, bool Intl> class moneypunct;
+ template <class charT, bool Intl> class moneypunct_byname;
+
+ // lib.category.messages, message retrieval:
+ class messages_base;
+ template <class charT> class messages;
+ template <class charT> class messages_byname;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <locale>
+
+namespace gnu
+{
+ typedef std::locale t1;
+ typedef std::ctype_base t2;
+ typedef std::codecvt_base t3;
+ typedef std::time_base t4;
+ typedef std::money_base t5;
+ typedef std::messages_base t6;
+}
+++ /dev/null
-// { dg-do compile }
-// 2001-07-17 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.7 The message retrieval category
-
-#include <locale>
-
-void test01()
-{
- // Check for required base class.
- typedef std::messages<char> test_type;
- typedef std::locale::facet base_type1;
- typedef std::messages_base base_type2;
- const test_type& obj = std::use_facet<test_type>(std::locale());
- const base_type1* base1 __attribute__((unused)) = &obj;
- const base_type2* base2 __attribute__((unused)) = &obj;
-
- // Check for required typedefs
- typedef test_type::char_type char_type;
- typedef test_type::string_type string_type;
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// { dg-do compile }
-// 2001-07-17 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.7 The message retrieval category
-
-#include <locale>
-
-// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_messages: public std::messages<unsigned char>
-{ };
-
-void test02()
-{
- gnu_messages facet01;
-}
-
-int main()
-{
- test02();
- return 0;
-}
--- /dev/null
+// { dg-do compile }
+// 2001-07-17 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.7 The message retrieval category
+
+#include <locale>
+
+void test01()
+{
+ // Check for required base class.
+ typedef std::messages<char> test_type;
+ typedef std::locale::facet base_type1;
+ typedef std::messages_base base_type2;
+ const test_type& obj = std::use_facet<test_type>(std::locale());
+ const base_type1* base1 __attribute__((unused)) = &obj;
+ const base_type2* base2 __attribute__((unused)) = &obj;
+}
--- /dev/null
+// { dg-do compile }
+// 2001-07-17 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.7 The message retrieval category
+
+#include <locale>
+
+// Should be able to instantiate this for other types besides char, wchar_t
+template class std::messages<unsigned char>;
--- /dev/null
+// { dg-do compile }
+// 2001-07-17 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.7 The message retrieval category
+
+#include <locale>
+
+void test01()
+{
+ // Check for required typedefs
+ typedef std::messages<char> test_type;
+ typedef test_type::char_type char_type;
+ typedef test_type::string_type string_type;
+}
+++ /dev/null
-// { dg-do compile }
-// 2001-07-17 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.7 The message retrieval category
-
-#include <locale>
-
-void test01()
-{
- // Check for required base class.
- typedef std::messages_byname<char> test_type;
- typedef std::messages<char> base_type;
- const test_type& obj = std::use_facet<test_type>(std::locale::classic());
- const base_type* base __attribute__((unused)) = &obj;
-
- // Check for required typedefs
- typedef test_type::char_type char_type;
- typedef test_type::string_type string_type;
-}
-
-int main()
-{
- test01();
- return 0;
-}
--- /dev/null
+// { dg-do compile }
+// 2001-07-17 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.7 The message retrieval category
+
+#include <locale>
+
+void test01()
+{
+ // Check for required base class.
+ typedef std::messages_byname<char> test_type;
+ typedef std::messages<char> base_type;
+ const test_type& obj = std::use_facet<test_type>(std::locale::classic());
+ const base_type* base __attribute__((unused)) = &obj;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <locale>
+
+template class std::messages_byname<short>;
--- /dev/null
+// { dg-do compile }
+// 2001-07-17 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.7 The message retrieval category
+
+#include <locale>
+
+void test01()
+{
+ // Check for required typedefs
+ typedef std::messages_byname<char> test_type;
+ typedef test_type::char_type char_type;
+ typedef test_type::string_type string_type;
+}
+++ /dev/null
-// { dg-do compile }
-// 2001-09-12 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.6.1 Template class money_get
-
-#include <locale>
-
-void test01()
-{
- // Check for required base class.
- typedef std::money_get<char> test_type;
- typedef std::locale::facet base_type;
- const test_type& obj = std::use_facet<test_type>(std::locale());
- const base_type* base __attribute__((unused)) = &obj;
-
- // Check for required typedefs
- typedef test_type::char_type char_type;
- typedef test_type::string_type string_type;
- typedef test_type::iter_type iter_type;
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// { dg-do compile }
-// 2001-09-12 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.6.1 Template class money_get
-
-#include <locale>
-
-// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_money_get: public std::money_get<unsigned char>
-{ };
-
-void test02()
-{
- gnu_money_get facet01;
-}
-
-int main()
-{
- test02();
- return 0;
-}
+++ /dev/null
-// 2005-04-29 Paolo Carlini <pcarlini@suse.de>
-//
-// Copyright (C) 2005 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.6.1 Template class money_get
-
-// { dg-do compile }
-
-#include <locale>
-#include <testsuite_character.h>
-
-class gnu_money_get: public std::money_get<__gnu_test::pod_uint>
-{ };
-
-// libstdc++/21238
-void test01()
-{
- gnu_money_get facet01;
-}
-
-int main()
-{
- test01();
- return 0;
-}
--- /dev/null
+// 2005-04-29 Paolo Carlini <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.6.1 Template class money_get
+
+// { dg-do compile }
+
+#include <locale>
+#include <testsuite_character.h>
+
+class gnu_money_get: public std::money_get<__gnu_test::pod_uint>
+{ };
+
+// libstdc++/21238
+void test01()
+{
+ gnu_money_get facet01;
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// { dg-do compile }
+// 2001-09-12 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.6.1 Template class money_get
+
+#include <locale>
+
+void test01()
+{
+ // Check for required base class.
+ typedef std::money_get<char> test_type;
+ typedef std::locale::facet base_type;
+ const test_type& obj = std::use_facet<test_type>(std::locale());
+ const base_type* base __attribute__((unused)) = &obj;
+}
--- /dev/null
+// { dg-do compile }
+// 2001-09-12 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.6.1 Template class money_get
+
+#include <locale>
+
+// Should be able to instantiate this for other types besides char, wchar_t
+template class std::money_get<unsigned char>;
--- /dev/null
+// { dg-do compile }
+// 2001-09-12 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.6.1 Template class money_get
+
+#include <locale>
+
+void test01()
+{
+ // Check for required typedefs
+ typedef std::money_get<char> test_type;
+ typedef test_type::char_type char_type;
+ typedef test_type::string_type string_type;
+ typedef test_type::iter_type iter_type;
+}
+++ /dev/null
-// { dg-do compile }
-// 2001-08-27 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.6.2 Template class money_put
-
-#include <locale>
-
-void test01()
-{
- // Check for required base class.
- typedef std::money_put<char> test_type;
- typedef std::locale::facet base_type;
- const test_type& obj = std::use_facet<test_type>(std::locale());
- const base_type* base __attribute__((unused)) = &obj;
-
- // Check for required typedefs
- typedef test_type::char_type char_type;
- typedef test_type::string_type string_type;
- typedef test_type::iter_type iter_type;
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// { dg-do compile }
-// 2001-08-27 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.6.2 Template class money_put
-
-#include <locale>
-
-// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_money_put: public std::money_put<unsigned char>
-{ };
-
-void test02()
-{
- gnu_money_put facet01;
-}
-
-int main()
-{
- test02();
- return 0;
-}
+++ /dev/null
-// 2005-04-29 Paolo Carlini <pcarlini@suse.de>
-//
-// Copyright (C) 2005 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.6.2 Template class money_put
-
-// { dg-do compile }
-
-#include <locale>
-#include <testsuite_character.h>
-
-class gnu_money_put: public std::money_put<__gnu_test::pod_uint>
-{ };
-
-// libstdc++/21238
-void test01()
-{
- gnu_money_put facet01;
-}
-
-int main()
-{
- test01();
- return 0;
-}
--- /dev/null
+// 2005-04-29 Paolo Carlini <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.6.2 Template class money_put
+
+// { dg-do compile }
+
+#include <locale>
+#include <testsuite_character.h>
+
+class gnu_money_put: public std::money_put<__gnu_test::pod_uint>
+{ };
+
+// libstdc++/21238
+void test01()
+{
+ gnu_money_put facet01;
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// { dg-do compile }
+// 2001-08-27 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.6.2 Template class money_put
+
+#include <locale>
+
+void test01()
+{
+ // Check for required base class.
+ typedef std::money_put<char> test_type;
+ typedef std::locale::facet base_type;
+ const test_type& obj = std::use_facet<test_type>(std::locale());
+ const base_type* base __attribute__((unused)) = &obj;
+}
--- /dev/null
+// { dg-do compile }
+// 2001-08-27 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.6.2 Template class money_put
+
+#include <locale>
+
+// Should be able to instantiate this for other types besides char, wchar_t
+template class std::money_put<unsigned char>;
--- /dev/null
+// { dg-do compile }
+// 2001-08-27 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.6.2 Template class money_put
+
+#include <locale>
+
+void test01()
+{
+ // Check for required typedefs
+ typedef std::money_put<char> test_type;
+ typedef test_type::char_type char_type;
+ typedef test_type::string_type string_type;
+ typedef test_type::iter_type iter_type;
+}
+++ /dev/null
-// { dg-do compile }
-// 2001-08-23 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.6.3 Template class moneypunct
-
-#include <locale>
-#include <testsuite_hooks.h>
-
-void test01()
-{
- // Check for required base class.
- typedef std::moneypunct<char, true> test_type;
- typedef std::locale::facet base_type;
- const test_type& obj = std::use_facet<test_type>(std::locale());
- const base_type* base __attribute__((unused)) = &obj;
-
- // Check for required typedefs
- typedef test_type::char_type char_type;
- typedef test_type::string_type string_type;
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// { dg-do compile }
-// 2001-08-23 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.6.3 Template class moneypunct
-
-#include <locale>
-#include <testsuite_hooks.h>
-
-void test02()
-{
- // Check for required base class.
- typedef std::moneypunct<char, false> test_type;
- typedef std::locale::facet base_type;
- const test_type& obj = std::use_facet<test_type>(std::locale());
- const base_type* base __attribute__((unused)) = &obj;
-
- // Check for required typedefs
- typedef test_type::char_type char_type;
- typedef test_type::string_type string_type;
-}
-
-int main()
-{
- test02();
- return 0;
-}
+++ /dev/null
-// 2001-08-23 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.6.3 Template class moneypunct
-
-// { dg-do compile }
-
-#include <locale>
-#include <testsuite_hooks.h>
-
-// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_moneypunct_t: public std::moneypunct<unsigned char, true>
-{ };
-
-class gnu_moneypunct_f: public std::moneypunct<unsigned char, false>
-{ };
-
-void test03()
-{
- gnu_moneypunct_t facet01;
- gnu_moneypunct_f facet02;
- VERIFY (facet01.intl == true);
- VERIFY (facet02.intl == false);
-}
-
-int main()
-{
- test03();
- return 0;
-}
--- /dev/null
+// { dg-do compile }
+// 2001-08-23 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.6.3 Template class moneypunct
+
+#include <locale>
+#include <testsuite_hooks.h>
+
+void test02()
+{
+ // Check for required base class.
+ typedef std::moneypunct<char, false> test_type;
+ typedef std::locale::facet base_type;
+ const test_type& obj = std::use_facet<test_type>(std::locale());
+ const base_type* base __attribute__((unused)) = &obj;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <locale>
+
+template class std::moneypunct<short, false>;
--- /dev/null
+// 2001-08-23 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.6.3 Template class moneypunct
+
+#include <locale>
+#include <testsuite_hooks.h>
+
+// Should be able to instantiate this for other types besides char, wchar_t
+class gnu_moneypunct_f: public std::moneypunct<char, false>
+{ };
+
+void test03()
+{
+ bool test __attribute__((unused)) = true;
+ gnu_moneypunct_f facet02;
+ VERIFY (facet02.intl == false);
+}
+
+int main()
+{
+ test03();
+ return 0;
+}
--- /dev/null
+// { dg-do compile }
+// 2001-08-23 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.6.3 Template class moneypunct
+
+#include <locale>
+#include <testsuite_hooks.h>
+
+void test02()
+{
+ // Check for required typedefs
+ typedef std::moneypunct<char, false> test_type;
+ typedef test_type::char_type char_type;
+ typedef test_type::string_type string_type;
+}
--- /dev/null
+// { dg-do compile }
+// 2001-08-23 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.6.3 Template class moneypunct
+
+#include <locale>
+
+void test01()
+{
+ // Check for required base class.
+ typedef std::moneypunct<char, true> test_type;
+ typedef std::locale::facet base_type;
+ const test_type& obj = std::use_facet<test_type>(std::locale());
+ const base_type* base __attribute__((unused)) = &obj;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <locale>
+
+template class std::moneypunct<short, true>;
--- /dev/null
+// 2001-08-23 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.6.3 Template class moneypunct
+
+#include <locale>
+#include <testsuite_hooks.h>
+
+// Should be able to instantiate this for other types besides char, wchar_t
+class gnu_moneypunct_t: public std::moneypunct<char, true>
+{ };
+
+void test03()
+{
+ bool test __attribute__((unused)) = true;
+ gnu_moneypunct_t facet01;
+ VERIFY (facet01.intl == true);
+}
+
+int main()
+{
+ test03();
+ return 0;
+}
--- /dev/null
+// { dg-do compile }
+// 2001-08-23 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.6.3 Template class moneypunct
+
+#include <locale>
+#include <testsuite_hooks.h>
+
+void test01()
+{
+ // Check for required typedefs
+ typedef std::moneypunct<char, true> test_type;
+ typedef test_type::char_type char_type;
+ typedef test_type::string_type string_type;
+}
+++ /dev/null
-// { dg-do compile }
-// 2001-08-23 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.6.3 Template class moneypunct
-
-#include <locale>
-#include <testsuite_hooks.h>
-
-void test01()
-{
- // Check for required base class.
- typedef std::moneypunct_byname<char, true> test_type;
- typedef std::moneypunct<char, true> base_type;
- const test_type& obj = std::use_facet<test_type>(std::locale());
- const base_type* base __attribute__((unused)) = &obj;
-
- // Check for required typedefs
- typedef test_type::char_type char_type;
- typedef test_type::string_type string_type;
-}
-
-int main()
-{
- test01();
- return 0;
-}
--- /dev/null
+// { dg-do compile }
+// 2001-08-23 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.6.3 Template class moneypunct
+
+#include <locale>
+#include <testsuite_hooks.h>
+
+void test01()
+{
+ // Check for required base class.
+ typedef std::moneypunct_byname<char, true> test_type;
+ typedef std::moneypunct<char, true> base_type;
+ const test_type& obj = std::use_facet<test_type>(std::locale());
+ const base_type* base __attribute__((unused)) = &obj;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <locale>
+
+template class std::moneypunct_byname<short, true>;
--- /dev/null
+// { dg-do compile }
+// 2001-08-23 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.6.3 Template class moneypunct
+
+#include <locale>
+
+void test01()
+{
+ // Check for required typedefs
+ typedef std::moneypunct_byname<char, true> test_type;
+ typedef test_type::char_type char_type;
+ typedef test_type::string_type string_type;
+}
+++ /dev/null
-// { dg-do compile }
-// 2001-11-21 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.2.1 Template class num_get
-
-#include <locale>
-
-void test01()
-{
- // Check for required base class.
- typedef std::num_get<char> test_type;
- typedef std::locale::facet base_type;
- const test_type& obj = std::use_facet<test_type>(std::locale());
- const base_type* base __attribute__((unused)) = &obj;
-
- // Check for required typedefs
- typedef test_type::char_type char_type;
- typedef test_type::iter_type iter_type;
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// { dg-do compile }
-// 2001-11-21 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.2.1 Template class num_get
-
-#include <locale>
-
-// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_num_get: public std::num_get<unsigned char>
-{ };
-
-void test02()
-{
- gnu_num_get facet01;
-}
-
-int main()
-{
- test02();
- return 0;
-}
+++ /dev/null
-// 2005-04-29 Paolo Carlini <pcarlini@suse.de>
-//
-// Copyright (C) 2005 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.2.1 Template class num_get
-
-// { dg-do compile }
-
-#include <locale>
-#include <testsuite_character.h>
-
-class gnu_num_get: public std::num_get<__gnu_test::pod_uint>
-{ };
-
-// libstdc++/21238
-void test01()
-{
- gnu_num_get facet01;
-}
-
-int main()
-{
- test01();
- return 0;
-}
--- /dev/null
+// 2005-04-29 Paolo Carlini <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.2.1 Template class num_get
+
+// { dg-do compile }
+
+#include <locale>
+#include <testsuite_character.h>
+
+class gnu_num_get: public std::num_get<__gnu_test::pod_uint>
+{ };
+
+// libstdc++/21238
+void test01()
+{
+ gnu_num_get facet01;
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// { dg-do compile }
+// 2001-11-21 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.2.1 Template class num_get
+
+#include <locale>
+
+void test01()
+{
+ // Check for required base class.
+ typedef std::num_get<char> test_type;
+ typedef std::locale::facet base_type;
+ const test_type& obj = std::use_facet<test_type>(std::locale());
+ const base_type* base __attribute__((unused)) = &obj;
+}
--- /dev/null
+// { dg-do compile }
+// 2001-11-21 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.2.1 Template class num_get
+
+#include <locale>
+
+// Should be able to instantiate this for other types besides char, wchar_t
+template class std::num_get<unsigned char> ;
--- /dev/null
+// { dg-do compile }
+// 2001-11-21 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.2.1 Template class num_get
+
+#include <locale>
+
+void test01()
+{
+ // Check for required typedefs
+ typedef std::num_get<char> test_type;
+ typedef test_type::char_type char_type;
+ typedef test_type::iter_type iter_type;
+}
+++ /dev/null
-// { dg-do compile }
-// 2001-11-19 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.2.2 Template class num_put
-
-#include <locale>
-
-void test01()
-{
- // Check for required base class.
- typedef std::num_put<char> test_type;
- typedef std::locale::facet base_type;
- const test_type& obj = std::use_facet<test_type>(std::locale());
- const base_type* base __attribute__((unused)) = &obj;
-
- // Check for required typedefs
- typedef test_type::char_type char_type;
- typedef test_type::iter_type iter_type;
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// { dg-do compile }
-// 2001-11-19 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.2.2 Template class num_put
-
-#include <locale>
-
-// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_num_put: public std::num_put<unsigned char>
-{ };
-
-void test02()
-{
- gnu_num_put facet01;
-}
-
-int main()
-{
- test02();
- return 0;
-}
+++ /dev/null
-// 2005-04-29 Paolo Carlini <pcarlini@suse.de>
-//
-// Copyright (C) 2005 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.2.2 Template class num_put
-
-// { dg-do compile }
-
-#include <locale>
-#include <testsuite_character.h>
-
-class gnu_num_put: public std::num_put<__gnu_test::pod_uint>
-{ };
-
-// libstdc++/21238
-void test01()
-{
- gnu_num_put facet01;
-}
-
-int main()
-{
- test01();
- return 0;
-}
--- /dev/null
+// 2005-04-29 Paolo Carlini <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.2.2 Template class num_put
+
+// { dg-do compile }
+
+#include <locale>
+#include <testsuite_character.h>
+
+class gnu_num_put: public std::num_put<__gnu_test::pod_uint>
+{ };
+
+// libstdc++/21238
+void test01()
+{
+ gnu_num_put facet01;
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// { dg-do compile }
+// 2001-11-19 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.2.2 Template class num_put
+
+#include <locale>
+
+void test01()
+{
+ // Check for required base class.
+ typedef std::num_put<char> test_type;
+ typedef std::locale::facet base_type;
+ const test_type& obj = std::use_facet<test_type>(std::locale());
+ const base_type* base __attribute__((unused)) = &obj;
+}
--- /dev/null
+// { dg-do compile }
+// 2001-11-19 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.2.2 Template class num_put
+
+#include <locale>
+
+// Should be able to instantiate this for other types besides char, wchar_t
+template class std::num_put<unsigned char>;
--- /dev/null
+// { dg-do compile }
+// 2001-11-19 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.2.2 Template class num_put
+
+#include <locale>
+
+void test01()
+{
+ // Check for required typedefs
+ typedef std::num_put<char> test_type;
+ typedef test_type::char_type char_type;
+ typedef test_type::iter_type iter_type;
+}
+++ /dev/null
-// { dg-do compile }
-// 2001-01-23 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.3 The numeric punctuation facet
-
-#include <locale>
-
-void test01()
-{
- // Check for required base class.
- typedef std::numpunct<char> test_type;
- typedef std::locale::facet base_type;
- const test_type& obj = std::use_facet<test_type>(std::locale());
- const base_type* base __attribute__((unused)) = &obj;
-
- // Check for required typedefs
- typedef test_type::char_type char_type;
- typedef test_type::string_type string_type;
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// { dg-do compile }
-// 2001-01-23 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.3 The numeric punctuation facet
-
-#include <locale>
-
-// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_numpunct: public std::numpunct<unsigned char>
-{ };
-
-void test02()
-{
- gnu_numpunct facet01;
-}
-
-int main()
-{
- test02();
- return 0;
-}
--- /dev/null
+// { dg-do compile }
+// 2001-01-23 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.3 The numeric punctuation facet
+
+#include <locale>
+
+void test01()
+{
+ // Check for required base class.
+ typedef std::numpunct<char> test_type;
+ typedef std::locale::facet base_type;
+ const test_type& obj = std::use_facet<test_type>(std::locale());
+ const base_type* base __attribute__((unused)) = &obj;
+}
--- /dev/null
+// { dg-do compile }
+// 2001-01-23 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.3 The numeric punctuation facet
+
+#include <locale>
+
+// Should be able to instantiate this for other types besides char, wchar_t
+template class std::numpunct<unsigned char>;
--- /dev/null
+// { dg-do compile }
+// 2001-01-23 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.3 The numeric punctuation facet
+
+#include <locale>
+
+void test01()
+{
+ // Check for required typedefs
+ typedef std::numpunct<char> test_type;
+ typedef test_type::char_type char_type;
+ typedef test_type::string_type string_type;
+}
+++ /dev/null
-// { dg-do compile }
-// 2001-01-23 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.3 The numeric punctuation facet
-
-#include <locale>
-
-void test01()
-{
- // Check for required base class.
- typedef std::numpunct_byname<char> test_type;
- typedef std::numpunct<char> base_type;
- const test_type& obj = std::use_facet<test_type>(std::locale());
- const base_type* base __attribute__((unused)) = &obj;
-
- // Check for required typedefs
- typedef test_type::char_type char_type;
- typedef test_type::string_type string_type;
-}
-
-int main()
-{
- test01();
- return 0;
-}
--- /dev/null
+// { dg-do compile }
+// 2001-01-23 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.3 The numeric punctuation facet
+
+#include <locale>
+
+void test01()
+{
+ // Check for required base class.
+ typedef std::numpunct_byname<char> test_type;
+ typedef std::numpunct<char> base_type;
+ const test_type& obj = std::use_facet<test_type>(std::locale());
+ const base_type* base __attribute__((unused)) = &obj;
+}
--- /dev/null
+// { dg-do compile }
+// 2001-01-23 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.3 The numeric punctuation facet
+
+#include <locale>
+
+// Should be able to instantiate this for other types besides char, wchar_t
+template class std::numpunct_byname<unsigned char>;
--- /dev/null
+// { dg-do compile }
+// 2001-01-23 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.3 The numeric punctuation facet
+
+#include <locale>
+
+void test01()
+{
+ // Check for required typedefs
+ typedef std::numpunct_byname<char> test_type;
+ typedef test_type::char_type char_type;
+ typedef test_type::string_type string_type;
+}
+++ /dev/null
-// { dg-do compile }
-// 2001-09-21 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.5.1 Template class time_get
-
-#include <locale>
-
-void test01()
-{
- // Check for required base class.
- typedef std::time_get<char> test_type;
- typedef std::locale::facet base_type1;
- typedef std::time_base base_type2;
- const test_type& obj = std::use_facet<test_type>(std::locale());
- const base_type1* base1 __attribute__((unused)) = &obj;
- const base_type2* base2 __attribute__((unused)) = &obj;
-
- // Check for required typedefs
- typedef test_type::char_type char_type;
- typedef test_type::iter_type iter_type;
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// { dg-do compile }
-// 2001-09-21 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.5.1 Template class time_get
-
-#include <locale>
-
-// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_time_get: public std::time_get<unsigned char>
-{ };
-
-void test02()
-{
- gnu_time_get facet01;
-}
-
-int main()
-{
- test02();
- return 0;
-}
--- /dev/null
+// { dg-do compile }
+// 2001-09-21 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.5.1 Template class time_get
+
+#include <locale>
+
+void test01()
+{
+ // Check for required base class.
+ typedef std::time_get<char> test_type;
+ typedef std::locale::facet base_type1;
+ typedef std::time_base base_type2;
+ const test_type& obj = std::use_facet<test_type>(std::locale());
+ const base_type1* base1 __attribute__((unused)) = &obj;
+ const base_type2* base2 __attribute__((unused)) = &obj;
+}
--- /dev/null
+// { dg-do compile }
+// 2001-09-21 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.5.1 Template class time_get
+
+#include <locale>
+
+// Should be able to instantiate this for other types besides char, wchar_t
+template class std::time_get<unsigned char>;
--- /dev/null
+// { dg-do compile }
+// 2001-09-21 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.5.1 Template class time_get
+
+#include <locale>
+
+void test01()
+{
+ // Check for required typedefs
+ typedef std::time_get<char> test_type;
+ typedef test_type::char_type char_type;
+ typedef test_type::iter_type iter_type;
+}
+++ /dev/null
-// { dg-do compile }
-// 2001-09-17 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.5.3 Template class time_put
-
-#include <locale>
-
-void test01()
-{
- // Check for required base class.
- typedef std::time_put<char> test_type;
- typedef std::locale::facet base_type;
- const test_type& obj = std::use_facet<test_type>(std::locale());
- const base_type* base __attribute__((unused)) = &obj;
-
- // Check for required typedefs
- typedef test_type::char_type char_type;
- typedef test_type::iter_type iter_type;
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// { dg-do compile }
-// 2001-09-17 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 22.2.5.3 Template class time_put
-
-#include <locale>
-
-// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_time_put: public std::time_put<unsigned char>
-{ };
-
-void test02()
-{
- gnu_time_put facet01;
-}
-
-int main()
-{
- test02();
- return 0;
-}
--- /dev/null
+// { dg-do compile }
+// 2001-09-17 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.5.3 Template class time_put
+
+#include <locale>
+
+void test01()
+{
+ // Check for required base class.
+ typedef std::time_put<char> test_type;
+ typedef std::locale::facet base_type;
+ const test_type& obj = std::use_facet<test_type>(std::locale());
+ const base_type* base __attribute__((unused)) = &obj;
+}
--- /dev/null
+// { dg-do compile }
+// 2001-09-17 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.5.3 Template class time_put
+
+#include <locale>
+
+// Should be able to instantiate this for other types besides char, wchar_t
+template class std::time_put<unsigned char>;
--- /dev/null
+// { dg-do compile }
+// 2001-09-17 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.5.3 Template class time_put
+
+#include <locale>
+
+void test01()
+{
+ // Check for required typedefs
+ typedef std::time_put<char> test_type;
+ typedef test_type::char_type char_type;
+ typedef test_type::iter_type iter_type;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <bitset>
+
+template class std::bitset<10>;
+++ /dev/null
-// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests user specialization of library containers
-
-#include <deque>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-struct user_type {};
-
-namespace std
-{
- template<typename Allocator>
- class deque<user_type, Allocator> {};
-}
+++ /dev/null
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <deque>
-
-// { dg-do compile }
-
-template class std::deque<int>;
+++ /dev/null
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <deque>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-template class std::deque<__gnu_test::NonDefaultConstructible>;
+++ /dev/null
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <deque>
-
-// { dg-do compile }
-
-// libstdc++/21770
-template class std::deque<int, std::allocator<char> >;
--- /dev/null
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <deque>
+
+// { dg-do compile }
+
+template class std::deque<int>;
--- /dev/null
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <deque>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+template class std::deque<__gnu_test::NonDefaultConstructible>;
--- /dev/null
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <deque>
+
+// { dg-do compile }
+
+// libstdc++/21770
+template class std::deque<int, std::allocator<char> >;
--- /dev/null
+// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests user specialization of library containers
+
+#include <deque>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+struct user_type {};
+
+namespace std
+{
+ template<typename Allocator>
+ class deque<user_type, Allocator> {};
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <bitset>
+
+namespace std {
+ template <size_t N> class bitset;
+
+ // 23.3.5.3 bitset operations:
+ template <size_t N>
+ bitset<N> operator&(const bitset<N>&, const bitset<N>&);
+
+ template <size_t N>
+ bitset<N> operator|(const bitset<N>&, const bitset<N>&);
+
+ template <size_t N>
+ bitset<N> operator^(const bitset<N>&, const bitset<N>&);
+
+ template <class charT, class traits, size_t N>
+ basic_istream<charT, traits>&
+ operator>>(basic_istream<charT, traits>& is, bitset<N>& x);
+
+ template <class charT, class traits, size_t N>
+ basic_ostream<charT, traits>&
+ operator<<(basic_ostream<charT, traits>& os, const bitset<N>& x);
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <deque>
+
+namespace std {
+ template <class T, class Allocator> class deque;
+
+ template <class T, class Allocator>
+ bool operator== (const deque<T,Allocator>& x, const deque<T,Allocator>& y);
+
+ template <class T, class Allocator>
+ bool operator< (const deque<T,Allocator>& x, const deque<T,Allocator>& y);
+
+ template <class T, class Allocator>
+ bool operator!= (const deque<T,Allocator>& x, const deque<T,Allocator>& y);
+
+ template <class T, class Allocator>
+ bool operator> (const deque<T,Allocator>& x, const deque<T,Allocator>& y);
+
+ template <class T, class Allocator>
+ bool operator>= (const deque<T,Allocator>& x, const deque<T,Allocator>& y);
+
+ template <class T, class Allocator>
+ bool operator<= (const deque<T,Allocator>& x, const deque<T,Allocator>& y);
+
+ template <class T, class Allocator>
+ void swap(deque<T,Allocator>& x, deque<T,Allocator>& y);
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <list>
+
+namespace std {
+ template <class T, class Allocator> class list;
+
+ template <class T, class Allocator>
+ bool operator==(const list<T,Allocator>& x, const list<T,Allocator>&);
+
+ template <class T, class Allocator>
+ bool operator< (const list<T,Allocator>& x, const list<T,Allocator>&);
+
+ template <class T, class Allocator>
+ bool operator!=(const list<T,Allocator>& x, const list<T,Allocator>&);
+
+ template <class T, class Allocator>
+ bool operator> (const list<T,Allocator>& x, const list<T,Allocator>&);
+
+ template <class T, class Allocator>
+ bool operator>=(const list<T,Allocator>& x, const list<T,Allocator>&);
+
+ template <class T, class Allocator>
+ bool operator<=(const list<T,Allocator>& x, const list<T,Allocator>&);
+
+ template <class T, class Allocator>
+ void swap(list<T,Allocator>& x, list<T,Allocator>& y);
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <map>
+
+namespace std {
+ template <class Key, class T, class Compare, class Allocator>
+ class map;
+ template <class Key, class T, class Compare, class Allocator>
+ bool operator==(const map<Key,T,Compare,Allocator>& x,
+ const map<Key,T,Compare,Allocator>& y);
+ template <class Key, class T, class Compare, class Allocator>
+ bool operator< (const map<Key,T,Compare,Allocator>& x,
+ const map<Key,T,Compare,Allocator>& y);
+ template <class Key, class T, class Compare, class Allocator>
+ bool operator!=(const map<Key,T,Compare,Allocator>& x,
+ const map<Key,T,Compare,Allocator>& y);
+ template <class Key, class T, class Compare, class Allocator>
+ bool operator> (const map<Key,T,Compare,Allocator>& x,
+ const map<Key,T,Compare,Allocator>& y);
+ template <class Key, class T, class Compare, class Allocator>
+ bool operator>=(const map<Key,T,Compare,Allocator>& x,
+ const map<Key,T,Compare,Allocator>& y);
+ template <class Key, class T, class Compare, class Allocator>
+ bool operator<=(const map<Key,T,Compare,Allocator>& x,
+ const map<Key,T,Compare,Allocator>& y);
+ template <class Key, class T, class Compare, class Allocator>
+ void swap(map<Key,T,Compare,Allocator>& x,
+ map<Key,T,Compare,Allocator>& y);
+
+ template <class Key, class T, class Compare, class Allocator>
+ class multimap;
+ template <class Key, class T, class Compare, class Allocator>
+ bool operator==(const multimap<Key,T,Compare,Allocator>& x,
+ const multimap<Key,T,Compare,Allocator>& y);
+ template <class Key, class T, class Compare, class Allocator>
+ bool operator< (const multimap<Key,T,Compare,Allocator>& x,
+ const multimap<Key,T,Compare,Allocator>& y);
+ template <class Key, class T, class Compare, class Allocator>
+ bool operator!=(const multimap<Key,T,Compare,Allocator>& x,
+ const multimap<Key,T,Compare,Allocator>& y);
+ template <class Key, class T, class Compare, class Allocator>
+ bool operator> (const multimap<Key,T,Compare,Allocator>& x,
+ const multimap<Key,T,Compare,Allocator>& y);
+ template <class Key, class T, class Compare, class Allocator>
+ bool operator>=(const multimap<Key,T,Compare,Allocator>& x,
+ const multimap<Key,T,Compare,Allocator>& y);
+ template <class Key, class T, class Compare, class Allocator>
+ bool operator<=(const multimap<Key,T,Compare,Allocator>& x,
+ const multimap<Key,T,Compare,Allocator>& y);
+ template <class Key, class T, class Compare, class Allocator>
+ void swap(multimap<Key,T,Compare,Allocator>& x,
+ multimap<Key,T,Compare,Allocator>& y);
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <queue>
+
+namespace std {
+ template <class T, class Container> class queue;
+ template <class T, class Container>
+ bool operator==(const queue<T, Container>& x,
+ const queue<T, Container>& y);
+
+ template <class T, class Container>
+ bool operator< (const queue<T, Container>& x,
+ const queue<T, Container>& y);
+
+ template <class T, class Container>
+ bool operator!=(const queue<T, Container>& x,
+ const queue<T, Container>& y);
+
+ template <class T, class Container>
+ bool operator> (const queue<T, Container>& x,
+ const queue<T, Container>& y);
+
+ template <class T, class Container>
+ bool operator>=(const queue<T, Container>& x,
+ const queue<T, Container>& y);
+
+ template <class T, class Container>
+ bool operator<=(const queue<T, Container>& x,
+ const queue<T, Container>& y);
+
+ template <class T, class Container, class Compare>
+ class priority_queue;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <set>
+
+namespace std {
+ template <class Key, class Compare, class Allocator>
+ class set;
+
+ template <class Key, class Compare, class Allocator>
+ bool operator==(const set<Key,Compare,Allocator>& x,
+ const set<Key,Compare,Allocator>& y);
+
+ template <class Key, class Compare, class Allocator>
+ bool operator< (const set<Key,Compare,Allocator>& x,
+ const set<Key,Compare,Allocator>& y);
+
+ template <class Key, class Compare, class Allocator>
+ bool operator!=(const set<Key,Compare,Allocator>& x,
+ const set<Key,Compare,Allocator>& y);
+
+ template <class Key, class Compare, class Allocator>
+ bool operator> (const set<Key,Compare,Allocator>& x,
+ const set<Key,Compare,Allocator>& y);
+
+ template <class Key, class Compare, class Allocator>
+ bool operator>=(const set<Key,Compare,Allocator>& x,
+ const set<Key,Compare,Allocator>& y);
+
+ template <class Key, class Compare, class Allocator>
+ bool operator<=(const set<Key,Compare,Allocator>& x,
+ const set<Key,Compare,Allocator>& y);
+
+ template <class Key, class Compare, class Allocator>
+ void swap(set<Key,Compare,Allocator>& x,
+ set<Key,Compare,Allocator>& y);
+
+ template <class Key, class Compare, class Allocator>
+ class multiset;
+
+ template <class Key, class Compare, class Allocator>
+ bool operator==(const multiset<Key,Compare,Allocator>& x,
+ const multiset<Key,Compare,Allocator>& y);
+
+ template <class Key, class Compare, class Allocator>
+ bool operator< (const multiset<Key,Compare,Allocator>& x,
+ const multiset<Key,Compare,Allocator>& y);
+
+ template <class Key, class Compare, class Allocator>
+ bool operator!=(const multiset<Key,Compare,Allocator>& x,
+ const multiset<Key,Compare,Allocator>& y);
+
+ template <class Key, class Compare, class Allocator>
+ bool operator> (const multiset<Key,Compare,Allocator>& x,
+ const multiset<Key,Compare,Allocator>& y);
+
+ template <class Key, class Compare, class Allocator>
+ bool operator>=(const multiset<Key,Compare,Allocator>& x,
+ const multiset<Key,Compare,Allocator>& y);
+
+ template <class Key, class Compare, class Allocator>
+ bool operator<=(const multiset<Key,Compare,Allocator>& x,
+ const multiset<Key,Compare,Allocator>& y);
+
+ template <class Key, class Compare, class Allocator>
+ void swap(multiset<Key,Compare,Allocator>& x,
+ multiset<Key,Compare,Allocator>& y);
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <stack>
+
+namespace std {
+ template <class T, class Container> class stack;
+
+ template <class T, class Container>
+ bool operator==(const stack<T, Container>& x,
+ const stack<T, Container>& y);
+
+ template <class T, class Container>
+ bool operator< (const stack<T, Container>& x,
+ const stack<T, Container>& y);
+
+ template <class T, class Container>
+ bool operator!=(const stack<T, Container>& x,
+ const stack<T, Container>& y);
+
+ template <class T, class Container>
+ bool operator> (const stack<T, Container>& x,
+ const stack<T, Container>& y);
+
+ template <class T, class Container>
+ bool operator>=(const stack<T, Container>& x,
+ const stack<T, Container>& y);
+
+ template <class T, class Container>
+ bool operator<=(const stack<T, Container>& x,
+ const stack<T, Container>& y);
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <vector>
+
+namespace std {
+ template <class T, class Allocator> class vector;
+
+ template <class T, class Allocator>
+ bool operator==(const vector<T,Allocator>& x,
+ const vector<T,Allocator>& y);
+
+ template <class T, class Allocator>
+ bool operator< (const vector<T,Allocator>& x,
+ const vector<T,Allocator>& y);
+
+ template <class T, class Allocator>
+ bool operator!=(const vector<T,Allocator>& x,
+ const vector<T,Allocator>& y);
+
+ template <class T, class Allocator>
+ bool operator> (const vector<T,Allocator>& x,
+ const vector<T,Allocator>& y);
+
+ template <class T, class Allocator>
+ bool operator>=(const vector<T,Allocator>& x,
+ const vector<T,Allocator>& y);
+
+ template <class T, class Allocator>
+ bool operator<=(const vector<T,Allocator>& x,
+ const vector<T,Allocator>& y);
+
+ template <class T, class Allocator>
+ void swap(vector<T,Allocator>& x, vector<T,Allocator>& y);
+
+ template <class Allocator> class vector<bool,Allocator>;
+
+ template <class Allocator>
+ bool operator==(const vector<bool,Allocator>& x,
+ const vector<bool,Allocator>& y);
+
+ template <class Allocator>
+ bool operator< (const vector<bool,Allocator>& x,
+ const vector<bool,Allocator>& y);
+
+ template <class Allocator>
+ bool operator!=(const vector<bool,Allocator>& x,
+ const vector<bool,Allocator>& y);
+
+ template <class Allocator>
+ bool operator> (const vector<bool,Allocator>& x,
+ const vector<bool,Allocator>& y);
+
+ template <class Allocator>
+ bool operator>=(const vector<bool,Allocator>& x,
+ const vector<bool,Allocator>& y);
+
+ template <class Allocator>
+ bool operator<=(const vector<bool,Allocator>& x,
+ const vector<bool,Allocator>& y);
+
+ template <class Allocator>
+ void swap(vector<bool,Allocator>& x, vector<bool,Allocator>& y);
+}
+++ /dev/null
-// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests user specialization of library containers
-
-#include <list>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-struct user_type {};
-
-namespace std
-{
- template<typename Allocator>
- class list<user_type, Allocator> {};
-}
+++ /dev/null
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <list>
-
-// { dg-do compile }
-
-template class std::list<int>;
+++ /dev/null
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <list>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-template class std::list<__gnu_test::NonDefaultConstructible>;
+++ /dev/null
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <list>
-
-// { dg-do compile }
-
-// libstdc++/21770
-template class std::list<int, std::allocator<char> >;
--- /dev/null
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <list>
+
+// { dg-do compile }
+
+template class std::list<int>;
--- /dev/null
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <list>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+template class std::list<__gnu_test::NonDefaultConstructible>;
--- /dev/null
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <list>
+
+// { dg-do compile }
+
+// libstdc++/21770
+template class std::list<int, std::allocator<char> >;
--- /dev/null
+// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests user specialization of library containers
+
+#include <list>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+struct user_type {};
+
+namespace std
+{
+ template<typename Allocator>
+ class list<user_type, Allocator> {};
+}
+++ /dev/null
-// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests user specialization of library containers
-
-#include <map>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-struct user_type {};
-
-namespace std
-{
- template<typename Data, typename Allocator>
- class map<user_type, Data, Allocator> {};
-}
+++ /dev/null
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <map>
-
-// { dg-do compile }
-
-template class std::map<int, double>;
+++ /dev/null
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <map>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-// N.B. We cannot instantiate with T == NonDefaultConstructible
-// because of 23.3.1.2.
-template class std::map<__gnu_test::NonDefaultConstructible, double>;
+++ /dev/null
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <map>
-
-// { dg-do compile }
-
-// libstdc++/21770
-template class std::map<int, double, std::less<int>, std::allocator<char> >;
--- /dev/null
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <map>
+
+// { dg-do compile }
+
+template class std::map<int, double>;
--- /dev/null
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <map>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+// N.B. We cannot instantiate with T == NonDefaultConstructible
+// because of 23.3.1.2.
+template class std::map<__gnu_test::NonDefaultConstructible, double>;
--- /dev/null
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <map>
+
+// { dg-do compile }
+
+// libstdc++/21770
+template class std::map<int, double, std::less<int>, std::allocator<char> >;
--- /dev/null
+// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests user specialization of library containers
+
+#include <map>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+struct user_type {};
+
+namespace std
+{
+ template<typename Data, typename Allocator>
+ class map<user_type, Data, Allocator> {};
+}
+++ /dev/null
-// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests user specialization of library containers
-
-#include <map>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-struct user_type {};
-
-namespace std
-{
- template<typename Data, typename Allocator>
- class multimap<user_type, Data, Allocator> {};
-}
+++ /dev/null
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <map>
-
-// { dg-do compile }
-
-template class std::multimap<int, double>;
+++ /dev/null
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <map>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-template class std::multimap<__gnu_test::NonDefaultConstructible,
- __gnu_test::NonDefaultConstructible>;
+++ /dev/null
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <map>
-
-// { dg-do compile }
-
-// libstdc++/21770
-template class std::multimap<int, double, std::less<int>, std::allocator<char> >;
--- /dev/null
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <map>
+
+// { dg-do compile }
+
+template class std::multimap<int, double>;
--- /dev/null
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <map>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+template class std::multimap<__gnu_test::NonDefaultConstructible,
+ __gnu_test::NonDefaultConstructible>;
--- /dev/null
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <map>
+
+// { dg-do compile }
+
+// libstdc++/21770
+template class std::multimap<int, double, std::less<int>, std::allocator<char> >;
--- /dev/null
+// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests user specialization of library containers
+
+#include <map>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+struct user_type {};
+
+namespace std
+{
+ template<typename Data, typename Allocator>
+ class multimap<user_type, Data, Allocator> {};
+}
+++ /dev/null
-// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests user specialization of library containers
-
-#include <set>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-struct user_type {};
-
-namespace std
-{
- template<typename Allocator>
- class multiset<user_type, Allocator> {};
-}
+++ /dev/null
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <set>
-
-// { dg-do compile }
-
-template class std::multiset<int>;
+++ /dev/null
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <set>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-template class std::multiset<__gnu_test::NonDefaultConstructible>;
+++ /dev/null
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <set>
-
-// { dg-do compile }
-
-// libstdc++/21770
-template class std::multiset<int, std::less<int>, std::allocator<char> >;
--- /dev/null
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <set>
+
+// { dg-do compile }
+
+template class std::multiset<int>;
--- /dev/null
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <set>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+template class std::multiset<__gnu_test::NonDefaultConstructible>;
--- /dev/null
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <set>
+
+// { dg-do compile }
+
+// libstdc++/21770
+template class std::multiset<int, std::less<int>, std::allocator<char> >;
--- /dev/null
+// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests user specialization of library containers
+
+#include <set>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+struct user_type {};
+
+namespace std
+{
+ template<typename Allocator>
+ class multiset<user_type, Allocator> {};
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <queue>
+
+template class std::priority_queue<int>;
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <queue>
+
+template class std::queue<int>;
+++ /dev/null
-// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests user specialization of library containers
-
-#include <set>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-struct user_type {};
-
-namespace std
-{
- template<typename Allocator>
- class set<user_type, Allocator> {};
-}
+++ /dev/null
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <set>
-
-// { dg-do compile }
-
-template class std::set<int>;
+++ /dev/null
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <set>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-template class std::set<__gnu_test::NonDefaultConstructible>;
+++ /dev/null
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <set>
-
-// { dg-do compile }
-
-// libstdc++/21770
-template class std::set<int, std::less<int>, std::allocator<char> >;
--- /dev/null
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <set>
+
+// { dg-do compile }
+
+template class std::set<int>;
--- /dev/null
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <set>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+template class std::set<__gnu_test::NonDefaultConstructible>;
--- /dev/null
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <set>
+
+// { dg-do compile }
+
+// libstdc++/21770
+template class std::set<int, std::less<int>, std::allocator<char> >;
--- /dev/null
+// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests user specialization of library containers
+
+#include <set>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+struct user_type {};
+
+namespace std
+{
+ template<typename Allocator>
+ class set<user_type, Allocator> {};
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <stack>
+
+template class std::stack<int>;
+++ /dev/null
-// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests user specialization of library containers
-
-#include <vector>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-struct user_type {};
-
-namespace std
-{
- template<typename Allocator>
- class vector<user_type, Allocator> {};
-}
+++ /dev/null
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <vector>
-
-// { dg-do compile }
-
-template class std::vector<int>;
+++ /dev/null
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <vector>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-template class std::vector<__gnu_test::NonDefaultConstructible>;
+++ /dev/null
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <vector>
-
-// { dg-do compile }
-
-// libstdc++/21770
-template class std::vector<int, std::allocator<char> >;
--- /dev/null
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <vector>
+
+// { dg-do compile }
+
+template class std::vector<int>;
--- /dev/null
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <vector>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+template class std::vector<__gnu_test::NonDefaultConstructible>;
--- /dev/null
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <vector>
+
+// { dg-do compile }
+
+// libstdc++/21770
+template class std::vector<int, std::allocator<char> >;
--- /dev/null
+// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests user specialization of library containers
+
+#include <vector>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+struct user_type {};
+
+namespace std
+{
+ template<typename Allocator>
+ class vector<user_type, Allocator> {};
+}
+++ /dev/null
-// Copyright (C) 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 24.3.4 Iterator operations
-
-#include <iterator>
-#include <list>
-#include <testsuite_hooks.h>
-
-//libstdc++/26020
-void test01()
-{
- using namespace std;
- bool test __attribute__((unused)) = true;
-
- list<int> ll;
- ll.push_back(1);
-
- list<int>::iterator it(ll.begin());
-
- advance(it, 0.5);
-
- VERIFY( it == ll.begin() );
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 24.4.2.1 Template class back_insert_iterator
-
-#include <iterator>
-#include <list>
-
-void test01()
-{
- using namespace std;
-
- // Check for required base class.
- list<int> l;
- typedef back_insert_iterator<list<int> > test_iterator;
- typedef iterator<output_iterator_tag, void, void, void, void> base_iterator;
- test_iterator r_it(l);
- base_iterator* base __attribute__((unused)) = &r_it;
-
- // Check for required typedefs
- typedef test_iterator::value_type value_type;
- typedef test_iterator::difference_type difference_type;
- typedef test_iterator::pointer pointer;
- typedef test_iterator::reference reference;
- typedef test_iterator::iterator_category iteratory_category;
- typedef test_iterator::container_type container_type;
-}
-
-
-// Make sure iterator can be instantiated.
-template class std::back_insert_iterator<std::list<int> >;
-
-void test02()
-{
- typedef std::back_insert_iterator<std::list<int> > iterator_type;
- std::list<int> li;
- iterator_type it = std::back_inserter(li);
-}
-
-// Check data member 'container' accessible.
-class test_dm : public std::back_insert_iterator<std::list<int> >
-{
- container_type l;
- container_type* p;
-public:
- test_dm(): std::back_insert_iterator<std::list<int> >(l), p(container) { }
-};
-
-int main()
-{
- test01();
- test02();
- return 0;
-}
--- /dev/null
+// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.2.1 Template class back_insert_iterator
+
+#include <iterator>
+#include <list>
+
+void test02()
+{
+ typedef std::back_insert_iterator<std::list<int> > iterator_type;
+ std::list<int> li;
+ iterator_type it = std::back_inserter(li);
+}
+
+int main()
+{
+ test02();
+ return 0;
+}
--- /dev/null
+// { dg-do compile }
+// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.2.1 Template class back_insert_iterator
+
+#include <iterator>
+#include <list>
+
+void test01()
+{
+ using namespace std;
+
+ // Check for required base class.
+ list<int> l;
+ typedef back_insert_iterator<list<int> > test_iterator;
+ typedef iterator<output_iterator_tag, void, void, void, void> base_iterator;
+ test_iterator r_it(l);
+ base_iterator* base __attribute__((unused)) = &r_it;
+}
--- /dev/null
+// { dg-do compile }
+// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.2.1 Template class back_insert_iterator
+
+#include <iterator>
+#include <list>
+
+// Check data member 'container' accessible.
+class test_dm : public std::back_insert_iterator<std::list<int> >
+{
+ container_type l;
+ container_type* p;
+public:
+ test_dm(): std::back_insert_iterator<std::list<int> >(l), p(container) { }
+};
--- /dev/null
+// { dg-do compile }
+// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.2.1 Template class back_insert_iterator
+
+#include <iterator>
+#include <list>
+
+// Make sure iterator can be instantiated.
+template class std::back_insert_iterator<std::list<int> >;
--- /dev/null
+// { dg-do compile }
+// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.2.1 Template class back_insert_iterator
+
+#include <iterator>
+#include <list>
+
+void test01()
+{
+ using namespace std;
+
+ // Check for required typedefs
+ typedef back_insert_iterator<list<int> > test_iterator;
+ typedef test_iterator::value_type value_type;
+ typedef test_iterator::difference_type difference_type;
+ typedef test_iterator::pointer pointer;
+ typedef test_iterator::reference reference;
+ typedef test_iterator::iterator_category iteratory_category;
+ typedef test_iterator::container_type container_type;
+}
+++ /dev/null
-// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 24.4.2.3 Template class front_insert_iterator
-
-#include <iterator>
-#include <list>
-
-void test01()
-{
- using namespace std;
-
- // Check for required base class.
- list<int> l;
- typedef front_insert_iterator<list<int> > test_iterator;
- typedef iterator<output_iterator_tag, void, void, void, void> base_iterator;
- test_iterator r_it(l);
- base_iterator* base __attribute__((unused)) = &r_it;
-
- // Check for required typedefs
- typedef test_iterator::value_type value_type;
- typedef test_iterator::difference_type difference_type;
- typedef test_iterator::pointer pointer;
- typedef test_iterator::reference reference;
- typedef test_iterator::iterator_category iteratory_category;
- typedef test_iterator::container_type container_type;
-}
-
-// Make sure iterator can be instantiated.
-template class std::front_insert_iterator<std::list<int> >;
-
-void test02()
-{
- typedef std::front_insert_iterator<std::list<int> > iterator_type;
- std::list<int> li;
- iterator_type it = std::front_inserter(li);
-}
-
-// Check data member 'container' accessible.
-class test_dm : public std::front_insert_iterator<std::list<int> >
-{
- container_type l;
- container_type* p;
-public:
- test_dm(): std::front_insert_iterator<std::list<int> >(l), p(container) { }
-};
-
-int main()
-{
- test01();
- test02();
- return 0;
-}
--- /dev/null
+// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.2.3 Template class front_insert_iterator
+
+#include <iterator>
+#include <list>
+
+void test02()
+{
+ typedef std::front_insert_iterator<std::list<int> > iterator_type;
+ std::list<int> li;
+ iterator_type it = std::front_inserter(li);
+}
+
+int main()
+{
+ test02();
+ return 0;
+}
--- /dev/null
+// { dg-do compile }
+// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.2.3 Template class front_insert_iterator
+
+#include <iterator>
+#include <list>
+
+void test01()
+{
+ using namespace std;
+
+ // Check for required base class.
+ list<int> l;
+ typedef front_insert_iterator<list<int> > test_iterator;
+ typedef iterator<output_iterator_tag, void, void, void, void> base_iterator;
+ test_iterator r_it(l);
+ base_iterator* base __attribute__((unused)) = &r_it;
+}
--- /dev/null
+// { dg-do compile }
+// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.2.3 Template class front_insert_iterator
+
+#include <iterator>
+#include <list>
+
+// Check data member 'container' accessible.
+class test_dm : public std::front_insert_iterator<std::list<int> >
+{
+ container_type l;
+ container_type* p;
+public:
+ test_dm(): std::front_insert_iterator<std::list<int> >(l), p(container) { }
+};
--- /dev/null
+// { dg-do compile }
+// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.2.3 Template class front_insert_iterator
+
+#include <iterator>
+#include <list>
+
+// Make sure iterator can be instantiated.
+template class std::front_insert_iterator<std::list<int> >;
--- /dev/null
+// { dg-do compile }
+// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.2.3 Template class front_insert_iterator
+
+#include <iterator>
+#include <list>
+
+void test01()
+{
+ using namespace std;
+
+ // Check for required typedefs
+ typedef front_insert_iterator<list<int> > test_iterator;
+ typedef test_iterator::value_type value_type;
+ typedef test_iterator::difference_type difference_type;
+ typedef test_iterator::pointer pointer;
+ typedef test_iterator::reference reference;
+ typedef test_iterator::iterator_category iteratory_category;
+ typedef test_iterator::container_type container_type;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <iterator>
+
+namespace std {
+
+ // 24.3, primitives:
+ template<class Iterator> struct iterator_traits;
+ template<class T> struct iterator_traits<T*>;
+
+ template<class Category, class T, class Distance,
+ class Pointer, class Reference> struct iterator;
+
+ struct input_iterator_tag;
+ struct output_iterator_tag;
+ struct forward_iterator_tag;
+ struct bidirectional_iterator_tag;
+ struct random_access_iterator_tag;
+
+ // 24.3.4, iterator operations:
+ template <class InputIterator, class Distance>
+ void
+ advance(InputIterator& i, Distance n);
+
+ template <class InputIterator>
+ typename iterator_traits<InputIterator>::difference_type
+ distance(InputIterator first, InputIterator last);
+
+ // 24.4, predefined iterators:
+ template <class Iterator> class reverse_iterator;
+
+ template <class Iterator>
+ bool operator==(const reverse_iterator<Iterator>& x,
+ const reverse_iterator<Iterator>& y);
+
+ template <class Iterator>
+ bool operator<(const reverse_iterator<Iterator>& x,
+ const reverse_iterator<Iterator>& y);
+
+ template <class Iterator>
+ bool operator!=(const reverse_iterator<Iterator>& x,
+ const reverse_iterator<Iterator>& y);
+
+ template <class Iterator>
+ bool operator>(const reverse_iterator<Iterator>& x,
+ const reverse_iterator<Iterator>& y);
+
+ template <class Iterator>
+ bool operator>=(const reverse_iterator<Iterator>& x,
+ const reverse_iterator<Iterator>& y);
+
+ template <class Iterator>
+ bool operator<=(const reverse_iterator<Iterator>& x,
+ const reverse_iterator<Iterator>& y);
+
+ template <class Iterator>
+ typename reverse_iterator<Iterator>::difference_type
+ operator-(const reverse_iterator<Iterator>& x,
+ const reverse_iterator<Iterator>& y);
+
+ template <class Iterator>
+ reverse_iterator<Iterator>
+ operator+(typename reverse_iterator<Iterator>::difference_type n,
+ const reverse_iterator<Iterator>& x);
+
+ template <class Container> class back_insert_iterator;
+
+ template <class Container>
+ back_insert_iterator<Container> back_inserter(Container& x);
+
+ template <class Container> class front_insert_iterator;
+
+ template <class Container>
+ front_insert_iterator<Container> front_inserter(Container& x);
+
+ template <class Container> class insert_iterator;
+
+ template <class Container, class Iterator>
+ insert_iterator<Container> inserter(Container& x, Iterator i);
+
+ // 24.5, stream iterators:
+ template <class T, class charT, class traits, class Distance>
+ class istream_iterator;
+
+ template <class T, class charT, class traits, class Distance>
+ bool operator==(const istream_iterator<T,charT,traits,Distance>& x,
+ const istream_iterator<T,charT,traits,Distance>& y);
+
+ template <class T, class charT, class traits, class Distance>
+ bool operator!=(const istream_iterator<T,charT,traits,Distance>& x,
+ const istream_iterator<T,charT,traits,Distance>& y);
+
+ template <class T, class charT, class traits>
+ class ostream_iterator;
+
+ template<class charT, class traits>
+ class istreambuf_iterator;
+
+ template <class charT, class traits>
+ bool
+ operator==(const istreambuf_iterator<charT,traits>&,
+ const istreambuf_iterator<charT,traits>&);
+
+ template <class charT, class traits>
+ bool operator!=(const istreambuf_iterator<charT,traits>&,
+ const istreambuf_iterator<charT,traits>&);
+
+ template <class charT, class traits>
+ class ostreambuf_iterator;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <iterator>
+
+namespace gnu
+{
+ typedef std::input_iterator_tag t1;
+ typedef std::output_iterator_tag t2;
+ typedef std::forward_iterator_tag t3;
+ typedef std::bidirectional_iterator_tag t4;
+ typedef std::random_access_iterator_tag t5;
+}
+++ /dev/null
-// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 24.4.2.5 Template class insert_iterator
-
-#include <iterator>
-#include <list>
-
-void test01()
-{
- using namespace std;
-
- // Check for required base class.
- list<int> l;
- list<int>::iterator li = l.begin();
-
- typedef insert_iterator<list<int> > test_iterator;
- typedef iterator<output_iterator_tag, void, void, void, void> base_iterator;
- test_iterator r_it(l, li);
- base_iterator* base __attribute__((unused)) = &r_it;
-
- // Check for required typedefs
- typedef test_iterator::value_type value_type;
- typedef test_iterator::difference_type difference_type;
- typedef test_iterator::pointer pointer;
- typedef test_iterator::reference reference;
- typedef test_iterator::iterator_category iteratory_category;
- typedef test_iterator::container_type container_type;
-}
-
-
-
-// Make sure iterator can be instantiated.
-template class std::insert_iterator<std::list<int> >;
-
-void test02()
-{
- typedef std::insert_iterator<std::list<int> > iterator_type;
-
- std::list<int> li;
- std::list<int>::iterator liit = li.begin();
- iterator_type it01(li, liit);
- iterator_type it02 = std::inserter(li, liit);
-}
-
-// Check data member 'container' accessible.
-class test_dm : public std::insert_iterator<std::list<int> >
-{
- container_type l;
- container_type::iterator i;
- container_type* p;
-public:
- test_dm(): std::insert_iterator<std::list<int> >(l, i), p(container) { }
-};
-
-int main()
-{
- test01();
- test02();
- return 0;
-}
--- /dev/null
+// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.2.5 Template class insert_iterator
+
+#include <iterator>
+#include <list>
+
+void test02()
+{
+ typedef std::insert_iterator<std::list<int> > iterator_type;
+
+ std::list<int> li;
+ std::list<int>::iterator liit = li.begin();
+ iterator_type it01(li, liit);
+ iterator_type it02 = std::inserter(li, liit);
+}
+
+int main()
+{
+ test02();
+ return 0;
+}
--- /dev/null
+// { dg-do compile }
+// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.2.5 Template class insert_iterator
+
+#include <iterator>
+#include <list>
+
+void test01()
+{
+ using namespace std;
+
+ // Check for required base class.
+ list<int> l;
+ list<int>::iterator li = l.begin();
+
+ typedef insert_iterator<list<int> > test_iterator;
+ typedef iterator<output_iterator_tag, void, void, void, void> base_iterator;
+ test_iterator r_it(l, li);
+ base_iterator* base __attribute__((unused)) = &r_it;
+}
+
--- /dev/null
+// { dg-do compile }
+// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.2.5 Template class insert_iterator
+
+#include <iterator>
+#include <list>
+
+// Check data member 'container' accessible.
+class test_dm : public std::insert_iterator<std::list<int> >
+{
+ container_type l;
+ container_type::iterator i;
+ container_type* p;
+public:
+ test_dm(): std::insert_iterator<std::list<int> >(l, i), p(container) { }
+};
--- /dev/null
+// { dg-do compile }
+// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.2.5 Template class insert_iterator
+
+#include <iterator>
+#include <list>
+
+// Make sure iterator can be instantiated.
+template class std::insert_iterator<std::list<int> >;
--- /dev/null
+// { dg-do compile }
+// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.2.5 Template class insert_iterator
+
+#include <iterator>
+#include <list>
+
+void test01()
+{
+ using namespace std;
+
+ // Check for required typedefs
+ typedef insert_iterator<list<int> > test_iterator;
+ typedef test_iterator::value_type value_type;
+ typedef test_iterator::difference_type difference_type;
+ typedef test_iterator::pointer pointer;
+ typedef test_iterator::reference reference;
+ typedef test_iterator::iterator_category iteratory_category;
+ typedef test_iterator::container_type container_type;
+}
+
+++ /dev/null
-// 2001-06-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 24.5.1 Template class istream_iterator
-
-#include <iterator>
-#include <sstream>
-#include <testsuite_hooks.h>
-
-void test01()
-{
- using namespace std;
-
- // Check for required base class.
- typedef istream_iterator<long> test_iterator;
- typedef iterator<input_iterator_tag, long, ptrdiff_t, const long*,
- const long&> base_iterator;
- test_iterator r_it;
- base_iterator* base __attribute__((unused)) = &r_it;
-
- // Check for required typedefs
- typedef test_iterator::value_type value_type;
- typedef test_iterator::difference_type difference_type;
- typedef test_iterator::pointer pointer;
- typedef test_iterator::reference reference;
- typedef test_iterator::iterator_category iteratory_category;
-
- typedef test_iterator::char_type char_type;
- typedef test_iterator::traits_type traits_type;
- typedef test_iterator::istream_type istream_type;
-}
-
-// Instantiate
-template class std::istream_iterator<char>;
-
-void test02()
-{
- using namespace std;
- bool test __attribute__((unused)) = true;
-
- string st("R.Rorty");
-
- string re_01, re_02, re_03;
- re_02 = ",H.Putnam";
- re_03 = "D.Dennett,xxx,H.Putnam";
-
- stringbuf sb_01(st);
- istream is_01(&sb_01);
- istream_iterator<char> inb_01(is_01);
- istream_iterator<char> ine_01;
- re_01.assign(inb_01, ine_01);
- VERIFY( re_01 == "R.Rorty" );
-
- stringbuf sb_02(st);
- istream is_02(&sb_02);
- istream_iterator<char> inb_02(is_02);
- istream_iterator<char> ine_02;
- re_02.insert(re_02.begin(), inb_02, ine_02);
- VERIFY( re_02 == "R.Rorty,H.Putnam" );
-
- stringbuf sb_03(st);
- istream is_03(&sb_03);
- istream_iterator<char> inb_03(is_03);
- istream_iterator<char> ine_03;
- re_03.replace(re_03.begin() + 10, re_03.begin() + 13,
- inb_03, ine_03);
- VERIFY( re_03 == "D.Dennett,R.Rorty,H.Putnam" );
-}
-
-int main()
-{
- test01();
- test02();
- return 0;
-}
--- /dev/null
+// 2001-06-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.5.1 Template class istream_iterator
+
+#include <iterator>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+void test02()
+{
+ using namespace std;
+ bool test __attribute__((unused)) = true;
+
+ string st("R.Rorty");
+
+ string re_01, re_02, re_03;
+ re_02 = ",H.Putnam";
+ re_03 = "D.Dennett,xxx,H.Putnam";
+
+ stringbuf sb_01(st);
+ istream is_01(&sb_01);
+ istream_iterator<char> inb_01(is_01);
+ istream_iterator<char> ine_01;
+ re_01.assign(inb_01, ine_01);
+ VERIFY( re_01 == "R.Rorty" );
+
+ stringbuf sb_02(st);
+ istream is_02(&sb_02);
+ istream_iterator<char> inb_02(is_02);
+ istream_iterator<char> ine_02;
+ re_02.insert(re_02.begin(), inb_02, ine_02);
+ VERIFY( re_02 == "R.Rorty,H.Putnam" );
+
+ stringbuf sb_03(st);
+ istream is_03(&sb_03);
+ istream_iterator<char> inb_03(is_03);
+ istream_iterator<char> ine_03;
+ re_03.replace(re_03.begin() + 10, re_03.begin() + 13,
+ inb_03, ine_03);
+ VERIFY( re_03 == "D.Dennett,R.Rorty,H.Putnam" );
+}
+
+int main()
+{
+ test02();
+ return 0;
+}
--- /dev/null
+// { dg-do compile }
+// 2001-06-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.5.1 Template class istream_iterator
+
+#include <iterator>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+void test01()
+{
+ using namespace std;
+
+ // Check for required base class.
+ typedef istream_iterator<long> test_iterator;
+ typedef iterator<input_iterator_tag, long, ptrdiff_t, const long*,
+ const long&> base_iterator;
+ test_iterator r_it;
+ base_iterator* base __attribute__((unused)) = &r_it;
+}
--- /dev/null
+// { dg-do compile }
+// 2001-06-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.5.1 Template class istream_iterator
+
+#include <iterator>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+// Instantiate
+template class std::istream_iterator<char>;
--- /dev/null
+// { dg-do compile }
+// 2001-06-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.5.1 Template class istream_iterator
+
+#include <iterator>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+void test01()
+{
+ using namespace std;
+
+ // Check for required typedefs
+ typedef istream_iterator<long> test_iterator;
+ typedef test_iterator::value_type value_type;
+ typedef test_iterator::difference_type difference_type;
+ typedef test_iterator::pointer pointer;
+ typedef test_iterator::reference reference;
+ typedef test_iterator::iterator_category iteratory_category;
+
+ typedef test_iterator::char_type char_type;
+ typedef test_iterator::traits_type traits_type;
+ typedef test_iterator::istream_type istream_type;
+}
+++ /dev/null
-// { dg-do compile }
-// 1999-06-28 bkoz
-
-// Copyright (C) 1999, 2001, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 24.5.3 template class istreambuf_iterator
-
-#include <sstream>
-#include <iterator>
-#include <testsuite_hooks.h>
-
-void test01()
-{
- using namespace std;
-
- // Check for required base class.
- typedef istreambuf_iterator<char> test_iterator;
- typedef char_traits<char>::off_type off_type;
- typedef iterator<input_iterator_tag, char, off_type, char*, char&> base_iterator;
-
- istringstream isstream("this tag");
- test_iterator r_it(isstream);
- base_iterator* base __attribute__((unused)) = &r_it;
-
- // Check for required typedefs
- typedef test_iterator::value_type value_type;
- typedef test_iterator::difference_type difference_type;
- typedef test_iterator::pointer pointer;
- typedef test_iterator::reference reference;
- typedef test_iterator::iterator_category iteratory_category;
-
- typedef test_iterator::char_type char_type;
- typedef test_iterator::traits_type traits_type;
- typedef test_iterator::istream_type istream_type;
- typedef test_iterator::streambuf_type streambuf_type;
-}
--- /dev/null
+// { dg-do compile }
+// 1999-06-28 bkoz
+
+// Copyright (C) 1999, 2001, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.5.3 template class istreambuf_iterator
+
+#include <sstream>
+#include <iterator>
+#include <testsuite_hooks.h>
+
+void test01()
+{
+ using namespace std;
+
+ // Check for required base class.
+ typedef istreambuf_iterator<char> test_iterator;
+ typedef char_traits<char>::off_type off_type;
+ typedef iterator<input_iterator_tag, char, off_type, char*, char&> base_iterator;
+
+ istringstream isstream("this tag");
+ test_iterator r_it(isstream);
+ base_iterator* base __attribute__((unused)) = &r_it;
+}
--- /dev/null
+// { dg-do compile }
+// 1999-06-28 bkoz
+
+// Copyright (C) 1999, 2001, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.5.3 template class istreambuf_iterator
+
+#include <sstream>
+#include <iterator>
+#include <testsuite_hooks.h>
+
+template class std::istreambuf_iterator<char>;
--- /dev/null
+// { dg-do compile }
+// 1999-06-28 bkoz
+
+// Copyright (C) 1999, 2001, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.5.3 template class istreambuf_iterator
+
+#include <sstream>
+#include <iterator>
+#include <testsuite_hooks.h>
+
+void test01()
+{
+ using namespace std;
+
+ // Check for required typedefs
+ typedef istreambuf_iterator<char> test_iterator;
+ typedef test_iterator::value_type value_type;
+ typedef test_iterator::difference_type difference_type;
+ typedef test_iterator::pointer pointer;
+ typedef test_iterator::reference reference;
+ typedef test_iterator::iterator_category iteratory_category;
+
+ typedef test_iterator::char_type char_type;
+ typedef test_iterator::traits_type traits_type;
+ typedef test_iterator::istream_type istream_type;
+ typedef test_iterator::streambuf_type streambuf_type;
+}
+++ /dev/null
-// 24.1.5 Random access iterators
-// 24.3.1 Iterator traits
-// (basic_string and vector implementations)
-//
-// Copyright (C) 1999, 2003, 2004, 2005 Free Software Foundation, Inc.
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
-// USA
-
-
-#include <string>
-#include <vector>
-#include <testsuite_hooks.h>
-
-int
-string_stuff()
-{
- int failures(0);
-
- std::string s("abcde");
-
- std::string::iterator i1(s.begin());
- if (*i1 != 'a')
- ++failures;
-
- ++i1;
- if (*i1 != 'b')
- ++failures;
-
- if (*i1++ != 'b')
- ++failures;
- if (*i1 != 'c')
- ++failures;
-
- ++ ++i1;
- if (*i1 != 'e')
- ++failures;
-
- --i1;
- if (*i1 != 'd')
- ++failures;
-
- if (*i1-- != 'd')
- ++failures;
- if (*i1 != 'c')
- ++failures;
-
- -- --i1;
- if (*i1 != 'a')
- ++failures;
-
- std::string::iterator i2;
- i2 = s.end();
- std::iterator_traits<std::string::iterator>::difference_type d1;
- d1 = i2 - i1;
- if (d1 != 5)
- ++failures;
-
- std::iterator_traits<std::string::iterator>::value_type v1;
- v1 = i1[0];
- if (v1 != 'a')
- ++failures;
-
- std::iterator_traits<std::string::iterator>::reference r1(i1[0]);
- if (r1 != 'a')
- ++failures;
- r1 = 'x';
- if (r1 != 'x')
- ++failures;
- r1 = 'a';
-
- if ((i1 != i2) != true)
- ++failures;
- if ((i1 == i2) != false)
- ++failures;
- if ((i1 < i2) != true)
- ++failures;
- if ((i1 > i2) != false)
- ++failures;
- if ((i1 <= i2) != true)
- ++failures;
- if ((i1 >= i2) != false)
- ++failures;
-
- std::string::iterator i3;
- i3 = i1;
- if ((i3 == i1) != true)
- ++failures;
-
- i3 += 5;
- if ((i3 == i2) != true)
- ++failures;
-
- i3 -= 5;
- if ((i3 == i1) != true)
- ++failures;
-
- if (i3 + 5 != i2)
- ++failures;
-
- if (5 + i3 != i2)
- ++failures;
-
- if (i2 - 5 != i3)
- ++failures;
-
- if (i1[0] != 'a')
- ++failures;
-
- i1[4] = 'x';
- if (i2[-1] != 'x')
- ++failures;
- i1[4] = 'e';
-
- i1[2] = 'x';
- if (i2[-3] != 'x')
- ++failures;
- i1[2] = 'c';
-
- std::string::const_iterator ci1(s.begin());
- if (*ci1 != 'a')
- ++failures;
-
- ++ci1;
- if (*ci1 != 'b')
- ++failures;
-
- if (*ci1++ != 'b')
- ++failures;
- if (*ci1 != 'c')
- ++failures;
-
- ++ ++ci1;
- if (*ci1 != 'e')
- ++failures;
-
- --ci1;
- if (*ci1 != 'd')
- ++failures;
-
- if (*ci1-- != 'd')
- ++failures;
- if (*ci1 != 'c')
- ++failures;
-
- -- --ci1;
- if (*ci1 != 'a')
- ++failures;
-
- std::string::const_iterator ci2;
- ci2 = s.end();
- std::iterator_traits<std::string::const_iterator>::difference_type d2;
- d2 = ci2 - ci1;
- if (d2 != 5)
- ++failures;
-
- std::iterator_traits<std::string::const_iterator>::value_type v2;
- v2 = ci1[0];
- if (v2 != 'a')
- ++failures;
-
- std::iterator_traits<std::string::const_iterator>::reference r2(ci1[0]);
- if (r2 != 'a')
- ++failures;
-
- if ((ci1 != ci2) != true)
- ++failures;
- if ((ci1 == ci2) != false)
- ++failures;
- if ((ci1 < ci2) != true)
- ++failures;
- if ((ci1 > ci2) != false)
- ++failures;
- if ((ci1 <= ci2) != true)
- ++failures;
- if ((ci1 >= ci2) != false)
- ++failures;
-
- std::string::const_iterator ci3;
- ci3 = ci1;
- if ((ci3 == ci1) != true)
- ++failures;
-
- ci3 += 5;
- if ((ci3 == ci2) != true)
- ++failures;
-
- ci3 -= 5;
- if ((ci3 == ci1) != true)
- ++failures;
-
- if (ci3 + 5 != ci2)
- ++failures;
-
- if (5 + ci3 != ci2)
- ++failures;
-
- if (ci2 - 5 != ci3)
- ++failures;
-
- if (ci1[2] != 'c')
- ++failures;
-
- if (ci2[-1] != 'e')
- ++failures;
-
- // iterator and const_iterator
- std::string::const_iterator ci4(i1);
- if ((ci4 == i1) != true)
- ++failures;
- if ((ci4 != i1) != false)
- ++failures;
- if ((ci4 < i1) != false)
- ++failures;
- if ((ci4 > i1) != false)
- ++failures;
- if ((ci4 <= i1) != true)
- ++failures;
- if ((ci4 >= i1) != true)
- ++failures;
- ci4 = i2;
- if ((i2 == ci4) != true)
- ++failures;
- if ((i2 < ci4) != false)
- ++failures;
- if ((i2 > ci4) != false)
- ++failures;
- if ((i2 <= ci4) != true)
- ++failures;
- if ((i2 >= ci4) != true)
- ++failures;
-
- const std::string cs("ABCDE");
- std::string::const_iterator ci5(cs.begin());
- if (ci5[0] != 'A')
- ++failures;
-
- return failures;
-}
-
-int
-vector_stuff()
-{
- int failures(0);
-
- std::vector<int> v;
- v.push_back(int(1));
- v.push_back(int(2));
- v.push_back(int(3));
- v.push_back(int(4));
- v.push_back(int(5));
-
- std::vector<int>::iterator i1(v.begin());
- if (*i1 != 1)
- ++failures;
-
- ++i1;
- if (*i1 != 2)
- ++failures;
-
- if (*i1++ != 2)
- ++failures;
- if (*i1 != 3)
- ++failures;
-
- ++ ++i1;
- if (*i1 != 5)
- ++failures;
-
- --i1;
- if (*i1 != 4)
- ++failures;
-
- if (*i1-- != 4)
- ++failures;
- if (*i1 != 3)
- ++failures;
-
- -- --i1;
- if (*i1 != 1)
- ++failures;
-
- std::vector<int>::iterator i2;
- i2 = v.end();
- std::iterator_traits<std::vector<int>::iterator>::difference_type d1;
- d1 = i2 - i1;
- if (d1 != 5)
- ++failures;
-
- std::iterator_traits<std::vector<int>::iterator>::value_type v1;
- v1 = i1[0];
- if (v1 != 1)
- ++failures;
-
- std::iterator_traits<std::vector<int>::iterator>::reference r1(i1[0]);
- if (r1 != 1)
- ++failures;
- r1 = 9;
- if (r1 != 9)
- ++failures;
- r1 = 1;
-
- if ((i1 != i2) != true)
- ++failures;
- if ((i1 == i2) != false)
- ++failures;
- if ((i1 < i2) != true)
- ++failures;
- if ((i1 > i2) != false)
- ++failures;
- if ((i1 <= i2) != true)
- ++failures;
- if ((i1 >= i2) != false)
- ++failures;
-
- std::vector<int>::iterator i3;
- i3 = i1;
- if ((i3 == i1) != true)
- ++failures;
-
- i3 += 5;
- if ((i3 == i2) != true)
- ++failures;
-
- i3 -= 5;
- if ((i3 == i1) != true)
- ++failures;
-
- if (i3 + 5 != i2)
- ++failures;
-
- if (5 + i3 != i2)
- ++failures;
-
- if (i2 - 5 != i3)
- ++failures;
-
- if (i1[0] != 1)
- ++failures;
-
- i1[4] = 9;
- if (i2[-1] != 9)
- ++failures;
- i1[4] = 5;
-
- i1[2] = 9;
- if (i2[-3] != 9)
- ++failures;
- i1[2] = 3;
-
- std::vector<int>::const_iterator ci1(v.begin());
- if (*ci1 != 1)
- ++failures;
-
- ++ci1;
- if (*ci1 != 2)
- ++failures;
-
- if (*ci1++ != 2)
- ++failures;
- if (*ci1 != 3)
- ++failures;
-
- ++ ++ci1;
- if (*ci1 != 5)
- ++failures;
-
- --ci1;
- if (*ci1 != 4)
- ++failures;
-
- if (*ci1-- != 4)
- ++failures;
- if (*ci1 != 3)
- ++failures;
-
- -- --ci1;
- if (*ci1 != 1)
- ++failures;
-
- std::vector<int>::const_iterator ci2;
- ci2 = v.end();
- std::iterator_traits<std::vector<int>::const_iterator>::difference_type d2;
- d2 = ci2 - ci1;
- if (d2 != 5)
- ++failures;
-
- std::iterator_traits<std::vector<int>::const_iterator>::value_type v2;
- v2 = ci1[0];
- if (v2 != 1)
- ++failures;
-
- std::iterator_traits<std::vector<int>::const_iterator>::reference
- r2(ci1[0]);
- if (r2 != 1)
- ++failures;
-
- if ((ci1 != ci2) != true)
- ++failures;
- if ((ci1 == ci2) != false)
- ++failures;
- if ((ci1 < ci2) != true)
- ++failures;
- if ((ci1 > ci2) != false)
- ++failures;
- if ((ci1 <= ci2) != true)
- ++failures;
- if ((ci1 >= ci2) != false)
- ++failures;
-
- std::vector<int>::const_iterator ci3;
- ci3 = ci1;
- if ((ci3 == ci1) != true)
- ++failures;
-
- ci3 += 5;
- if ((ci3 == ci2) != true)
- ++failures;
-
- ci3 -= 5;
- if ((ci3 == ci1) != true)
- ++failures;
-
- if (ci3 + 5 != ci2)
- ++failures;
-
- if (5 + ci3 != ci2)
- ++failures;
-
- if (ci2 - 5 != ci3)
- ++failures;
-
- if (ci1[2] != 3)
- ++failures;
-
- if (ci2[-1] != 5)
- ++failures;
-
- // iterator to const_iterator
- std::vector<int>::const_iterator ci4(i1);
- if ((ci4 == i1) != true)
- ++failures;
- if ((ci4 != i1) != false)
- ++failures;
- if ((ci4 < i1) != false)
- ++failures;
- if ((ci4 > i1) != false)
- ++failures;
- if ((ci4 <= i1) != true)
- ++failures;
- if ((ci4 >= i1) != true)
- ++failures;
- ci4 = i2;
- if ((i2 == ci4) != true)
- ++failures;
- if ((i2 < ci4) != false)
- ++failures;
- if ((i2 > ci4) != false)
- ++failures;
- if ((i2 <= ci4) != true)
- ++failures;
- if ((i2 >= ci4) != true)
- ++failures;
-
- const std::vector<int> cv(v);
- std::vector<int>::const_iterator ci5(cv.begin());
- if (ci5[0] != 1)
- ++failures;
-
- std::vector<std::string> vs;
- vs.push_back(std::string("abc"));
- std::vector<std::string>::iterator ivs(vs.begin());
- if (ivs->c_str()[1] != 'b')
- ++failures;
-
- return failures;
-}
-
-int
-reverse_stuff()
-{
- int failures(0);
-
- std::string s("abcde");
-
- std::string::reverse_iterator ri(s.rbegin());
- if (*ri != 'e')
- ++failures;
-
- std::iterator_traits<std::string::reverse_iterator>::difference_type d;
- d = s.rend() - ri;
- if (d != 5)
- ++failures;
-
- const std::string cs("abcde");
- std::string::const_reverse_iterator cri(cs.rend());
- if (cri - 5 != cs.rbegin())
- ++failures;
-
- return failures;
-}
-
-// the following should be compiler errors
-// flag runtime errors in case they slip through the compiler
-int
-wrong_stuff()
-{
- int failures(0);
-
-#ifdef ITER24_F1
- extern void f(std::vector<std::string*>::iterator);
- std::vector<std::string*> vs[2];
- f(vs); // address of array is not an iterator
- failures++;
-#endif
-
-#ifdef ITER24_F2
- std::string s;
- char *i = s.begin(); // begin() doesn't return a pointer
- failures++;
-#endif
-
-#ifdef ITER24_F3
- std::string::const_iterator ci;
- std::string::iterator i;
- if (i - ci) // remove const_ is a warning
- i++;
- // failures++; only a warning
-#endif
-
-#ifdef ITER24_F4
- std::vector<char>::iterator iv;
- std::string::iterator is(iv);// vector<char> is not string
- failures++;
-#endif
-
-#ifdef ITER24_F5
- std::vector<char>::iterator iv;
- std::string::iterator is;
- if (iv == is) // vector<char> is not string
- ++iv;
- failures++;
-#endif
-
-#ifdef ITER24_F6
- std::vector<char>::const_iterator ci;
- std::vector<char>::iterator i = ci; // remove const_ is a warning
- ++i;
- // failures++; only a warning
-#endif
-
-#ifdef ITER24_F7
- std::vector<int> v(1);
- std::vector<int>::const_iterator ci(v.begin());
- *ci = 1; // cannot assign through const_iterator
- failures++;
-#endif
-
-#ifdef ITER24_F8
- std::vector<const int> v(1);
- std::vector<const int>::reference r(v.begin()[0]);
- r = 1; // cannot assign through reference to const
- failures++;
-#endif
-
- return failures;
-}
-
-// libstdc++/6642
-int
-test6642()
-{
- std::string s;
- std::string::iterator it = s.begin();
- std::string::const_iterator cit = s.begin();
-
- return it - cit;
-}
-
-int
-main()
-{
- int failures(0);
-
- failures += string_stuff();
-
- failures += vector_stuff();
-
- failures += reverse_stuff();
-
- failures += wrong_stuff();
-
- failures += test6642();
-
- VERIFY(failures == 0);
- return 0;
-}
+++ /dev/null
-// 2001-06-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 24.5.4 Template class ostream_iterator
-
-#include <iterator>
-#include <ostream>
-#include <sstream>
-
-void test01()
-{
- using namespace std;
-
- // Check for required base class.
- typedef ostream_iterator<long> test_iterator;
- typedef iterator<output_iterator_tag, void, void, void, void> base_iterator;
- ostringstream osstream("this tag");
- test_iterator r_it(osstream);
- base_iterator* base __attribute__((unused)) = &r_it;
-
- // Check for required typedefs
- typedef test_iterator::value_type value_type;
- typedef test_iterator::difference_type difference_type;
- typedef test_iterator::pointer pointer;
- typedef test_iterator::reference reference;
- typedef test_iterator::iterator_category iteratory_category;
-
- typedef test_iterator::char_type char_type;
- typedef test_iterator::traits_type traits_type;
- typedef test_iterator::ostream_type ostream_type;
-}
-
-// Instantiate
-template class std::ostream_iterator<char>;
-
-int main()
-{
- test01();
- return 0;
-}
--- /dev/null
+// { dg-do compile }
+// 2001-06-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.5.4 Template class ostream_iterator
+
+#include <iterator>
+#include <ostream>
+#include <sstream>
+
+void test01()
+{
+ using namespace std;
+
+ // Check for required base class.
+ typedef ostream_iterator<long> test_iterator;
+ typedef iterator<output_iterator_tag, void, void, void, void> base_iterator;
+ ostringstream osstream("this tag");
+ test_iterator r_it(osstream);
+ base_iterator* base __attribute__((unused)) = &r_it;
+}
--- /dev/null
+// { dg-do compile }
+// 2001-06-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.5.4 Template class ostream_iterator
+
+#include <iterator>
+#include <ostream>
+#include <sstream>
+
+// Instantiate
+template class std::ostream_iterator<char>;
--- /dev/null
+// { dg-do compile }
+// 2001-06-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.5.4 Template class ostream_iterator
+
+#include <iterator>
+#include <ostream>
+#include <sstream>
+
+void test01()
+{
+ using namespace std;
+
+ // Check for required typedefs
+ typedef ostream_iterator<long> test_iterator;
+ typedef test_iterator::value_type value_type;
+ typedef test_iterator::difference_type difference_type;
+ typedef test_iterator::pointer pointer;
+ typedef test_iterator::reference reference;
+ typedef test_iterator::iterator_category iteratory_category;
+
+ typedef test_iterator::char_type char_type;
+ typedef test_iterator::traits_type traits_type;
+ typedef test_iterator::ostream_type ostream_type;
+}
+++ /dev/null
-// { dg-do compile }
-// 2001-04-30 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 24.5.4 template class ostreambuf_iterator
-
-#include <sstream>
-#include <iterator>
-#include <testsuite_hooks.h>
-
-void test01()
-{
- using namespace std;
-
- // Check for required base class.
- typedef ostreambuf_iterator<char> test_iterator;
- typedef iterator<output_iterator_tag, void, void, void, void> base_iterator;
- ostringstream osstream("this tag");
- test_iterator r_it(osstream);
- base_iterator* base __attribute__((unused)) = &r_it;
-
- // Check for required typedefs
- typedef test_iterator::value_type value_type;
- typedef test_iterator::difference_type difference_type;
- typedef test_iterator::pointer pointer;
- typedef test_iterator::reference reference;
- typedef test_iterator::iterator_category iteratory_category;
-
- typedef test_iterator::char_type char_type;
- typedef test_iterator::traits_type traits_type;
- typedef test_iterator::ostream_type ostream_type;
- typedef test_iterator::streambuf_type streambuf_type;
-}
--- /dev/null
+// { dg-do compile }
+// 2001-04-30 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.5.4 template class ostreambuf_iterator
+
+#include <sstream>
+#include <iterator>
+#include <testsuite_hooks.h>
+
+void test01()
+{
+ using namespace std;
+
+ // Check for required base class.
+ typedef ostreambuf_iterator<char> test_iterator;
+ typedef iterator<output_iterator_tag, void, void, void, void> base_iterator;
+ ostringstream osstream("this tag");
+ test_iterator r_it(osstream);
+ base_iterator* base __attribute__((unused)) = &r_it;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <iterator>
+#include <sstream>
+
+template class std::ostreambuf_iterator<char>;
--- /dev/null
+// { dg-do compile }
+// 2001-04-30 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.5.4 template class ostreambuf_iterator
+
+#include <sstream>
+#include <iterator>
+#include <testsuite_hooks.h>
+
+void test01()
+{
+ using namespace std;
+
+ // Check for required typedefs
+ typedef ostreambuf_iterator<char> test_iterator;
+ typedef test_iterator::value_type value_type;
+ typedef test_iterator::difference_type difference_type;
+ typedef test_iterator::pointer pointer;
+ typedef test_iterator::reference reference;
+ typedef test_iterator::iterator_category iteratory_category;
+
+ typedef test_iterator::char_type char_type;
+ typedef test_iterator::traits_type traits_type;
+ typedef test_iterator::ostream_type ostream_type;
+ typedef test_iterator::streambuf_type streambuf_type;
+}
--- /dev/null
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.3.4 Iterator operations
+
+#include <iterator>
+#include <list>
+#include <testsuite_hooks.h>
+
+//libstdc++/26020
+void test01()
+{
+ using namespace std;
+ bool test __attribute__((unused)) = true;
+
+ list<int> ll;
+ ll.push_back(1);
+
+ list<int>::iterator it(ll.begin());
+
+ advance(it, 0.5);
+
+ VERIFY( it == ll.begin() );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// 24.1.5 Random access iterators
+// 24.3.1 Iterator traits
+// (basic_string and vector implementations)
+//
+// Copyright (C) 1999, 2003, 2004, 2005 Free Software Foundation, Inc.
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+// USA
+
+
+#include <string>
+#include <vector>
+#include <testsuite_hooks.h>
+
+int
+string_stuff()
+{
+ int failures(0);
+
+ std::string s("abcde");
+
+ std::string::iterator i1(s.begin());
+ if (*i1 != 'a')
+ ++failures;
+
+ ++i1;
+ if (*i1 != 'b')
+ ++failures;
+
+ if (*i1++ != 'b')
+ ++failures;
+ if (*i1 != 'c')
+ ++failures;
+
+ ++ ++i1;
+ if (*i1 != 'e')
+ ++failures;
+
+ --i1;
+ if (*i1 != 'd')
+ ++failures;
+
+ if (*i1-- != 'd')
+ ++failures;
+ if (*i1 != 'c')
+ ++failures;
+
+ -- --i1;
+ if (*i1 != 'a')
+ ++failures;
+
+ std::string::iterator i2;
+ i2 = s.end();
+ std::iterator_traits<std::string::iterator>::difference_type d1;
+ d1 = i2 - i1;
+ if (d1 != 5)
+ ++failures;
+
+ std::iterator_traits<std::string::iterator>::value_type v1;
+ v1 = i1[0];
+ if (v1 != 'a')
+ ++failures;
+
+ std::iterator_traits<std::string::iterator>::reference r1(i1[0]);
+ if (r1 != 'a')
+ ++failures;
+ r1 = 'x';
+ if (r1 != 'x')
+ ++failures;
+ r1 = 'a';
+
+ if ((i1 != i2) != true)
+ ++failures;
+ if ((i1 == i2) != false)
+ ++failures;
+ if ((i1 < i2) != true)
+ ++failures;
+ if ((i1 > i2) != false)
+ ++failures;
+ if ((i1 <= i2) != true)
+ ++failures;
+ if ((i1 >= i2) != false)
+ ++failures;
+
+ std::string::iterator i3;
+ i3 = i1;
+ if ((i3 == i1) != true)
+ ++failures;
+
+ i3 += 5;
+ if ((i3 == i2) != true)
+ ++failures;
+
+ i3 -= 5;
+ if ((i3 == i1) != true)
+ ++failures;
+
+ if (i3 + 5 != i2)
+ ++failures;
+
+ if (5 + i3 != i2)
+ ++failures;
+
+ if (i2 - 5 != i3)
+ ++failures;
+
+ if (i1[0] != 'a')
+ ++failures;
+
+ i1[4] = 'x';
+ if (i2[-1] != 'x')
+ ++failures;
+ i1[4] = 'e';
+
+ i1[2] = 'x';
+ if (i2[-3] != 'x')
+ ++failures;
+ i1[2] = 'c';
+
+ std::string::const_iterator ci1(s.begin());
+ if (*ci1 != 'a')
+ ++failures;
+
+ ++ci1;
+ if (*ci1 != 'b')
+ ++failures;
+
+ if (*ci1++ != 'b')
+ ++failures;
+ if (*ci1 != 'c')
+ ++failures;
+
+ ++ ++ci1;
+ if (*ci1 != 'e')
+ ++failures;
+
+ --ci1;
+ if (*ci1 != 'd')
+ ++failures;
+
+ if (*ci1-- != 'd')
+ ++failures;
+ if (*ci1 != 'c')
+ ++failures;
+
+ -- --ci1;
+ if (*ci1 != 'a')
+ ++failures;
+
+ std::string::const_iterator ci2;
+ ci2 = s.end();
+ std::iterator_traits<std::string::const_iterator>::difference_type d2;
+ d2 = ci2 - ci1;
+ if (d2 != 5)
+ ++failures;
+
+ std::iterator_traits<std::string::const_iterator>::value_type v2;
+ v2 = ci1[0];
+ if (v2 != 'a')
+ ++failures;
+
+ std::iterator_traits<std::string::const_iterator>::reference r2(ci1[0]);
+ if (r2 != 'a')
+ ++failures;
+
+ if ((ci1 != ci2) != true)
+ ++failures;
+ if ((ci1 == ci2) != false)
+ ++failures;
+ if ((ci1 < ci2) != true)
+ ++failures;
+ if ((ci1 > ci2) != false)
+ ++failures;
+ if ((ci1 <= ci2) != true)
+ ++failures;
+ if ((ci1 >= ci2) != false)
+ ++failures;
+
+ std::string::const_iterator ci3;
+ ci3 = ci1;
+ if ((ci3 == ci1) != true)
+ ++failures;
+
+ ci3 += 5;
+ if ((ci3 == ci2) != true)
+ ++failures;
+
+ ci3 -= 5;
+ if ((ci3 == ci1) != true)
+ ++failures;
+
+ if (ci3 + 5 != ci2)
+ ++failures;
+
+ if (5 + ci3 != ci2)
+ ++failures;
+
+ if (ci2 - 5 != ci3)
+ ++failures;
+
+ if (ci1[2] != 'c')
+ ++failures;
+
+ if (ci2[-1] != 'e')
+ ++failures;
+
+ // iterator and const_iterator
+ std::string::const_iterator ci4(i1);
+ if ((ci4 == i1) != true)
+ ++failures;
+ if ((ci4 != i1) != false)
+ ++failures;
+ if ((ci4 < i1) != false)
+ ++failures;
+ if ((ci4 > i1) != false)
+ ++failures;
+ if ((ci4 <= i1) != true)
+ ++failures;
+ if ((ci4 >= i1) != true)
+ ++failures;
+ ci4 = i2;
+ if ((i2 == ci4) != true)
+ ++failures;
+ if ((i2 < ci4) != false)
+ ++failures;
+ if ((i2 > ci4) != false)
+ ++failures;
+ if ((i2 <= ci4) != true)
+ ++failures;
+ if ((i2 >= ci4) != true)
+ ++failures;
+
+ const std::string cs("ABCDE");
+ std::string::const_iterator ci5(cs.begin());
+ if (ci5[0] != 'A')
+ ++failures;
+
+ return failures;
+}
+
+int
+vector_stuff()
+{
+ int failures(0);
+
+ std::vector<int> v;
+ v.push_back(int(1));
+ v.push_back(int(2));
+ v.push_back(int(3));
+ v.push_back(int(4));
+ v.push_back(int(5));
+
+ std::vector<int>::iterator i1(v.begin());
+ if (*i1 != 1)
+ ++failures;
+
+ ++i1;
+ if (*i1 != 2)
+ ++failures;
+
+ if (*i1++ != 2)
+ ++failures;
+ if (*i1 != 3)
+ ++failures;
+
+ ++ ++i1;
+ if (*i1 != 5)
+ ++failures;
+
+ --i1;
+ if (*i1 != 4)
+ ++failures;
+
+ if (*i1-- != 4)
+ ++failures;
+ if (*i1 != 3)
+ ++failures;
+
+ -- --i1;
+ if (*i1 != 1)
+ ++failures;
+
+ std::vector<int>::iterator i2;
+ i2 = v.end();
+ std::iterator_traits<std::vector<int>::iterator>::difference_type d1;
+ d1 = i2 - i1;
+ if (d1 != 5)
+ ++failures;
+
+ std::iterator_traits<std::vector<int>::iterator>::value_type v1;
+ v1 = i1[0];
+ if (v1 != 1)
+ ++failures;
+
+ std::iterator_traits<std::vector<int>::iterator>::reference r1(i1[0]);
+ if (r1 != 1)
+ ++failures;
+ r1 = 9;
+ if (r1 != 9)
+ ++failures;
+ r1 = 1;
+
+ if ((i1 != i2) != true)
+ ++failures;
+ if ((i1 == i2) != false)
+ ++failures;
+ if ((i1 < i2) != true)
+ ++failures;
+ if ((i1 > i2) != false)
+ ++failures;
+ if ((i1 <= i2) != true)
+ ++failures;
+ if ((i1 >= i2) != false)
+ ++failures;
+
+ std::vector<int>::iterator i3;
+ i3 = i1;
+ if ((i3 == i1) != true)
+ ++failures;
+
+ i3 += 5;
+ if ((i3 == i2) != true)
+ ++failures;
+
+ i3 -= 5;
+ if ((i3 == i1) != true)
+ ++failures;
+
+ if (i3 + 5 != i2)
+ ++failures;
+
+ if (5 + i3 != i2)
+ ++failures;
+
+ if (i2 - 5 != i3)
+ ++failures;
+
+ if (i1[0] != 1)
+ ++failures;
+
+ i1[4] = 9;
+ if (i2[-1] != 9)
+ ++failures;
+ i1[4] = 5;
+
+ i1[2] = 9;
+ if (i2[-3] != 9)
+ ++failures;
+ i1[2] = 3;
+
+ std::vector<int>::const_iterator ci1(v.begin());
+ if (*ci1 != 1)
+ ++failures;
+
+ ++ci1;
+ if (*ci1 != 2)
+ ++failures;
+
+ if (*ci1++ != 2)
+ ++failures;
+ if (*ci1 != 3)
+ ++failures;
+
+ ++ ++ci1;
+ if (*ci1 != 5)
+ ++failures;
+
+ --ci1;
+ if (*ci1 != 4)
+ ++failures;
+
+ if (*ci1-- != 4)
+ ++failures;
+ if (*ci1 != 3)
+ ++failures;
+
+ -- --ci1;
+ if (*ci1 != 1)
+ ++failures;
+
+ std::vector<int>::const_iterator ci2;
+ ci2 = v.end();
+ std::iterator_traits<std::vector<int>::const_iterator>::difference_type d2;
+ d2 = ci2 - ci1;
+ if (d2 != 5)
+ ++failures;
+
+ std::iterator_traits<std::vector<int>::const_iterator>::value_type v2;
+ v2 = ci1[0];
+ if (v2 != 1)
+ ++failures;
+
+ std::iterator_traits<std::vector<int>::const_iterator>::reference
+ r2(ci1[0]);
+ if (r2 != 1)
+ ++failures;
+
+ if ((ci1 != ci2) != true)
+ ++failures;
+ if ((ci1 == ci2) != false)
+ ++failures;
+ if ((ci1 < ci2) != true)
+ ++failures;
+ if ((ci1 > ci2) != false)
+ ++failures;
+ if ((ci1 <= ci2) != true)
+ ++failures;
+ if ((ci1 >= ci2) != false)
+ ++failures;
+
+ std::vector<int>::const_iterator ci3;
+ ci3 = ci1;
+ if ((ci3 == ci1) != true)
+ ++failures;
+
+ ci3 += 5;
+ if ((ci3 == ci2) != true)
+ ++failures;
+
+ ci3 -= 5;
+ if ((ci3 == ci1) != true)
+ ++failures;
+
+ if (ci3 + 5 != ci2)
+ ++failures;
+
+ if (5 + ci3 != ci2)
+ ++failures;
+
+ if (ci2 - 5 != ci3)
+ ++failures;
+
+ if (ci1[2] != 3)
+ ++failures;
+
+ if (ci2[-1] != 5)
+ ++failures;
+
+ // iterator to const_iterator
+ std::vector<int>::const_iterator ci4(i1);
+ if ((ci4 == i1) != true)
+ ++failures;
+ if ((ci4 != i1) != false)
+ ++failures;
+ if ((ci4 < i1) != false)
+ ++failures;
+ if ((ci4 > i1) != false)
+ ++failures;
+ if ((ci4 <= i1) != true)
+ ++failures;
+ if ((ci4 >= i1) != true)
+ ++failures;
+ ci4 = i2;
+ if ((i2 == ci4) != true)
+ ++failures;
+ if ((i2 < ci4) != false)
+ ++failures;
+ if ((i2 > ci4) != false)
+ ++failures;
+ if ((i2 <= ci4) != true)
+ ++failures;
+ if ((i2 >= ci4) != true)
+ ++failures;
+
+ const std::vector<int> cv(v);
+ std::vector<int>::const_iterator ci5(cv.begin());
+ if (ci5[0] != 1)
+ ++failures;
+
+ std::vector<std::string> vs;
+ vs.push_back(std::string("abc"));
+ std::vector<std::string>::iterator ivs(vs.begin());
+ if (ivs->c_str()[1] != 'b')
+ ++failures;
+
+ return failures;
+}
+
+int
+reverse_stuff()
+{
+ int failures(0);
+
+ std::string s("abcde");
+
+ std::string::reverse_iterator ri(s.rbegin());
+ if (*ri != 'e')
+ ++failures;
+
+ std::iterator_traits<std::string::reverse_iterator>::difference_type d;
+ d = s.rend() - ri;
+ if (d != 5)
+ ++failures;
+
+ const std::string cs("abcde");
+ std::string::const_reverse_iterator cri(cs.rend());
+ if (cri - 5 != cs.rbegin())
+ ++failures;
+
+ return failures;
+}
+
+// the following should be compiler errors
+// flag runtime errors in case they slip through the compiler
+int
+wrong_stuff()
+{
+ int failures(0);
+
+#ifdef ITER24_F1
+ extern void f(std::vector<std::string*>::iterator);
+ std::vector<std::string*> vs[2];
+ f(vs); // address of array is not an iterator
+ failures++;
+#endif
+
+#ifdef ITER24_F2
+ std::string s;
+ char *i = s.begin(); // begin() doesn't return a pointer
+ failures++;
+#endif
+
+#ifdef ITER24_F3
+ std::string::const_iterator ci;
+ std::string::iterator i;
+ if (i - ci) // remove const_ is a warning
+ i++;
+ // failures++; only a warning
+#endif
+
+#ifdef ITER24_F4
+ std::vector<char>::iterator iv;
+ std::string::iterator is(iv);// vector<char> is not string
+ failures++;
+#endif
+
+#ifdef ITER24_F5
+ std::vector<char>::iterator iv;
+ std::string::iterator is;
+ if (iv == is) // vector<char> is not string
+ ++iv;
+ failures++;
+#endif
+
+#ifdef ITER24_F6
+ std::vector<char>::const_iterator ci;
+ std::vector<char>::iterator i = ci; // remove const_ is a warning
+ ++i;
+ // failures++; only a warning
+#endif
+
+#ifdef ITER24_F7
+ std::vector<int> v(1);
+ std::vector<int>::const_iterator ci(v.begin());
+ *ci = 1; // cannot assign through const_iterator
+ failures++;
+#endif
+
+#ifdef ITER24_F8
+ std::vector<const int> v(1);
+ std::vector<const int>::reference r(v.begin()[0]);
+ r = 1; // cannot assign through reference to const
+ failures++;
+#endif
+
+ return failures;
+}
+
+// libstdc++/6642
+int
+test6642()
+{
+ std::string s;
+ std::string::iterator it = s.begin();
+ std::string::const_iterator cit = s.begin();
+
+ return it - cit;
+}
+
+int
+main()
+{
+ int failures(0);
+
+ failures += string_stuff();
+
+ failures += vector_stuff();
+
+ failures += reverse_stuff();
+
+ failures += wrong_stuff();
+
+ failures += test6642();
+
+ VERIFY(failures == 0);
+ return 0;
+}
+++ /dev/null
-// { dg-do compile }
-// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 24.4.1.2 Reverse iterators
-
-#include <iterator>
-
-void test01()
-{
- using namespace std;
-
- // Check for required base class.
- long l;
- typedef reverse_iterator<long*> test_iterator;
- typedef iterator<iterator_traits<long*>::iterator_category,
- iterator_traits<long*>::value_type,
- iterator_traits<long*>::difference_type,
- iterator_traits<long*>::pointer,
- iterator_traits<long*>::reference>
- base_iterator;
- test_iterator r_it(&l);
- base_iterator* base __attribute__((unused)) = &r_it;
-
- // Check for required typedefs
- typedef test_iterator::value_type value_type;
- typedef test_iterator::difference_type difference_type;
- typedef test_iterator::pointer pointer;
- typedef test_iterator::reference reference;
- typedef test_iterator::iterator_category iteratory_category;
-}
-
-// Make sure iterator can be instantiated.
-template class std::reverse_iterator<int*>;
5 + it02;
}
-// Check data member 'current' accessible.
-class test_dm : public std::reverse_iterator<int*>
-{
- int* p;
-public:
- test_dm(): p(current) { }
-};
-
int main()
{
test02();
--- /dev/null
+// { dg-do compile }
+// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.1.2 Reverse iterators
+
+#include <iterator>
+
+void test01()
+{
+ using namespace std;
+
+ // Check for required base class.
+ long l;
+ typedef reverse_iterator<long*> test_iterator;
+ typedef iterator<iterator_traits<long*>::iterator_category,
+ iterator_traits<long*>::value_type,
+ iterator_traits<long*>::difference_type,
+ iterator_traits<long*>::pointer,
+ iterator_traits<long*>::reference>
+ base_iterator;
+ test_iterator r_it(&l);
+ base_iterator* base __attribute__((unused)) = &r_it;
+}
--- /dev/null
+// { dg-do compile }
+// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.1.2 Reverse iterators
+
+#include <iterator>
+
+// Check data member 'current' accessible.
+class test_dm : public std::reverse_iterator<int*>
+{
+ int* p;
+public:
+ test_dm(): p(current) { }
+};
--- /dev/null
+// { dg-do compile }
+// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.1.2 Reverse iterators
+
+#include <iterator>
+
+// Make sure iterator can be instantiated.
+template class std::reverse_iterator<int*>;
--- /dev/null
+// { dg-do compile }
+// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 24.4.1.2 Reverse iterators
+
+#include <iterator>
+
+void test01()
+{
+ using namespace std;
+
+ // Check for required typedefs
+ typedef reverse_iterator<long*> test_iterator;
+ typedef test_iterator::value_type value_type;
+ typedef test_iterator::difference_type difference_type;
+ typedef test_iterator::pointer pointer;
+ typedef test_iterator::reference reference;
+ typedef test_iterator::iterator_category iteratory_category;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <algorithm>
+
+namespace std {
+ // 25.1, non-modifying sequence operations:
+ template<class InputIterator, class Function>
+ Function for_each(InputIterator first, InputIterator last, Function f);
+ template<class InputIterator, class T>
+ InputIterator find(InputIterator first, InputIterator last,
+ const T& value);
+ template<class InputIterator, class Predicate>
+ InputIterator find_if(InputIterator first, InputIterator last,
+ Predicate pred);
+ template<class ForwardIterator1, class ForwardIterator2>
+ ForwardIterator1
+ find_end(ForwardIterator1 first1, ForwardIterator1 last1,
+ ForwardIterator2 first2, ForwardIterator2 last2);
+ template<class ForwardIterator1, class ForwardIterator2,
+ class BinaryPredicate>
+ ForwardIterator1
+ find_end(ForwardIterator1 first1, ForwardIterator1 last1,
+ ForwardIterator2 first2, ForwardIterator2 last2,
+ BinaryPredicate pred);
+ template<class ForwardIterator1, class ForwardIterator2>
+ ForwardIterator1
+ find_first_of(ForwardIterator1 first1, ForwardIterator1 last1,
+ ForwardIterator2 first2, ForwardIterator2 last2);
+ template<class ForwardIterator1, class ForwardIterator2,
+ class BinaryPredicate>
+ ForwardIterator1
+ find_first_of(ForwardIterator1 first1, ForwardIterator1 last1,
+ ForwardIterator2 first2, ForwardIterator2 last2,
+ BinaryPredicate pred);
+
+template<class ForwardIterator>
+ ForwardIterator adjacent_find(ForwardIterator first,
+ ForwardIterator last);
+
+template<class ForwardIterator, class BinaryPredicate>
+ ForwardIterator adjacent_find(ForwardIterator first,
+ ForwardIterator last, BinaryPredicate pred);
+
+template<class InputIterator, class T>
+ typename iterator_traits<InputIterator>::difference_type
+ count(InputIterator first, InputIterator last, const T& value);
+
+template<class InputIterator, class Predicate>
+ typename iterator_traits<InputIterator>::difference_type
+ count_if(InputIterator first, InputIterator last, Predicate pred);
+template<class InputIterator1, class InputIterator2>
+ pair<InputIterator1, InputIterator2>
+ mismatch(InputIterator1 first1, InputIterator1 last1,
+ InputIterator2 first2);
+template
+ <class InputIterator1, class InputIterator2, class BinaryPredicate>
+ pair<InputIterator1, InputIterator2>
+ mismatch(InputIterator1 first1, InputIterator1 last1,
+ InputIterator2 first2, BinaryPredicate pred);
+template<class InputIterator1, class InputIterator2>
+ bool equal(InputIterator1 first1, InputIterator1 last1,
+ InputIterator2 first2);
+template
+ <class InputIterator1, class InputIterator2, class BinaryPredicate>
+ bool equal(InputIterator1 first1, InputIterator1 last1,
+ InputIterator2 first2, BinaryPredicate pred);
+
+template<class ForwardIterator1, class ForwardIterator2>
+ ForwardIterator1 search
+ (ForwardIterator1 first1, ForwardIterator1 last1,
+ ForwardIterator2 first2, ForwardIterator2 last2);
+
+template<class ForwardIterator1, class ForwardIterator2,
+ class BinaryPredicate>
+ ForwardIterator1 search
+ (ForwardIterator1 first1, ForwardIterator1 last1,
+ ForwardIterator2 first2, ForwardIterator2 last2,
+ BinaryPredicate pred);
+
+template<class ForwardIterator, class Size, class T>
+ ForwardIterator search_n(ForwardIterator first, ForwardIterator last,
+ Size count, const T& value);
+
+template <class ForwardIterator, class Size, class T, class BinaryPredicate>
+ ForwardIterator search_n(ForwardIterator first, ForwardIterator last,
+ Size count, const T& value,
+ BinaryPredicate pred);
+
+// 25.2, modifying sequence operations:
+// 25.2.1, copy:
+template<class InputIterator, class OutputIterator>
+ OutputIterator copy(InputIterator first, InputIterator last,
+ OutputIterator result);
+template<class BidirectionalIterator1, class BidirectionalIterator2>
+ BidirectionalIterator2
+ copy_backward
+ (BidirectionalIterator1 first, BidirectionalIterator1 last,
+ BidirectionalIterator2 result);
+// 25.2.2, swap:
+template<class T> void swap(T& a, T& b);
+template<class ForwardIterator1, class ForwardIterator2>
+ ForwardIterator2 swap_ranges(ForwardIterator1 first1,
+ ForwardIterator1 last1, ForwardIterator2 first2);
+template<class ForwardIterator1, class ForwardIterator2>
+ void iter_swap(ForwardIterator1 a, ForwardIterator2 b);
+template<class InputIterator, class OutputIterator, class UnaryOperation>
+ OutputIterator transform(InputIterator first, InputIterator last,
+ OutputIterator result, UnaryOperation op);
+template<class InputIterator1, class InputIterator2, class OutputIterator,
+ class BinaryOperation>
+ OutputIterator transform(InputIterator1 first1, InputIterator1 last1,
+ InputIterator2 first2, OutputIterator result,
+ BinaryOperation binary_op);
+template<class ForwardIterator, class T>
+ void replace(ForwardIterator first, ForwardIterator last,
+ const T& old_value, const T& new_value);
+template<class ForwardIterator, class Predicate, class T>
+ void replace_if(ForwardIterator first, ForwardIterator last,
+ Predicate pred, const T& new_value);
+template<class InputIterator, class OutputIterator, class T>
+ OutputIterator replace_copy(InputIterator first, InputIterator last,
+ OutputIterator result,
+ const T& old_value, const T& new_value);
+template<class Iterator, class OutputIterator, class Predicate, class T>
+ OutputIterator replace_copy_if(Iterator first, Iterator last,
+ OutputIterator result,
+ Predicate pred, const T& new_value);
+template<class ForwardIterator, class T>
+ void fill(ForwardIterator first, ForwardIterator last, const T& value);
+template<class OutputIterator, class Size, class T>
+ void fill_n(OutputIterator first, Size n, const T& value);
+template<class ForwardIterator, class Generator>
+ void generate(ForwardIterator first, ForwardIterator last,
+ Generator gen);
+template<class OutputIterator, class Size, class Generator>
+ void generate_n(OutputIterator first, Size n, Generator gen);
+
+template<class ForwardIterator, class T>
+ ForwardIterator remove(ForwardIterator first, ForwardIterator last,
+ const T& value);
+template<class ForwardIterator, class Predicate>
+ ForwardIterator remove_if(ForwardIterator first, ForwardIterator last,
+ Predicate pred);
+template<class InputIterator, class OutputIterator, class T>
+ OutputIterator remove_copy(InputIterator first, InputIterator last,
+ OutputIterator result, const T& value);
+template<class InputIterator, class OutputIterator, class Predicate>
+ OutputIterator remove_copy_if(InputIterator first, InputIterator last,
+ OutputIterator result, Predicate pred);
+template<class ForwardIterator>
+ ForwardIterator unique(ForwardIterator first, ForwardIterator last);
+template<class ForwardIterator, class BinaryPredicate>
+ ForwardIterator unique(ForwardIterator first, ForwardIterator last,
+ BinaryPredicate pred);
+template<class InputIterator, class OutputIterator>
+ OutputIterator unique_copy(InputIterator first, InputIterator last,
+ OutputIterator result);
+template<class InputIterator, class OutputIterator, class BinaryPredicate>
+ OutputIterator unique_copy(InputIterator first, InputIterator last,
+ OutputIterator result, BinaryPredicate pred);
+template<class BidirectionalIterator>
+ void reverse(BidirectionalIterator first, BidirectionalIterator last);
+template<class BidirectionalIterator, class OutputIterator>
+ OutputIterator reverse_copy(BidirectionalIterator first,
+ BidirectionalIterator last,
+ OutputIterator result);
+template<class ForwardIterator>
+ void rotate(ForwardIterator first, ForwardIterator middle,
+ ForwardIterator last);
+template<class ForwardIterator, class OutputIterator>
+ OutputIterator rotate_copy
+ (ForwardIterator first, ForwardIterator middle,
+ ForwardIterator last, OutputIterator result);
+template<class RandomAccessIterator>
+ void random_shuffle(RandomAccessIterator first,
+ RandomAccessIterator last);
+template<class RandomAccessIterator, class RandomNumberGenerator>
+ void random_shuffle(RandomAccessIterator first,
+ RandomAccessIterator last,
+ RandomNumberGenerator& rand);
+// 25.2.12, partitions:
+template<class BidirectionalIterator, class Predicate>
+ BidirectionalIterator partition(BidirectionalIterator first,
+ BidirectionalIterator last,
+ Predicate pred);
+template<class BidirectionalIterator, class Predicate>
+ BidirectionalIterator stable_partition(BidirectionalIterator first,
+ BidirectionalIterator last,
+ Predicate pred);
+// 25.3, sorting and related operations:
+// 25.3.1, sorting:
+template<class RandomAccessIterator>
+ void sort(RandomAccessIterator first, RandomAccessIterator last);
+template<class RandomAccessIterator, class Compare>
+ void sort(RandomAccessIterator first, RandomAccessIterator last,
+ Compare comp);
+template<class RandomAccessIterator>
+ void stable_sort(RandomAccessIterator first, RandomAccessIterator last);
+template<class RandomAccessIterator, class Compare>
+ void stable_sort(RandomAccessIterator first, RandomAccessIterator last,
+ Compare comp);
+template<class RandomAccessIterator>
+ void partial_sort(RandomAccessIterator first,
+ RandomAccessIterator middle,
+ RandomAccessIterator last);
+template<class RandomAccessIterator, class Compare>
+ void partial_sort(RandomAccessIterator first,
+ RandomAccessIterator middle,
+ RandomAccessIterator last, Compare comp);
+template<class InputIterator, class RandomAccessIterator>
+ RandomAccessIterator
+ partial_sort_copy(InputIterator first, InputIterator last,
+ RandomAccessIterator result_first,
+ RandomAccessIterator result_last);
+template<class InputIterator, class RandomAccessIterator, class Compare>
+ RandomAccessIterator
+ partial_sort_copy(InputIterator first, InputIterator last,
+ RandomAccessIterator result_first,
+ RandomAccessIterator result_last,
+ Compare comp);
+template<class RandomAccessIterator>
+ void nth_element(RandomAccessIterator first, RandomAccessIterator nth,
+ RandomAccessIterator last);
+template<class RandomAccessIterator, class Compare>
+ void nth_element(RandomAccessIterator first, RandomAccessIterator nth,
+ RandomAccessIterator last, Compare comp);
+// 25.3.3, binary search:
+template<class ForwardIterator, class T>
+ ForwardIterator lower_bound(ForwardIterator first, ForwardIterator last,
+ const T& value);
+template<class ForwardIterator, class T, class Compare>
+ ForwardIterator lower_bound(ForwardIterator first, ForwardIterator last,
+ const T& value, Compare comp);
+template<class ForwardIterator, class T>
+ ForwardIterator upper_bound(ForwardIterator first, ForwardIterator last,
+ const T& value);
+template<class ForwardIterator, class T, class Compare>
+ ForwardIterator upper_bound(ForwardIterator first, ForwardIterator last,
+ const T& value, Compare comp);
+template<class ForwardIterator, class T>
+ pair<ForwardIterator, ForwardIterator>
+ equal_range(ForwardIterator first, ForwardIterator last,
+ const T& value);
+template<class ForwardIterator, class T, class Compare>
+ pair<ForwardIterator, ForwardIterator>
+ equal_range(ForwardIterator first, ForwardIterator last,
+ const T& value, Compare comp);
+template<class ForwardIterator, class T>
+ bool binary_search(ForwardIterator first, ForwardIterator last,
+ const T& value);
+template<class ForwardIterator, class T, class Compare>
+ bool binary_search(ForwardIterator first, ForwardIterator last,
+ const T& value, Compare comp);
+// 25.3.4, merge:
+template<class InputIterator1, class InputIterator2, class OutputIterator>
+ OutputIterator merge(InputIterator1 first1, InputIterator1 last1,
+ InputIterator2 first2, InputIterator2 last2,
+ OutputIterator result);
+template<class InputIterator1, class InputIterator2, class OutputIterator,
+ class Compare>
+ OutputIterator merge(InputIterator1 first1, InputIterator1 last1,
+ InputIterator2 first2, InputIterator2 last2,
+ OutputIterator result, Compare comp);
+template<class BidirectionalIterator>
+ void inplace_merge(BidirectionalIterator first,
+ BidirectionalIterator middle,
+ BidirectionalIterator last);
+template<class BidirectionalIterator, class Compare>
+ void inplace_merge(BidirectionalIterator first,
+ BidirectionalIterator middle,
+ BidirectionalIterator last, Compare comp);
+// 25.3.5, set operations:
+template<class InputIterator1, class InputIterator2>
+ bool includes(InputIterator1 first1, InputIterator1 last1,
+ InputIterator2 first2, InputIterator2 last2);
+template<class InputIterator1, class InputIterator2, class Compare>
+ bool includes
+ (InputIterator1 first1, InputIterator1 last1,
+ InputIterator2 first2, InputIterator2 last2, Compare comp);
+template<class InputIterator1, class InputIterator2, class OutputIterator>
+ OutputIterator set_union(InputIterator1 first1, InputIterator1 last1,
+ InputIterator2 first2, InputIterator2 last2,
+ OutputIterator result);
+template<class InputIterator1, class InputIterator2, class OutputIterator,
+ class Compare>
+ OutputIterator set_union(InputIterator1 first1, InputIterator1 last1,
+ InputIterator2 first2, InputIterator2 last2,
+ OutputIterator result, Compare comp);
+template<class InputIterator1, class InputIterator2, class OutputIterator>
+ OutputIterator set_intersection
+ (InputIterator1 first1, InputIterator1 last1,
+ InputIterator2 first2, InputIterator2 last2,
+ OutputIterator result);
+template<class InputIterator1, class InputIterator2, class OutputIterator,
+ class Compare>
+ OutputIterator set_intersection
+ (InputIterator1 first1, InputIterator1 last1,
+ InputIterator2 first2, InputIterator2 last2,
+ OutputIterator result, Compare comp);
+template<class InputIterator1, class InputIterator2, class OutputIterator>
+ OutputIterator set_difference
+ (InputIterator1 first1, InputIterator1 last1,
+ InputIterator2 first2, InputIterator2 last2,
+ OutputIterator result);
+template<class InputIterator1, class InputIterator2, class OutputIterator,
+ class Compare>
+ OutputIterator set_difference
+ (InputIterator1 first1, InputIterator1 last1,
+ InputIterator2 first2, InputIterator2 last2,
+ OutputIterator result, Compare comp);
+template<class InputIterator1, class InputIterator2, class OutputIterator>
+ OutputIterator
+ set_symmetric_difference(InputIterator1 first1, InputIterator1 last1,
+ InputIterator2 first2, InputIterator2 last2,
+ OutputIterator result);
+template<class InputIterator1, class InputIterator2, class OutputIterator,
+ class Compare>
+ OutputIterator
+ set_symmetric_difference(InputIterator1 first1, InputIterator1 last1,
+ InputIterator2 first2, InputIterator2 last2,
+ OutputIterator result, Compare comp);
+// 25.3.6, heap operations:
+template<class RandomAccessIterator>
+ void push_heap(RandomAccessIterator first, RandomAccessIterator last);
+template<class RandomAccessIterator, class Compare>
+ void push_heap(RandomAccessIterator first, RandomAccessIterator last,
+ Compare comp);
+template<class RandomAccessIterator>
+ void pop_heap(RandomAccessIterator first, RandomAccessIterator last);
+template<class RandomAccessIterator, class Compare>
+ void pop_heap(RandomAccessIterator first, RandomAccessIterator last,
+ Compare comp);
+template<class RandomAccessIterator>
+ void make_heap(RandomAccessIterator first, RandomAccessIterator last);
+template<class RandomAccessIterator, class Compare>
+ void make_heap(RandomAccessIterator first, RandomAccessIterator last,
+ Compare comp);
+template<class RandomAccessIterator>
+ void sort_heap(RandomAccessIterator first, RandomAccessIterator last);
+template<class RandomAccessIterator, class Compare>
+ void sort_heap(RandomAccessIterator first, RandomAccessIterator last,
+ Compare comp);
+
+ // 25.3.7, minimum and maximum:
+ template<class T> const T& min(const T& a, const T& b);
+ template<class T, class Compare>
+ const T& min(const T& a, const T& b, Compare comp);
+ template<class T> const T& max(const T& a, const T& b);
+ template<class T, class Compare>
+ const T& max(const T& a, const T& b, Compare comp);
+ template<class ForwardIterator>
+ ForwardIterator min_element
+ (ForwardIterator first, ForwardIterator last);
+ template<class ForwardIterator, class Compare>
+ ForwardIterator min_element(ForwardIterator first, ForwardIterator last,
+ Compare comp);
+ template<class ForwardIterator>
+ ForwardIterator max_element
+ (ForwardIterator first, ForwardIterator last);
+ template<class ForwardIterator, class Compare>
+ ForwardIterator max_element(ForwardIterator first, ForwardIterator last,
+ Compare comp);
+ template<class InputIterator1, class InputIterator2>
+ bool lexicographical_compare
+ (InputIterator1 first1, InputIterator1 last1,
+ InputIterator2 first2, InputIterator2 last2);
+ template<class InputIterator1, class InputIterator2, class Compare>
+ bool lexicographical_compare
+ (InputIterator1 first1, InputIterator1 last1,
+ InputIterator2 first2, InputIterator2 last2,
+ Compare comp);
+
+ // 25.3.9, permutations
+ template<class BidirectionalIterator>
+ bool next_permutation(BidirectionalIterator first,
+ BidirectionalIterator last);
+ template<class BidirectionalIterator, class Compare>
+ bool next_permutation(BidirectionalIterator first,
+ BidirectionalIterator last, Compare comp);
+ template<class BidirectionalIterator>
+ bool prev_permutation(BidirectionalIterator first,
+ BidirectionalIterator last);
+ template<class BidirectionalIterator, class Compare>
+ bool prev_permutation(BidirectionalIterator first,
+ BidirectionalIterator last, Compare comp);
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstdlib>
+
+namespace gnu
+{
+ using std::bsearch;
+ using std::qsort;
+}
+++ /dev/null
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-#include <cmath>
-#include <testsuite_hooks.h>
-
-#if _GLIBCXX_USE_C99_MATH
-// libstdc++/19322
-void test01()
-{
- bool test __attribute__((unused)) = true;
-
- VERIFY( !std::isnan(3.0) );
-}
-#endif
-
-int main()
-{
-#if _GLIBCXX_USE_C99_MATH
- test01();
-#endif
- return 0;
-}
+++ /dev/null
-// 2001-04-06 gdr
-
-// Copyright (C) 2001, 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// { dg-do compile { xfail uclibc } }
-// { dg-excess-errors "" { target uclibc } }
-
-#include <cmath>
-
-void fpclassify() { }
-
-void isfinite() { }
-
-void isinf() { }
-
-void isnan() { }
-
-void isnormal() { }
-
-void signbit() { }
-
-void isgreater() { }
-
-void isgreaterequal() { }
-
-void isless() { }
-
-void islessequal() { }
-
-void islessgreater() { }
-
-void isunordered() { }
-
-#if _GLIBCXX_USE_C99_MATH
-template <typename _Tp>
- void test_c99_classify()
- {
- bool test __attribute__((unused)) = true;
-
- typedef _Tp fp_type;
- fp_type f1 = 1.0;
- fp_type f2 = 3.0;
- int res = 0;
-
- res = std::fpclassify(f1);
- res = std::isfinite(f2);
- res = std::isinf(f1);
- res = std::isnan(f2);
- res = std::isnormal(f1);
- res = std::signbit(f2);
- res = std::isgreater(f1, f2);
- res = std::isgreaterequal(f1, f2);
- res = std::isless(f1, f2);
- res = std::islessequal(f1,f2);
- res = std::islessgreater(f1, f2);
- res = std::isunordered(f1, f2);
- }
-#endif
-
-int main()
-{
-#if _GLIBCXX_USE_C99_MATH
- test_c99_classify<float>();
- test_c99_classify<double>();
-#endif
- return 0;
-}
+++ /dev/null
-// 2001-04-06 gdr
-
-// Copyright (C) 2001, 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// { dg-do compile { xfail { { *-*-linux* *-*-darwin* } || uclibc } } }
-// { dg-excess-errors "" { target { { *-*-linux* *-*-darwin* } || uclibc } } }
-
-#include <math.h>
-
-void fpclassify() { }
-
-void isfinite() { }
-
-void isinf() { }
-
-void isnan() { }
-
-void isnormal() { }
-
-void signbit() { }
-
-void isgreater() { }
-
-void isgreaterequal() { }
-
-void isless() { }
-
-void islessequal() { }
-
-void islessgreater() { }
-
-void isunordered() { }
-
+++ /dev/null
-// 1999-06-05
-// Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
-
-// Copyright (C) 2000, 1999 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-#include <cmath>
-#include <testsuite_hooks.h>
-
-// test compilation.
-int
-test01()
-{
- float a = 1.f;
- float b;
- std::modf(a, &b);
- return 0;
-}
-
-// need more extravagant checks than this, of course, but this used to core...
-int
-test02()
-{
- std::sin(static_cast<float>(0));
- return 0;
-}
-
-// as did this.
-int
-test03()
-{
- double powtest __attribute__((unused)) = std::pow(2., 0);
- return 0;
-}
-
-// this used to abort.
-int
-test04()
-{
- bool test __attribute__((unused)) = true;
- float x[2] = {1, 2};
- float y = 3.4;
- std::modf(y, &x[0]);
- VERIFY(x[1] == 2);
- return 0;
-}
-
-int
-main()
-{
- test01();
- test02();
- test03();
- test04();
- return 0;
-}
+++ /dev/null
-// Inspired by libstdc++/7680 & 26_numerics/c_math.cc, 2003-04-12 ljr
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// { dg-do link }
-// { dg-options "-D_XOPEN_SOURCE" { target *-*-freebsd* } }
-
-#include <cmath>
-
-int
-test01()
-{
- float a = 1.f;
- float b;
- std::modf(a, &b);
- return 0;
-}
-
-int
-test02 ()
-{
- float a = 0.0f;
- float b __attribute__((unused)) = std::acos(a);
- return 0;
-}
-
-int
-main()
-{
- test01();
- test02();
- return 0;
-}
+++ /dev/null
-// Copyright (C) 1999, 2002 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// Test to see whether the host provides its own (inline) view of fabs.
-// Origin: Kurt Garloff <kurt@garloff.de>, 2001-05-24
-// dg-do link
-
-#include <cmath>
-#include <cstdio>
-
-typedef double (*realfn) (double);
-
-using std::fabs;
-
-int main ()
-{
- double a = fabs (-2.4);
- realfn myfn = fabs;
- double b = myfn (-2.5);
- std::printf ("%f, %f, %p\n", a, b, myfn);
- return 0;
-}
+++ /dev/null
-// PR 3181
-// Origin: pete@toyon.com
-
-#include <cmath>
-
-int main()
-{
- int i = -1;
- int j = 9;
- double ans;
- ans = std::acos(i);
- ans = std::asin(i);
- ans = std::atan(i);
- ans = std::atan2(i, j);
- ans = std::cos(i);
- ans = std::cosh(i);
- ans = std::exp(i);
- ans = std::fabs(i);
- ans = std::floor(i);
- ans = std::log(i);
- ans = std::log10(i);
- ans = std::sqrt(i);
- ans = std::sin(i);
- ans = std::sinh(j);
- ans = std::tan(i);
- ans = std::tanh(i);
-}
+++ /dev/null
-// 2005-02-13 Paolo Carlini <pcarlini@suse.de>
-
-// Copyright (C) 2005 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 26.5 C Library
-
-#include <cmath>
-#include <testsuite_hooks.h>
-
-template<typename T>
- void test01_do()
- {
- using namespace std;
- bool test __attribute__((unused)) = true;
-
- VERIFY( pow(T(1.0), 0) == T(1.0) );
- VERIFY( pow(T(2.0), 0) == T(1.0) );
- VERIFY( pow(T(-1.0), 0) == T(1.0) );
- VERIFY( pow(T(-4.0), 0) == T(1.0) );
-
- VERIFY( pow(T(1.0), 1) == T(1.0) );
- VERIFY( pow(T(2.0), 1) == T(2.0) );
- VERIFY( pow(T(-1.0), 1) == T(-1.0) );
- VERIFY( pow(T(-4.0), 1) == T(-4.0) );
-
- VERIFY( pow(T(1.0), -1) == T(1.0) / T(1.0) );
- VERIFY( pow(T(2.0), -1) == T(1.0) / T(2.0) );
- VERIFY( pow(T(-1.0), -1) == T(1.0) / T(-1.0) );
- VERIFY( pow(T(-4.0), -1) == T(1.0) / T(-4.0) );
-
- VERIFY( pow(T(1.0), 2) == T(1.0) * T(1.0) );
- VERIFY( pow(T(2.0), 2) == T(2.0) * T(2.0) );
- VERIFY( pow(T(-1.0), 2) == T(-1.0) * T(-1.0) );
- VERIFY( pow(T(-4.0), 2) == T(-4.0) * T(-4.0) );
- }
-
-void test01()
-{
- test01_do<float>();
- test01_do<double>();
- test01_do<long double>();
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-#include <cstdlib>
-#include <testsuite_hooks.h>
-
-#if _GLIBCXX_USE_C99
-// libstdc++/13943
-void test01()
-{
- using namespace std;
- bool test __attribute__((unused)) = true;
-
- VERIFY( llabs(-3) == 3 );
-
- lldiv_t q = lldiv(6, 4);
- VERIFY( q.quot == 1 );
- VERIFY( q.rem == 2 );
-}
-#endif
-
-int main()
-{
-#if _GLIBCXX_USE_C99
- test01();
-#endif
- return 0;
-}
--- /dev/null
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <cmath>
+#include <testsuite_hooks.h>
+
+#if _GLIBCXX_USE_C99_MATH
+// libstdc++/19322
+void test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ VERIFY( !std::isnan(3.0) );
+}
+#endif
+
+int main()
+{
+#if _GLIBCXX_USE_C99_MATH
+ test01();
+#endif
+ return 0;
+}
--- /dev/null
+// 2001-04-06 gdr
+
+// Copyright (C) 2001, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// { dg-do compile { xfail uclibc } }
+// { dg-excess-errors "" { target uclibc } }
+
+#include <cmath>
+
+void fpclassify() { }
+
+void isfinite() { }
+
+void isinf() { }
+
+void isnan() { }
+
+void isnormal() { }
+
+void signbit() { }
+
+void isgreater() { }
+
+void isgreaterequal() { }
+
+void isless() { }
+
+void islessequal() { }
+
+void islessgreater() { }
+
+void isunordered() { }
+
+#if _GLIBCXX_USE_C99_MATH
+template <typename _Tp>
+ void test_c99_classify()
+ {
+ bool test __attribute__((unused)) = true;
+
+ typedef _Tp fp_type;
+ fp_type f1 = 1.0;
+ fp_type f2 = 3.0;
+ int res = 0;
+
+ res = std::fpclassify(f1);
+ res = std::isfinite(f2);
+ res = std::isinf(f1);
+ res = std::isnan(f2);
+ res = std::isnormal(f1);
+ res = std::signbit(f2);
+ res = std::isgreater(f1, f2);
+ res = std::isgreaterequal(f1, f2);
+ res = std::isless(f1, f2);
+ res = std::islessequal(f1,f2);
+ res = std::islessgreater(f1, f2);
+ res = std::isunordered(f1, f2);
+ }
+#endif
+
+int main()
+{
+#if _GLIBCXX_USE_C99_MATH
+ test_c99_classify<float>();
+ test_c99_classify<double>();
+#endif
+ return 0;
+}
--- /dev/null
+// 2001-04-06 gdr
+
+// Copyright (C) 2001, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// { dg-do compile { xfail { { *-*-linux* *-*-darwin* } || uclibc } } }
+// { dg-excess-errors "" { target { { *-*-linux* *-*-darwin* } || uclibc } } }
+
+#include <math.h>
+
+void fpclassify() { }
+
+void isfinite() { }
+
+void isinf() { }
+
+void isnan() { }
+
+void isnormal() { }
+
+void signbit() { }
+
+void isgreater() { }
+
+void isgreaterequal() { }
+
+void isless() { }
+
+void islessequal() { }
+
+void islessgreater() { }
+
+void isunordered() { }
+
--- /dev/null
+// 1999-06-05
+// Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
+
+// Copyright (C) 2000, 1999 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cmath>
+#include <testsuite_hooks.h>
+
+// test compilation.
+int
+test01()
+{
+ float a = 1.f;
+ float b;
+ std::modf(a, &b);
+ return 0;
+}
+
+// need more extravagant checks than this, of course, but this used to core...
+int
+test02()
+{
+ std::sin(static_cast<float>(0));
+ return 0;
+}
+
+// as did this.
+int
+test03()
+{
+ double powtest __attribute__((unused)) = std::pow(2., 0);
+ return 0;
+}
+
+// this used to abort.
+int
+test04()
+{
+ bool test __attribute__((unused)) = true;
+ float x[2] = {1, 2};
+ float y = 3.4;
+ std::modf(y, &x[0]);
+ VERIFY(x[1] == 2);
+ return 0;
+}
+
+int
+main()
+{
+ test01();
+ test02();
+ test03();
+ test04();
+ return 0;
+}
--- /dev/null
+// Inspired by libstdc++/7680 & 26_numerics/c_math.cc, 2003-04-12 ljr
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// { dg-do link }
+// { dg-options "-D_XOPEN_SOURCE" { target *-*-freebsd* } }
+
+#include <cmath>
+
+int
+test01()
+{
+ float a = 1.f;
+ float b;
+ std::modf(a, &b);
+ return 0;
+}
+
+int
+test02 ()
+{
+ float a = 0.0f;
+ float b __attribute__((unused)) = std::acos(a);
+ return 0;
+}
+
+int
+main()
+{
+ test01();
+ test02();
+ return 0;
+}
--- /dev/null
+// Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// Test to see whether the host provides its own (inline) view of fabs.
+// Origin: Kurt Garloff <kurt@garloff.de>, 2001-05-24
+// dg-do link
+
+#include <cmath>
+#include <cstdio>
+
+typedef double (*realfn) (double);
+
+using std::fabs;
+
+int main ()
+{
+ double a = fabs (-2.4);
+ realfn myfn = fabs;
+ double b = myfn (-2.5);
+ std::printf ("%f, %f, %p\n", a, b, myfn);
+ return 0;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cmath>
+
+namespace gnu
+{
+ using std::acos;
+ using std::asin;
+ using std::atan;
+ using std::atan2;
+ using std::ceil;
+ using std::cos;
+ using std::cosh;
+ using std::exp;
+ using std::fabs;
+ using std::floor;
+ using std::fmod;
+ using std::frexp;
+ using std::ldexp;
+ using std::log;
+ using std::log10;
+ using std::modf;
+ using std::pow;
+ using std::sin;
+ using std::sinh;
+ using std::sqrt;
+ using std::tan;
+ using std::tanh;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cmath>
+
+namespace gnu
+{
+#ifndef HUGE_VAL
+ #error "HUGE_VAL_must_be_a_macro"
+#endif
+}
--- /dev/null
+// PR 3181
+// Origin: pete@toyon.com
+
+#include <cmath>
+
+int main()
+{
+ int i = -1;
+ int j = 9;
+ double ans;
+ ans = std::acos(i);
+ ans = std::asin(i);
+ ans = std::atan(i);
+ ans = std::atan2(i, j);
+ ans = std::cos(i);
+ ans = std::cosh(i);
+ ans = std::exp(i);
+ ans = std::fabs(i);
+ ans = std::floor(i);
+ ans = std::log(i);
+ ans = std::log10(i);
+ ans = std::sqrt(i);
+ ans = std::sin(i);
+ ans = std::sinh(j);
+ ans = std::tan(i);
+ ans = std::tanh(i);
+}
--- /dev/null
+// 2005-02-13 Paolo Carlini <pcarlini@suse.de>
+
+// Copyright (C) 2005 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 26.5 C Library
+
+#include <cmath>
+#include <testsuite_hooks.h>
+
+template<typename T>
+ void test01_do()
+ {
+ using namespace std;
+ bool test __attribute__((unused)) = true;
+
+ VERIFY( pow(T(1.0), 0) == T(1.0) );
+ VERIFY( pow(T(2.0), 0) == T(1.0) );
+ VERIFY( pow(T(-1.0), 0) == T(1.0) );
+ VERIFY( pow(T(-4.0), 0) == T(1.0) );
+
+ VERIFY( pow(T(1.0), 1) == T(1.0) );
+ VERIFY( pow(T(2.0), 1) == T(2.0) );
+ VERIFY( pow(T(-1.0), 1) == T(-1.0) );
+ VERIFY( pow(T(-4.0), 1) == T(-4.0) );
+
+ VERIFY( pow(T(1.0), -1) == T(1.0) / T(1.0) );
+ VERIFY( pow(T(2.0), -1) == T(1.0) / T(2.0) );
+ VERIFY( pow(T(-1.0), -1) == T(1.0) / T(-1.0) );
+ VERIFY( pow(T(-4.0), -1) == T(1.0) / T(-4.0) );
+
+ VERIFY( pow(T(1.0), 2) == T(1.0) * T(1.0) );
+ VERIFY( pow(T(2.0), 2) == T(2.0) * T(2.0) );
+ VERIFY( pow(T(-1.0), 2) == T(-1.0) * T(-1.0) );
+ VERIFY( pow(T(-4.0), 2) == T(-4.0) * T(-4.0) );
+ }
+
+void test01()
+{
+ test01_do<float>();
+ test01_do<double>();
+ test01_do<long double>();
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <complex>
+
+namespace std {
+ template<class T> class complex;
+ template<> class complex<float>;
+ template<> class complex<double>;
+ template<> class complex<long double>;
+
+ // 26.2.6 operators:
+ template<class T>
+ complex<T> operator+(const complex<T>&, const complex<T>&);
+ template<class T> complex<T> operator+(const complex<T>&, const T&);
+ template<class T> complex<T> operator+(const T&, const complex<T>&);
+ template<class T> complex<T> operator-
+ (const complex<T>&, const complex<T>&);
+ template<class T> complex<T> operator-(const complex<T>&, const T&);
+ template<class T> complex<T> operator-(const T&, const complex<T>&);
+ template<class T> complex<T> operator*
+ (const complex<T>&, const complex<T>&);
+ template<class T> complex<T> operator*(const complex<T>&, const T&);
+ template<class T> complex<T> operator*(const T&, const complex<T>&);
+ template<class T> complex<T> operator/
+ (const complex<T>&, const complex<T>&);
+ template<class T> complex<T> operator/(const complex<T>&, const T&);
+ template<class T> complex<T> operator/(const T&, const complex<T>&);
+ template<class T> complex<T> operator+(const complex<T>&);
+ template<class T> complex<T> operator-(const complex<T>&);
+ template<class T> bool operator==
+ (const complex<T>&, const complex<T>&);
+ template<class T> bool operator==(const complex<T>&, const T&);
+ template<class T> bool operator==(const T&, const complex<T>&);
+
+
+ template<class T> bool operator!=(const complex<T>&, const complex<T>&);
+ template<class T> bool operator!=(const complex<T>&, const T&);
+ template<class T> bool operator!=(const T&, const complex<T>&);
+ template<class T, class charT, class traits>
+ basic_istream<charT, traits>&
+ operator>>(basic_istream<charT, traits>&, complex<T>&);
+ template<class T, class charT, class traits>
+ basic_ostream<charT, traits>&
+ operator<<(basic_ostream<charT, traits>&, const complex<T>&);
+
+ // 26.2.7 values:
+ template<class T> T real(const complex<T>&);
+ template<class T> T imag(const complex<T>&);
+ template<class T> T abs(const complex<T>&);
+ template<class T> T arg(const complex<T>&);
+ template<class T> T norm(const complex<T>&);
+ template<class T> complex<T> conj(const complex<T>&);
+ template<class T> complex<T> polar(const T& rho, const T& theta = 0);
+
+ // 26.2.8 transcendentals:
+ template<class T> complex<T> cos(const complex<T>&);
+ template<class T> complex<T> cosh(const complex<T>&);
+ template<class T> complex<T> exp(const complex<T>&);
+ template<class T> complex<T> log(const complex<T>&);
+ template<class T> complex<T> log10(const complex<T>&);
+ template<class T> complex<T> pow(const complex<T>&, int);
+ template<class T> complex<T> pow(const complex<T>&, const T&);
+ template<class T> complex<T> pow(const complex<T>&, const complex<T>&);
+ template<class T> complex<T> pow(const T&, const complex<T>&);
+ template<class T> complex<T> sin (const complex<T>&);
+ template<class T> complex<T> sinh(const complex<T>&);
+ template<class T> complex<T> sqrt(const complex<T>&);
+ template<class T> complex<T> tan(const complex<T>&);
+ template<class T> complex<T> tanh(const complex<T>&);
+}
--- /dev/null
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <cstdlib>
+#include <testsuite_hooks.h>
+
+#if _GLIBCXX_USE_C99
+// libstdc++/13943
+void test01()
+{
+ using namespace std;
+ bool test __attribute__((unused)) = true;
+
+ VERIFY( llabs(-3) == 3 );
+
+ lldiv_t q = lldiv(6, 4);
+ VERIFY( q.quot == 1 );
+ VERIFY( q.rem == 2 );
+}
+#endif
+
+int main()
+{
+#if _GLIBCXX_USE_C99
+ test01();
+#endif
+ return 0;
+}
--- /dev/null
+// 2000-01-01 bkoz
+
+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 17.4.1.2 Headers, cstdlib
+
+#include <cstdlib>
+
+// libstdc++/2190
+void test01()
+{
+ long a __attribute__((unused)) = std::abs(1L);
+ std::div(2L, 1L);
+ std::ldiv_t b __attribute__((unused));
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstdlib>
+
+namespace gnu
+{
+ using std::abs;
+ using std::div;
+ using std::labs;
+ using std::ldiv;
+ using std::srand;
+ using std::rand;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstdlib>
+
+namespace gnu
+{
+#ifndef RAND_MAX
+ #error "RAND_MAX_must_be_a_macro"
+#endif
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstdlib>
+
+namespace gnu
+{
+ std::div_t d;
+ std::ldiv_t ld;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <numeric>
+
+namespace std {
+ template <class InputIterator, class T>
+ T accumulate(InputIterator first, InputIterator last, T init);
+
+ template <class InputIterator, class T, class BinaryOperation>
+ T accumulate(InputIterator first, InputIterator last, T init,
+ BinaryOperation binary_op);
+
+ template <class InputIterator1, class InputIterator2, class T>
+ T inner_product(InputIterator1 first1, InputIterator1 last1,
+ InputIterator2 first2, T init);
+
+ template <class InputIterator1, class InputIterator2, class T,
+ class BinaryOperation1, class BinaryOperation2>
+ T inner_product(InputIterator1 first1, InputIterator1 last1,
+ InputIterator2 first2, T init,
+ BinaryOperation1 binary_op1,
+ BinaryOperation2 binary_op2);
+
+ template <class InputIterator, class OutputIterator>
+ OutputIterator partial_sum(InputIterator first,
+ InputIterator last,
+ OutputIterator result);
+
+ template <class InputIterator, class OutputIterator,
+ class BinaryOperation>
+ OutputIterator partial_sum(InputIterator first,
+ InputIterator last,
+ OutputIterator result,
+ BinaryOperation binary_op);
+
+ template <class InputIterator, class OutputIterator>
+ OutputIterator adjacent_difference(InputIterator first,
+ InputIterator last,
+ OutputIterator result);
+
+ template <class InputIterator, class OutputIterator,
+ class BinaryOperation>
+ OutputIterator adjacent_difference(InputIterator first,
+ InputIterator last,
+ OutputIterator result,
+ BinaryOperation binary_op);
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <valarray>
+
+namespace std {
+ template<class T> class valarray;
+
+ class slice;
+ template<class T> class slice_array;
+
+ class gslice;
+ template<class T> class gslice_array;
+ template<class T> class mask_array;
+ template<class T> class indirect_array;
+ template<class T> valarray<T> operator*
+ (const valarray<T>&, const valarray<T>&);
+ template<class T> valarray<T> operator* (const valarray<T>&, const T&);
+ template<class T> valarray<T> operator* (const T&, const valarray<T>&);
+
+template<class T> valarray<T> operator/
+ (const valarray<T>&, const valarray<T>&);
+template<class T> valarray<T> operator/ (const valarray<T>&, const T&);
+template<class T> valarray<T> operator/ (const T&, const valarray<T>&);
+template<class T> valarray<T> operator%
+ (const valarray<T>&, const valarray<T>&);
+template<class T> valarray<T> operator% (const valarray<T>&, const T&);
+template<class T> valarray<T> operator% (const T&, const valarray<T>&);
+template<class T> valarray<T> operator+
+ (const valarray<T>&, const valarray<T>&);
+template<class T> valarray<T> operator+ (const valarray<T>&, const T&);
+template<class T> valarray<T> operator+ (const T&, const valarray<T>&);
+template<class T> valarray<T> operator-
+ (const valarray<T>&, const valarray<T>&);
+template<class T> valarray<T> operator- (const valarray<T>&, const T&);
+template<class T> valarray<T> operator- (const T&, const valarray<T>&);
+template<class T> valarray<T> operator^
+ (const valarray<T>&, const valarray<T>&);
+template<class T> valarray<T> operator^ (const valarray<T>&, const T&);
+template<class T> valarray<T> operator^ (const T&, const valarray<T>&);
+template<class T> valarray<T> operator&
+ (const valarray<T>&, const valarray<T>&);
+template<class T> valarray<T> operator& (const valarray<T>&, const T&);
+template<class T> valarray<T> operator& (const T&, const valarray<T>&);
+template<class T> valarray<T> operator|
+ (const valarray<T>&, const valarray<T>&);
+template<class T> valarray<T> operator| (const valarray<T>&, const T&);
+template<class T> valarray<T> operator| (const T&, const valarray<T>&);
+template<class T> valarray<T> operator<<
+ (const valarray<T>&, const valarray<T>&);
+template<class T> valarray<T> operator<<(const valarray<T>&, const T&);
+template<class T> valarray<T> operator<<(const T&, const valarray<T>&);
+template<class T> valarray<T> operator>>
+ (const valarray<T>&, const valarray<T>&);
+template<class T> valarray<T> operator>>(const valarray<T>&, const T&);
+template<class T> valarray<T> operator>>(const T&, const valarray<T>&);
+template<class T> valarray<bool> operator&&
+ (const valarray<T>&, const valarray<T>&);
+template<class T> valarray<bool> operator&&(const valarray<T>&, const T&);
+template<class T> valarray<bool> operator&&(const T&, const valarray<T>&);
+template<class T> valarray<bool> operator||
+ (const valarray<T>&, const valarray<T>&);
+template<class T> valarray<bool> operator||(const valarray<T>&, const T&);
+template<class T> valarray<bool> operator||(const T&, const valarray<T>&);
+
+ template<class T>
+ valarray<bool> operator==(const valarray<T>&, const valarray<T>&);
+ template<class T> valarray<bool> operator==(const valarray<T>&, const T&);
+ template<class T> valarray<bool> operator==(const T&, const valarray<T>&);
+ template<class T>
+ valarray<bool> operator!=(const valarray<T>&, const valarray<T>&);
+ template<class T> valarray<bool> operator!=(const valarray<T>&, const T&);
+ template<class T> valarray<bool> operator!=(const T&, const valarray<T>&);
+ template<class T>
+ valarray<bool> operator< (const valarray<T>&, const valarray<T>&);
+ template<class T> valarray<bool> operator< (const valarray<T>&, const T&);
+ template<class T> valarray<bool> operator< (const T&, const valarray<T>&);
+ template<class T>
+ valarray<bool> operator> (const valarray<T>&, const valarray<T>&);
+ template<class T> valarray<bool> operator> (const valarray<T>&, const T&);
+ template<class T> valarray<bool> operator> (const T&, const valarray<T>&);
+ template<class T>
+ valarray<bool> operator<=(const valarray<T>&, const valarray<T>&);
+ template<class T> valarray<bool> operator<=(const valarray<T>&, const T&);
+ template<class T> valarray<bool> operator<=(const T&, const valarray<T>&);
+ template<class T>
+ valarray<bool> operator>=(const valarray<T>&, const valarray<T>&);
+ template<class T> valarray<bool> operator>=(const valarray<T>&, const T&);
+ template<class T> valarray<bool> operator>=(const T&, const valarray<T>&);
+ template<class T> valarray<T> abs (const valarray<T>&);
+ template<class T> valarray<T> acos (const valarray<T>&);
+ template<class T> valarray<T> asin (const valarray<T>&);
+ template<class T> valarray<T> atan (const valarray<T>&);
+ template<class T> valarray<T> atan2
+ (const valarray<T>&, const valarray<T>&);
+ template<class T> valarray<T> atan2(const valarray<T>&, const T&);
+ template<class T> valarray<T> atan2(const T&, const valarray<T>&);
+ template<class T> valarray<T> cos (const valarray<T>&);
+ template<class T> valarray<T> cosh (const valarray<T>&);
+ template<class T> valarray<T> exp (const valarray<T>&);
+ template<class T> valarray<T> log (const valarray<T>&);
+ template<class T> valarray<T> log10(const valarray<T>&);
+ template<class T> valarray<T> pow(const valarray<T>&, const valarray<T>&);
+ template<class T> valarray<T> pow(const valarray<T>&, const T&);
+ template<class T> valarray<T> pow(const T&, const valarray<T>&);
+ template<class T> valarray<T> sin (const valarray<T>&);
+ template<class T> valarray<T> sinh (const valarray<T>&);
+ template<class T> valarray<T> sqrt (const valarray<T>&);
+ template<class T> valarray<T> tan (const valarray<T>&);
+ template<class T> valarray<T> tanh (const valarray<T>&);
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <valarray>
+
+namespace gnu
+{
+ typedef std::slice t1;
+ typedef std::gslice t2;
+}
+++ /dev/null
-// Copyright (C) 2001, 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 26.4.3 [lib.partial.sum]
-// 26.4.4 [lib.adjacent.difference]
-
-#include <algorithm>
-#include <numeric>
-#include <testsuite_hooks.h>
-
-int A[] = {1, 4, 9, 16, 25, 36, 49, 64, 81, 100};
-int B[] = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19};
-const int N = sizeof(A) / sizeof(int);
-
-void
-test01()
-{
- bool test __attribute__((unused)) = true;
-
- int D[N];
-
- std::adjacent_difference(A, A + N, D);
- VERIFY( std::equal(D, D + N, B) );
-
- std::partial_sum(D, D + N, D);
- VERIFY( std::equal(D, D + N, A) );
-}
-
-int
-main()
-{
- test01();
- return 0;
-}
--- /dev/null
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <valarray>
+#include <testsuite_hooks.h>
+
+// libstdc++/27867
+void test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ std::valarray<int> v1(100, 1);
+ std::valarray<int> v2(100, 1);
+ std::valarray<bool> v3(true, 1);
+
+ std::valarray<bool> resl(1);
+ resl = ((v1 == v2) == v3);
+ VERIFY( resl[0] == true );
+
+ std::valarray<bool> resr(1);
+ resr = (v3 == (v1 == v2));
+ VERIFY( resr[0] == true );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// 2006-07-15 Paolo Carlini <pcarlini@suse.de>
+
+// Copyright (C) 2006 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <valarray>
+#include <testsuite_hooks.h>
+
+// libstdc++/28277
+void test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ const std::valarray<int> v1(1, 5000000);
+
+ const std::valarray<int> v2 = v1.shift(1);
+ VERIFY( v2.size() == v1.size() );
+ VERIFY( v2[v1.size() - 1] == 0 );
+
+ const std::valarray<int> v3 = v2.cshift(-1);
+ VERIFY( v3.size() == v2.size() );
+ VERIFY( v3[0] == 0 );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// 2007-01-11 Paolo Carlini <pcarlini@suse.de>
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <valarray>
+#include <testsuite_hooks.h>
+
+bool
+comp_vala(const std::valarray<int>& v1, const std::valarray<int>& v2)
+{
+ if (v1.size() == v2.size())
+ {
+ for (size_t i = 0; i < v1.size(); ++i)
+ if (v1[i] != v2[i])
+ return false;
+ return true;
+ }
+ return false;
+}
+
+void
+init_vala(std::valarray<int>& v, size_t first, size_t last, int val)
+{
+ for (size_t i = first; i <= last; ++i)
+ v[i] = val++;
+}
+
+// libstdc++/30416
+void test01()
+{
+ bool test __attribute__((unused)) = true;
+ using namespace std;
+
+ // shift
+ valarray<int> v1;
+ valarray<int> v1_ris(v1.shift(0));
+ VERIFY( comp_vala(v1, v1_ris) );
+
+ valarray<int> v2;
+ valarray<int> v2_ris(v2.shift(10));
+ VERIFY( comp_vala(v2, v2_ris) );
+
+ valarray<int> v3;
+ valarray<int> v3_ris(v3.shift(-10));
+ VERIFY( comp_vala(v3, v3_ris) );
+
+ valarray<int> v4(10);
+ valarray<int> v4_ris(v4.shift(0));
+ VERIFY( comp_vala(v4, v4_ris) );
+
+ valarray<int> v5(10);
+ init_vala(v5, 0, 9, 1);
+ valarray<int> v5_ref(10);
+
+ valarray<int> v5_ris(v5.shift(16));
+ VERIFY( comp_vala(v5_ris, v5_ref) );
+
+ valarray<int> v6(10);
+ init_vala(v6, 0, 9, 1);
+ valarray<int> v6_ref(10);
+
+ valarray<int> v6_ris(v6.shift(-16));
+ VERIFY( comp_vala(v6_ris, v6_ref) );
+
+ valarray<int> v7(10);
+ init_vala(v7, 0, 9, 1);
+ valarray<int> v7_ref(10);
+
+ valarray<int> v7_ris(v7.shift(10));
+ VERIFY( comp_vala(v7_ris, v7_ref) );
+
+ valarray<int> v8(10);
+ init_vala(v8, 0, 9, 1);
+ valarray<int> v8_ref(10);
+
+ valarray<int> v8_ris(v8.shift(-10));
+ VERIFY( comp_vala(v8_ris, v8_ref) );
+
+ valarray<int> v9(10);
+ init_vala(v9, 0, 9, 1);
+ valarray<int> v9_ref(10);
+ init_vala(v9_ref, 0, 3, 7);
+
+ valarray<int> v9_ris(v9.shift(6));
+ VERIFY( comp_vala(v9_ris, v9_ref) );
+
+ valarray<int> v10(10);
+ init_vala(v10, 0, 9, 1);
+ valarray<int> v10_ref(10);
+ init_vala(v10_ref, 6, 9, 1);
+
+ valarray<int> v10_ris(v10.shift(-6));
+ VERIFY( comp_vala(v10_ris, v10_ref) );
+
+ // cshift
+ valarray<int> v11;
+ valarray<int> v11_ris(v11.cshift(0));
+ VERIFY( comp_vala(v11, v11_ris) );
+
+ valarray<int> v12;
+ valarray<int> v12_ris(v12.cshift(10));
+ VERIFY( comp_vala(v12, v12_ris) );
+
+ valarray<int> v13;
+ valarray<int> v13_ris(v13.cshift(-10));
+ VERIFY( comp_vala(v13, v13_ris) );
+
+ valarray<int> v14(10);
+ valarray<int> v14_ris(v14.cshift(0));
+ VERIFY( comp_vala(v14, v14_ris) );
+
+ valarray<int> v15(10);
+ init_vala(v15, 0, 9, 1);
+ valarray<int> v15_ref(10);
+ init_vala(v15_ref, 0, 3, 7);
+ init_vala(v15_ref, 4, 9, 1);
+
+ valarray<int> v15_ris(v15.cshift(16));
+ VERIFY( comp_vala(v15_ris, v15_ref) );
+
+ valarray<int> v16(10);
+ init_vala(v16, 0, 9, 1);
+ valarray<int> v16_ref(10);
+ init_vala(v16_ref, 0, 5, 5);
+ init_vala(v16_ref, 6, 9, 1);
+
+ valarray<int> v16_ris(v16.cshift(-16));
+ VERIFY( comp_vala(v16_ris, v16_ref) );
+
+ valarray<int> v17(10);
+ init_vala(v17, 0, 9, 1);
+
+ valarray<int> v17_ris(v15.cshift(10));
+ VERIFY( comp_vala(v17, v17_ris) );
+
+ valarray<int> v18(10);
+ init_vala(v18, 0, 9, 1);
+
+ valarray<int> v18_ris(v18.cshift(-10));
+ VERIFY( comp_vala(v18, v18_ris) );
+
+ valarray<int> v19(10);
+ init_vala(v19, 0, 9, 1);
+ valarray<int> v19_ref(10);
+ init_vala(v19_ref, 0, 3, 7);
+ init_vala(v19_ref, 4, 9, 1);
+
+ valarray<int> v19_ris(v15.cshift(6));
+ VERIFY( comp_vala(v19_ris, v19_ref) );
+
+ valarray<int> v20(10);
+ init_vala(v20, 0, 9, 1);
+ valarray<int> v20_ref(10);
+ init_vala(v20_ref, 0, 5, 5);
+ init_vala(v20_ref, 6, 9, 1);
+
+ valarray<int> v20_ris(v20.cshift(-6));
+ VERIFY( comp_vala(v20_ris, v20_ref) );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// 19990805 gdr
+//
+// XXX: to impove later.
+// Origin: Andreas Amann <amann@physik.tu-berlin.de>
+// CXXFLAGS: -g
+
+#include <iostream>
+#include <valarray>
+
+
+int main()
+{
+ std::valarray<double> a(10), b(10), c(10), d(10);
+
+ a = 1.2;
+ b = 3.1;
+
+ c = 4.0;
+
+ d = ( 2.0 * b + a ); // works
+ std::cout << "d[4] = " << d[4] << std::endl;
+
+ d = (a * 2.0 + b ); // works
+ std::cout << "d[4] = " << d[4] << std::endl;
+
+ d = (a + b * 2.0 ); // segfaults!
+ std::cout << "d[4] = " << d[4] << std::endl;
+ d = (a + 2.0* b );
+
+ std::cout << "d[4] = " << d[4] << std::endl;
+ d = (a + 2.0* b );
+ std::cout << "d[4] = " << d[4] << std::endl;
+ d = (a + 2.0* b );
+
+ std::cout << "d[4] = " << d[4] << std::endl;
+ return 0;
+}
--- /dev/null
+// Copyright (C) 2006 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <valarray>
+#include <testsuite_hooks.h>
+
+// DR 543. valarray slice default constructor
+void test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ std::valarray<int> v1(10);
+ std::valarray<int> v2 = v1[std::slice()];
+ VERIFY( v2.size() == 0 );
+
+ std::valarray<int> v3(10);
+ std::valarray<int> v4 = v3[std::gslice()];
+ VERIFY( v4.size() == 0 );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// 20020717 gdr
+
+// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// Test slice class invariants
+
+#include <valarray>
+#include <cstdlib>
+#include <testsuite_hooks.h>
+
+bool
+construction(std::size_t start, std::size_t size, std::size_t stride)
+{
+ std::slice s(start, size, stride);
+ return s.start() == start && s.size() == size && s.stride() == stride;
+}
+
+bool
+copy(std::size_t start, std::size_t size, std::size_t stride)
+{
+ std::slice s(start, size, stride);
+ std::slice t = s;
+ return t.start() == start && t.size() == size && t.stride() == stride;
+}
+
+bool
+assignment(std::size_t start, std::size_t size, std::size_t stride)
+{
+ std::slice s(start, size, stride);
+ std::slice t;
+ t = s;
+ return t.start() == start && t.size() == size && t.stride() == stride;
+}
+
+
+int main()
+{
+ bool test __attribute__((unused)) = true;
+ std::srand(20020717);
+ using std::rand;
+ VERIFY(construction(rand(), rand(), rand()));
+
+ VERIFY(copy(rand(), rand(), rand()));
+
+ VERIFY(assignment(rand(), rand(), rand()));
+
+ return 0;
+}
--- /dev/null
+// 20010613 gdr
+
+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+
+// This is DR-253. Test for accessible assignment-operators.
+#include <valarray>
+#include <testsuite_hooks.h>
+
+int main()
+{
+ bool test __attribute__((unused)) = true;
+ using std::valarray;
+ using std::slice;
+ valarray<int> v(1, 10), w(2, 10);
+
+ w[slice(0, 3, 3)] = v[slice(2, 3, 3)];
+
+ VERIFY(v[0] == 1 && w[0] == 1);
+ VERIFY(v[3] == 1 && w[3] == 1);
+ VERIFY(v[6] == 1 && w[6] == 1);
+
+ std::slice_array<int> t = v[slice(0, 10, 1)];
+
+ return 0;
+}
--- /dev/null
+// 19990404 gdr
+
+// Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <valarray>
+
+int main()
+{
+ // 01: instantiation
+ std::valarray<double> a(20);
+
+ // 02: algo
+ using std::valarray;
+ valarray<double> b, c;
+ double m __attribute__((unused)) = std::abs(b - c).max();
+
+ return 0;
+}
--- /dev/null
+// 20010518 gdr
+
+// Copyright (C) 2001 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <valarray>
+
+// dg-do compile
+
+template<typename P>
+ void copy(P, std::size_t) { }
+
+template<typename T>
+ void test(const std::valarray<T>& v)
+ {
+ copy(&v[0], v.size());
+ }
+
+int main()
+{
+ std::valarray<double> v(190);
+ test(v);
+ return 0;
+}
--- /dev/null
+// 2002-08-02 gdr
+
+// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// Test name lookup resolutions for standard functions applied to an
+// array expression.
+// { dg-do compile }
+
+#include <valarray>
+
+namespace My
+{
+ struct Number
+ {
+ operator bool() const;
+ };
+
+ Number operator+(Number);
+ Number operator-(Number);
+ Number operator~(Number);
+
+ bool operator!(Number);
+
+ Number operator+(Number, Number);
+ Number operator-(Number, Number);
+ Number operator*(Number, Number);
+ Number operator/(Number, Number);
+ Number operator%(Number, Number);
+
+ Number operator^(Number, Number);
+ Number operator&(Number, Number);
+ Number operator|(Number, Number);
+
+ Number operator<<(Number, Number);
+ Number operator>>(Number, Number);
+
+ bool operator==(Number, Number);
+ bool operator!=(Number, Number);
+ bool operator<(Number, Number);
+ bool operator<=(Number, Number);
+ bool operator>(Number, Number);
+ bool operator>=(Number, Number);
+
+ Number abs(Number);
+
+ Number cos(Number);
+ Number cosh(Number);
+ Number acos(Number);
+
+ Number sin(Number);
+ Number sinh(Number);
+ Number asin(Number);
+
+ Number tan(Number);
+ Number tanh(Number);
+ Number atan(Number);
+
+ Number exp(Number);
+ Number log(Number);
+ Number log10(Number);
+ Number sqrt(Number);
+
+ Number atan2(Number, Number);
+ Number pow(Number, Number);
+}
+
+int main()
+{
+ typedef std::valarray<My::Number> Array;
+ Array u(10), v(10);
+ v = +u;
+ v = -u;
+ v = ~u;
+ std::valarray<bool> z = !u;
+
+ v = abs(u);
+
+ v = cos(u);
+ v = cosh(u);
+ v = acos(u);
+
+ v = sin(u);
+ v = sinh(u);
+ v = asin(u);
+
+ v = tan(u);
+ v = tanh(u);
+ v = atan(u);
+
+ v = exp(u);
+ v = log(u);
+ v = log10(u);
+ v = sqrt(u);
+
+ Array w = u + v;
+ w = u - v;
+ w = u * v;
+ w = u / v;
+ w = u % v;
+
+ w = u ^ v;
+ w = u & v;
+ w = u | v;
+
+ w = u << v;
+ w = u >> v;
+
+ z = u == v;
+ z = u != v;
+ z = u < v;
+ z = u <= v;
+ z = u > v;
+ z = u >= v;
+
+ w = atan2(u, v);
+ w = pow(u, v);
+}
--- /dev/null
+// { dg-do run }
+// 2003-02-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+// Copyright (C) 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <valarray>
+#include <testsuite_hooks.h>
+
+void test01() // check unary operators
+{
+ bool test __attribute__((unused)) = true;
+ std::valarray<int> u(1);
+ u[0]=1;
+
+ VERIFY( (+u)[0] == +1 );
+ VERIFY( (-u)[0] == -1 );
+ VERIFY( (!u)[0] == !1 );
+ VERIFY( (~u)[0] == ~1 );
+}
+
+void test02() // check binary operators
+{
+ bool test __attribute__((unused)) = true;
+ std::valarray<int> u(1), v(1);
+ u[0]=1;
+ v[0]=3;
+
+ VERIFY( (u+ v)[0] == (1+ 3) );
+ VERIFY( (u- v)[0] == (1- 3) );
+ VERIFY( (u* v)[0] == (1* 3) );
+ VERIFY( (u/ v)[0] == (1/ 3) );
+ VERIFY( (u% v)[0] == (1% 3) );
+ VERIFY( (u^ v)[0] == (1^ 3) );
+ VERIFY( (u& v)[0] == (1& 3) );
+ VERIFY( (u| v)[0] == (1| 3) );
+ VERIFY( (u<<v)[0] == (1<<3) );
+ VERIFY( (u>>v)[0] == (1>>3) );
+ VERIFY( (u&&v)[0] == (1&&3) );
+ VERIFY( (u||v)[0] == (1||3) );
+ VERIFY( (u==v)[0] == (1==3) );
+ VERIFY( (u!=v)[0] == (1!=3) );
+ VERIFY( (u< v)[0] == (1< 3) );
+ VERIFY( (u> v)[0] == (1> 3) );
+ VERIFY( (u<=v)[0] == (1<=3) );
+ VERIFY( (u>=v)[0] == (1>=3) );
+}
+
+int main()
+{
+ test01();
+ test02();
+ return 0;
+}
--- /dev/null
+// 2004-01-03 Jerry Quinn <jlquinn@optonline.net>
+
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// PR 3247
+
+// This is DR-253. Test for accessible assignment-operators.
+#include <valarray>
+#include <testsuite_hooks.h>
+
+bool check_array(std::valarray<double>& a, double b[])
+{
+ for (unsigned int i=0; i < a.size(); i++)
+ if (a[i] != b[i]) return false;
+ return true;
+}
+
+int main()
+{
+ std::valarray<double> val_d(10); // 0 1 2 3 4 5 6 7 8 9
+ std::valarray<double> val_d1(10); // 10 9 8 7 6 5 4 3 2 1
+
+ for (int i=0; i< 10; i++) { val_d[i] = 10; val_d1[i] = i; }
+ std::valarray<double> val_c(val_d);
+ std::valarray<double> val_f(val_d);
+ std::valarray<double> val_g(val_d);
+
+ std::slice slc(1, 3, 3); // 1 4 7
+ val_d[slc] = val_d1[slc];
+
+ double ans1[10] = {10, 1, 10, 10, 4, 10, 10, 7, 10, 10};
+ VERIFY(check_array(val_d, ans1));
+
+ std::valarray<std::size_t> val_size(2);
+ std::valarray<std::size_t> val_stride(2);
+ val_size[0] = 2; val_size[1] = 3;
+ val_stride[0] = 4; val_stride[1] = 1;
+
+ std::gslice gslc(1, val_size, val_stride);
+ val_c[gslc] = val_d1[gslc];
+
+ double ans2[10] = {10, 1, 2, 3, 10, 5, 6, 7, 10, 10};
+ VERIFY(check_array(val_c, ans2));
+
+ std::valarray<bool> val_b(false, 10);
+ val_b[2] = val_b[6] = val_b[9] = true;
+ val_f[val_b] = val_d1[val_b];
+
+ double ans3[10] = {10, 10, 2, 10, 10, 10, 6, 10, 10, 9};
+ VERIFY(check_array(val_f, ans3));
+
+ size_t addr[] = {1, 2, 3, 4, 5};
+ size_t addr1[] = {2, 7, 1, 9, 4};
+ std::valarray<std::size_t> val_indirect(addr, 5);
+ std::valarray<std::size_t> val_indirect1(addr1, 5);
+ val_g[val_indirect] = val_d1[val_indirect1];
+
+ double ans4[10] = {10, 2, 7, 1, 9, 4, 10, 10, 10, 10};
+ VERIFY(check_array(val_g, ans4));
+
+ return 0;
+};
--- /dev/null
+// Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 26.4.3 [lib.partial.sum]
+// 26.4.4 [lib.adjacent.difference]
+
+#include <algorithm>
+#include <numeric>
+#include <testsuite_hooks.h>
+
+int A[] = {1, 4, 9, 16, 25, 36, 49, 64, 81, 100};
+int B[] = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19};
+const int N = sizeof(A) / sizeof(int);
+
+void
+test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ int D[N];
+
+ std::adjacent_difference(A, A + N, D);
+ VERIFY( std::equal(D, D + N, B) );
+
+ std::partial_sum(D, D + N, D);
+ VERIFY( std::equal(D, D + N, A) );
+}
+
+int
+main()
+{
+ test01();
+ return 0;
+}
+++ /dev/null
-// Copyright (C) 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-#include <valarray>
-#include <testsuite_hooks.h>
-
-// libstdc++/27867
-void test01()
-{
- bool test __attribute__((unused)) = true;
-
- std::valarray<int> v1(100, 1);
- std::valarray<int> v2(100, 1);
- std::valarray<bool> v3(true, 1);
-
- std::valarray<bool> resl(1);
- resl = ((v1 == v2) == v3);
- VERIFY( resl[0] == true );
-
- std::valarray<bool> resr(1);
- resr = (v3 == (v1 == v2));
- VERIFY( resr[0] == true );
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// 2006-07-15 Paolo Carlini <pcarlini@suse.de>
-
-// Copyright (C) 2006 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-#include <valarray>
-#include <testsuite_hooks.h>
-
-// libstdc++/28277
-void test01()
-{
- bool test __attribute__((unused)) = true;
-
- const std::valarray<int> v1(1, 5000000);
-
- const std::valarray<int> v2 = v1.shift(1);
- VERIFY( v2.size() == v1.size() );
- VERIFY( v2[v1.size() - 1] == 0 );
-
- const std::valarray<int> v3 = v2.cshift(-1);
- VERIFY( v3.size() == v2.size() );
- VERIFY( v3[0] == 0 );
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// 2007-01-11 Paolo Carlini <pcarlini@suse.de>
-
-// Copyright (C) 2007 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-#include <valarray>
-#include <testsuite_hooks.h>
-
-bool
-comp_vala(const std::valarray<int>& v1, const std::valarray<int>& v2)
-{
- if (v1.size() == v2.size())
- {
- for (size_t i = 0; i < v1.size(); ++i)
- if (v1[i] != v2[i])
- return false;
- return true;
- }
- return false;
-}
-
-void
-init_vala(std::valarray<int>& v, size_t first, size_t last, int val)
-{
- for (size_t i = first; i <= last; ++i)
- v[i] = val++;
-}
-
-// libstdc++/30416
-void test01()
-{
- bool test __attribute__((unused)) = true;
- using namespace std;
-
- // shift
- valarray<int> v1;
- valarray<int> v1_ris(v1.shift(0));
- VERIFY( comp_vala(v1, v1_ris) );
-
- valarray<int> v2;
- valarray<int> v2_ris(v2.shift(10));
- VERIFY( comp_vala(v2, v2_ris) );
-
- valarray<int> v3;
- valarray<int> v3_ris(v3.shift(-10));
- VERIFY( comp_vala(v3, v3_ris) );
-
- valarray<int> v4(10);
- valarray<int> v4_ris(v4.shift(0));
- VERIFY( comp_vala(v4, v4_ris) );
-
- valarray<int> v5(10);
- init_vala(v5, 0, 9, 1);
- valarray<int> v5_ref(10);
-
- valarray<int> v5_ris(v5.shift(16));
- VERIFY( comp_vala(v5_ris, v5_ref) );
-
- valarray<int> v6(10);
- init_vala(v6, 0, 9, 1);
- valarray<int> v6_ref(10);
-
- valarray<int> v6_ris(v6.shift(-16));
- VERIFY( comp_vala(v6_ris, v6_ref) );
-
- valarray<int> v7(10);
- init_vala(v7, 0, 9, 1);
- valarray<int> v7_ref(10);
-
- valarray<int> v7_ris(v7.shift(10));
- VERIFY( comp_vala(v7_ris, v7_ref) );
-
- valarray<int> v8(10);
- init_vala(v8, 0, 9, 1);
- valarray<int> v8_ref(10);
-
- valarray<int> v8_ris(v8.shift(-10));
- VERIFY( comp_vala(v8_ris, v8_ref) );
-
- valarray<int> v9(10);
- init_vala(v9, 0, 9, 1);
- valarray<int> v9_ref(10);
- init_vala(v9_ref, 0, 3, 7);
-
- valarray<int> v9_ris(v9.shift(6));
- VERIFY( comp_vala(v9_ris, v9_ref) );
-
- valarray<int> v10(10);
- init_vala(v10, 0, 9, 1);
- valarray<int> v10_ref(10);
- init_vala(v10_ref, 6, 9, 1);
-
- valarray<int> v10_ris(v10.shift(-6));
- VERIFY( comp_vala(v10_ris, v10_ref) );
-
- // cshift
- valarray<int> v11;
- valarray<int> v11_ris(v11.cshift(0));
- VERIFY( comp_vala(v11, v11_ris) );
-
- valarray<int> v12;
- valarray<int> v12_ris(v12.cshift(10));
- VERIFY( comp_vala(v12, v12_ris) );
-
- valarray<int> v13;
- valarray<int> v13_ris(v13.cshift(-10));
- VERIFY( comp_vala(v13, v13_ris) );
-
- valarray<int> v14(10);
- valarray<int> v14_ris(v14.cshift(0));
- VERIFY( comp_vala(v14, v14_ris) );
-
- valarray<int> v15(10);
- init_vala(v15, 0, 9, 1);
- valarray<int> v15_ref(10);
- init_vala(v15_ref, 0, 3, 7);
- init_vala(v15_ref, 4, 9, 1);
-
- valarray<int> v15_ris(v15.cshift(16));
- VERIFY( comp_vala(v15_ris, v15_ref) );
-
- valarray<int> v16(10);
- init_vala(v16, 0, 9, 1);
- valarray<int> v16_ref(10);
- init_vala(v16_ref, 0, 5, 5);
- init_vala(v16_ref, 6, 9, 1);
-
- valarray<int> v16_ris(v16.cshift(-16));
- VERIFY( comp_vala(v16_ris, v16_ref) );
-
- valarray<int> v17(10);
- init_vala(v17, 0, 9, 1);
-
- valarray<int> v17_ris(v15.cshift(10));
- VERIFY( comp_vala(v17, v17_ris) );
-
- valarray<int> v18(10);
- init_vala(v18, 0, 9, 1);
-
- valarray<int> v18_ris(v18.cshift(-10));
- VERIFY( comp_vala(v18, v18_ris) );
-
- valarray<int> v19(10);
- init_vala(v19, 0, 9, 1);
- valarray<int> v19_ref(10);
- init_vala(v19_ref, 0, 3, 7);
- init_vala(v19_ref, 4, 9, 1);
-
- valarray<int> v19_ris(v15.cshift(6));
- VERIFY( comp_vala(v19_ris, v19_ref) );
-
- valarray<int> v20(10);
- init_vala(v20, 0, 9, 1);
- valarray<int> v20_ref(10);
- init_vala(v20_ref, 0, 5, 5);
- init_vala(v20_ref, 6, 9, 1);
-
- valarray<int> v20_ris(v20.cshift(-6));
- VERIFY( comp_vala(v20_ris, v20_ref) );
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// 19990805 gdr
-//
-// XXX: to impove later.
-// Origin: Andreas Amann <amann@physik.tu-berlin.de>
-// CXXFLAGS: -g
-
-#include <iostream>
-#include <valarray>
-
-
-int main()
-{
- std::valarray<double> a(10), b(10), c(10), d(10);
-
- a = 1.2;
- b = 3.1;
-
- c = 4.0;
-
- d = ( 2.0 * b + a ); // works
- std::cout << "d[4] = " << d[4] << std::endl;
-
- d = (a * 2.0 + b ); // works
- std::cout << "d[4] = " << d[4] << std::endl;
-
- d = (a + b * 2.0 ); // segfaults!
- std::cout << "d[4] = " << d[4] << std::endl;
- d = (a + 2.0* b );
-
- std::cout << "d[4] = " << d[4] << std::endl;
- d = (a + 2.0* b );
- std::cout << "d[4] = " << d[4] << std::endl;
- d = (a + 2.0* b );
-
- std::cout << "d[4] = " << d[4] << std::endl;
- return 0;
-}
+++ /dev/null
-// Copyright (C) 2006 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-#include <valarray>
-#include <testsuite_hooks.h>
-
-// DR 543. valarray slice default constructor
-void test01()
-{
- bool test __attribute__((unused)) = true;
-
- std::valarray<int> v1(10);
- std::valarray<int> v2 = v1[std::slice()];
- VERIFY( v2.size() == 0 );
-
- std::valarray<int> v3(10);
- std::valarray<int> v4 = v3[std::gslice()];
- VERIFY( v4.size() == 0 );
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// 20020717 gdr
-
-// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// Test slice class invariants
-
-#include <valarray>
-#include <cstdlib>
-#include <testsuite_hooks.h>
-
-bool
-construction(std::size_t start, std::size_t size, std::size_t stride)
-{
- std::slice s(start, size, stride);
- return s.start() == start && s.size() == size && s.stride() == stride;
-}
-
-bool
-copy(std::size_t start, std::size_t size, std::size_t stride)
-{
- std::slice s(start, size, stride);
- std::slice t = s;
- return t.start() == start && t.size() == size && t.stride() == stride;
-}
-
-bool
-assignment(std::size_t start, std::size_t size, std::size_t stride)
-{
- std::slice s(start, size, stride);
- std::slice t;
- t = s;
- return t.start() == start && t.size() == size && t.stride() == stride;
-}
-
-
-int main()
-{
- bool test __attribute__((unused)) = true;
- std::srand(20020717);
- using std::rand;
- VERIFY(construction(rand(), rand(), rand()));
-
- VERIFY(copy(rand(), rand(), rand()));
-
- VERIFY(assignment(rand(), rand(), rand()));
-
- return 0;
-}
+++ /dev/null
-// 20010613 gdr
-
-// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-
-// This is DR-253. Test for accessible assignment-operators.
-#include <valarray>
-#include <testsuite_hooks.h>
-
-int main()
-{
- bool test __attribute__((unused)) = true;
- using std::valarray;
- using std::slice;
- valarray<int> v(1, 10), w(2, 10);
-
- w[slice(0, 3, 3)] = v[slice(2, 3, 3)];
-
- VERIFY(v[0] == 1 && w[0] == 1);
- VERIFY(v[3] == 1 && w[3] == 1);
- VERIFY(v[6] == 1 && w[6] == 1);
-
- std::slice_array<int> t = v[slice(0, 10, 1)];
-
- return 0;
-}
+++ /dev/null
-// 19990404 gdr
-
-// Copyright (C) 1999, 2000 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-#include <valarray>
-
-int main()
-{
- // 01: instantiation
- std::valarray<double> a(20);
-
- // 02: algo
- using std::valarray;
- valarray<double> b, c;
- double m __attribute__((unused)) = std::abs(b - c).max();
-
- return 0;
-}
+++ /dev/null
-// 20010518 gdr
-
-// Copyright (C) 2001 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-#include <valarray>
-
-// dg-do compile
-
-template<typename P>
- void copy(P, std::size_t) { }
-
-template<typename T>
- void test(const std::valarray<T>& v)
- {
- copy(&v[0], v.size());
- }
-
-int main()
-{
- std::valarray<double> v(190);
- test(v);
- return 0;
-}
+++ /dev/null
-// 2002-08-02 gdr
-
-// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Test name lookup resolutions for standard functions applied to an
-// array expression.
-// { dg-do compile }
-
-#include <valarray>
-
-namespace My
-{
- struct Number
- {
- operator bool() const;
- };
-
- Number operator+(Number);
- Number operator-(Number);
- Number operator~(Number);
-
- bool operator!(Number);
-
- Number operator+(Number, Number);
- Number operator-(Number, Number);
- Number operator*(Number, Number);
- Number operator/(Number, Number);
- Number operator%(Number, Number);
-
- Number operator^(Number, Number);
- Number operator&(Number, Number);
- Number operator|(Number, Number);
-
- Number operator<<(Number, Number);
- Number operator>>(Number, Number);
-
- bool operator==(Number, Number);
- bool operator!=(Number, Number);
- bool operator<(Number, Number);
- bool operator<=(Number, Number);
- bool operator>(Number, Number);
- bool operator>=(Number, Number);
-
- Number abs(Number);
-
- Number cos(Number);
- Number cosh(Number);
- Number acos(Number);
-
- Number sin(Number);
- Number sinh(Number);
- Number asin(Number);
-
- Number tan(Number);
- Number tanh(Number);
- Number atan(Number);
-
- Number exp(Number);
- Number log(Number);
- Number log10(Number);
- Number sqrt(Number);
-
- Number atan2(Number, Number);
- Number pow(Number, Number);
-}
-
-int main()
-{
- typedef std::valarray<My::Number> Array;
- Array u(10), v(10);
- v = +u;
- v = -u;
- v = ~u;
- std::valarray<bool> z = !u;
-
- v = abs(u);
-
- v = cos(u);
- v = cosh(u);
- v = acos(u);
-
- v = sin(u);
- v = sinh(u);
- v = asin(u);
-
- v = tan(u);
- v = tanh(u);
- v = atan(u);
-
- v = exp(u);
- v = log(u);
- v = log10(u);
- v = sqrt(u);
-
- Array w = u + v;
- w = u - v;
- w = u * v;
- w = u / v;
- w = u % v;
-
- w = u ^ v;
- w = u & v;
- w = u | v;
-
- w = u << v;
- w = u >> v;
-
- z = u == v;
- z = u != v;
- z = u < v;
- z = u <= v;
- z = u > v;
- z = u >= v;
-
- w = atan2(u, v);
- w = pow(u, v);
-}
+++ /dev/null
-// { dg-do run }
-// 2003-02-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
-
-// Copyright (C) 2003 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-#include <valarray>
-#include <testsuite_hooks.h>
-
-void test01() // check unary operators
-{
- bool test __attribute__((unused)) = true;
- std::valarray<int> u(1);
- u[0]=1;
-
- VERIFY( (+u)[0] == +1 );
- VERIFY( (-u)[0] == -1 );
- VERIFY( (!u)[0] == !1 );
- VERIFY( (~u)[0] == ~1 );
-}
-
-void test02() // check binary operators
-{
- bool test __attribute__((unused)) = true;
- std::valarray<int> u(1), v(1);
- u[0]=1;
- v[0]=3;
-
- VERIFY( (u+ v)[0] == (1+ 3) );
- VERIFY( (u- v)[0] == (1- 3) );
- VERIFY( (u* v)[0] == (1* 3) );
- VERIFY( (u/ v)[0] == (1/ 3) );
- VERIFY( (u% v)[0] == (1% 3) );
- VERIFY( (u^ v)[0] == (1^ 3) );
- VERIFY( (u& v)[0] == (1& 3) );
- VERIFY( (u| v)[0] == (1| 3) );
- VERIFY( (u<<v)[0] == (1<<3) );
- VERIFY( (u>>v)[0] == (1>>3) );
- VERIFY( (u&&v)[0] == (1&&3) );
- VERIFY( (u||v)[0] == (1||3) );
- VERIFY( (u==v)[0] == (1==3) );
- VERIFY( (u!=v)[0] == (1!=3) );
- VERIFY( (u< v)[0] == (1< 3) );
- VERIFY( (u> v)[0] == (1> 3) );
- VERIFY( (u<=v)[0] == (1<=3) );
- VERIFY( (u>=v)[0] == (1>=3) );
-}
-
-int main()
-{
- test01();
- test02();
- return 0;
-}
+++ /dev/null
-// 2004-01-03 Jerry Quinn <jlquinn@optonline.net>
-
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// PR 3247
-
-// This is DR-253. Test for accessible assignment-operators.
-#include <valarray>
-#include <testsuite_hooks.h>
-
-bool check_array(std::valarray<double>& a, double b[])
-{
- for (unsigned int i=0; i < a.size(); i++)
- if (a[i] != b[i]) return false;
- return true;
-}
-
-int main()
-{
- std::valarray<double> val_d(10); // 0 1 2 3 4 5 6 7 8 9
- std::valarray<double> val_d1(10); // 10 9 8 7 6 5 4 3 2 1
-
- for (int i=0; i< 10; i++) { val_d[i] = 10; val_d1[i] = i; }
- std::valarray<double> val_c(val_d);
- std::valarray<double> val_f(val_d);
- std::valarray<double> val_g(val_d);
-
- std::slice slc(1, 3, 3); // 1 4 7
- val_d[slc] = val_d1[slc];
-
- double ans1[10] = {10, 1, 10, 10, 4, 10, 10, 7, 10, 10};
- VERIFY(check_array(val_d, ans1));
-
- std::valarray<std::size_t> val_size(2);
- std::valarray<std::size_t> val_stride(2);
- val_size[0] = 2; val_size[1] = 3;
- val_stride[0] = 4; val_stride[1] = 1;
-
- std::gslice gslc(1, val_size, val_stride);
- val_c[gslc] = val_d1[gslc];
-
- double ans2[10] = {10, 1, 2, 3, 10, 5, 6, 7, 10, 10};
- VERIFY(check_array(val_c, ans2));
-
- std::valarray<bool> val_b(false, 10);
- val_b[2] = val_b[6] = val_b[9] = true;
- val_f[val_b] = val_d1[val_b];
-
- double ans3[10] = {10, 10, 2, 10, 10, 10, 6, 10, 10, 9};
- VERIFY(check_array(val_f, ans3));
-
- size_t addr[] = {1, 2, 3, 4, 5};
- size_t addr1[] = {2, 7, 1, 9, 4};
- std::valarray<std::size_t> val_indirect(addr, 5);
- std::valarray<std::size_t> val_indirect1(addr1, 5);
- val_g[val_indirect] = val_d1[val_indirect1];
-
- double ans4[10] = {10, 2, 7, 1, 9, 4, 10, 10, 10, 10};
- VERIFY(check_array(val_g, ans4));
-
- return 0;
-};
+++ /dev/null
-// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <fstream>
-
-// { dg-do compile }
-
-// libstdc++/7216
-void test01()
-{
- // Check for required typedefs
- typedef std::filebuf test_type;
- typedef test_type::char_type char_type;
- typedef test_type::traits_type traits_type;
- typedef test_type::int_type int_type;
- typedef test_type::pos_type pos_type;
- typedef test_type::off_type off_type;
-}
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
+++ /dev/null
-// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <fstream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// { dg-do compile }
-
-// test05
-// libstdc++/1886
-// should be able to instantiate basic_filebuf for non-standard types.
-namespace std
-{
- using __gnu_test::pod_char;
- typedef short type_t;
- template class basic_filebuf<type_t, char_traits<type_t> >;
- template class basic_filebuf<pod_char, char_traits<pod_char> >;
-} // test
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
+++ /dev/null
-// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <fstream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// libstdc++/2020
-// should be able to use custom char_type, custom traits type
-void test07()
-{
- bool test __attribute__((unused)) = true;
- typedef std::basic_filebuf<__gnu_test::pod_ushort> gnu_filebuf;
-
- try
- { gnu_filebuf obj; }
- catch(std::exception& obj)
- {
- test = false;
- VERIFY( test );
- }
-}
-
-int main()
-{
- test07();
- return 0;
-}
-
-
-
-// more surf!!!
+++ /dev/null
-// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf
-
-#include <fstream>
-
-void test01()
-{
- // Check for required base class.
- typedef std::filebuf test_type;
- typedef std::streambuf base_type;
- const test_type& obj = *new test_type();
- const base_type* base __attribute__((unused)) = &obj;
-}
-
-int main()
-{
- test01();
- return 0;
-}
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
--- /dev/null
+// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <fstream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// libstdc++/2020
+// should be able to use custom char_type, custom traits type
+void test07()
+{
+ bool test __attribute__((unused)) = true;
+ typedef std::basic_filebuf<__gnu_test::pod_ushort> gnu_filebuf;
+
+ try
+ { gnu_filebuf obj; }
+ catch(std::exception& obj)
+ {
+ test = false;
+ VERIFY( test );
+ }
+}
+
+int main()
+{
+ test07();
+ return 0;
+}
+
+
+
+// more surf!!!
--- /dev/null
+// { dg-do compile }
+// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf
+
+#include <fstream>
+
+void test01()
+{
+ // Check for required base class.
+ typedef std::filebuf test_type;
+ typedef std::streambuf base_type;
+ const test_type& obj = *new test_type();
+ const base_type* base __attribute__((unused)) = &obj;
+}
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
--- /dev/null
+// { dg-do compile }
+// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <fstream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// test05
+// libstdc++/1886
+// should be able to instantiate basic_filebuf for non-standard types.
+namespace std
+{
+ using __gnu_test::pod_char;
+ typedef short type_t;
+ template class basic_filebuf<type_t, char_traits<type_t> >;
+ template class basic_filebuf<pod_char, char_traits<pod_char> >;
+} // test
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
--- /dev/null
+// { dg-do compile }
+// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <fstream>
+
+// libstdc++/7216
+void test01()
+{
+ // Check for required typedefs
+ typedef std::filebuf test_type;
+ typedef test_type::char_type char_type;
+ typedef test_type::traits_type traits_type;
+ typedef test_type::int_type int_type;
+ typedef test_type::pos_type pos_type;
+ typedef test_type::off_type off_type;
+}
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
+++ /dev/null
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.8.1.11 - Template class basic_fstream
-// NB: This file is for testing basic_fstream with NO OTHER INCLUDES.
-
-#include <fstream>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-// libstdc++/7216
-void test01()
-{
- // Check for required typedefs
- typedef std::fstream test_type;
- typedef test_type::char_type char_type;
- typedef test_type::traits_type traits_type;
- typedef test_type::int_type int_type;
- typedef test_type::pos_type pos_type;
- typedef test_type::off_type off_type;
-}
+++ /dev/null
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.8.1.11 - Template class basic_fstream
-// NB: This file is for testing basic_fstream with NO OTHER INCLUDES.
-
-#include <fstream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// { dg-do compile }
-
-namespace std
-{
- using __gnu_test::pod_char;
- typedef short type_t;
- template class basic_fstream<type_t, char_traits<type_t> >;
- template class basic_fstream<pod_char, char_traits<pod_char> >;
-} // test
-
+++ /dev/null
-// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <fstream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// libstdc++/2020
-// should be able to use custom char_type, custom traits type
-void test07()
-{
- bool test __attribute__((unused)) = true;
- typedef std::basic_fstream<__gnu_test::pod_ushort> gnu_fstr;
-
- try
- {
- gnu_fstr obj;
- }
- catch(std::exception& obj)
- {
- test = false;
- VERIFY( test );
- }
-}
-
-int main()
-{
- test07();
- return 0;
-}
-
-
-
-// more surf!!!
+++ /dev/null
-// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf
-
-#include <iostream>
-#include <fstream>
-
-void test01()
-{
- // Check for required base class.
- typedef std::fstream test_type;
- typedef std::iostream base_type;
- const test_type& obj = *new test_type();
- const base_type* base __attribute__((unused)) = &obj;
-}
-
-int main()
-{
- test01();
- return 0;
-}
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
--- /dev/null
+// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <fstream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// libstdc++/2020
+// should be able to use custom char_type, custom traits type
+void test07()
+{
+ bool test __attribute__((unused)) = true;
+ typedef std::basic_fstream<__gnu_test::pod_ushort> gnu_fstr;
+
+ try
+ {
+ gnu_fstr obj;
+ }
+ catch(std::exception& obj)
+ {
+ test = false;
+ VERIFY( test );
+ }
+}
+
+int main()
+{
+ test07();
+ return 0;
+}
+
+
+
+// more surf!!!
--- /dev/null
+// { dg-do compile }
+// 2003-03-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf
+
+#include <iostream>
+#include <fstream>
+
+void test01()
+{
+ // Check for required base class.
+ typedef std::fstream test_type;
+ typedef std::iostream base_type;
+ const test_type& obj = *new test_type();
+ const base_type* base __attribute__((unused)) = &obj;
+}
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
--- /dev/null
+// { dg-do compile }
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.8.1.11 - Template class basic_fstream
+// NB: This file is for testing basic_fstream with NO OTHER INCLUDES.
+
+#include <fstream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+namespace std
+{
+ using __gnu_test::pod_char;
+ typedef short type_t;
+ template class basic_fstream<type_t, char_traits<type_t> >;
+ template class basic_fstream<pod_char, char_traits<pod_char> >;
+} // test
+
--- /dev/null
+// { dg-do compile }
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.8.1.11 - Template class basic_fstream
+// NB: This file is for testing basic_fstream with NO OTHER INCLUDES.
+
+#include <fstream>
+#include <testsuite_hooks.h>
+
+// libstdc++/7216
+void test01()
+{
+ // Check for required typedefs
+ typedef std::fstream test_type;
+ typedef test_type::char_type char_type;
+ typedef test_type::traits_type traits_type;
+ typedef test_type::int_type int_type;
+ typedef test_type::pos_type pos_type;
+ typedef test_type::off_type off_type;
+}
+++ /dev/null
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.8.1.5 - Template class basic_ifstream
-// NB: This file is for testing basic_ifstream with NO OTHER INCLUDES.
-
-#include <fstream>
-
-// { dg-do compile }
-
-// libstdc++/7216
-void test01()
-{
- // Check for required typedefs
- typedef std::ifstream test_type;
- typedef test_type::char_type char_type;
- typedef test_type::traits_type traits_type;
- typedef test_type::int_type int_type;
- typedef test_type::pos_type pos_type;
- typedef test_type::off_type off_type;
-}
+++ /dev/null
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.8.1.5 - Template class basic_ifstream
-// NB: This file is for testing basic_ifstream with NO OTHER INCLUDES.
-
-#include <fstream>
-
-// { dg-do compile }
-
-namespace std
-{
- typedef short type_t;
- template class basic_ifstream<type_t, char_traits<type_t> >;
-} // test
+++ /dev/null
-// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <fstream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// libstdc++/2020
-// should be able to use custom char_type, custom traits type
-void test07()
-{
- bool test __attribute__((unused)) = true;
- typedef std::basic_ifstream<__gnu_test::pod_ushort> gnu_ifstr;
-
- try
- {
- gnu_ifstr obj;
- }
- catch(std::exception& obj)
- {
- test = false;
- VERIFY( test );
- }
-}
-
-int main()
-{
- test07();
- return 0;
-}
-
-
-
-// more surf!!!
+++ /dev/null
-// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf
-
-#include <istream>
-#include <fstream>
-
-void test01()
-{
- // Check for required base class.
- typedef std::ifstream test_type;
- typedef std::istream base_type;
- const test_type& obj = *new test_type();
- const base_type* base __attribute__((unused)) = &obj;
-}
-
-int main()
-{
- test01();
- return 0;
-}
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
--- /dev/null
+// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <fstream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// libstdc++/2020
+// should be able to use custom char_type, custom traits type
+void test07()
+{
+ bool test __attribute__((unused)) = true;
+ typedef std::basic_ifstream<__gnu_test::pod_ushort> gnu_ifstr;
+
+ try
+ {
+ gnu_ifstr obj;
+ }
+ catch(std::exception& obj)
+ {
+ test = false;
+ VERIFY( test );
+ }
+}
+
+int main()
+{
+ test07();
+ return 0;
+}
+
+
+
+// more surf!!!
--- /dev/null
+// { dg-do compile }
+// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf
+
+#include <istream>
+#include <fstream>
+
+void test01()
+{
+ // Check for required base class.
+ typedef std::ifstream test_type;
+ typedef std::istream base_type;
+ const test_type& obj = *new test_type();
+ const base_type* base __attribute__((unused)) = &obj;
+}
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
--- /dev/null
+// { dg-do compile }
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.8.1.5 - Template class basic_ifstream
+// NB: This file is for testing basic_ifstream with NO OTHER INCLUDES.
+
+#include <fstream>
+
+namespace std
+{
+ typedef short type_t;
+ template class basic_ifstream<type_t, char_traits<type_t> >;
+} // test
--- /dev/null
+// { dg-do compile }
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.8.1.5 - Template class basic_ifstream
+// NB: This file is for testing basic_ifstream with NO OTHER INCLUDES.
+
+#include <fstream>
+
+// libstdc++/7216
+void test01()
+{
+ // Check for required typedefs
+ typedef std::ifstream test_type;
+ typedef test_type::char_type char_type;
+ typedef test_type::traits_type traits_type;
+ typedef test_type::int_type int_type;
+ typedef test_type::pos_type pos_type;
+ typedef test_type::off_type off_type;
+}
+++ /dev/null
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.4.4 - Template class basic_ios
-// NB: This file is for testing basic_ios with NO OTHER INCLUDES.
-
-#include <ios>
-
-// { dg-do compile }
-
-// libstdc++/7216
-void test01()
-{
- // Check for required typedefs
- typedef std::ios test_type;
- typedef test_type::char_type char_type;
- typedef test_type::traits_type traits_type;
- typedef test_type::int_type int_type;
- typedef test_type::pos_type pos_type;
- typedef test_type::off_type off_type;
-}
+++ /dev/null
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.4.4 - Template class basic_ios
-// NB: This file is for testing basic_ios with NO OTHER INCLUDES.
-
-#include <ios>
-
-// { dg-do compile }
-
-namespace std
-{
- typedef short type_t;
- template class basic_ios<type_t, char_traits<type_t> >;
-} // test
+++ /dev/null
-// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <ios>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// libstdc++/2020
-// should be able to use custom char_type, custom traits type
-class gnu_ios: public std::basic_ios<__gnu_test::pod_ushort>
-{ };
-
-void test07()
-{
- bool test __attribute__((unused)) = true;
-
- try
- { gnu_ios obj; }
- catch(std::exception& obj)
- {
- test = false;
- VERIFY( test );
- }
-}
-
-int main()
-{
- test07();
- return 0;
-}
-
-
-
-// more surf!!!
+++ /dev/null
-// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf
-
-#include <ios>
-#include <sstream>
-
-void test01()
-{
- // Check for required base class.
- typedef std::ios test_type;
- typedef std::ios_base base_type;
-
- std::stringbuf buf;
- const test_type& obj = *new test_type(&buf);
- const base_type* base __attribute__((unused)) = &obj;
-}
-
-int main()
-{
- test01();
- return 0;
-}
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
--- /dev/null
+// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <ios>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// libstdc++/2020
+// should be able to use custom char_type, custom traits type
+class gnu_ios: public std::basic_ios<__gnu_test::pod_ushort>
+{ };
+
+void test07()
+{
+ bool test __attribute__((unused)) = true;
+
+ try
+ { gnu_ios obj; }
+ catch(std::exception& obj)
+ {
+ test = false;
+ VERIFY( test );
+ }
+}
+
+int main()
+{
+ test07();
+ return 0;
+}
+
+
+
+// more surf!!!
--- /dev/null
+// { dg-do compile }
+// 2003-03-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf
+
+#include <ios>
+#include <sstream>
+
+void test01()
+{
+ // Check for required base class.
+ typedef std::ios test_type;
+ typedef std::ios_base base_type;
+
+ std::stringbuf buf;
+ const test_type& obj = *new test_type(&buf);
+ const base_type* base __attribute__((unused)) = &obj;
+}
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
--- /dev/null
+// { dg-do compile }
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.4.4 - Template class basic_ios
+// NB: This file is for testing basic_ios with NO OTHER INCLUDES.
+
+#include <ios>
+
+namespace std
+{
+ typedef short type_t;
+ template class basic_ios<type_t, char_traits<type_t> >;
+} // test
--- /dev/null
+// { dg-do compile }
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.4.4 - Template class basic_ios
+// NB: This file is for testing basic_ios with NO OTHER INCLUDES.
+
+#include <ios>
+
+// libstdc++/7216
+void test01()
+{
+ // Check for required typedefs
+ typedef std::ios test_type;
+ typedef test_type::char_type char_type;
+ typedef test_type::traits_type traits_type;
+ typedef test_type::int_type int_type;
+ typedef test_type::pos_type pos_type;
+ typedef test_type::off_type off_type;
+}
+++ /dev/null
-// 2002-01-08 bkoz
-
-// Copyright (C) 2002 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.6.1.5 - Template class basic_iostream
-// NB: This file is for testing iostream with NO OTHER INCLUDES.
-
-// { dg-do compile }
-
-#include <istream>
-
-// libstdc++/7216
-void test01()
-{
- // Check for required typedefs
- typedef std::iostream test_type;
- typedef test_type::char_type char_type;
- typedef test_type::traits_type traits_type;
- typedef test_type::int_type int_type;
- typedef test_type::pos_type pos_type;
- typedef test_type::off_type off_type;
-}
+++ /dev/null
-// 2002-01-08 bkoz
-
-// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.6.1.5 - Template class basic_iostream
-// NB: This file is for testing iostream with NO OTHER INCLUDES.
-
-// { dg-do compile }
-
-#include <istream>
-
-namespace std
-{
- typedef short type_t;
- template class basic_iostream<type_t, char_traits<type_t> >;
-} // test
+++ /dev/null
-// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <iostream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// libstdc++/2020
-// should be able to use custom char_type, custom traits type
-void test07()
-{
- bool test __attribute__((unused)) = true;
- typedef std::basic_iostream<__gnu_test::pod_ushort> gnu_iostr;
-
- try
- {
- gnu_iostr obj(NULL);
- }
- catch(std::exception& obj)
- {
- test = false;
- VERIFY( test );
- }
-}
-
-int main()
-{
- test07();
- return 0;
-}
-
-
-
-// more surf!!!
+++ /dev/null
-// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf
-
-#include <iostream>
-#include <sstream>
-
-void test01()
-{
- // Check for required base class.
- typedef std::iostream test_type;
- typedef std::istream base_type1;
- typedef std::ostream base_type2;
-
- std::stringbuf buf;
- const test_type& obj = *new test_type(&buf);
- const base_type1* base1 __attribute__((unused)) = &obj;
- const base_type2* base2 __attribute__((unused)) = &obj;
-}
-
-int main()
-{
- test01();
- return 0;
-}
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
--- /dev/null
+// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <iostream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// libstdc++/2020
+// should be able to use custom char_type, custom traits type
+void test07()
+{
+ bool test __attribute__((unused)) = true;
+ typedef std::basic_iostream<__gnu_test::pod_ushort> gnu_iostr;
+
+ try
+ {
+ gnu_iostr obj(NULL);
+ }
+ catch(std::exception& obj)
+ {
+ test = false;
+ VERIFY( test );
+ }
+}
+
+int main()
+{
+ test07();
+ return 0;
+}
+
+
+
+// more surf!!!
--- /dev/null
+// { dg-do compile }
+// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf
+
+#include <iostream>
+#include <sstream>
+
+void test01()
+{
+ // Check for required base class.
+ typedef std::iostream test_type;
+ typedef std::istream base_type1;
+ typedef std::ostream base_type2;
+
+ std::stringbuf buf;
+ const test_type& obj = *new test_type(&buf);
+ const base_type1* base1 __attribute__((unused)) = &obj;
+ const base_type2* base2 __attribute__((unused)) = &obj;
+}
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
--- /dev/null
+// { dg-do compile }
+// 2002-01-08 bkoz
+
+// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.6.1.5 - Template class basic_iostream
+// NB: This file is for testing iostream with NO OTHER INCLUDES.
+
+#include <istream>
+
+namespace std
+{
+ typedef short type_t;
+ template class basic_iostream<type_t, char_traits<type_t> >;
+} // test
--- /dev/null
+// { dg-do compile }
+// 2002-01-08 bkoz
+
+// Copyright (C) 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.6.1.5 - Template class basic_iostream
+// NB: This file is for testing iostream with NO OTHER INCLUDES.
+
+#include <istream>
+
+// libstdc++/7216
+void test01()
+{
+ // Check for required typedefs
+ typedef std::iostream test_type;
+ typedef test_type::char_type char_type;
+ typedef test_type::traits_type traits_type;
+ typedef test_type::int_type int_type;
+ typedef test_type::pos_type pos_type;
+ typedef test_type::off_type off_type;
+}
+++ /dev/null
-// 1999-09-20 bkoz
-
-// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.6.1.1 basic_istream
-// NB: This file is for testing istream with NO OTHER INCLUDES.
-
-#include <istream>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-// libstdc++/7216
-void test01()
-{
- // Check for required typedefs
- typedef std::istream test_type;
- typedef test_type::char_type char_type;
- typedef test_type::traits_type traits_type;
- typedef test_type::int_type int_type;
- typedef test_type::pos_type pos_type;
- typedef test_type::off_type off_type;
-}
+++ /dev/null
-// 1999-09-20 bkoz
-
-// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.6.1.1 basic_istream
-// NB: This file is for testing istream with NO OTHER INCLUDES.
-
-#include <istream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// { dg-do compile }
-
-namespace std
-{
- using __gnu_test::pod_char;
- typedef short type_t;
- template class basic_istream<type_t, char_traits<type_t> >;
- template class basic_istream<pod_char, char_traits<pod_char> >;
-} // test
+++ /dev/null
-// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <istream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// libstdc++/2020
-// should be able to use custom char_type, custom traits type
-void test07()
-{
- bool test __attribute__((unused)) = true;
- typedef std::basic_istream<__gnu_test::pod_ushort> gnu_istr;
-
- try
- { gnu_istr obj(NULL); }
- catch(std::exception& obj)
- {
- test = false;
- VERIFY( test );
- }
-}
-
-int main()
-{
- test07();
- return 0;
-}
-
-
-
-// more surf!!!
+++ /dev/null
-// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf
-
-#include <istream>
-#include <sstream>
-
-void test01()
-{
- // Check for required base class.
- typedef std::istream test_type;
- typedef std::ios base_type;
-
- std::stringbuf buf;
- const test_type& obj = *new test_type(&buf);
- const base_type* base __attribute__((unused)) = &obj;
-}
-
-int main()
-{
- test01();
- return 0;
-}
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
--- /dev/null
+// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <istream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// libstdc++/2020
+// should be able to use custom char_type, custom traits type
+void test07()
+{
+ bool test __attribute__((unused)) = true;
+ typedef std::basic_istream<__gnu_test::pod_ushort> gnu_istr;
+
+ try
+ { gnu_istr obj(NULL); }
+ catch(std::exception& obj)
+ {
+ test = false;
+ VERIFY( test );
+ }
+}
+
+int main()
+{
+ test07();
+ return 0;
+}
+
+
+
+// more surf!!!
--- /dev/null
+// { dg-do compile }
+// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf
+
+#include <istream>
+#include <sstream>
+
+void test01()
+{
+ // Check for required base class.
+ typedef std::istream test_type;
+ typedef std::ios base_type;
+
+ std::stringbuf buf;
+ const test_type& obj = *new test_type(&buf);
+ const base_type* base __attribute__((unused)) = &obj;
+}
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
--- /dev/null
+// { dg-do compile }
+// 1999-09-20 bkoz
+
+// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.6.1.1 basic_istream
+// NB: This file is for testing istream with NO OTHER INCLUDES.
+
+#include <istream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+namespace std
+{
+ using __gnu_test::pod_char;
+ typedef short type_t;
+ template class basic_istream<type_t, char_traits<type_t> >;
+ template class basic_istream<pod_char, char_traits<pod_char> >;
+} // test
--- /dev/null
+// { dg-do compile }
+// 1999-09-20 bkoz
+
+// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.6.1.1 basic_istream
+// NB: This file is for testing istream with NO OTHER INCLUDES.
+
+#include <istream>
+#include <testsuite_hooks.h>
+
+// libstdc++/7216
+void test01()
+{
+ // Check for required typedefs
+ typedef std::istream test_type;
+ typedef test_type::char_type char_type;
+ typedef test_type::traits_type traits_type;
+ typedef test_type::int_type int_type;
+ typedef test_type::pos_type pos_type;
+ typedef test_type::off_type off_type;
+}
+++ /dev/null
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.7.2 - Template class basic_istringstream
-// NB: This file is for testing basic_istringstream with NO OTHER INCLUDES.
-
-#include <sstream>
-
-// { dg-do compile }
-
-// libstdc++/7216
-void test01()
-{
- // Check for required typedefs
- typedef std::istringstream test_type;
- typedef test_type::char_type char_type;
- typedef test_type::traits_type traits_type;
- typedef test_type::int_type int_type;
- typedef test_type::pos_type pos_type;
- typedef test_type::off_type off_type;
-}
+++ /dev/null
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.7.2 - Template class basic_istringstream
-// NB: This file is for testing basic_istringstream with NO OTHER INCLUDES.
-
-#include <sstream>
-
-// { dg-do compile }
-
-namespace std
-{
- typedef short type_t;
- template class basic_istringstream<type_t, char_traits<type_t> >;
-} // test
+++ /dev/null
-// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <sstream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// libstdc++/2020
-// should be able to use custom char_type, custom traits type
-void test07()
-{
- bool test __attribute__((unused)) = true;
- typedef std::basic_istringstream<__gnu_test::pod_ushort> gnu_isstr;
-
- try
- {
- gnu_isstr obj;
- }
- catch(std::exception& obj)
- {
- test = false;
- VERIFY( test );
- }
-}
-
-int main()
-{
- test07();
- return 0;
-}
-
-
-
-// more surf!!!
+++ /dev/null
-// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf
-
-#include <istream>
-#include <sstream>
-
-void test01()
-{
- // Check for required base class.
- typedef std::istringstream test_type;
- typedef std::istream base_type;
- const test_type& obj = *new test_type();
- const base_type* base __attribute__((unused)) = &obj;
-}
-
-int main()
-{
- test01();
- return 0;
-}
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
--- /dev/null
+// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <sstream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// libstdc++/2020
+// should be able to use custom char_type, custom traits type
+void test07()
+{
+ bool test __attribute__((unused)) = true;
+ typedef std::basic_istringstream<__gnu_test::pod_ushort> gnu_isstr;
+
+ try
+ {
+ gnu_isstr obj;
+ }
+ catch(std::exception& obj)
+ {
+ test = false;
+ VERIFY( test );
+ }
+}
+
+int main()
+{
+ test07();
+ return 0;
+}
+
+
+
+// more surf!!!
--- /dev/null
+// { dg-do compile }
+// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf
+
+#include <istream>
+#include <sstream>
+
+void test01()
+{
+ // Check for required base class.
+ typedef std::istringstream test_type;
+ typedef std::istream base_type;
+ const test_type& obj = *new test_type();
+ const base_type* base __attribute__((unused)) = &obj;
+}
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
--- /dev/null
+// { dg-do compile }
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.7.2 - Template class basic_istringstream
+// NB: This file is for testing basic_istringstream with NO OTHER INCLUDES.
+
+#include <sstream>
+
+namespace std
+{
+ typedef short type_t;
+ template class basic_istringstream<type_t, char_traits<type_t> >;
+} // test
--- /dev/null
+// { dg-do compile }
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.7.2 - Template class basic_istringstream
+// NB: This file is for testing basic_istringstream with NO OTHER INCLUDES.
+
+#include <sstream>
+
+// libstdc++/7216
+void test01()
+{
+ // Check for required typedefs
+ typedef std::istringstream test_type;
+ typedef test_type::char_type char_type;
+ typedef test_type::traits_type traits_type;
+ typedef test_type::int_type int_type;
+ typedef test_type::pos_type pos_type;
+ typedef test_type::off_type off_type;
+}
+++ /dev/null
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.8.1.8 - Template class basic_ofstream
-// NB: This file is for testing basic_ofstream with NO OTHER INCLUDES.
-
-#include <fstream>
-
-// { dg-do compile }
-
-// libstdc++/7216
-void test01()
-{
- // Check for required typedefs
- typedef std::ifstream test_type;
- typedef test_type::char_type char_type;
- typedef test_type::traits_type traits_type;
- typedef test_type::int_type int_type;
- typedef test_type::pos_type pos_type;
- typedef test_type::off_type off_type;
-}
+++ /dev/null
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.8.1.8 - Template class basic_ofstream
-// NB: This file is for testing basic_ofstream with NO OTHER INCLUDES.
-
-#include <fstream>
-
-// { dg-do compile }
-
-namespace std
-{
- typedef short type_t;
- template class basic_ifstream<type_t, char_traits<type_t> >;
-} // test
+++ /dev/null
-// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <fstream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// libstdc++/2020
-// should be able to use custom char_type, custom traits type
-void test07()
-{
- bool test __attribute__((unused)) = true;
- typedef std::basic_ofstream<__gnu_test::pod_ushort> gnu_ofstr;
-
- try
- {
- gnu_ofstr obj;
- }
- catch(std::exception& obj)
- {
- test = false;
- VERIFY( test );
- }
-}
-
-int main()
-{
- test07();
- return 0;
-}
-
-
-
-// more surf!!!
+++ /dev/null
-// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf
-
-#include <ostream>
-#include <fstream>
-
-void test01()
-{
- // Check for required base class.
- typedef std::ofstream test_type;
- typedef std::ostream base_type;
- const test_type& obj = *new test_type();
- const base_type* base __attribute__((unused)) = &obj;
-}
-
-int main()
-{
- test01();
- return 0;
-}
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
--- /dev/null
+// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <fstream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// libstdc++/2020
+// should be able to use custom char_type, custom traits type
+void test07()
+{
+ bool test __attribute__((unused)) = true;
+ typedef std::basic_ofstream<__gnu_test::pod_ushort> gnu_ofstr;
+
+ try
+ {
+ gnu_ofstr obj;
+ }
+ catch(std::exception& obj)
+ {
+ test = false;
+ VERIFY( test );
+ }
+}
+
+int main()
+{
+ test07();
+ return 0;
+}
+
+
+
+// more surf!!!
--- /dev/null
+// { dg-do compile }
+// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf
+
+#include <ostream>
+#include <fstream>
+
+void test01()
+{
+ // Check for required base class.
+ typedef std::ofstream test_type;
+ typedef std::ostream base_type;
+ const test_type& obj = *new test_type();
+ const base_type* base __attribute__((unused)) = &obj;
+}
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
--- /dev/null
+// { dg-do compile }
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.8.1.8 - Template class basic_ofstream
+// NB: This file is for testing basic_ofstream with NO OTHER INCLUDES.
+
+#include <fstream>
+
+namespace std
+{
+ typedef short type_t;
+ template class basic_ifstream<type_t, char_traits<type_t> >;
+} // test
--- /dev/null
+// { dg-do compile }
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.8.1.8 - Template class basic_ofstream
+// NB: This file is for testing basic_ofstream with NO OTHER INCLUDES.
+
+#include <fstream>
+
+// libstdc++/7216
+void test01()
+{
+ // Check for required typedefs
+ typedef std::ifstream test_type;
+ typedef test_type::char_type char_type;
+ typedef test_type::traits_type traits_type;
+ typedef test_type::int_type int_type;
+ typedef test_type::pos_type pos_type;
+ typedef test_type::off_type off_type;
+}
+++ /dev/null
-// 1999-09-20 bkoz
-
-// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.6.2.1 basic_ostream
-// NB: This file is for testing ostream with NO OTHER INCLUDES.
-
-#include <ostream>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-// libstdc++/7216
-void test01()
-{
- // Check for required typedefs
- typedef std::ostream test_type;
- typedef test_type::char_type char_type;
- typedef test_type::traits_type traits_type;
- typedef test_type::int_type int_type;
- typedef test_type::pos_type pos_type;
- typedef test_type::off_type off_type;
-}
+++ /dev/null
-// 1999-09-20 bkoz
-
-// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.6.2.1 basic_ostream
-// NB: This file is for testing ostream with NO OTHER INCLUDES.
-
-#include <ostream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// { dg-do compile }
-
-namespace std
-{
- using __gnu_test::pod_char;
- typedef short type_t;
- template class basic_ostream<type_t, char_traits<type_t> >;
- template class basic_ostream<pod_char, char_traits<pod_char> >;
-} // test
+++ /dev/null
-// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <ostream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// libstdc++/2020
-// should be able to use custom char_type, custom traits type
-void test07()
-{
- bool test __attribute__((unused)) = true;
- typedef std::basic_ostream<__gnu_test::pod_ushort> gnu_ostr;
-
- try
- {
- gnu_ostr obj(NULL);
- }
- catch(std::exception& obj)
- {
- test = false;
- VERIFY( test );
- }
-}
-
-int main()
-{
- test07();
- return 0;
-}
-
-
-
-// more surf!!!
+++ /dev/null
-// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf
-
-#include <ostream>
-#include <sstream>
-
-void test01()
-{
- // Check for required base class.
- typedef std::ostream test_type;
- typedef std::ios base_type;
-
- std::stringbuf buf;
- const test_type& obj = *new test_type(&buf);
- const base_type* base __attribute__((unused)) = &obj;
-}
-
-int main()
-{
- test01();
- return 0;
-}
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
--- /dev/null
+// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <ostream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// libstdc++/2020
+// should be able to use custom char_type, custom traits type
+void test07()
+{
+ bool test __attribute__((unused)) = true;
+ typedef std::basic_ostream<__gnu_test::pod_ushort> gnu_ostr;
+
+ try
+ {
+ gnu_ostr obj(NULL);
+ }
+ catch(std::exception& obj)
+ {
+ test = false;
+ VERIFY( test );
+ }
+}
+
+int main()
+{
+ test07();
+ return 0;
+}
+
+
+
+// more surf!!!
--- /dev/null
+// { dg-do compile }
+// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf
+
+#include <ostream>
+#include <sstream>
+
+void test01()
+{
+ // Check for required base class.
+ typedef std::ostream test_type;
+ typedef std::ios base_type;
+
+ std::stringbuf buf;
+ const test_type& obj = *new test_type(&buf);
+ const base_type* base __attribute__((unused)) = &obj;
+}
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
--- /dev/null
+// { dg-do compile }
+// 1999-09-20 bkoz
+
+// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.6.2.1 basic_ostream
+// NB: This file is for testing ostream with NO OTHER INCLUDES.
+
+#include <ostream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+namespace std
+{
+ using __gnu_test::pod_char;
+ typedef short type_t;
+ template class basic_ostream<type_t, char_traits<type_t> >;
+ template class basic_ostream<pod_char, char_traits<pod_char> >;
+} // test
--- /dev/null
+// { dg-do compile }
+// 1999-09-20 bkoz
+
+// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.6.2.1 basic_ostream
+// NB: This file is for testing ostream with NO OTHER INCLUDES.
+
+#include <ostream>
+#include <testsuite_hooks.h>
+
+// libstdc++/7216
+void test01()
+{
+ // Check for required typedefs
+ typedef std::ostream test_type;
+ typedef test_type::char_type char_type;
+ typedef test_type::traits_type traits_type;
+ typedef test_type::int_type int_type;
+ typedef test_type::pos_type pos_type;
+ typedef test_type::off_type off_type;
+}
+++ /dev/null
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.7.3 - Class basic_ostringstream
-// NB: This file is for testing basic_ostringstream with NO OTHER INCLUDES.
-
-#include <sstream>
-
-// { dg-do compile }
-
-// libstdc++/7216
-void test01()
-{
- // Check for required typedefs
- typedef std::ostringstream test_type;
- typedef test_type::char_type char_type;
- typedef test_type::traits_type traits_type;
- typedef test_type::int_type int_type;
- typedef test_type::pos_type pos_type;
- typedef test_type::off_type off_type;
-}
+++ /dev/null
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.7.3 - Class basic_ostringstream
-// NB: This file is for testing basic_ostringstream with NO OTHER INCLUDES.
-
-#include <sstream>
-
-// { dg-do compile }
-
-namespace std
-{
- typedef short type_t;
- template class basic_ostringstream<type_t, char_traits<type_t> >;
-} // test
+++ /dev/null
-// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <sstream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// libstdc++/2020
-// should be able to use custom char_type, custom traits type
-void test07()
-{
- bool test __attribute__((unused)) = true;
- typedef std::basic_ostringstream<__gnu_test::pod_ushort> gnu_osstr;
-
- try
- {
- gnu_osstr obj;
- }
- catch(std::exception& obj)
- {
- test = false;
- VERIFY( test );
- }
-}
-
-int main()
-{
- test07();
- return 0;
-}
-
-
-
-// more surf!!!
+++ /dev/null
-// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf
-
-#include <ostream>
-#include <sstream>
-
-void test01()
-{
- // Check for required base class.
- typedef std::ostringstream test_type;
- typedef std::ostream base_type;
- const test_type& obj = *new test_type();
- const base_type* base __attribute__((unused)) = &obj;
-}
-
-int main()
-{
- test01();
- return 0;
-}
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
--- /dev/null
+// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <sstream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// libstdc++/2020
+// should be able to use custom char_type, custom traits type
+void test07()
+{
+ bool test __attribute__((unused)) = true;
+ typedef std::basic_ostringstream<__gnu_test::pod_ushort> gnu_osstr;
+
+ try
+ {
+ gnu_osstr obj;
+ }
+ catch(std::exception& obj)
+ {
+ test = false;
+ VERIFY( test );
+ }
+}
+
+int main()
+{
+ test07();
+ return 0;
+}
+
+
+
+// more surf!!!
--- /dev/null
+// { dg-do compile }
+// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf
+
+#include <ostream>
+#include <sstream>
+
+void test01()
+{
+ // Check for required base class.
+ typedef std::ostringstream test_type;
+ typedef std::ostream base_type;
+ const test_type& obj = *new test_type();
+ const base_type* base __attribute__((unused)) = &obj;
+}
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
--- /dev/null
+// { dg-do compile }
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.7.3 - Class basic_ostringstream
+// NB: This file is for testing basic_ostringstream with NO OTHER INCLUDES.
+
+#include <sstream>
+
+namespace std
+{
+ typedef short type_t;
+ template class basic_ostringstream<type_t, char_traits<type_t> >;
+} // test
--- /dev/null
+// { dg-do compile }
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.7.3 - Class basic_ostringstream
+// NB: This file is for testing basic_ostringstream with NO OTHER INCLUDES.
+
+#include <sstream>
+
+// libstdc++/7216
+void test01()
+{
+ // Check for required typedefs
+ typedef std::ostringstream test_type;
+ typedef test_type::char_type char_type;
+ typedef test_type::traits_type traits_type;
+ typedef test_type::int_type int_type;
+ typedef test_type::pos_type pos_type;
+ typedef test_type::off_type off_type;
+}
+++ /dev/null
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.5.2 - Template class basic_streambuf
-// NB: This file is for testing basic_streambuf with NO OTHER INCLUDES.
-
-#include <streambuf>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-// libstdc++/7216
-void test01()
-{
- // Check for required typedefs
- typedef std::streambuf test_type;
- typedef test_type::char_type char_type;
- typedef test_type::traits_type traits_type;
- typedef test_type::int_type int_type;
- typedef test_type::pos_type pos_type;
- typedef test_type::off_type off_type;
-}
+++ /dev/null
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.5.2 - Template class basic_streambuf
-// NB: This file is for testing basic_streambuf with NO OTHER INCLUDES.
-
-#include <streambuf>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// { dg-do compile }
-
-namespace std
-{
- using __gnu_test::pod_char;
- typedef short type_t;
- template class basic_streambuf<type_t, char_traits<type_t> >;
- template class basic_streambuf<pod_char, char_traits<pod_char> >;
-} // test
+++ /dev/null
-// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <fstream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// libstdc++/2020
-// should be able to use custom char_type, custom traits type
-class gnu_sbuf: public std::basic_streambuf<__gnu_test::pod_ushort>
-{ };
-
-void test07()
-{
- bool test __attribute__((unused)) = true;
-
- try
- { gnu_sbuf obj; }
- catch(std::exception& obj)
- {
- test = false;
- VERIFY( test );
- }
-}
-
-int main()
-{
- test07();
- return 0;
-}
-
-
-
-// more surf!!!
--- /dev/null
+// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <fstream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// libstdc++/2020
+// should be able to use custom char_type, custom traits type
+class gnu_sbuf: public std::basic_streambuf<__gnu_test::pod_ushort>
+{ };
+
+void test07()
+{
+ bool test __attribute__((unused)) = true;
+
+ try
+ { gnu_sbuf obj; }
+ catch(std::exception& obj)
+ {
+ test = false;
+ VERIFY( test );
+ }
+}
+
+int main()
+{
+ test07();
+ return 0;
+}
+
+
+
+// more surf!!!
--- /dev/null
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.5.2 - Template class basic_streambuf
+// NB: This file is for testing basic_streambuf with NO OTHER INCLUDES.
+
+#include <streambuf>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// { dg-do compile }
+
+namespace std
+{
+ using __gnu_test::pod_char;
+ typedef short type_t;
+ template class basic_streambuf<type_t, char_traits<type_t> >;
+ template class basic_streambuf<pod_char, char_traits<pod_char> >;
+} // test
--- /dev/null
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.5.2 - Template class basic_streambuf
+// NB: This file is for testing basic_streambuf with NO OTHER INCLUDES.
+
+#include <streambuf>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+// libstdc++/7216
+void test01()
+{
+ // Check for required typedefs
+ typedef std::streambuf test_type;
+ typedef test_type::char_type char_type;
+ typedef test_type::traits_type traits_type;
+ typedef test_type::int_type int_type;
+ typedef test_type::pos_type pos_type;
+ typedef test_type::off_type off_type;
+}
+++ /dev/null
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.7.1 - Template class basic_stringbuf
-// NB: This file is for testing basic_stringbuf with NO OTHER INCLUDES.
-
-#include <sstream>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-// libstdc++/7216
-void test01()
-{
- // Check for required typedefs
- typedef std::stringbuf test_type;
- typedef test_type::char_type char_type;
- typedef test_type::traits_type traits_type;
- typedef test_type::int_type int_type;
- typedef test_type::pos_type pos_type;
- typedef test_type::off_type off_type;
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.7.1 - Template class basic_stringbuf
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <sstream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// { dg-do compile }
-
-// test05
-// libstdc++/1886
-// should be able to instantiate basic_stringbuf for non-standard types.
-namespace std
-{
- using __gnu_test::pod_char;
- typedef short type_t;
- template class basic_stringbuf<type_t, char_traits<type_t> >;
- template class basic_stringbuf<pod_char, char_traits<pod_char> >;
-} // std
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
+++ /dev/null
-// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.7.1 - Template class basic_stringbuf
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <sstream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// libstdc++/2020
-// should be able to use custom char_type, custom traits type
-void test07()
-{
- bool test __attribute__((unused)) = true;
- typedef std::basic_stringbuf<__gnu_test::pod_ushort> gnu_ssbuf;
-
- try
- { gnu_ssbuf obj; }
- catch(std::exception& obj)
- {
- test = false;
- VERIFY( test );
- }
-}
-
-int main()
-{
- test07();
- return 0;
-}
-
-
-
-// more surf!!!
+++ /dev/null
-// 2003-04-07 bkoz
-
-// Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.7.1 - Template class basic_stringbuf
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <sstream>
-#include <testsuite_hooks.h>
-#include <testsuite_allocator.h>
-#include <testsuite_character.h>
-
-// { dg-do compile }
-
-namespace std
-{
- using __gnu_test::pod_char;
- typedef __gnu_test::tracker_allocator<char> alloc_type;
- template class basic_stringbuf<char, char_traits<char>, alloc_type>;
-} // test
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
+++ /dev/null
-// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.7.1 - Template class basic_stringbuf
-
-#include <sstream>
-
-void test01()
-{
- // Check for required base class.
- typedef std::stringbuf test_type;
- typedef std::streambuf base_type;
- const test_type& obj = *new test_type();
- const base_type* base __attribute__((unused)) = &obj;
-}
-
-int main()
-{
- test01();
- return 0;
-}
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
--- /dev/null
+// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.7.1 - Template class basic_stringbuf
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <sstream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// libstdc++/2020
+// should be able to use custom char_type, custom traits type
+void test07()
+{
+ bool test __attribute__((unused)) = true;
+ typedef std::basic_stringbuf<__gnu_test::pod_ushort> gnu_ssbuf;
+
+ try
+ { gnu_ssbuf obj; }
+ catch(std::exception& obj)
+ {
+ test = false;
+ VERIFY( test );
+ }
+}
+
+int main()
+{
+ test07();
+ return 0;
+}
+
+
+
+// more surf!!!
--- /dev/null
+// { dg-do compile }
+// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.7.1 - Template class basic_stringbuf
+
+#include <sstream>
+
+void test01()
+{
+ // Check for required base class.
+ typedef std::stringbuf test_type;
+ typedef std::streambuf base_type;
+ const test_type& obj = *new test_type();
+ const base_type* base __attribute__((unused)) = &obj;
+}
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
--- /dev/null
+// { dg-do compile }
+// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.7.1 - Template class basic_stringbuf
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <sstream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// test05
+// libstdc++/1886
+// should be able to instantiate basic_stringbuf for non-standard types.
+namespace std
+{
+ using __gnu_test::pod_char;
+ typedef short type_t;
+ template class basic_stringbuf<type_t, char_traits<type_t> >;
+ template class basic_stringbuf<pod_char, char_traits<pod_char> >;
+} // std
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
--- /dev/null
+// { dg-do compile }
+// 2003-04-07 bkoz
+
+// Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.7.1 - Template class basic_stringbuf
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <sstream>
+#include <testsuite_hooks.h>
+#include <testsuite_allocator.h>
+#include <testsuite_character.h>
+
+namespace std
+{
+ using __gnu_test::pod_char;
+ typedef __gnu_test::tracker_allocator<char> alloc_type;
+ template class basic_stringbuf<char, char_traits<char>, alloc_type>;
+} // test
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
--- /dev/null
+// { dg-do compile }
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.7.1 - Template class basic_stringbuf
+// NB: This file is for testing basic_stringbuf with NO OTHER INCLUDES.
+
+#include <sstream>
+#include <testsuite_hooks.h>
+
+// libstdc++/7216
+void test01()
+{
+ // Check for required typedefs
+ typedef std::stringbuf test_type;
+ typedef test_type::char_type char_type;
+ typedef test_type::traits_type traits_type;
+ typedef test_type::int_type int_type;
+ typedef test_type::pos_type pos_type;
+ typedef test_type::off_type off_type;
+}
+++ /dev/null
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.7.4 - Template class basic_stringstream
-// NB: This file is for testing basic_stringstream with NO OTHER INCLUDES.
-
-#include <sstream>
-#include <testsuite_hooks.h>
-
-// { dg-do compile }
-
-// libstdc++/7216
-void test01()
-{
- // Check for required typedefs
- typedef std::stringstream test_type;
- typedef test_type::char_type char_type;
- typedef test_type::traits_type traits_type;
- typedef test_type::int_type int_type;
- typedef test_type::pos_type pos_type;
- typedef test_type::off_type off_type;
-}
+++ /dev/null
-// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 27.7.4 - Template class basic_stringstream
-// NB: This file is for testing basic_stringstream with NO OTHER INCLUDES.
-
-#include <sstream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// { dg-do compile }
-
-namespace std
-{
- using __gnu_test::pod_char;
- typedef short type_t;
- template class basic_stringstream<type_t, char_traits<type_t> >;
- template class basic_stringstream<pod_char, char_traits<pod_char> >;
-} // std
+++ /dev/null
-// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf
-// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
-
-#include <sstream>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// libstdc++/2020
-// should be able to use custom char_type, custom traits type
-void test07()
-{
- bool test __attribute__((unused)) = true;
- typedef std::basic_stringstream<__gnu_test::pod_ushort> gnu_sstr;
-
- try
- {
- gnu_sstr obj;
- }
- catch(std::exception& obj)
- {
- test = false;
- VERIFY( test );
- }
-}
-
-int main()
-{
- test07();
- return 0;
-}
-
-
-
-// more surf!!!
+++ /dev/null
-// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.8.1.1 - Template class basic_filebuf
-
-#include <iostream>
-#include <sstream>
-
-void test01()
-{
- // Check for required base class.
- typedef std::stringstream test_type;
- typedef std::iostream base_type;
- const test_type& obj = *new test_type();
- const base_type* base __attribute__((unused)) = &obj;
-}
-
-int main()
-{
- test01();
- return 0;
-}
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
--- /dev/null
+// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf
+// NB: This file is for testing basic_filebuf with NO OTHER INCLUDES.
+
+#include <sstream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// libstdc++/2020
+// should be able to use custom char_type, custom traits type
+void test07()
+{
+ bool test __attribute__((unused)) = true;
+ typedef std::basic_stringstream<__gnu_test::pod_ushort> gnu_sstr;
+
+ try
+ {
+ gnu_sstr obj;
+ }
+ catch(std::exception& obj)
+ {
+ test = false;
+ VERIFY( test );
+ }
+}
+
+int main()
+{
+ test07();
+ return 0;
+}
+
+
+
+// more surf!!!
--- /dev/null
+// { dg-do compile }
+// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.8.1.1 - Template class basic_filebuf
+
+#include <iostream>
+#include <sstream>
+
+void test01()
+{
+ // Check for required base class.
+ typedef std::stringstream test_type;
+ typedef std::iostream base_type;
+ const test_type& obj = *new test_type();
+ const base_type* base __attribute__((unused)) = &obj;
+}
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
--- /dev/null
+// { dg-do compile }
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.7.4 - Template class basic_stringstream
+// NB: This file is for testing basic_stringstream with NO OTHER INCLUDES.
+
+#include <sstream>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+namespace std
+{
+ using __gnu_test::pod_char;
+ typedef short type_t;
+ template class basic_stringstream<type_t, char_traits<type_t> >;
+ template class basic_stringstream<pod_char, char_traits<pod_char> >;
+} // std
--- /dev/null
+// { dg-do compile }
+// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.7.4 - Template class basic_stringstream
+// NB: This file is for testing basic_stringstream with NO OTHER INCLUDES.
+
+#include <sstream>
+#include <testsuite_hooks.h>
+
+// libstdc++/7216
+void test01()
+{
+ // Check for required typedefs
+ typedef std::stringstream test_type;
+ typedef test_type::char_type char_type;
+ typedef test_type::traits_type traits_type;
+ typedef test_type::int_type int_type;
+ typedef test_type::pos_type pos_type;
+ typedef test_type::off_type off_type;
+}
+++ /dev/null
-// Copyright (C) 2003, 2004, 2005
-// Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 27.4.3 fpos
-// NB: This file is for testing fpos with NO OTHER INCLUDES.
-
-#include <ios>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// { dg-do compile }
-
-namespace std
-{
- using __gnu_test::pod_char;
- typedef short type_t;
- template class fpos<type_t>;
- template class fpos<pod_char>;
-} // std
-
-// more surf!!!
-
-
-
-
-
-
-
-
-
--- /dev/null
+// Copyright (C) 2003, 2004, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 27.4.3 fpos
+// NB: This file is for testing fpos with NO OTHER INCLUDES.
+
+#include <ios>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// { dg-do compile }
+
+namespace std
+{
+ using __gnu_test::pod_char;
+ typedef short type_t;
+ template class fpos<type_t>;
+ template class fpos<pod_char>;
+} // std
+
+// more surf!!!
+
+
+
+
+
+
+
+
+
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstdio>
+
+namespace gnu
+{
+ using std::clearerr;
+ using std::tmpfile;
+ using std::fgets;
+ using std::fscanf;
+ using std::gets;
+ using std::rename;
+ using std::fclose;
+ using std::fopen;
+ using std::fseek;
+ using std::perror;
+ using std::rewind;
+ using std::tmpnam;
+ using std::feof;
+ using std::fprintf;
+ using std::fsetpos;
+ using std::printf;
+ using std::scanf;
+ using std::ungetc;
+ using std::ferror;
+ using std::vfprintf;
+ using std::fputc;
+ using std::ftell;
+ using std::putc;
+ using std::setbuf;
+ using std::fflush;
+ using std::vprintf;
+ using std::fputs;
+ using std::fwrite;
+ using std::putchar;
+ using std::setvbuf;
+ using std::fgetc;
+ using std::vsprintf;
+ using std::fread;
+ using std::getc;
+ using std::puts;
+ using std::sprintf;
+ using std::fgetpos;
+ using std::freopen;
+ using std::getchar;
+ using std::remove;
+ using std::sscanf;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstdio>
+
+namespace gnu
+{
+#ifndef NULL
+ #error "NULL_must_be_a_macro"
+#endif
+
+#ifndef BUFSIZ
+ #error "BUFSIZ_must_be_a_macro"
+#endif
+
+#ifndef EOF
+ #error "EOF_must_be_a_macro"
+#endif
+
+#ifndef FILENAME_MAX
+ #error "FILENAME_MAX_must_be_a_macro"
+#endif
+
+#ifndef L_tmpnam
+ #error "L_tmpnam_must_be_a_macro"
+#endif
+
+#ifndef FOPEN_MAX
+ #error "FOPEN_MAX_must_be_a_macro"
+#endif
+
+#ifndef SEEK_CUR
+ #error "SEEK_CUR_must_be_a_macro"
+#endif
+
+#ifndef SEEK_END
+ #error "SEEK_END_must_be_a_macro"
+#endif
+
+#ifndef SEEK_SET
+ #error "SEEK_SET_must_be_a_macro"
+#endif
+
+#ifndef TMP_MAX
+ #error "TMP_MAX_must_be_a_macro"
+#endif
+
+#ifndef _IOFBF
+ #error "_IOFBF_must_be_a_macro"
+#endif
+
+#ifndef _IOLBF
+ #error "_IOLBF_must_be_a_macro"
+#endif
+
+#ifndef _IONBF
+ #error "_IONBF_must_be_a_macro"
+#endif
+
+#ifndef stderr
+ #error "stderr_must_be_a_macro"
+#endif
+
+#ifndef stdin
+ #error "stdin_must_be_a_macro"
+#endif
+
+#ifndef stdout
+ #error "stdout_must_be_a_macro"
+#endif
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <cstdio>
+
+namespace gnu
+{
+ std::size_t s;
+ std::FILE f;
+ std::FILE fpos_t;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <fstream>
+
+namespace std {
+ template <class charT, class traits>
+ class basic_filebuf;
+ typedef basic_filebuf<char> filebuf;
+ typedef basic_filebuf<wchar_t> wfilebuf;
+
+ template <class charT, class traits>
+ class basic_ifstream;
+ typedef basic_ifstream<char> ifstream;
+ typedef basic_ifstream<wchar_t> wifstream;
+
+ template <class charT, class traits>
+ class basic_ofstream;
+ typedef basic_ofstream<char> ofstream;
+ typedef basic_ofstream<wchar_t> wofstream;
+
+ template <class charT, class traits>
+ class basic_fstream;
+ typedef basic_fstream<char> fstream;
+ typedef basic_fstream<wchar_t> wfstream;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <fstream>
+
+namespace gnu
+{
+ typedef std::filebuf t1;
+ typedef std::wfilebuf t2;
+
+ typedef std::ifstream t3;
+ typedef std::wifstream t4;
+
+ typedef std::ofstream t5;
+ typedef std::wofstream t6;
+
+ typedef std::fstream t7;
+ typedef std::wfstream t8;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <iomanip>
+
+namespace std {
+#if 0
+ // Types T1, T2, ... are unspecified implementation types
+ T1 resetiosflags(ios_base::fmtflags mask);
+ T2 setiosflags (ios_base::fmtflags mask);
+ T3 setbase(int base);
+ template<charT> T4 setfill(charT c);
+ T5 setprecision(int n);
+ T6 setw(int n);
+#endif
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <ios>
+
+namespace std {
+#if 0
+ typedef OFF_T streamoff;
+ typedef SZ_T streamsize;
+#endif
+
+ template <class stateT> class fpos;
+ class ios_base;
+ template <class charT, class traits>
+ class basic_ios;
+
+ // 27.4.5, manipulators:
+ ios_base& boolalpha (ios_base& str);
+ ios_base& noboolalpha(ios_base& str);
+ ios_base& showbase (ios_base& str);
+ ios_base& noshowbase (ios_base& str);
+ ios_base& showpoint (ios_base& str);
+ ios_base& noshowpoint(ios_base& str);
+ ios_base& showpos (ios_base& str);
+ ios_base& noshowpos (ios_base& str);
+ ios_base& skipws (ios_base& str);
+ ios_base& noskipws (ios_base& str);
+ ios_base& uppercase (ios_base& str);
+ ios_base& nouppercase(ios_base& str);
+ ios_base& unitbuf (ios_base& str);
+ ios_base& nounitbuf (ios_base& str);
+ // 27.4.5.2 adjustfield:
+ ios_base& internal (ios_base& str);
+ ios_base& left (ios_base& str);
+ ios_base& right (ios_base& str);
+ // 27.4.5.3 basefield:
+ ios_base& dec (ios_base& str);
+ ios_base& hex (ios_base& str);
+ ios_base& oct (ios_base& str);
+ // 27.4.5.4 floatfield:
+ ios_base& fixed (ios_base& str);
+ ios_base& scientific (ios_base& str);
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <ios>
+
+namespace gnu
+{
+ typedef std::streamoff t1;
+ typedef std::streamsize t2;
+ typedef std::ios_base t3;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <iostream>
+
+namespace std {
+ extern istream cin;
+ extern ostream cout;
+ extern ostream cerr;
+ extern ostream clog;
+ extern wistream wcin;
+ extern wostream wcout;
+ extern wostream wcerr;
+ extern wostream wclog;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <iostream>
+
+namespace gnu
+{
+ using std::cout;
+ using std::cerr;
+ using std::cin;
+ using std::clog;
+
+ using std::wcout;
+ using std::wcerr;
+ using std::wcin;
+ using std::wclog;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <istream>
+
+namespace std {
+ template <class charT, class traits >
+ class basic_istream;
+ typedef basic_istream<char> istream;
+ typedef basic_istream<wchar_t> wistream;
+ template <class charT, class traits >
+ class basic_iostream;
+ typedef basic_iostream<char> iostream;
+ typedef basic_iostream<wchar_t> wiostream;
+ template <class charT, class traits>
+ basic_istream<charT,traits>& ws(basic_istream<charT,traits>& is);
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <istream>
+
+namespace gnu
+{
+ typedef std::istream t1;
+ typedef std::wistream t2;
+
+ typedef std::iostream t3;
+ typedef std::wiostream t4;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <ostream>
+
+namespace std {
+ template <class charT, class traits>
+ class basic_ostream;
+ typedef basic_ostream<char> ostream;
+ typedef basic_ostream<wchar_t> wostream;
+ template <class charT, class traits>
+ basic_ostream<charT,traits>& endl(basic_ostream<charT,traits>& os);
+ template <class charT, class traits>
+ basic_ostream<charT,traits>& ends(basic_ostream<charT,traits>& os);
+ template <class charT, class traits>
+ basic_ostream<charT,traits>& flush(basic_ostream<charT,traits>& os);
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <ostream>
+
+namespace gnu
+{
+ typedef std::ostream t1;
+ typedef std::wostream t2;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <sstream>
+
+namespace std {
+ template <class charT, class traits, class Allocator>
+ class basic_stringbuf;
+ typedef basic_stringbuf<char> stringbuf;
+ typedef basic_stringbuf<wchar_t> wstringbuf;
+
+ template <class charT, class traits, class Allocator>
+ class basic_istringstream;
+ typedef basic_istringstream<char> istringstream;
+ typedef basic_istringstream<wchar_t> wistringstream;
+
+ template <class charT, class traits, class Allocator>
+ class basic_ostringstream;
+ typedef basic_ostringstream<char> ostringstream;
+ typedef basic_ostringstream<wchar_t> wostringstream;
+
+ template <class charT, class traits, class Allocator>
+ class basic_stringstream;
+ typedef basic_stringstream<char> stringstream;
+ typedef basic_stringstream<wchar_t> wstringstream;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <sstream>
+
+namespace gnu
+{
+ typedef std::stringbuf t1;
+ typedef std::wstringbuf t2;
+
+ typedef std::istringstream t3;
+ typedef std::wistringstream t4;
+
+ typedef std::ostringstream t5;
+ typedef std::wostringstream t6;
+
+ typedef std::stringstream t7;
+ typedef std::wstringstream t8;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <streambuf>
+
+namespace std {
+ template <class charT, class traits>
+ class basic_streambuf;
+ typedef basic_streambuf<char> streambuf;
+ typedef basic_streambuf<wchar_t> wstreambuf;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <streambuf>
+
+namespace gnu
+{
+ typedef std::streambuf t1;
+ typedef std::wstreambuf t2;
+}
--- /dev/null
+// { dg-do compile }
+
+// 2001-11-25 Phil Edwards <pme@gcc.gnu.org>
+//
+// Copyright (C) 2001, 2003, 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 20.4.1.1 allocator members
+
+#include <cstdlib>
+#include <ext/debug_allocator.h>
+#include <ext/malloc_allocator.h>
+
+template class __gnu_cxx::debug_allocator<__gnu_cxx::malloc_allocator<int> >;
+++ /dev/null
-// { dg-do compile }
-
-// 2001-11-25 Phil Edwards <pme@gcc.gnu.org>
-//
-// Copyright (C) 2001, 2003, 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 20.4.1.1 allocator members
-
-#include <cstdlib>
-#include <ext/debug_allocator.h>
-#include <ext/malloc_allocator.h>
-
-template class __gnu_cxx::debug_allocator<__gnu_cxx::malloc_allocator<int> >;
+++ /dev/null
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <ext/hash_map>
-
-// { dg-do compile }
-
-template class __gnu_cxx::hash_map<int, char>;
--- /dev/null
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <ext/hash_map>
+
+// { dg-do compile }
+
+template class __gnu_cxx::hash_map<int, char>;
+++ /dev/null
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <ext/hash_set>
-
-// { dg-do compile }
-
-template class __gnu_cxx::hash_set<int>;
--- /dev/null
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <ext/hash_set>
+
+// { dg-do compile }
+
+template class __gnu_cxx::hash_set<int>;
// subdirectory that are meant to be directly included.
#include <ext/algorithm>
+#include <ext/array_allocator.h>
+#include <ext/atomicity.h>
+#include <ext/bitmap_allocator.h>
+#include <ext/codecvt_specializations.h>
+#include <ext/concurrence.h>
+#include <ext/debug_allocator.h>
+#include <ext/enc_filebuf.h>
#include <ext/functional>
#include <ext/hash_map>
#include <ext/hash_set>
#include <ext/iterator>
+#include <ext/malloc_allocator.h>
#include <ext/memory>
+#include <ext/mt_allocator.h>
+#include <ext/new_allocator.h>
#include <ext/numeric>
+#include <ext/pod_char_traits.h>
+#include <ext/pool_allocator.h>
#include <ext/rb_tree>
#include <ext/rope>
#include <ext/slist>
-#include <ext/debug_allocator.h>
-#include <ext/malloc_allocator.h>
-#include <ext/new_allocator.h>
-#include <ext/array_allocator.h>
-#include <ext/mt_allocator.h>
-#include <ext/pool_allocator.h>
#include <ext/stdio_filebuf.h>
#include <ext/stdio_sync_filebuf.h>
-
+#include <ext/throw_allocator.h>
+#include <ext/typelist.h>
+#include <ext/type_traits.h>
+#include <ext/vstring.h>
+#include <ext/pb_ds/assoc_container.hpp>
+#include <ext/pb_ds/priority_queue.hpp>
+#include <ext/pb_ds/exception.hpp>
+#include <ext/pb_ds/hash_policy.hpp>
+#include <ext/pb_ds/list_update_policy.hpp>
+#include <ext/pb_ds/tree_policy.hpp>
+#include <ext/pb_ds/trie_policy.hpp>
--- /dev/null
+// { dg-do compile }
+
+// 2001-11-25 Phil Edwards <pme@gcc.gnu.org>
+//
+// Copyright (C) 2001, 2003, 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 20.4.1.1 allocator members
+
+#include <cstdlib>
+#include <ext/malloc_allocator.h>
+
+template class __gnu_cxx::malloc_allocator<int>;
+++ /dev/null
-// { dg-do compile }
-
-// 2001-11-25 Phil Edwards <pme@gcc.gnu.org>
-//
-// Copyright (C) 2001, 2003, 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 20.4.1.1 allocator members
-
-#include <cstdlib>
-#include <ext/malloc_allocator.h>
-
-template class __gnu_cxx::malloc_allocator<int>;
--- /dev/null
+// { dg-do compile }
+
+// 2001-11-25 Phil Edwards <pme@gcc.gnu.org>
+//
+// Copyright (C) 2001, 2003, 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 20.4.1.1 allocator members
+
+#include <cstdlib>
+#include <ext/mt_allocator.h>
+
+using namespace __gnu_cxx;
+template class __mt_alloc<int>;
+template class __mt_alloc<short, __common_pool_policy<__pool, false> >;
+template class __mt_alloc<short, __per_type_pool_policy<short, __pool, false> >;
+#ifdef __GTHREADS
+template class __mt_alloc<short, __common_pool_policy<__pool, true> >;
+template class __mt_alloc<short, __per_type_pool_policy<short, __pool, true> >;
+#endif
+++ /dev/null
-// { dg-do compile }
-
-// 2001-11-25 Phil Edwards <pme@gcc.gnu.org>
-//
-// Copyright (C) 2001, 2003, 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 20.4.1.1 allocator members
-
-#include <cstdlib>
-#include <ext/mt_allocator.h>
-
-using namespace __gnu_cxx;
-template class __mt_alloc<int>;
-template class __mt_alloc<short, __common_pool_policy<__pool, false> >;
-template class __mt_alloc<short, __per_type_pool_policy<short, __pool, false> >;
-#ifdef __GTHREADS
-template class __mt_alloc<short, __common_pool_policy<__pool, true> >;
-template class __mt_alloc<short, __per_type_pool_policy<short, __pool, true> >;
-#endif
--- /dev/null
+// { dg-do compile }
+
+// 2001-11-25 Phil Edwards <pme@gcc.gnu.org>
+//
+// Copyright (C) 2001, 2003, 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 20.4.1.1 allocator members
+
+#include <cstdlib>
+#include <ext/pool_allocator.h>
+
+template class __gnu_cxx::__pool_alloc<int>;
+++ /dev/null
-// { dg-do compile }
-
-// 2001-11-25 Phil Edwards <pme@gcc.gnu.org>
-//
-// Copyright (C) 2001, 2003, 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 20.4.1.1 allocator members
-
-#include <cstdlib>
-#include <ext/pool_allocator.h>
-
-template class __gnu_cxx::__pool_alloc<int>;
+++ /dev/null
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of library containers
-
-#include <ext/slist>
-
-// { dg-do compile }
-
-template class __gnu_cxx::slist<int>;
--- /dev/null
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers
+
+#include <ext/slist>
+
+// { dg-do compile }
+
+template class __gnu_cxx::slist<int>;
+++ /dev/null
-// 2003-02-11 Paolo Carlini <pcarlini@unitus.it>
-
-// Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// stdio_filebuf.h
-
-#include <ext/stdio_filebuf.h>
-#include <testsuite_hooks.h>
-#include <testsuite_character.h>
-
-// { dg-do compile }
-
-// libstdc++/9320
-namespace __gnu_cxx
-{
- typedef short type_t;
- template class stdio_filebuf<type_t, std::char_traits<type_t> >;
- template class stdio_filebuf<__gnu_test::pod_char, std::char_traits<__gnu_test::pod_char> >;
-} // __gnu_cxx
--- /dev/null
+// 2003-02-11 Paolo Carlini <pcarlini@unitus.it>
+
+// Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// stdio_filebuf.h
+
+#include <ext/stdio_filebuf.h>
+#include <testsuite_hooks.h>
+#include <testsuite_character.h>
+
+// { dg-do compile }
+
+// libstdc++/9320
+namespace __gnu_cxx
+{
+ typedef short type_t;
+ template class stdio_filebuf<type_t, std::char_traits<type_t> >;
+ template class stdio_filebuf<__gnu_test::pod_char, std::char_traits<__gnu_test::pod_char> >;
+} // __gnu_cxx
+++ /dev/null
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of __versa_string
-
-#include <ext/vstring.h>
-
-// { dg-do compile }
-
-// libstdc++/21770
-template class __gnu_cxx::__versa_string<int, std::char_traits<int>,
- std::allocator<char> >;
+++ /dev/null
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of __versa_string
-
-#include <ext/vstring.h>
-
-// { dg-do compile }
-
-// libstdc++/21770
-template class __gnu_cxx::__versa_string<int, std::char_traits<int>,
- std::allocator<char>,
- __gnu_cxx::__sso_string_base>;
-
-template class __gnu_cxx::__versa_string<int, std::char_traits<int>,
- std::allocator<char>,
- __gnu_cxx::__rc_string_base>;
+++ /dev/null
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of __versa_string
-
-#include <ext/vstring.h>
-
-// { dg-do compile }
-
-template class __gnu_cxx::__versa_string<char, std::char_traits<char>,
- std::allocator<char>,
- __gnu_cxx::__sso_string_base>;
-
-template class __gnu_cxx::__versa_string<char, std::char_traits<char>,
- std::allocator<char>,
- __gnu_cxx::__rc_string_base>;
+++ /dev/null
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// This file tests explicit instantiation of __versa_string
-
-#include <ext/vstring.h>
-
-// { dg-do compile }
-
-template class __gnu_cxx::__versa_string<wchar_t, std::char_traits<wchar_t>,
- std::allocator<wchar_t>,
- __gnu_cxx::__sso_string_base>;
-
-template class __gnu_cxx::__versa_string<wchar_t, std::char_traits<wchar_t>,
- std::allocator<wchar_t>,
- __gnu_cxx::__rc_string_base>;
--- /dev/null
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of __versa_string
+
+#include <ext/vstring.h>
+
+// { dg-do compile }
+
+// libstdc++/21770
+template class __gnu_cxx::__versa_string<int, std::char_traits<int>,
+ std::allocator<char> >;
--- /dev/null
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of __versa_string
+
+#include <ext/vstring.h>
+
+// { dg-do compile }
+
+// libstdc++/21770
+template class __gnu_cxx::__versa_string<int, std::char_traits<int>,
+ std::allocator<char>,
+ __gnu_cxx::__sso_string_base>;
+
+template class __gnu_cxx::__versa_string<int, std::char_traits<int>,
+ std::allocator<char>,
+ __gnu_cxx::__rc_string_base>;
--- /dev/null
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of __versa_string
+
+#include <ext/vstring.h>
+
+// { dg-do compile }
+
+template class __gnu_cxx::__versa_string<char, std::char_traits<char>,
+ std::allocator<char>,
+ __gnu_cxx::__sso_string_base>;
+
+template class __gnu_cxx::__versa_string<char, std::char_traits<char>,
+ std::allocator<char>,
+ __gnu_cxx::__rc_string_base>;
--- /dev/null
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of __versa_string
+
+#include <ext/vstring.h>
+
+// { dg-do compile }
+
+template class __gnu_cxx::__versa_string<wchar_t, std::char_traits<wchar_t>,
+ std::allocator<wchar_t>,
+ __gnu_cxx::__sso_string_base>;
+
+template class __gnu_cxx::__versa_string<wchar_t, std::char_traits<wchar_t>,
+ std::allocator<wchar_t>,
+ __gnu_cxx::__rc_string_base>;
--- /dev/null
+// { dg-do compile }
+
+// 2007-02-04 Benjamin Kosnik <bkoz@redhat.com>
+//
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include <tr1/functional>
+
+namespace std {
+namespace tr1 {
+
+ template <class T> class reference_wrapper;
+ template <class T> reference_wrapper<T> ref(T&);
+ template <class T> reference_wrapper<const T> cref(const T&);
+ template <class T> reference_wrapper<T> ref(reference_wrapper<T>);
+ template <class T> reference_wrapper<const T> cref(reference_wrapper<T>);
+
+} // namespace tr1
+} // namespace std
--- /dev/null
+// { dg-do compile }
+
+// 2007-02-04 Benjamin Kosnik <bkoz@redhat.com>
+//
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include <tr1/memory>
+
+namespace std {
+namespace tr1 {
+
+ // [2.2.2] Class bad_weak_ptr
+ class bad_weak_ptr;
+
+ // [2.2.3] Class template shared_ptr
+ template<class T> class shared_ptr;
+
+ // [2.2.3.6] shared_ptr comparisons
+ template<class T, class U> bool operator==(shared_ptr<T> const& a, shared_ptr<U> const& b);
+ template<class T, class U> bool operator!=(shared_ptr<T> const& a, shared_ptr<U> const& b);
+ template<class T, class U> bool operator<(shared_ptr<T> const& a, shared_ptr<U> const& b);
+
+ // [2.2.3.8] shared_ptr specialized algorithms
+ template<class T> void swap(shared_ptr<T>& a, shared_ptr<T>& b);
+
+ // [2.2.3.9] shared_ptr casts
+ template<class T, class U> shared_ptr<T> static_pointer_cast(shared_ptr<U> const& r);
+ template<class T, class U> shared_ptr<T> dynamic_pointer_cast(shared_ptr<U> const& r);
+ template<class T, class U> shared_ptr<T> const_pointer_cast(shared_ptr<U> const& r);
+
+ // [2.2.3.7] shared_ptr I/O
+ template<class E, class T, class Y>
+ basic_ostream<E, T>& operator<< (basic_ostream<E, T>& os, shared_ptr<Y> const& p);
+
+ // [2.2.3.10] shared_ptr get_deleter
+ template<class D, class T> D* get_deleter(shared_ptr<T> const& p);
+
+ // [2.2.4] Class template weak_ptr
+ template<class T> class weak_ptr;
+
+ // [2.2.4.6] weak_ptr comparison
+ template<class T, class U> bool operator<(weak_ptr<T> const& a, weak_ptr<U> const& b);
+
+ // [2.2.4.7] weak_ptr specialized algorithms
+ template<class T> void swap(weak_ptr<T>& a, weak_ptr<T>& b);
+
+ // [2.2.5] Class enable_shared_from_this
+ template<class T> class enable_shared_from_this;
+} // namespace tr1
+} // namespace std
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <tr1/memory>
+
+namespace gnu
+{
+ using std::tr1::bad_weak_ptr;
+}
+++ /dev/null
-// Copyright (C) 2006 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// TR1 2.2.5 Template class enable_shared_from_this [tr.util.smartptr.enab]
-
-#include <tr1/memory>
-#include <testsuite_tr1.h>
-
-// { dg-do compile }
-
-using namespace __gnu_test;
-using std::tr1::enable_shared_from_this;
-template class enable_shared_from_this<int>;
-template class enable_shared_from_this<void>;
-template class enable_shared_from_this<ClassType>;
-template class enable_shared_from_this<IncompleteClass>;
--- /dev/null
+// Copyright (C) 2006 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// TR1 2.2.5 Template class enable_shared_from_this [tr.util.smartptr.enab]
+
+#include <tr1/memory>
+#include <testsuite_tr1.h>
+
+// { dg-do compile }
+
+using namespace __gnu_test;
+using std::tr1::enable_shared_from_this;
+template class enable_shared_from_this<int>;
+template class enable_shared_from_this<void>;
+template class enable_shared_from_this<ClassType>;
+template class enable_shared_from_this<IncompleteClass>;
+++ /dev/null
-// Copyright (C) 2006 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// TR1 2.2.2 Template class shared_ptr [tr.util.smartptr.shared]
-
-#include <tr1/memory>
-#include <testsuite_tr1.h>
-
-// { dg-do compile }
-
-using namespace __gnu_test;
-using std::tr1::shared_ptr;
-template class shared_ptr<int>;
-template class shared_ptr<void>;
-template class shared_ptr<ClassType>;
-template class shared_ptr<IncompleteClass>;
--- /dev/null
+// Copyright (C) 2006 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// TR1 2.2.2 Template class shared_ptr [tr.util.smartptr.shared]
+
+#include <tr1/memory>
+#include <testsuite_tr1.h>
+
+// { dg-do compile }
+
+using namespace __gnu_test;
+using std::tr1::shared_ptr;
+template class shared_ptr<int>;
+template class shared_ptr<void>;
+template class shared_ptr<ClassType>;
+template class shared_ptr<IncompleteClass>;
+++ /dev/null
-// Copyright (C) 2006 Free Software Foundation
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// TR1 2.2.4 Template class weak_ptr [tr.util.smartptr.weak]
-
-#include <tr1/memory>
-#include <testsuite_tr1.h>
-
-// { dg-do compile }
-
-using namespace __gnu_test;
-using std::tr1::weak_ptr;
-template class weak_ptr<int>;
-template class weak_ptr<void>;
-template class weak_ptr<ClassType>;
-template class weak_ptr<IncompleteClass>;
--- /dev/null
+// Copyright (C) 2006 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// TR1 2.2.4 Template class weak_ptr [tr.util.smartptr.weak]
+
+#include <tr1/memory>
+#include <testsuite_tr1.h>
+
+// { dg-do compile }
+
+using namespace __gnu_test;
+using std::tr1::weak_ptr;
+template class weak_ptr<int>;
+template class weak_ptr<void>;
+template class weak_ptr<ClassType>;
+template class weak_ptr<IncompleteClass>;
--- /dev/null
+// { dg-do compile }
+
+// 2007-02-04 Benjamin Kosnik <bkoz@redhat.com>
+//
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include <tr1/functional>
+
+namespace std {
+namespace tr1 {
+
+ // [3.4] class template result_of
+ template <class FunctionCallType> class result_of;
+
+#if 0
+ // [3.5] function template mem_fn
+ template<class R, class T> unspecified mem_fn(R T::* pm);
+#endif
+
+ // [3.6] function object binders
+ template<class T> struct is_bind_expression;
+ template<class T> struct is_placeholder;
+
+#if 0
+ template<class F, class T1, ..., class TN>
+ unspecified bind(F f, T1 t1, ..., TN tN);
+
+ template<class R, class F, class T1, ..., class Tn >
+ unspecified bind(F f, T1 t1, ..., TN tN);
+
+ namespace placeholders {
+ // M is the implementation-defined number of placeholders
+ extern unspecified _1;
+ extern unspecified _2;
+ .
+ .
+ .
+ extern unspecified _M;
+ }
+#endif
+
+ // [3.7] polymorphic function wrappers
+ class bad_function_call;
+ template<class Function> class function;
+ template<class Function>
+ void swap(function<Function>&, function<Function>&);
+ template<class Function1, class Function2>
+ void operator==(const function<Function1>&, const function<Function2>&);
+ template<class Function1, class Function2>
+ void operator!=(const function<Function1>&, const function<Function2>&);
+
+#if 0
+ template <class Function>
+ bool operator==(const function<Function>&, unspecified-null-pointer-type);
+ template <class Function>
+ bool operator==(unspecified-null-pointer-type, const function<Function>&);
+ template <class Function>
+ bool operator!=(const function<Function>&, unspecified-null-pointer-type);
+ template <class Function>
+ bool operator!=(unspecified-null-pointer-type, const function<Function>&);
+#endif
+
+} // namespace tr1
+} // namespace std
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <tr1/functional>
+
+namespace gnu
+{
+ using std::tr1::bad_function_call;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <tr1/tuple>
+
+namespace gnu
+{
+ using namespace std::tr1::placeholders;
+}
--- /dev/null
+// { dg-do compile }
+
+// 2007-02-04 Benjamin Kosnik <bkoz@redhat.com>
+//
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include <tr1/type_traits>
+
+namespace std {
+namespace tr1 {
+
+ // [4.3] helper class:
+ template <class T, T v> struct integral_constant;
+ typedef integral_constant<bool, true> true_type;
+ typedef integral_constant<bool, false> false_type;
+
+ // [4.5.1] primary type categories:
+ template <class T> struct is_void;
+ template <class T> struct is_integral;
+ template <class T> struct is_floating_point;
+ template <class T> struct is_array;
+ template <class T> struct is_pointer;
+ template <class T> struct is_reference;
+ template <class T> struct is_member_object_pointer;
+ template <class T> struct is_member_function_pointer;
+ template <class T> struct is_enum;
+ template <class T> struct is_union;
+ template <class T> struct is_class;
+ template <class T> struct is_function;
+
+ // [4.5.2] composite type categories:
+ template <class T> struct is_arithmetic;
+ template <class T> struct is_fundamental;
+ template <class T> struct is_object;
+ template <class T> struct is_scalar;
+ template <class T> struct is_compound;
+ template <class T> struct is_member_pointer;
+
+ // [4.5.3] type properties:
+ template <class T> struct is_const;
+ template <class T> struct is_volatile;
+ template <class T> struct is_pod;
+ template <class T> struct is_empty;
+ template <class T> struct is_polymorphic;
+ template <class T> struct is_abstract;
+ template <class T> struct has_trivial_constructor;
+ template <class T> struct has_trivial_copy;
+ template <class T> struct has_trivial_assign;
+ template <class T> struct has_trivial_destructor;
+ template <class T> struct has_nothrow_constructor;
+ template <class T> struct has_nothrow_copy;
+ template <class T> struct has_nothrow_assign;
+ template <class T> struct has_virtual_destructor;
+ template <class T> struct is_signed;
+ template <class T> struct is_unsigned;
+ template <class T> struct alignment_of;
+ template <class T> struct rank;
+ template <class T, unsigned I> struct extent;
+
+ // [4.6] type relations:
+ template <class T, class U> struct is_same;
+ template <class Base, class Derived> struct is_base_of;
+ template <class From, class To> struct is_convertible;
+
+ // [4.7.1] const-volatile modifications:
+ template <class T> struct remove_const;
+ template <class T> struct remove_volatile;
+ template <class T> struct remove_cv;
+ template <class T> struct add_const;
+ template <class T> struct add_volatile;
+ template <class T> struct add_cv;
+
+ // [4.7.2] reference modifications:
+ template <class T> struct remove_reference;
+ template <class T> struct add_reference;
+
+ // [4.7.3] array modifications:
+ template <class T> struct remove_extent;
+ template <class T> struct remove_all_extents;
+
+ // [4.7.4] pointer modifications:
+ template <class T> struct remove_pointer;
+ template <class T> struct add_pointer;
+
+ // [4.8] other transformations:
+ template <std::size_t Len, std::size_t Align> struct aligned_storage;
+} // namespace tr1
+} // namespace std
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <tr1/type_traits>
+
+namespace gnu
+{
+ using std::tr1::true_type;
+ using std::tr1::false_type;
+}
--- /dev/null
+// { dg-do compile }
+
+// 2007-02-04 Benjamin Kosnik <bkoz@redhat.com>
+//
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include <tr1/random>
+
+namespace std {
+namespace tr1 {
+
+ // [5.1.3] Class template variate_generator
+ template<class UniformRandomNumberGenerator, class Distribution>
+ class variate_generator;
+
+ // [5.1.4.1] Class template linear_congruential
+ template<class IntType, IntType a, IntType c, IntType m>
+ class linear_congruential;
+
+ // [5.1.4.2] Class template mersenne_twister
+ template<class UIntType, int w, int n, int m, int r,
+ UIntType a, int u, int s, UIntType b, int t, UIntType c, int l>
+ class mersenne_twister;
+
+ // [5.1.4.3] Class template subtract_with_carry
+ template<class IntType, IntType m, int s, int r>
+ class subtract_with_carry;
+
+ // [5.1.4.4] Class template subtract_with_carry_01
+ template<class RealType, int w, int s, int r>
+ class subtract_with_carry_01;
+
+ // [5.1.4.5] Class template discard_block
+ template<class UniformRandomNumberGenerator, int p, int r>
+ class discard_block;
+
+ // [5.1.4.6] Class template xor_combine
+ template<class UniformRandomNumberGenerator1, int s1,
+ class UniformRandomNumberGenerator2, int s2>
+ class xor_combine;
+
+ // [5.1.6] Class random_device
+ class random_device;
+
+ // [5.1.7.1] Class template uniform_int
+ template<class IntType>
+ class uniform_int;
+
+ // [5.1.7.2] Class bernoulli_distribution
+ class bernoulli_distribution;
+
+ // [5.1.7.3] Class template geometric_distribution
+ template<class IntType, class RealType>
+ class geometric_distribution;
+
+ // [5.1.7.4] Class template poisson_distribution
+ template<class IntType, class RealType>
+ class poisson_distribution;
+
+ // [5.1.7.5] Class template binomial_distribution
+ template<class IntType, class RealType>
+ class binomial_distribution;
+
+ // [5.1.7.6] Class template uniform_real
+ template<class RealType>
+ class uniform_real;
+
+ // [5.1.7.7] Class template exponential_distribution
+ template<class RealType>
+ class exponential_distribution;
+
+ // [5.1.7.8] Class template normal_distribution
+ template<class RealType>
+ class normal_distribution;
+
+ // [5.1.7.9] Class template gamma_distribution
+ template<class RealType>
+ class gamma_distribution;
+
+} // namespace tr1
+} // namespace std
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <tr1/random>
+
+namespace gnu
+{
+ using std::tr1::random_device;
+ using std::tr1::bernoulli_distribution;
+}
+++ /dev/null
-// { dg-do compile }
-//
-// 2006-06-04 Stephen M. Webb <stephen.webb@bregmasoft.com>
-//
-// Copyright (C) 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 5.1.4.5 Class template linear_congruential
-// 5.1.1 [1] Table 15
-
-#include <tr1/random>
-
-void
-test01()
-{
- using namespace std::tr1;
-
- typedef discard_block
- <
- subtract_with_carry<long, (1 << 24), 10, 24>,
- 389, 24
- > test_type;
-
- typedef test_type::result_type result_type;
-}
--- /dev/null
+// { dg-do compile }
+//
+// 2006-06-04 Stephen M. Webb <stephen.webb@bregmasoft.com>
+//
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 5.1.4.5 Class template linear_congruential
+// 5.1.1 [1] Table 15
+
+#include <tr1/random>
+
+void
+test01()
+{
+ using namespace std::tr1;
+
+ typedef discard_block
+ <
+ subtract_with_carry<long, (1 << 24), 10, 24>,
+ 389, 24
+ > test_type;
+
+ typedef test_type::result_type result_type;
+}
--- /dev/null
+// { dg-do compile }
+
+// 2004-10-20 Benjamin Kosnik <bkoz@redhat.com>
+//
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 6.2.2 Class template array
+
+#include <tr1/array>
+
+template class std::tr1::array<int, 5>;
+++ /dev/null
-// { dg-do compile }
-
-// 2004-10-20 Benjamin Kosnik <bkoz@redhat.com>
-//
-// Copyright (C) 2004 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// 6.2.2 Class template array
-
-#include <tr1/array>
-
-template class std::tr1::array<int, 5>;
--- /dev/null
+// 2005-11-11 Paolo Carlini <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.3 Class template hash
+
+#include <tr1/functional>
+#include <string>
+#include <tr1/type_traits>
+#include <testsuite_tr1.h>
+#include <testsuite_hooks.h>
+
+template<typename T>
+ void
+ do_test()
+ {
+ bool test __attribute__((unused)) = true;
+
+ using std::tr1::is_same;
+ using __gnu_test::test_relationship;
+
+ typedef typename std::tr1::hash<T>::argument_type argument_type;
+ typedef typename std::tr1::hash<T>::result_type result_type;
+
+ VERIFY( (test_relationship<is_same, argument_type, T>(true)) );
+ VERIFY( (test_relationship<is_same, result_type, std::size_t>(true)) );
+ }
+
+// libstdc++/24799
+void test01()
+{
+ do_test<bool>();
+ do_test<char>();
+ do_test<signed char>();
+ do_test<unsigned char>();
+ do_test<short>();
+ do_test<int>();
+ do_test<long>();
+ do_test<unsigned short>();
+ do_test<unsigned int>();
+ do_test<unsigned long>();
+ do_test<int*>();
+ do_test<std::string>();
+ do_test<float>();
+ do_test<double>();
+ do_test<long double>();
+
+#ifdef _GLIBCXX_USE_WCHAR_T
+ do_test<wchar_t>();
+ do_test<std::wstring>();
+#endif
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <tr1/functional>
+
+void test01()
+{
+ // Check for required base class.
+ typedef long value_type;
+ typedef std::tr1::hash<value_type> test_type;
+ typedef std::unary_function<value_type, std::size_t> base_type;
+
+ test_type b;
+ const test_type& obj = b;
+ const base_type* base __attribute__((unused)) = &obj;
+}
--- /dev/null
+// { dg-do compile }
+
+// 2005-02-17 Matt Austern <austern@apple.com>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.3 class template hash
+
+#include <string>
+#include <tr1/functional>
+
+using namespace std::tr1;
+
+// Verify that we can instantiate hash for every required type.
+template class hash<bool>;
+template class hash<char>;
+template class hash<signed char>;
+template class hash<unsigned char>;
+template class hash<short>;
+template class hash<int>;
+template class hash<long>;
+template class hash<unsigned short>;
+template class hash<unsigned int>;
+template class hash<unsigned long>;
+template class hash<float>;
+template class hash<double>;
+template class hash<long double>;
+template class hash<void*>;
+template class hash<std::string>;
+
+#ifdef _GLIBCXX_USE_WCHAR_T
+template class hash<wchar_t>;
+template class hash<std::wstring>;
+#endif
+
--- /dev/null
+// { dg-do compile }
+
+// 2007-02-04 Benjamin Kosnik <bkoz@redhat.com>
+//
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include <tr1/array>
+
+namespace std {
+namespace tr1 {
+
+ // [6.2.2] Class template array
+ template <class T, size_t N > struct array;
+
+ // Array comparisons
+ template <class T, size_t N> bool operator==(const array<T,N>& x, const array<T,N>& y);
+ template <class T, size_t N> bool operator!=(const array<T,N>& x, const array<T,N>& y);
+ template <class T, size_t N> bool operator<(const array<T,N>& x, const array<T,N>& y);
+ template <class T, size_t N> bool operator>(const array<T,N>& x, const array<T,N>& y);
+ template <class T, size_t N> bool operator<=(const array<T,N>& x, const array<T,N>& y);
+ template <class T, size_t N> bool operator>=(const array<T,N>& x, const array<T,N>& y);
+
+ // [6.2.2.2] Specialized algorithms
+ template <class T, size_t N > void swap(array<T,N>& x, array<T,N>& y);
+
+ // [6.2.2.5] Tuple interface to class template array
+ template <class T> class tuple_size; // forward declaration
+ template <int I, class T> class tuple_element; // forward declaration
+ template <class T, size_t N> struct tuple_size<array<T, N> >;
+ template <int I, class T, size_t N> struct tuple_element<I, array<T, N> >;
+ template <int I, class T, size_t N> T& get(array<T, N>&);
+ template <int I, class T, size_t N> const T& get(const array<T, N>&);
+
+} // namespace tr1
+} // namespace std
+
--- /dev/null
+// { dg-do compile }
+
+// 2007-02-04 Benjamin Kosnik <bkoz@redhat.com>
+//
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include <tr1/functional>
+
+namespace std {
+namespace tr1 {
+
+ // [6.3.3] Hash function base template
+ template <class T> struct hash;
+
+ // Hash function specializations
+ template <> struct hash<bool>;
+ template <> struct hash<char>;
+ template <> struct hash<signed char>;
+ template <> struct hash<unsigned char>;
+ template <> struct hash<wchar_t>;
+ template <> struct hash<short>;
+ template <> struct hash<unsigned short>;
+ template <> struct hash<int>;
+ template <> struct hash<unsigned int>;
+ template <> struct hash<long>;
+ template <> struct hash<unsigned long>;
+ template <> struct hash<float>;
+ template <> struct hash<double>;
+ template <> struct hash<long double>;
+ template<class T> struct hash<T*>;
+ template <> struct hash<std::string>;
+ template <> struct hash<std::wstring>;
+
+} // namespace tr1
+} // namespace std
--- /dev/null
+// { dg-do compile }
+
+// 2007-02-04 Benjamin Kosnik <bkoz@redhat.com>
+//
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include <tr1/tuple>
+
+namespace std {
+namespace tr1 {
+
+#if 0
+ // [6.1.3] Class template tuple
+ template <class T1 = unspecified ,
+ class T2 = unspecified ,
+ ...,
+ class TM = unspecified > class tuple;
+
+ // [6.1.3.2] Tuple creation functions
+ const unspecified ignore;
+ template<class T1, class T2, ..., class TN>
+ tuple<V1, V2, ..., VN> make_tuple(const T1&, const T2& , ..., const TN&);
+
+ template<class T1, class T2, ..., class TN>
+ tuple<T1&, T2&, ..., TN&> tie(T1&, T2& , ..., TN&);
+#endif
+
+ // [6.1.3.3] Tuple helper classes
+ template <class T> class tuple_size;
+ template <int I, class T> class tuple_element;
+
+#if 0
+ // [6.1.3.4] Element access
+ template <int I, class T1, class T2, ..., class TN>
+ RJ get(tuple<T1, T2, ..., TN>&);
+ template <int I, class T1, class T2, ..., class TN>
+ PJ get(const tuple<T1, T2, ..., TN>&);
+
+ // [6.1.3.5] relational operators
+ template<class T1, class T2, ..., class TM, class U1, class U2, ..., class UM>
+ bool operator==(const tuple<T1, T2, ..., TM>&, const tuple<U1, U2, ..., UM>&);
+ template<class T1, class T2, ..., class TM, class U1, class U2, ..., class UM>
+ bool operator<(const tuple<T1, T2, ..., TM>&, const tuple<U1, U2, ..., UM>&);
+ template<class T1, class T2, ..., class TM, class U1, class U2, ..., class UM>
+ bool operator!=(const tuple<T1, T2, ..., TM>&, const tuple<U1, U2, ..., UM>&);
+ template<class T1, class T2, ..., class TM, class U1, class U2, ..., class UM>
+ bool operator>(const tuple<T1, T2, ..., TM>&, const tuple<U1, U2, ..., UM>&);
+ template<class T1, class T2, ..., class TM, class U1, class U2, ..., class UM>
+ bool operator<=(const tuple<T1, T2, ..., TM>&, const tuple<U1, U2, ..., UM>&);
+ template<class T1, class T2, ..., class TM, class U1, class U2, ..., class UM>
+ bool operator>=(const tuple<T1, T2, ..., TM>&, const tuple<U1, U2, ..., UM>&);
+#endif
+
+} // namespace tr1
+} // namespace std
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <tr1/tuple>
+
+namespace gnu
+{
+ using std::tr1::ignore;
+}
--- /dev/null
+// { dg-do compile { xfail *-*-* } }
+// { dg-excess-errors "" }
+
+// 2007-02-04 Benjamin Kosnik <bkoz@redhat.com>
+//
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include <tr1/unordered_map>
+
+namespace std {
+namespace tr1 {
+
+ // [6.3.4.4] Class template unordered_map
+ template <class Key,
+ class T,
+ class Hash,
+ class Pred,
+ class Alloc>
+ class unordered_map;
+
+ // [6.3.4.6] Class template unordered_multimap
+ template <class Key,
+ class T,
+ class Hash,
+ class Pred,
+ class Alloc>
+ class unordered_multimap;
+
+template <class Key, class T, class Hash, class Pred, class Alloc>
+ void swap(unordered_map<Key, T, Hash, Pred, Alloc>& x,
+ unordered_map<Key, T, Hash, Pred, Alloc>& y);
+template <class Key, class T, class Hash, class Pred, class Alloc>
+ void swap(unordered_multimap<Key, T, Hash, Pred, Alloc>& x,
+ unordered_multimap<Key, T, Hash, Pred, Alloc>& y);
+
+} // namespace tr1
+} // namespace std
+
--- /dev/null
+// { dg-do compile { xfail *-*-* } }
+// { dg-excess-errors "" }
+
+// 2007-02-04 Benjamin Kosnik <bkoz@redhat.com>
+//
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include <tr1/unordered_set>
+
+namespace std {
+namespace tr1 {
+
+ // [6.3.4.3] Class template unordered_set
+ template <class Value,
+ class Hash,
+ class Pred,
+ class Alloc>
+ class unordered_set;
+
+ // [6.3.4.5] Class template unordered_multiset
+ template <class Value,
+ class Hash,
+ class Pred,
+ class Alloc>
+ class unordered_multiset;
+
+ template <class Value, class Hash, class Pred, class Alloc>
+ void swap(unordered_set<Value, Hash, Pred, Alloc>& x,
+ unordered_set<Value, Hash, Pred, Alloc>& y);
+
+ template <class Value, class Hash, class Pred, class Alloc>
+ void swap(unordered_multiset<Value, Hash, Pred, Alloc>& x,
+ unordered_multiset<Value, Hash, Pred, Alloc>& y);
+
+} // namespace tr1
+} // namespace std
+
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <tr1/tuple>
+
+template class std::tr1::tuple<short, int, double>;
+++ /dev/null
-// 2005-09-10 Paolo Carlini <pcarlini@suse.de>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-//
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// { dg-do compile }
-
-// libstdc++/23781
-#include <tr1/unordered_map>
-#include <tr1/unordered_set>
-
-std::tr1::unordered_map<int, int>::iterator it1 = NULL; // { dg-error "conversion" }
-std::tr1::unordered_map<int, int>::const_iterator cit1 = NULL; // { dg-error "conversion" }
-std::tr1::unordered_multimap<int, int>::iterator it2 = NULL; // { dg-error "conversion" }
-std::tr1::unordered_multimap<int, int>::const_iterator cit2 = NULL; // { dg-error "conversion" }
-std::tr1::unordered_multiset<int>::iterator it3 = NULL; // { dg-error "conversion" }
-std::tr1::unordered_multiset<int>::const_iterator cit3 = NULL; // { dg-error "conversion" }
-std::tr1::unordered_set<int>::iterator it4 = NULL; // { dg-error "conversion" }
-std::tr1::unordered_set<int>::const_iterator cit4 = NULL; // { dg-error "conversion" }
+++ /dev/null
-// Copyright (C) 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without Pred the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.4 Class template unordered_map
-
-#include <tr1/unordered_map>
-#include <testsuite_hooks.h>
-
-// libstdc++/29134
-void test01()
-{
- bool test __attribute__((unused)) = true;
-
- std::tr1::unordered_map<int, int> um;
-
- VERIFY( um.max_size() == um.get_allocator().max_size() );
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// Copyright (C) 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without Pred the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.6 Class template unordered_multimap
-
-#include <tr1/unordered_map>
-#include <testsuite_hooks.h>
-
-// libstdc++/29134
-void test01()
-{
- bool test __attribute__((unused)) = true;
-
- std::tr1::unordered_multimap<int, int> umm;
-
- VERIFY( umm.max_size() == umm.get_allocator().max_size() );
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// Copyright (C) 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without Pred the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.5 Class template unordered_multiset
-
-#include <tr1/unordered_set>
-#include <testsuite_hooks.h>
-
-// libstdc++/29134
-void test01()
-{
- bool test __attribute__((unused)) = true;
-
- std::tr1::unordered_multiset<int> ums;
-
- VERIFY( ums.max_size() == ums.get_allocator().max_size() );
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// Copyright (C) 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without Pred the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.3 Class template unordered_set
-
-#include <tr1/unordered_set>
-#include <testsuite_hooks.h>
-
-// libstdc++/29134
-void test01()
-{
- bool test __attribute__((unused)) = true;
-
- std::tr1::unordered_set<int> us;
-
- VERIFY( us.max_size() == us.get_allocator().max_size() );
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// 2005-10-08 Paolo Carlini <pcarlini@suse.de>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.4 Class template unordered_map
-
-#include <tr1/unordered_map>
-#include <string>
-#include <testsuite_hooks.h>
-
-// libstdc++/24061
-void test01()
-{
- bool test __attribute__((unused)) = true;
-
- typedef std::tr1::unordered_map<std::string, int> Map;
- typedef Map::iterator iterator;
- typedef Map::const_iterator const_iterator;
- typedef Map::value_type value_type;
-
- Map m1;
-
- m1.insert(value_type("all the love in the world", 1));
- m1.insert(value_type("you know what you are?", 2));
- m1.insert(value_type("the collector", 3));
- m1.insert(value_type("the hand that feeds", 4));
- m1.insert(value_type("love is not enough", 5));
- m1.insert(value_type("every day is exactly the same", 6));
- m1.insert(value_type("with teeth", 7));
- m1.insert(value_type("only", 8));
- m1.insert(value_type("getting smaller", 9));
- m1.insert(value_type("sunspots", 10));
- VERIFY( m1.size() == 10 );
-
- iterator it1 = m1.begin();
- ++it1;
- iterator it2 = it1;
- ++it2;
- iterator it3 = m1.erase(it1);
- VERIFY( m1.size() == 9 );
- VERIFY( it3 == it2 );
- VERIFY( *it3 == *it2 );
-
- iterator it4 = m1.begin();
- ++it4;
- ++it4;
- ++it4;
- iterator it5 = it4;
- ++it5;
- ++it5;
- iterator it6 = m1.erase(it4, it5);
- VERIFY( m1.size() == 7 );
- VERIFY( it6 == it5 );
- VERIFY( *it6 == *it5 );
-
- const_iterator it7 = m1.begin();
- ++it7;
- ++it7;
- ++it7;
- const_iterator it8 = it7;
- ++it8;
- const_iterator it9 = m1.erase(it7);
- VERIFY( m1.size() == 6 );
- VERIFY( it9 == it8 );
- VERIFY( *it9 == *it8 );
-
- const_iterator it10 = m1.begin();
- ++it10;
- const_iterator it11 = it10;
- ++it11;
- ++it11;
- ++it11;
- ++it11;
- const_iterator it12 = m1.erase(it10, it11);
- VERIFY( m1.size() == 2 );
- VERIFY( it12 == it11 );
- VERIFY( *it12 == *it11 );
- VERIFY( ++it12 == m1.end() );
-
- iterator it13 = m1.erase(m1.begin(), m1.end());
- VERIFY( m1.size() == 0 );
- VERIFY( it13 == it12 );
- VERIFY( it13 == m1.begin() );
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// 2005-10-08 Paolo Carlini <pcarlini@suse.de>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.6 Class template unordered_multimap
-
-#include <tr1/unordered_map>
-#include <string>
-#include <testsuite_hooks.h>
-
-// libstdc++/24061
-void test01()
-{
- bool test __attribute__((unused)) = true;
-
- typedef std::tr1::unordered_multimap<std::string, int> Mmap;
- typedef Mmap::iterator iterator;
- typedef Mmap::const_iterator const_iterator;
- typedef Mmap::value_type value_type;
-
- Mmap mm1;
-
- mm1.insert(value_type("all the love in the world", 1));
- mm1.insert(value_type("you know what you are?", 2));
- mm1.insert(value_type("the collector", 3));
- mm1.insert(value_type("the hand that feeds", 4));
- mm1.insert(value_type("love is not enough", 5));
- mm1.insert(value_type("every day is exactly the same", 6));
- mm1.insert(value_type("with teeth", 7));
- mm1.insert(value_type("only", 8));
- mm1.insert(value_type("getting smaller", 9));
- mm1.insert(value_type("sunspots", 10));
-
- mm1.insert(value_type("you know what you are?", 5));
- mm1.insert(value_type("the collector", 6));
- mm1.insert(value_type("the hand that feeds", 7));
- VERIFY( mm1.size() == 13 );
-
- iterator it1 = mm1.begin();
- ++it1;
- iterator it2 = it1;
- ++it2;
- iterator it3 = mm1.erase(it1);
- VERIFY( mm1.size() == 12 );
- VERIFY( it3 == it2 );
- VERIFY( *it3 == *it2 );
-
- iterator it4 = mm1.begin();
- ++it4;
- ++it4;
- ++it4;
- iterator it5 = it4;
- ++it5;
- ++it5;
- iterator it6 = mm1.erase(it4, it5);
- VERIFY( mm1.size() == 10 );
- VERIFY( it6 == it5 );
- VERIFY( *it6 == *it5 );
-
- const_iterator it7 = mm1.begin();
- ++it7;
- ++it7;
- ++it7;
- const_iterator it8 = it7;
- ++it8;
- const_iterator it9 = mm1.erase(it7);
- VERIFY( mm1.size() == 9 );
- VERIFY( it9 == it8 );
- VERIFY( *it9 == *it8 );
-
- const_iterator it10 = mm1.begin();
- ++it10;
- const_iterator it11 = it10;
- ++it11;
- ++it11;
- ++it11;
- ++it11;
- const_iterator it12 = mm1.erase(it10, it11);
- VERIFY( mm1.size() == 5 );
- VERIFY( it12 == it11 );
- VERIFY( *it12 == *it11 );
-
- iterator it13 = mm1.erase(mm1.begin(), mm1.end());
- VERIFY( mm1.size() == 0 );
- VERIFY( it13 == mm1.end() );
- VERIFY( it13 == mm1.begin() );
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// 2005-10-08 Paolo Carlini <pcarlini@suse.de>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.5 Class template unordered_multiset
-
-#include <tr1/unordered_set>
-#include <string>
-#include <testsuite_hooks.h>
-
-// libstdc++/24061
-void test01()
-{
- bool test __attribute__((unused)) = true;
-
- typedef std::tr1::unordered_multiset<std::string> Mset;
- typedef Mset::iterator iterator;
- typedef Mset::const_iterator const_iterator;
-
- Mset ms1;
-
- ms1.insert("all the love in the world");
- ms1.insert("you know what you are?");
- ms1.insert("the collector");
- ms1.insert("the hand that feeds");
- ms1.insert("love is not enough");
- ms1.insert("every day is exactly the same");
- ms1.insert("with teeth");
- ms1.insert("only");
- ms1.insert("getting smaller");
- ms1.insert("sunspots");
-
- ms1.insert("the hand that feeds");
- ms1.insert("love is not enough");
- ms1.insert("every day is exactly the same");
- VERIFY( ms1.size() == 13 );
-
- iterator it1 = ms1.begin();
- ++it1;
- iterator it2 = it1;
- ++it2;
- iterator it3 = ms1.erase(it1);
- VERIFY( ms1.size() == 12 );
- VERIFY( it3 == it2 );
- VERIFY( *it3 == *it2 );
-
- iterator it4 = ms1.begin();
- ++it4;
- ++it4;
- ++it4;
- iterator it5 = it4;
- ++it5;
- ++it5;
- iterator it6 = ms1.erase(it4, it5);
- VERIFY( ms1.size() == 10 );
- VERIFY( it6 == it5 );
- VERIFY( *it6 == *it5 );
-
- const_iterator it7 = ms1.begin();
- ++it7;
- ++it7;
- ++it7;
- const_iterator it8 = it7;
- ++it8;
- const_iterator it9 = ms1.erase(it7);
- VERIFY( ms1.size() == 9 );
- VERIFY( it9 == it8 );
- VERIFY( *it9 == *it8 );
-
- const_iterator it10 = ms1.begin();
- ++it10;
- const_iterator it11 = it10;
- ++it11;
- ++it11;
- ++it11;
- ++it11;
- const_iterator it12 = ms1.erase(it10, it11);
- VERIFY( ms1.size() == 5 );
- VERIFY( it12 == it11 );
- VERIFY( *it12 == *it11 );
-
- iterator it13 = ms1.erase(ms1.begin(), ms1.end());
- VERIFY( ms1.size() == 0 );
- VERIFY( it13 == ms1.end() );
- VERIFY( it13 == ms1.begin() );
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// 2005-10-08 Paolo Carlini <pcarlini@suse.de>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.3 Class template unordered_set
-
-#include <tr1/unordered_set>
-#include <string>
-#include <testsuite_hooks.h>
-
-// libstdc++/24061
-void test01()
-{
- bool test __attribute__((unused)) = true;
-
- typedef std::tr1::unordered_set<std::string> Set;
- typedef Set::iterator iterator;
- typedef Set::const_iterator const_iterator;
-
- Set s1;
-
- s1.insert("all the love in the world");
- s1.insert("you know what you are?");
- s1.insert("the collector");
- s1.insert("the hand that feeds");
- s1.insert("love is not enough");
- s1.insert("every day is exactly the same");
- s1.insert("with teeth");
- s1.insert("only");
- s1.insert("getting smaller");
- s1.insert("sunspots");
- VERIFY( s1.size() == 10 );
-
- iterator it1 = s1.begin();
- ++it1;
- iterator it2 = it1;
- ++it2;
- iterator it3 = s1.erase(it1);
- VERIFY( s1.size() == 9 );
- VERIFY( it3 == it2 );
- VERIFY( *it3 == *it2 );
-
- iterator it4 = s1.begin();
- ++it4;
- ++it4;
- ++it4;
- iterator it5 = it4;
- ++it5;
- ++it5;
- iterator it6 = s1.erase(it4, it5);
- VERIFY( s1.size() == 7 );
- VERIFY( it6 == it5 );
- VERIFY( *it6 == *it5 );
-
- const_iterator it7 = s1.begin();
- ++it7;
- ++it7;
- ++it7;
- const_iterator it8 = it7;
- ++it8;
- const_iterator it9 = s1.erase(it7);
- VERIFY( s1.size() == 6 );
- VERIFY( it9 == it8 );
- VERIFY( *it9 == *it8 );
-
- const_iterator it10 = s1.begin();
- ++it10;
- const_iterator it11 = it10;
- ++it11;
- ++it11;
- ++it11;
- ++it11;
- const_iterator it12 = s1.erase(it10, it11);
- VERIFY( s1.size() == 2 );
- VERIFY( it12 == it11 );
- VERIFY( *it12 == *it11 );
- VERIFY( ++it12 == s1.end() );
-
- iterator it13 = s1.erase(s1.begin(), s1.end());
- VERIFY( s1.size() == 0 );
- VERIFY( it13 == s1.end() );
- VERIFY( it13 == s1.begin() );
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// { dg-do run }
-
-// 2005-2-18 Matt Austern <austern@apple.com>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.4 unordered_map
-// find, equal_range, count
-
-#include <string>
-#include <iterator>
-#include <algorithm>
-#include <utility>
-#include <tr1/unordered_map>
-#include "testsuite_hooks.h"
-
-bool test __attribute__((unused)) = true;
-
-void test01()
-{
- typedef std::tr1::unordered_map<std::string, int> Map;
- typedef std::pair<const std::string, int> Pair;
-
- Map m;
- VERIFY(m.empty());
-
- std::pair<Map::iterator, bool> tmp = m.insert(Pair("grape", 3));
- Map::iterator i = tmp.first;
- VERIFY(tmp.second);
-
- Map::iterator i2 = m.find("grape");
- VERIFY(i2 != m.end());
- VERIFY(i2 == i);
- VERIFY(i2->first == "grape");
- VERIFY(i2->second == 3);
-
- Map::iterator i3 = m.find("lime");
- VERIFY(i3 == m.end());
-
- std::pair<Map::iterator, Map::iterator> p = m.equal_range("grape");
- VERIFY(std::distance(p.first, p.second) == 1);
- VERIFY(p.first == i2);
-
- std::pair<Map::iterator, Map::iterator> p2 = m.equal_range("lime");
- VERIFY(p2.first == p2.second);
-
- VERIFY(m.count("grape") == 1);
- VERIFY(m.count("lime") == 0);
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// { dg-do run }
-
-// 2005-2-18 Matt Austern <austern@apple.com>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.6 unordered_multimap
-// find, equal_range, count
-
-#include <string>
-#include <iterator>
-#include <algorithm>
-#include <utility>
-#include <tr1/unordered_map>
-#include "testsuite_hooks.h"
-
-bool test __attribute__((unused)) = true;
-
-void test01()
-{
- typedef std::tr1::unordered_multimap<std::string, int> Map;
- typedef std::pair<const std::string, int> Pair;
-
- Map m;
- VERIFY(m.empty());
-
- m.insert(Pair("grape", 3));
- m.insert(Pair("durian", 8));
- m.insert(Pair("grape", 7));
-
- Map::iterator i1 = m.find("grape");
- Map::iterator i2 = m.find("durian");
- Map::iterator i3 = m.find("kiwi");
-
- VERIFY(i1 != m.end());
- VERIFY(i1->first == "grape");
- VERIFY(i1->second == 3 || i2->second == 7);
- VERIFY(i2 != m.end());
- VERIFY(i2->first == "durian");
- VERIFY(i2->second == 8);
- VERIFY(i3 == m.end());
-
- std::pair<Map::iterator, Map::iterator> p1 = m.equal_range("grape");
- VERIFY(std::distance(p1.first, p1.second) == 2);
- Map::iterator tmp = p1.first;
- ++tmp;
- VERIFY(p1.first->first == "grape");
- VERIFY(tmp->first == "grape");
- VERIFY((p1.first->second == 3 && tmp->second == 7) ||
- (p1.first->second == 7 && tmp->second == 3));
-
- std::pair<Map::iterator, Map::iterator> p2 = m.equal_range("durian");
- VERIFY(std::distance(p2.first, p2.second) == 1);
- VERIFY(p2.first->first == "durian");
- VERIFY(p2.first->second == 8);
-
- std::pair<Map::iterator, Map::iterator> p3 = m.equal_range("kiwi");
- VERIFY(p3.first == p3.second);
-
- VERIFY(m.count("grape") == 2);
- VERIFY(m.count("durian") == 1);
- VERIFY(m.count("kiwi") == 0);
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// { dg-do run }
-
-// 2005-2-18 Matt Austern <austern@apple.com>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.5 unordered_set
-// find, equal_range, count
-
-#include <string>
-#include <iterator>
-#include <algorithm>
-#include <tr1/unordered_set>
-#include "testsuite_hooks.h"
-
-bool test __attribute__((unused)) = true;
-
-void test01()
-{
- typedef std::tr1::unordered_multiset<std::string> Set;
- Set s;
- VERIFY(s.empty());
-
- s.insert("grape");
- s.insert("banana");
- s.insert("grape");
-
- Set::iterator i2 = s.find("banana");
- VERIFY(i2 != s.end());
- VERIFY(*i2 == "banana");
-
- std::pair<Set::iterator, Set::iterator> p = s.equal_range("grape");
- VERIFY(std::distance(p.first, p.second) == 2);
- Set::iterator i3 = p.first;
- ++i3;
- VERIFY(*p.first == "grape");
- VERIFY(*i3 == "grape");
-
- Set::iterator i4 = s.find("lime");
- VERIFY(i4 == s.end());
-
- VERIFY(s.count("grape") == 2);
- VERIFY(s.count("banana") == 1);
- VERIFY(s.count("lime") == 0);
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// { dg-do run }
-
-// 2005-2-18 Matt Austern <austern@apple.com>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.3 unordered_set
-// find, equal_range, count
-
-#include <string>
-#include <iterator>
-#include <algorithm>
-#include <tr1/unordered_set>
-#include "testsuite_hooks.h"
-
-bool test __attribute__((unused)) = true;
-
-void test01()
-{
- typedef std::tr1::unordered_set<std::string> Set;
- Set s;
- VERIFY(s.empty());
-
- std::pair<Set::iterator, bool> tmp = s.insert("grape");
- Set::iterator i = tmp.first;
-
- Set::iterator i2 = s.find("grape");
- VERIFY(i2 != s.end());
- VERIFY(i2 == i);
- VERIFY(*i2 == "grape");
-
- std::pair<Set::iterator, Set::iterator> p = s.equal_range("grape");
- VERIFY(p.first == i2);
- VERIFY(std::distance(p.first, p.second) == 1);
-
- Set::iterator i3 = s.find("lime");
- VERIFY(i3 == s.end());
-
- std::pair<Set::iterator, Set::iterator> p2 = s.equal_range("lime");
- VERIFY(p2.first == p2.second);
-
- VERIFY(s.count("grape") == 1);
- VERIFY(s.count("lime") == 0);
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// 2005-11-11 Paolo Carlini <pcarlini@suse.de>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.3 Class template hash
-
-#include <tr1/functional>
-#include <string>
-#include <tr1/type_traits>
-#include <testsuite_tr1.h>
-#include <testsuite_hooks.h>
-
-template<typename T>
- void
- do_test()
- {
- bool test __attribute__((unused)) = true;
-
- using std::tr1::is_same;
- using __gnu_test::test_relationship;
-
- typedef typename std::tr1::hash<T>::argument_type argument_type;
- typedef typename std::tr1::hash<T>::result_type result_type;
-
- VERIFY( (test_relationship<is_same, argument_type, T>(true)) );
- VERIFY( (test_relationship<is_same, result_type, std::size_t>(true)) );
- }
-
-// libstdc++/24799
-void test01()
-{
- do_test<bool>();
- do_test<char>();
- do_test<signed char>();
- do_test<unsigned char>();
- do_test<short>();
- do_test<int>();
- do_test<long>();
- do_test<unsigned short>();
- do_test<unsigned int>();
- do_test<unsigned long>();
- do_test<int*>();
- do_test<std::string>();
- do_test<float>();
- do_test<double>();
- do_test<long double>();
-
-#ifdef _GLIBCXX_USE_WCHAR_T
- do_test<wchar_t>();
- do_test<std::wstring>();
-#endif
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// { dg-do compile }
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3 Unordered associative containers
-
-#include <tr1/unordered_set>
-
-// libstdc++/23053
-void test01()
-{
- std::tr1::unordered_set<int> s;
-
- const std::tr1::unordered_set<int> &s_ref = s;
-
- s_ref.find(27);
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3 Unordered associative containers
-
-#include <tr1/unordered_set>
-#include <testsuite_hooks.h>
-
-// libstdc++/23465
-void test01()
-{
- bool test __attribute__((unused)) = true;
-
- for (float lf = 0.1; lf < 101.0; lf *= 10.0)
- for (int size = 1; size <= 6561; size *= 3)
- {
- std::tr1::unordered_set<int> us1, us2;
- typedef std::tr1::unordered_set<int>::local_iterator local_iterator;
- typedef std::tr1::unordered_set<int>::size_type size_type;
-
- us1.max_load_factor(lf);
-
- for (int i = 0; i < size; ++i)
- us1.insert(i);
-
- us2 = us1;
-
- VERIFY( us2.size() == us1.size() );
- VERIFY( us2.bucket_count() == us1.bucket_count() );
-
- for (size_type b = 0; b < us1.bucket_count(); ++b)
- {
- size_type cnt = 0;
- for (local_iterator it1 = us1.begin(b), it2 = us2.begin(b);
- it1 != us1.end(b) && it2 != us2.end(b); ++it1, ++it2)
- {
- VERIFY( *it1 == *it2 );
- ++cnt;
- }
- VERIFY( cnt == us1.bucket_size(b) );
- }
- }
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3 Unordered associative containers
-
-#include <tr1/unordered_set>
-#include <string>
-#include <testsuite_hooks.h>
-
-// libstdc++/24054
-void test01()
-{
- bool test __attribute__((unused)) = true;
-
- typedef std::tr1::unordered_multiset<std::string> Set;
-
- Set s;
-
- s.insert("etaoin");
- s.insert("etaoin");
- s.insert("etaoin");
- s.insert("shrdlu");
-
- VERIFY( s.erase("") == 0 );
- VERIFY( s.size() == 4 );
-
- VERIFY( s.erase("etaoin") == 3 );
- VERIFY( s.size() == 1 );
-
- VERIFY( s.erase("shrdlu") == 1 );
- VERIFY( s.size() == 0 );
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3 Unordered associative containers
-
-#include <tr1/unordered_map>
-#include <testsuite_hooks.h>
-
-// libstdc++/24064
-void test01()
-{
- bool test __attribute__((unused)) = true;
-
- using namespace std;
- using namespace tr1;
-
- unordered_map<int, char, hash<int>, equal_to<int>,
- allocator<pair<const int, char> >, true> m;
-
- for (int i = 0; i < 1000; ++i)
- m[i] = '0' + i % 9;
-
- for (int i = 0; i < 1000; ++i)
- VERIFY( ++m.find(i)->second == '1' + i % 9 );
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// { dg-do compile }
-
-// Copyright (C) 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3 Unordered associative containers
-
-#include <tr1/unordered_set>
-
-// libstdc++/26127
-void test01()
-{
- std::tr1::unordered_set<int> s;
-
- s.bucket(42);
- s.key_eq();
- s.max_load_factor();
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// 2006-02-22 Paolo Carlini <pcarlini@suse.de>
-//
-// Copyright (C) 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3 Unordered associative containers
-
-#include <tr1/unordered_set>
-#include <testsuite_hooks.h>
-
-// libstdc++/26132
-void test01()
-{
- bool test __attribute__((unused)) = true;
-
- for (float lf = 1.0; lf < 101.0; lf *= 10.0)
- for (int size = 1; size <= 6561; size *= 3)
- {
- std::tr1::unordered_set<int> us1;
- typedef std::tr1::unordered_set<int>::size_type size_type;
-
- us1.max_load_factor(10.0);
-
- for (int i = 0; i < size; ++i)
- us1.insert(i);
-
- us1.max_load_factor(lf);
-
- for (int i = 1; i <= 6561; i *= 81)
- {
- const size_type n = size * 81 / i;
- us1.rehash(n);
- VERIFY( us1.bucket_count() > us1.size() / us1.max_load_factor() );
- VERIFY( us1.bucket_count() >= n );
- }
- }
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// { dg-do compile }
-
-// Copyright (C) 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3 Unordered associative containers
-
-#include <tr1/unordered_set>
-
-void
-test01()
-{
- std::tr1::unordered_set<int>::iterator it;
- std::tr1::unordered_set<int>::const_iterator cit;
- std::tr1::unordered_set<int>::local_iterator lit;
- std::tr1::unordered_set<int>::const_local_iterator clit;
-}
+++ /dev/null
-// 2005-10-08 Paolo Carlini <pcarlini@suse.de>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.4 Class template unordered_map
-
-#include <tr1/unordered_map>
-#include <string>
-#include <testsuite_hooks.h>
-
-// libstdc++/24061
-void test01()
-{
- bool test __attribute__((unused)) = true;
-
- typedef std::tr1::unordered_map<std::string, int> Map;
- typedef Map::iterator iterator;
- typedef Map::const_iterator const_iterator;
- typedef Map::value_type value_type;
-
- Map m1;
-
- iterator it1 = m1.insert(m1.begin(),
- value_type("all the love in the world", 1));
- VERIFY( m1.size() == 1 );
- VERIFY( *it1 == value_type("all the love in the world", 1) );
-
- const_iterator cit1(it1);
- const_iterator cit2 = m1.insert(cit1,
- value_type("you know what you are?", 2));
- VERIFY( m1.size() == 2 );
- VERIFY( cit2 != cit1 );
- VERIFY( *cit2 == value_type("you know what you are?", 2) );
-
- iterator it2 = m1.insert(it1, value_type("all the love in the world", 3));
- VERIFY( m1.size() == 2 );
- VERIFY( it2 == it1 );
- VERIFY( *it2 == value_type("all the love in the world", 1) );
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// 2005-10-08 Paolo Carlini <pcarlini@suse.de>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.6 Class template unordered_multimap
-
-#include <tr1/unordered_map>
-#include <string>
-#include <testsuite_hooks.h>
-
-// libstdc++/24061
-void test01()
-{
- bool test __attribute__((unused)) = true;
-
- typedef std::tr1::unordered_multimap<std::string, int> Mmap;
- typedef Mmap::iterator iterator;
- typedef Mmap::const_iterator const_iterator;
- typedef Mmap::value_type value_type;
-
- Mmap mm1;
-
- iterator it1 = mm1.insert(mm1.begin(),
- value_type("all the love in the world", 1));
- VERIFY( mm1.size() == 1 );
- VERIFY( *it1 == value_type("all the love in the world", 1) );
-
- const_iterator cit1(it1);
- const_iterator cit2 = mm1.insert(cit1,
- value_type("you know what you are?", 2));
- VERIFY( mm1.size() == 2 );
- VERIFY( cit2 != cit1 );
- VERIFY( *cit2 == value_type("you know what you are?", 2) );
-
- iterator it2 = mm1.insert(it1, value_type("all the love in the world", 3));
- VERIFY( mm1.size() == 3 );
- VERIFY( it2 != it1 );
- VERIFY( *it2 == value_type("all the love in the world", 3) );
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// 2005-10-08 Paolo Carlini <pcarlini@suse.de>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.5 Class template unordered_multiset
-
-#include <tr1/unordered_set>
-#include <string>
-#include <testsuite_hooks.h>
-
-// libstdc++/24061
-void test01()
-{
- bool test __attribute__((unused)) = true;
-
- typedef std::tr1::unordered_multiset<std::string> Mset;
- typedef Mset::iterator iterator;
- typedef Mset::const_iterator const_iterator;
-
- Mset ms1;
-
- iterator it1 = ms1.insert(ms1.begin(), "all the love in the world");
- VERIFY( ms1.size() == 1 );
- VERIFY( *it1 == "all the love in the world" );
-
- const_iterator cit1(it1);
- const_iterator cit2 = ms1.insert(cit1, "you know what you are?");
- VERIFY( ms1.size() == 2 );
- VERIFY( cit2 != cit1 );
- VERIFY( *cit2 == "you know what you are?" );
-
- iterator it2 = ms1.insert(it1, "all the love in the world");
- VERIFY( ms1.size() == 3 );
- VERIFY( it2 != it1 );
- VERIFY( *it2 == "all the love in the world" );
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// 2005-10-08 Paolo Carlini <pcarlini@suse.de>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.3 Class template unordered_set
-
-#include <tr1/unordered_set>
-#include <string>
-#include <testsuite_hooks.h>
-
-// libstdc++/24061
-void test01()
-{
- bool test __attribute__((unused)) = true;
-
- typedef std::tr1::unordered_set<std::string> Set;
- typedef Set::iterator iterator;
- typedef Set::const_iterator const_iterator;
-
- Set s1;
-
- iterator it1 = s1.insert(s1.begin(), "all the love in the world");
- VERIFY( s1.size() == 1 );
- VERIFY( *it1 == "all the love in the world" );
-
- const_iterator cit1(it1);
- const_iterator cit2 = s1.insert(cit1, "you know what you are?");
- VERIFY( s1.size() == 2 );
- VERIFY( cit2 != cit1 );
- VERIFY( *cit2 == "you know what you are?" );
-
- iterator it2 = s1.insert(it1, "all the love in the world");
- VERIFY( s1.size() == 2 );
- VERIFY( it2 == it1 );
- VERIFY( *it2 == "all the love in the world" );
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// { dg-do run }
-
-// 2005-2-17 Matt Austern <austern@apple.com>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.4 unordered_map
-// Array version of insert
-
-#include <string>
-#include <iterator>
-#include <tr1/unordered_map>
-#include "testsuite_hooks.h"
-
-bool test __attribute__((unused)) = true;
-
-void test01()
-{
- typedef std::tr1::unordered_map<std::string, int> Map;
- typedef std::pair<const std::string, int> Pair;
-
- Map m;
- VERIFY(m.empty());
-
- m["red"] = 17;
- VERIFY(m.size() == 1);
- VERIFY(m.begin()->first == "red");
- VERIFY(m.begin()->second == 17);
- VERIFY(m["red"] == 17);
-
- m["blue"] = 9;
- VERIFY(m.size() == 2);
- VERIFY(m["blue"] == 9);
-
- m["red"] = 5;
- VERIFY(m.size() == 2);
- VERIFY(m["red"] == 5);
- VERIFY(m["blue"] == 9);
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// { dg-do run }
-
-// 2005-2-17 Matt Austern <austern@apple.com>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.4 unordered_map
-// range insert
-
-#include <string>
-#include <iterator>
-#include <algorithm>
-#include <tr1/unordered_map>
-#include "testsuite_hooks.h"
-
-bool test __attribute__((unused)) = true;
-
-void test01()
-{
- typedef std::tr1::unordered_map<std::string, int> Map;
- typedef std::pair<const std::string, int> Pair;
-
- Map m;
- VERIFY(m.empty());
-
- Pair A[5] =
- {
- Pair("red", 5),
- Pair("green", 9),
- Pair("blue", 3),
- Pair("cyan", 8),
- Pair("magenta", 7)
- };
-
- m.insert(A+0, A+5);
- VERIFY(m.size() == 5);
- VERIFY(std::distance(m.begin(), m.end()) == 5);
-
- VERIFY(m["red"] == 5);
- VERIFY(m["green"] == 9);
- VERIFY(m["blue"] == 3);
- VERIFY(m["cyan"] == 8);
- VERIFY(m["magenta"] == 7);
-}
-
-void test02()
-{
- typedef std::tr1::unordered_map<std::string, int> Map;
- typedef std::pair<const std::string, int> Pair;
-
- Map m;
- VERIFY(m.empty());
-
- Pair A[9] =
- {
- Pair("red", 5),
- Pair("green", 9),
- Pair("red", 19),
- Pair("blue", 3),
- Pair("blue", 60),
- Pair("cyan", 8),
- Pair("magenta", 7),
- Pair("blue", 99),
- Pair("green", 33)
- };
-
- m.insert(A+0, A+9);
- VERIFY(m.size() == 5);
- VERIFY(std::distance(m.begin(), m.end()) == 5);
-
- VERIFY(m["red"] == 5);
- VERIFY(m["green"] == 9);
- VERIFY(m["blue"] == 3);
- VERIFY(m["cyan"] == 8);
- VERIFY(m["magenta"] == 7);
-}
-
-int main()
-{
- test01();
- test02();
- return 0;
-}
+++ /dev/null
-// { dg-do run }
-
-// 2005-2-17 Matt Austern <austern@apple.com>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.4 unordered_map
-// Single-element insert
-
-#include <string>
-#include <iterator>
-#include <tr1/unordered_map>
-#include "testsuite_hooks.h"
-
-bool test __attribute__((unused)) = true;
-
-void test01()
-{
- typedef std::tr1::unordered_map<std::string, int> Map;
- typedef std::pair<const std::string, int> Pair;
-
- Map m;
- VERIFY(m.empty());
-
- std::pair<Map::iterator, bool> p = m.insert(Pair("abcde", 3));
- VERIFY(p.second);
- VERIFY(m.size() == 1);
- VERIFY(std::distance(m.begin(), m.end()) == 1);
- VERIFY(p.first == m.begin());
- VERIFY(p.first->first == "abcde");
- VERIFY(p.first->second == 3);
-}
-
-void test02()
-{
- typedef std::tr1::unordered_map<std::string, int> Map;
- typedef std::pair<const std::string, int> Pair;
-
- Map m;
- VERIFY(m.empty());
-
- std::pair<Map::iterator, bool> p1 = m.insert(Pair("abcde", 3));
- std::pair<Map::iterator, bool> p2 = m.insert(Pair("abcde", 7));
-
- VERIFY(p1.second);
- VERIFY(!p2.second);
- VERIFY(m.size() == 1);
- VERIFY(p1.first == p2.first);
- VERIFY(p1.first->first == "abcde");
- VERIFY(p2.first->second == 3);
-}
-
-int main()
-{
- test01();
- test02();
- return 0;
-}
+++ /dev/null
-// { dg-do run }
-
-// 2005-2-17 Matt Austern <austern@apple.com>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.6 unordered_multimap
-// range insert
-
-#include <string>
-#include <iterator>
-#include <algorithm>
-#include <tr1/unordered_map>
-#include "testsuite_hooks.h"
-
-bool test __attribute__((unused)) = true;
-
-void test01()
-{
- typedef std::tr1::unordered_multimap<std::string, int> Map;
- typedef std::pair<const std::string, int> Pair;
-
- Map m;
- VERIFY(m.empty());
-
- Pair A[5] =
- {
- Pair("red", 5),
- Pair("green", 9),
- Pair("blue", 3),
- Pair("cyan", 8),
- Pair("magenta", 7)
- };
-
- m.insert(A+0, A+5);
- VERIFY(m.size() == 5);
- VERIFY(std::distance(m.begin(), m.end()) == 5);
-
- for (int i = 0; i < 5; ++i)
- VERIFY(std::find(m.begin(), m.end(), A[i]) != m.end());
-}
-
-void test02()
-{
- typedef std::tr1::unordered_multimap<std::string, int> Map;
- typedef std::pair<const std::string, int> Pair;
-
- Map m;
- VERIFY(m.empty());
-
- Pair A[9] =
- {
- Pair("red", 5),
- Pair("green", 9),
- Pair("red", 19),
- Pair("blue", 3),
- Pair("blue", 60),
- Pair("cyan", 8),
- Pair("magenta", 7),
- Pair("blue", 99),
- Pair("green", 33)
- };
-
- m.insert(A+0, A+9);
- VERIFY(m.size() == 9);
- VERIFY(std::distance(m.begin(), m.end()) == 9);
-
- for (int i = 0; i < 9; ++i)
- VERIFY(std::find(m.begin(), m.end(), A[i]) != m.end());
-}
-
-int main()
-{
- test01();
- test02();
- return 0;
-}
+++ /dev/null
-// { dg-do run }
-
-// 2005-2-17 Matt Austern <austern@apple.com>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.6 unordered_multimap
-// Single-element insert
-
-#include <string>
-#include <iterator>
-#include <tr1/unordered_map>
-#include "testsuite_hooks.h"
-
-bool test __attribute__((unused)) = true;
-
-void test01()
-{
- typedef std::tr1::unordered_multimap<std::string, int> Map;
- typedef std::pair<const std::string, int> Pair;
-
- Map m;
- VERIFY(m.empty());
-
- Map::iterator i = m.insert(Pair("abcde", 3));
- VERIFY(m.size() == 1);
- VERIFY(std::distance(m.begin(), m.end()) == 1);
- VERIFY(i == m.begin());
- VERIFY(i->first == "abcde");
- VERIFY(i->second == 3);
-}
-
-void test02()
-{
- typedef std::tr1::unordered_multimap<std::string, int> Map;
- typedef std::pair<const std::string, int> Pair;
-
- Map m;
- VERIFY(m.empty());
-
- m.insert(Pair("abcde", 3));
- m.insert(Pair("abcde", 7));
-
- VERIFY(m.size() == 2);
- VERIFY(std::distance(m.begin(), m.end()) == 2);
-
- Map::iterator i1 = m.begin();
- Map::iterator i2 = i1;
- ++i2;
-
- VERIFY(i1->first == "abcde");
- VERIFY(i2->first == "abcde");
- VERIFY((i1->second == 3 && i2->second == 7) ||
- (i1->second == 7 && i2->second == 3));
-}
-
-int main()
-{
- test01();
- test02();
- return 0;
-}
+++ /dev/null
-// { dg-do run }
-
-// 2005-2-17 Matt Austern <austern@apple.com>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.5 unordered_multiset
-// range insert
-
-#include <string>
-#include <iterator>
-#include <algorithm>
-#include <tr1/unordered_set>
-#include <testsuite_hooks.h>
-
-bool test __attribute__((unused)) = true;
-
-void test01()
-{
- typedef std::tr1::unordered_multiset<std::string> Set;
- Set s;
- VERIFY(s.empty());
-
- const int N = 10;
- const std::string A[N] = { "red", "green", "blue", "violet", "cyan",
- "magenta", "yellow", "orange", "pink", "gray" };
-
- s.insert(A+0, A+N);
- VERIFY(s.size() == static_cast<unsigned int>(N));
- VERIFY(std::distance(s.begin(), s.end()) == N);
-
- for (int i = 0; i < N; ++i) {
- std::string str = A[i];
- Set::iterator it = std::find(s.begin(), s.end(), str);
- VERIFY(it != s.end());
- }
-}
-
-void test02()
-{
- typedef std::tr1::unordered_multiset<int> Set;
- Set s;
- VERIFY(s.empty());
-
- const int N = 8;
- const int A[N] = { 3, 7, 4, 8, 2, 4, 6, 7 };
-
- s.insert(A+0, A+N);
- VERIFY(s.size() == static_cast<unsigned int>(N));
- VERIFY(std::distance(s.begin(), s.end()) == N);
-
- VERIFY(std::count(s.begin(), s.end(), 2) == 1);
- VERIFY(std::count(s.begin(), s.end(), 3) == 1);
- VERIFY(std::count(s.begin(), s.end(), 4) == 2);
- VERIFY(std::count(s.begin(), s.end(), 6) == 1);
- VERIFY(std::count(s.begin(), s.end(), 7) == 2);
- VERIFY(std::count(s.begin(), s.end(), 8) == 1);
-}
-
-int main()
-{
- test01();
- test02();
- return 0;
-}
+++ /dev/null
-// { dg-do run }
-
-// 2005-2-17 Matt Austern <austern@apple.com>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.5 unordered_multiset
-// Single-element insert
-
-#include <string>
-#include <iterator>
-#include <tr1/unordered_set>
-#include "testsuite_hooks.h"
-
-bool test __attribute__((unused)) = true;
-
-void test01()
-{
- typedef std::tr1::unordered_multiset<std::string> Set;
- Set s;
- VERIFY(s.empty());
-
- Set::iterator i = s.insert("abcde");
- VERIFY(s.size() == 1);
- VERIFY(std::distance(s.begin(), s.end()) == 1);
- VERIFY(i == s.begin());
- VERIFY(*i == "abcde");
-}
-
-void test02()
-{
- typedef std::tr1::unordered_multiset<std::string> Set;
- Set s;
- VERIFY(s.empty());
-
- s.insert("abcde");
- Set::iterator i = s.insert("abcde");
- VERIFY(s.size() == 2);
- VERIFY(std::distance(s.begin(), s.end()) == 2);
- VERIFY(*i == "abcde");
-
- Set::iterator i2 = s.begin();
- ++i2;
- VERIFY(i == s.begin() || i == i2);
- VERIFY(*(s.begin()) == "abcde" && *i2 == "abcde");
-}
-
-int main()
-{
- test01();
- test02();
- return 0;
-}
+++ /dev/null
-// { dg-do run }
-
-// 2005-2-17 Matt Austern <austern@apple.com>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.3 unordered_set
-// range insert
-
-#include <string>
-#include <iterator>
-#include <algorithm>
-#include <tr1/unordered_set>
-#include <testsuite_hooks.h>
-
-bool test __attribute__((unused)) = true;
-
-void test01()
-{
- typedef std::tr1::unordered_set<std::string> Set;
- Set s;
- VERIFY(s.empty());
-
- const int N = 10;
- const std::string A[N] = { "red", "green", "blue", "violet", "cyan",
- "magenta", "yellow", "orange", "pink", "gray" };
-
- s.insert(A+0, A+N);
- VERIFY(s.size() == static_cast<unsigned int>(N));
- VERIFY(std::distance(s.begin(), s.end()) == N);
-
- for (int i = 0; i < N; ++i) {
- std::string str = A[i];
- Set::iterator it = std::find(s.begin(), s.end(), str);
- VERIFY(it != s.end());
- }
-}
-
-void test02()
-{
- typedef std::tr1::unordered_set<int> Set;
- Set s;
- VERIFY(s.empty());
-
- const int N = 8;
- const int A[N] = { 3, 7, 4, 8, 2, 4, 6, 7 };
-
- s.insert(A+0, A+N);
- VERIFY(s.size() == 6);
- VERIFY(std::distance(s.begin(), s.end()) == 6);
-
- VERIFY(std::count(s.begin(), s.end(), 2) == 1);
- VERIFY(std::count(s.begin(), s.end(), 3) == 1);
- VERIFY(std::count(s.begin(), s.end(), 4) == 1);
- VERIFY(std::count(s.begin(), s.end(), 6) == 1);
- VERIFY(std::count(s.begin(), s.end(), 7) == 1);
- VERIFY(std::count(s.begin(), s.end(), 8) == 1);
-}
-
-int main()
-{
- test01();
- test02();
- return 0;
-}
+++ /dev/null
-// { dg-do run }
-
-// 2005-2-17 Matt Austern <austern@apple.com>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.3 unordered_set
-// Single-element insert
-
-#include <string>
-#include <iterator>
-#include <tr1/unordered_set>
-#include "testsuite_hooks.h"
-
-bool test __attribute__((unused)) = true;
-
-void test01()
-{
- typedef std::tr1::unordered_set<std::string> Set;
- Set s;
- VERIFY(s.empty());
-
- std::pair<Set::iterator, bool> p = s.insert("abcde");
- VERIFY(p.second);
- VERIFY(s.size() == 1);
- VERIFY(std::distance(s.begin(), s.end()) == 1);
- VERIFY(p.first == s.begin());
- VERIFY(*p.first == "abcde");
-}
-
-void test02()
-{
- typedef std::tr1::unordered_set<std::string> Set;
- Set s;
- VERIFY(s.empty());
-
- std::pair<Set::iterator, bool> p1 = s.insert("abcde");
- std::pair<Set::iterator, bool> p2 = s.insert("abcde");
- VERIFY(p1.second);
- VERIFY(!p2.second);
- VERIFY(s.size() == 1);
- VERIFY(p1.first == p2.first);
- VERIFY(*p1.first == "abcde");
-}
-
-int main()
-{
- test01();
- test02();
- return 0;
-}
+++ /dev/null
-// { dg-do compile }
-
-// 2005-02-17 Matt Austern <austern@apple.com>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.3 class template hash
-
-#include <string>
-#include <tr1/functional>
-
-using namespace std::tr1;
-
-// Verify that we can instantiate hash for every required type.
-template class hash<bool>;
-template class hash<char>;
-template class hash<signed char>;
-template class hash<unsigned char>;
-template class hash<short>;
-template class hash<int>;
-template class hash<long>;
-template class hash<unsigned short>;
-template class hash<unsigned int>;
-template class hash<unsigned long>;
-template class hash<float>;
-template class hash<double>;
-template class hash<long double>;
-template class hash<void*>;
-template class hash<std::string>;
-
-#ifdef _GLIBCXX_USE_WCHAR_T
-template class hash<wchar_t>;
-template class hash<std::wstring>;
-#endif
-
+++ /dev/null
-// { dg-do compile }
-
-// 2005-02-17 Matt Austern <austern@apple.com>
-//
-// Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.4 unordered_map
-
-#include <string>
-#include <tr1/unordered_map>
-
-using namespace std;
-using namespace std::tr1;
-
-template class unordered_map<string, float>;
-template class unordered_map<string, float,
- hash<string>, equal_to<string>,
- allocator<pair<const string, float> >, true>;
-template class unordered_map<string, float,
- hash<string>, equal_to<string>,
- allocator<char>, false>;
+++ /dev/null
-// { dg-do compile }
-
-// 2005-02-17 Matt Austern <austern@apple.com>
-//
-// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.6 unordered_multimap
-
-#include <string>
-#include <tr1/unordered_map>
-
-using namespace std;
-using namespace std::tr1;
-
-template class unordered_multimap<string, float>;
-template class unordered_multimap<string, float,
- hash<string>, equal_to<string>,
- allocator<pair<const string, float> >, true>;
-template class unordered_multimap<string, float,
- hash<string>, equal_to<string>,
- allocator<char>, false>;
+++ /dev/null
-// { dg-do compile }
-
-// 2005-02-17 Matt Austern <austern@apple.com>
-//
-// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.5 unordered_multiset
-
-#include <tr1/unordered_set>
-
-using namespace std;
-using namespace std::tr1;
-
-template class unordered_multiset<int>;
-template class unordered_multiset<int, hash<int>, equal_to<int>,
- allocator<int>, true>;
-template class unordered_multiset<int, hash<int>, equal_to<int>,
- allocator<char>, false>;
+++ /dev/null
-// { dg-do compile }
-
-// 2005-02-17 Matt Austern <austern@apple.com>
-//
-// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// 6.3.4.3 unordered_set
-
-#include <tr1/unordered_set>
-
-using namespace std;
-using namespace std::tr1;
-
-template class unordered_set<int>;
-template class unordered_set<int, hash<int>, equal_to<int>,
- allocator<int>, true>;
-template class unordered_set<int, hash<int>, equal_to<int>,
- allocator<char>, false>;
+++ /dev/null
-// 2005-12-20 Paolo Carlini <pcarlini@suse.de>
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-// USA.
-
-// 6.3.4.4 unordered_map::swap
-
-#include <tr1/unordered_map>
-#include <map>
-#include <testsuite_hooks.h>
-#include <testsuite_allocator.h>
-
-// uneq_allocator as a non-empty allocator.
-void
-test01()
-{
- bool test __attribute__((unused)) = true;
- using namespace std;
- using namespace tr1;
-
- typedef pair<const char, int> my_pair;
- typedef __gnu_test::uneq_allocator<my_pair> my_alloc;
- typedef unordered_map<char, int, hash<char>, equal_to<char>, my_alloc>
- my_umap;
-
- const char title01[] = "Rivers of sand";
- const char title02[] = "Concret PH";
- const char title03[] = "Sonatas and Interludes for Prepared Piano";
- const char title04[] = "never as tired as when i'm waking up";
-
- const size_t N1 = sizeof(title01);
- const size_t N2 = sizeof(title02);
- const size_t N3 = sizeof(title03);
- const size_t N4 = sizeof(title04);
-
- typedef map<char, int> my_map;
- my_map map01_ref;
- for (size_t i = 0; i < N1; ++i)
- map01_ref.insert(my_pair(title01[i], i));
- my_map map02_ref;
- for (size_t i = 0; i < N2; ++i)
- map02_ref.insert(my_pair(title02[i], i));
- my_map map03_ref;
- for (size_t i = 0; i < N3; ++i)
- map03_ref.insert(my_pair(title03[i], i));
- my_map map04_ref;
- for (size_t i = 0; i < N4; ++i)
- map04_ref.insert(my_pair(title04[i], i));
-
- my_umap::size_type size01, size02;
-
- my_alloc alloc01(1);
-
- my_umap umap01(10, hash<char>(), equal_to<char>(), alloc01);
- size01 = umap01.size();
- my_umap umap02(10, hash<char>(), equal_to<char>(), alloc01);
- size02 = umap02.size();
-
- umap01.swap(umap02);
- VERIFY( umap01.size() == size02 );
- VERIFY( umap01.empty() );
- VERIFY( umap02.size() == size01 );
- VERIFY( umap02.empty() );
-
- my_umap umap03(10, hash<char>(), equal_to<char>(), alloc01);
- size01 = umap03.size();
- my_umap umap04(map02_ref.begin(), map02_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = umap04.size();
-
- umap03.swap(umap04);
- VERIFY( umap03.size() == size02 );
- VERIFY( my_map(umap03.begin(), umap03.end()) == map02_ref );
- VERIFY( umap04.size() == size01 );
- VERIFY( umap04.empty() );
-
- my_umap umap05(map01_ref.begin(), map01_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size01 = umap05.size();
- my_umap umap06(map02_ref.begin(), map02_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = umap06.size();
-
- umap05.swap(umap06);
- VERIFY( umap05.size() == size02 );
- VERIFY( my_map(umap05.begin(), umap05.end()) == map02_ref );
- VERIFY( umap06.size() == size01 );
- VERIFY( my_map(umap06.begin(), umap06.end()) == map01_ref );
-
- my_umap umap07(map01_ref.begin(), map01_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size01 = umap07.size();
- my_umap umap08(map03_ref.begin(), map03_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = umap08.size();
-
- umap07.swap(umap08);
- VERIFY( umap07.size() == size02 );
- VERIFY( my_map(umap07.begin(), umap07.end()) == map03_ref );
- VERIFY( umap08.size() == size01 );
- VERIFY( my_map(umap08.begin(), umap08.end()) == map01_ref );
-
- my_umap umap09(map03_ref.begin(), map03_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size01 = umap09.size();
- my_umap umap10(map04_ref.begin(), map04_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = umap10.size();
-
- umap09.swap(umap10);
- VERIFY( umap09.size() == size02 );
- VERIFY( my_map(umap09.begin(), umap09.end()) == map04_ref );
- VERIFY( umap10.size() == size01 );
- VERIFY( my_map(umap10.begin(), umap10.end()) == map03_ref );
-
- my_umap umap11(map04_ref.begin(), map04_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size01 = umap11.size();
- my_umap umap12(map01_ref.begin(), map01_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = umap12.size();
-
- umap11.swap(umap12);
- VERIFY( umap11.size() == size02 );
- VERIFY( my_map(umap11.begin(), umap11.end()) == map01_ref );
- VERIFY( umap12.size() == size01 );
- VERIFY( my_map(umap12.begin(), umap12.end()) == map04_ref );
-
- my_umap umap13(map03_ref.begin(), map03_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size01 = umap13.size();
- my_umap umap14(map03_ref.begin(), map03_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = umap14.size();
-
- umap13.swap(umap14);
- VERIFY( umap13.size() == size02 );
- VERIFY( my_map(umap13.begin(), umap13.end()) == map03_ref );
- VERIFY( umap14.size() == size01 );
- VERIFY( my_map(umap14.begin(), umap14.end()) == map03_ref );
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// 2005-12-20 Paolo Carlini <pcarlini@suse.de>
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-// USA.
-
-// 6.3.4.4 unordered_map::swap
-
-#include <tr1/unordered_map>
-#include <map>
-#include <testsuite_hooks.h>
-#include <testsuite_allocator.h>
-
-// uneq_allocator, two different personalities.
-void
-test01()
-{
- bool test __attribute__((unused)) = true;
- using namespace std;
- using namespace tr1;
-
- typedef pair<const char, int> my_pair;
- typedef __gnu_test::uneq_allocator<my_pair> my_alloc;
- typedef unordered_map<char, int, hash<char>, equal_to<char>, my_alloc>
- my_umap;
-
- const char title01[] = "Rivers of sand";
- const char title02[] = "Concret PH";
- const char title03[] = "Sonatas and Interludes for Prepared Piano";
- const char title04[] = "never as tired as when i'm waking up";
-
- const size_t N1 = sizeof(title01);
- const size_t N2 = sizeof(title02);
- const size_t N3 = sizeof(title03);
- const size_t N4 = sizeof(title04);
-
- typedef map<char, int> my_map;
- my_map map01_ref;
- for (size_t i = 0; i < N1; ++i)
- map01_ref.insert(my_pair(title01[i], i));
- my_map map02_ref;
- for (size_t i = 0; i < N2; ++i)
- map02_ref.insert(my_pair(title02[i], i));
- my_map map03_ref;
- for (size_t i = 0; i < N3; ++i)
- map03_ref.insert(my_pair(title03[i], i));
- my_map map04_ref;
- for (size_t i = 0; i < N4; ++i)
- map04_ref.insert(my_pair(title04[i], i));
-
- my_umap::size_type size01, size02;
-
- my_alloc alloc01(1), alloc02(2);
- int personality01, personality02;
-
- my_umap umap01(10, hash<char>(), equal_to<char>(), alloc01);
- size01 = umap01.size();
- personality01 = umap01.get_allocator().get_personality();
- my_umap umap02(10, hash<char>(), equal_to<char>(), alloc02);
- size02 = umap02.size();
- personality02 = umap02.get_allocator().get_personality();
-
- umap01.swap(umap02);
- VERIFY( umap01.size() == size02 );
- VERIFY( umap01.empty() );
- VERIFY( umap02.size() == size01 );
- VERIFY( umap02.empty() );
- VERIFY( umap01.get_allocator().get_personality() == personality02 );
- VERIFY( umap02.get_allocator().get_personality() == personality01 );
-
- my_umap umap03(10, hash<char>(), equal_to<char>(), alloc02);
- size01 = umap03.size();
- personality01 = umap03.get_allocator().get_personality();
- my_umap umap04(map02_ref.begin(), map02_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = umap04.size();
- personality02 = umap04.get_allocator().get_personality();
-
- umap03.swap(umap04);
- VERIFY( umap03.size() == size02 );
- VERIFY( my_map(umap03.begin(), umap03.end()) == map02_ref );
- VERIFY( umap04.size() == size01 );
- VERIFY( umap04.empty() );
- VERIFY( umap03.get_allocator().get_personality() == personality02 );
- VERIFY( umap04.get_allocator().get_personality() == personality01 );
-
- my_umap umap05(map01_ref.begin(), map01_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size01 = umap05.size();
- personality01 = umap05.get_allocator().get_personality();
- my_umap umap06(map02_ref.begin(), map02_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc02);
- size02 = umap06.size();
- personality02 = umap06.get_allocator().get_personality();
-
- umap05.swap(umap06);
- VERIFY( umap05.size() == size02 );
- VERIFY( my_map(umap05.begin(), umap05.end()) == map02_ref );
- VERIFY( umap06.size() == size01 );
- VERIFY( my_map(umap06.begin(), umap06.end()) == map01_ref );
- VERIFY( umap05.get_allocator().get_personality() == personality02 );
- VERIFY( umap06.get_allocator().get_personality() == personality01 );
-
- my_umap umap07(map01_ref.begin(), map01_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc02);
- size01 = umap07.size();
- personality01 = umap07.get_allocator().get_personality();
- my_umap umap08(map03_ref.begin(), map03_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = umap08.size();
- personality02 = umap08.get_allocator().get_personality();
-
- umap07.swap(umap08);
- VERIFY( umap07.size() == size02 );
- VERIFY( my_map(umap07.begin(), umap07.end()) == map03_ref );
- VERIFY( umap08.size() == size01 );
- VERIFY( my_map(umap08.begin(), umap08.end()) == map01_ref );
- VERIFY( umap07.get_allocator().get_personality() == personality02 );
- VERIFY( umap08.get_allocator().get_personality() == personality01 );
-
- my_umap umap09(map03_ref.begin(), map03_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size01 = umap09.size();
- personality01 = umap09.get_allocator().get_personality();
- my_umap umap10(map04_ref.begin(), map04_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc02);
- size02 = umap10.size();
- personality02 = umap10.get_allocator().get_personality();
-
- umap09.swap(umap10);
- VERIFY( umap09.size() == size02 );
- VERIFY( my_map(umap09.begin(), umap09.end()) == map04_ref );
- VERIFY( umap10.size() == size01 );
- VERIFY( my_map(umap10.begin(), umap10.end()) == map03_ref );
- VERIFY( umap09.get_allocator().get_personality() == personality02 );
- VERIFY( umap10.get_allocator().get_personality() == personality01 );
-
- my_umap umap11(map04_ref.begin(), map04_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc02);
- size01 = umap11.size();
- personality01 = umap11.get_allocator().get_personality();
- my_umap umap12(map01_ref.begin(), map01_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = umap12.size();
- personality02 = umap12.get_allocator().get_personality();
-
- umap11.swap(umap12);
- VERIFY( umap11.size() == size02 );
- VERIFY( my_map(umap11.begin(), umap11.end()) == map01_ref );
- VERIFY( umap12.size() == size01 );
- VERIFY( my_map(umap12.begin(), umap12.end()) == map04_ref );
- VERIFY( umap11.get_allocator().get_personality() == personality02 );
- VERIFY( umap12.get_allocator().get_personality() == personality01 );
-
- my_umap umap13(map03_ref.begin(), map03_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size01 = umap13.size();
- personality01 = umap13.get_allocator().get_personality();
- my_umap umap14(map03_ref.begin(), map03_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc02);
- size02 = umap14.size();
- personality02 = umap14.get_allocator().get_personality();
-
- umap13.swap(umap14);
- VERIFY( umap13.size() == size02 );
- VERIFY( my_map(umap13.begin(), umap13.end()) == map03_ref );
- VERIFY( umap14.size() == size01 );
- VERIFY( my_map(umap14.begin(), umap14.end()) == map03_ref );
- VERIFY( umap13.get_allocator().get_personality() == personality02 );
- VERIFY( umap14.get_allocator().get_personality() == personality01 );
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// 2005-12-20 Paolo Carlini <pcarlini@suse.de>
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-// USA.
-
-// 6.3.4.6 unordered_multimap::swap
-
-#include <tr1/unordered_map>
-#include <map>
-#include <testsuite_hooks.h>
-#include <testsuite_allocator.h>
-
-// uneq_allocator as a non-empty allocator.
-void
-test01()
-{
- bool test __attribute__((unused)) = true;
- using namespace std;
- using namespace tr1;
-
- typedef pair<const char, int> my_pair;
- typedef __gnu_test::uneq_allocator<my_pair> my_alloc;
- typedef unordered_multimap<char, int, hash<char>, equal_to<char>, my_alloc>
- my_ummap;
-
- const char title01[] = "Rivers of sand";
- const char title02[] = "Concret PH";
- const char title03[] = "Sonatas and Interludes for Prepared Piano";
- const char title04[] = "never as tired as when i'm waking up";
-
- const size_t N1 = sizeof(title01);
- const size_t N2 = sizeof(title02);
- const size_t N3 = sizeof(title03);
- const size_t N4 = sizeof(title04);
-
- typedef multimap<char, int> my_mmap;
- my_mmap mmap01_ref;
- for (size_t i = 0; i < N1; ++i)
- mmap01_ref.insert(my_pair(title01[i], i));
- my_mmap mmap02_ref;
- for (size_t i = 0; i < N2; ++i)
- mmap02_ref.insert(my_pair(title02[i], i));
- my_mmap mmap03_ref;
- for (size_t i = 0; i < N3; ++i)
- mmap03_ref.insert(my_pair(title03[i], i));
- my_mmap mmap04_ref;
- for (size_t i = 0; i < N4; ++i)
- mmap04_ref.insert(my_pair(title04[i], i));
-
- typedef map<char, int> my_map;
-
- my_ummap::size_type size01, size02;
-
- my_alloc alloc01(1);
-
- my_ummap ummap01(10, hash<char>(), equal_to<char>(), alloc01);
- size01 = ummap01.size();
- my_ummap ummap02(10, hash<char>(), equal_to<char>(), alloc01);
- size02 = ummap02.size();
-
- ummap01.swap(ummap02);
- VERIFY( ummap01.size() == size02 );
- VERIFY( ummap01.empty() );
- VERIFY( ummap02.size() == size01 );
- VERIFY( ummap02.empty() );
-
- my_ummap ummap03(10, hash<char>(), equal_to<char>(), alloc01);
- size01 = ummap03.size();
- my_ummap ummap04(mmap02_ref.begin(), mmap02_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = ummap04.size();
-
- ummap03.swap(ummap04);
- VERIFY( ummap03.size() == size02 );
- VERIFY( my_map(ummap03.begin(), ummap03.end())
- == my_map(mmap02_ref.begin(), mmap02_ref.end()) );
- VERIFY( ummap04.size() == size01 );
- VERIFY( ummap04.empty() );
-
- my_ummap ummap05(mmap01_ref.begin(), mmap01_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size01 = ummap05.size();
- my_ummap ummap06(mmap02_ref.begin(), mmap02_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = ummap06.size();
-
- ummap05.swap(ummap06);
- VERIFY( ummap05.size() == size02 );
- VERIFY( my_map(ummap05.begin(), ummap05.end())
- == my_map(mmap02_ref.begin(), mmap02_ref.end()) );
- VERIFY( ummap06.size() == size01 );
- VERIFY( my_map(ummap06.begin(), ummap06.end())
- == my_map(mmap01_ref.begin(), mmap01_ref.end()) );
-
- my_ummap ummap07(mmap01_ref.begin(), mmap01_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size01 = ummap07.size();
- my_ummap ummap08(mmap03_ref.begin(), mmap03_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = ummap08.size();
-
- ummap07.swap(ummap08);
- VERIFY( ummap07.size() == size02 );
- VERIFY( my_map(ummap07.begin(), ummap07.end())
- == my_map(mmap03_ref.begin(), mmap03_ref.end()) );
- VERIFY( ummap08.size() == size01 );
- VERIFY( my_map(ummap08.begin(), ummap08.end())
- == my_map(mmap01_ref.begin(), mmap01_ref.end()) );
-
- my_ummap ummap09(mmap03_ref.begin(), mmap03_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size01 = ummap09.size();
- my_ummap ummap10(mmap04_ref.begin(), mmap04_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = ummap10.size();
-
- ummap09.swap(ummap10);
- VERIFY( ummap09.size() == size02 );
- VERIFY( my_map(ummap09.begin(), ummap09.end())
- == my_map(mmap04_ref.begin(), mmap04_ref.end()) );
- VERIFY( ummap10.size() == size01 );
- VERIFY( my_map(ummap10.begin(), ummap10.end())
- == my_map(mmap03_ref.begin(), mmap03_ref.end()) );
-
- my_ummap ummap11(mmap04_ref.begin(), mmap04_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size01 = ummap11.size();
- my_ummap ummap12(mmap01_ref.begin(), mmap01_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = ummap12.size();
-
- ummap11.swap(ummap12);
- VERIFY( ummap11.size() == size02 );
- VERIFY( my_map(ummap11.begin(), ummap11.end())
- == my_map(mmap01_ref.begin(), mmap01_ref.end()) );
- VERIFY( ummap12.size() == size01 );
- VERIFY( my_map(ummap12.begin(), ummap12.end())
- == my_map(mmap04_ref.begin(), mmap04_ref.end()) );
-
- my_ummap ummap13(mmap03_ref.begin(), mmap03_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size01 = ummap13.size();
- my_ummap ummap14(mmap03_ref.begin(), mmap03_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = ummap14.size();
-
- ummap13.swap(ummap14);
- VERIFY( ummap13.size() == size02 );
- VERIFY( my_map(ummap13.begin(), ummap13.end())
- == my_map(mmap03_ref.begin(), mmap03_ref.end()) );
- VERIFY( ummap14.size() == size01 );
- VERIFY( my_map(ummap14.begin(), ummap14.end())
- == my_map(mmap03_ref.begin(), mmap03_ref.end()) );
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// 2005-12-20 Paolo Carlini <pcarlini@suse.de>
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-// USA.
-
-// 6.3.4.6 unordered_multimap::swap
-
-#include <tr1/unordered_map>
-#include <map>
-#include <testsuite_hooks.h>
-#include <testsuite_allocator.h>
-
-// uneq_allocator, two different personalities.
-void
-test01()
-{
- bool test __attribute__((unused)) = true;
- using namespace std;
- using namespace tr1;
-
- typedef pair<const char, int> my_pair;
- typedef __gnu_test::uneq_allocator<my_pair> my_alloc;
- typedef unordered_multimap<char, int, hash<char>, equal_to<char>, my_alloc>
- my_ummap;
-
- const char title01[] = "Rivers of sand";
- const char title02[] = "Concret PH";
- const char title03[] = "Sonatas and Interludes for Prepared Piano";
- const char title04[] = "never as tired as when i'm waking up";
-
- const size_t N1 = sizeof(title01);
- const size_t N2 = sizeof(title02);
- const size_t N3 = sizeof(title03);
- const size_t N4 = sizeof(title04);
-
- typedef multimap<char, int> my_mmap;
- my_mmap mmap01_ref;
- for (size_t i = 0; i < N1; ++i)
- mmap01_ref.insert(my_pair(title01[i], i));
- my_mmap mmap02_ref;
- for (size_t i = 0; i < N2; ++i)
- mmap02_ref.insert(my_pair(title02[i], i));
- my_mmap mmap03_ref;
- for (size_t i = 0; i < N3; ++i)
- mmap03_ref.insert(my_pair(title03[i], i));
- my_mmap mmap04_ref;
- for (size_t i = 0; i < N4; ++i)
- mmap04_ref.insert(my_pair(title04[i], i));
-
- typedef map<char, int> my_map;
-
- my_ummap::size_type size01, size02;
-
- my_alloc alloc01(1), alloc02(2);
- int personality01, personality02;
-
- my_ummap ummap01(10, hash<char>(), equal_to<char>(), alloc01);
- size01 = ummap01.size();
- personality01 = ummap01.get_allocator().get_personality();
- my_ummap ummap02(10, hash<char>(), equal_to<char>(), alloc02);
- size02 = ummap02.size();
- personality02 = ummap02.get_allocator().get_personality();
-
- ummap01.swap(ummap02);
- VERIFY( ummap01.size() == size02 );
- VERIFY( ummap01.empty() );
- VERIFY( ummap02.size() == size01 );
- VERIFY( ummap02.empty() );
- VERIFY( ummap01.get_allocator().get_personality() == personality02 );
- VERIFY( ummap02.get_allocator().get_personality() == personality01 );
-
- my_ummap ummap03(10, hash<char>(), equal_to<char>(), alloc02);
- size01 = ummap03.size();
- personality01 = ummap03.get_allocator().get_personality();
- my_ummap ummap04(mmap02_ref.begin(), mmap02_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = ummap04.size();
- personality02 = ummap04.get_allocator().get_personality();
-
- ummap03.swap(ummap04);
- VERIFY( ummap03.size() == size02 );
- VERIFY( my_map(ummap03.begin(), ummap03.end())
- == my_map(mmap02_ref.begin(), mmap02_ref.end()) );
- VERIFY( ummap04.size() == size01 );
- VERIFY( ummap04.empty() );
- VERIFY( ummap03.get_allocator().get_personality() == personality02 );
- VERIFY( ummap04.get_allocator().get_personality() == personality01 );
-
- my_ummap ummap05(mmap01_ref.begin(), mmap01_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size01 = ummap05.size();
- personality01 = ummap05.get_allocator().get_personality();
- my_ummap ummap06(mmap02_ref.begin(), mmap02_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc02);
- size02 = ummap06.size();
- personality02 = ummap06.get_allocator().get_personality();
-
- ummap05.swap(ummap06);
- VERIFY( ummap05.size() == size02 );
- VERIFY( my_map(ummap05.begin(), ummap05.end())
- == my_map(mmap02_ref.begin(), mmap02_ref.end()) );
- VERIFY( ummap06.size() == size01 );
- VERIFY( my_map(ummap06.begin(), ummap06.end())
- == my_map(mmap01_ref.begin(), mmap01_ref.end()) );
- VERIFY( ummap05.get_allocator().get_personality() == personality02 );
- VERIFY( ummap06.get_allocator().get_personality() == personality01 );
-
- my_ummap ummap07(mmap01_ref.begin(), mmap01_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc02);
- size01 = ummap07.size();
- personality01 = ummap07.get_allocator().get_personality();
- my_ummap ummap08(mmap03_ref.begin(), mmap03_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = ummap08.size();
- personality02 = ummap08.get_allocator().get_personality();
-
- ummap07.swap(ummap08);
- VERIFY( ummap07.size() == size02 );
- VERIFY( my_map(ummap07.begin(), ummap07.end())
- == my_map(mmap03_ref.begin(), mmap03_ref.end()) );
- VERIFY( ummap08.size() == size01 );
- VERIFY( my_map(ummap08.begin(), ummap08.end())
- == my_map(mmap01_ref.begin(), mmap01_ref.end()) );
- VERIFY( ummap07.get_allocator().get_personality() == personality02 );
- VERIFY( ummap08.get_allocator().get_personality() == personality01 );
-
- my_ummap ummap09(mmap03_ref.begin(), mmap03_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size01 = ummap09.size();
- personality01 = ummap09.get_allocator().get_personality();
- my_ummap ummap10(mmap04_ref.begin(), mmap04_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc02);
- size02 = ummap10.size();
- personality02 = ummap10.get_allocator().get_personality();
-
- ummap09.swap(ummap10);
- VERIFY( ummap09.size() == size02 );
- VERIFY( my_map(ummap09.begin(), ummap09.end())
- == my_map(mmap04_ref.begin(), mmap04_ref.end()) );
- VERIFY( ummap10.size() == size01 );
- VERIFY( my_map(ummap10.begin(), ummap10.end())
- == my_map(mmap03_ref.begin(), mmap03_ref.end()) );
- VERIFY( ummap09.get_allocator().get_personality() == personality02 );
- VERIFY( ummap10.get_allocator().get_personality() == personality01 );
-
- my_ummap ummap11(mmap04_ref.begin(), mmap04_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc02);
- size01 = ummap11.size();
- personality01 = ummap11.get_allocator().get_personality();
- my_ummap ummap12(mmap01_ref.begin(), mmap01_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = ummap12.size();
- personality02 = ummap12.get_allocator().get_personality();
-
- ummap11.swap(ummap12);
- VERIFY( ummap11.size() == size02 );
- VERIFY( my_map(ummap11.begin(), ummap11.end())
- == my_map(mmap01_ref.begin(), mmap01_ref.end()) );
- VERIFY( ummap12.size() == size01 );
- VERIFY( my_map(ummap12.begin(), ummap12.end())
- == my_map(mmap04_ref.begin(), mmap04_ref.end()) );
- VERIFY( ummap11.get_allocator().get_personality() == personality02 );
- VERIFY( ummap12.get_allocator().get_personality() == personality01 );
-
- my_ummap ummap13(mmap03_ref.begin(), mmap03_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size01 = ummap13.size();
- personality01 = ummap13.get_allocator().get_personality();
- my_ummap ummap14(mmap03_ref.begin(), mmap03_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc02);
- size02 = ummap14.size();
- personality02 = ummap14.get_allocator().get_personality();
-
- ummap13.swap(ummap14);
- VERIFY( ummap13.size() == size02 );
- VERIFY( my_map(ummap13.begin(), ummap13.end())
- == my_map(mmap03_ref.begin(), mmap03_ref.end()) );
- VERIFY( ummap14.size() == size01 );
- VERIFY( my_map(ummap14.begin(), ummap14.end())
- == my_map(mmap03_ref.begin(), mmap03_ref.end()) );
- VERIFY( ummap13.get_allocator().get_personality() == personality02 );
- VERIFY( ummap14.get_allocator().get_personality() == personality01 );
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// 2005-12-20 Paolo Carlini <pcarlini@suse.de>
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-// USA.
-
-// 6.3.4.5 unordered_multiset::swap
-
-#include <tr1/unordered_set>
-#include <set>
-#include <testsuite_hooks.h>
-#include <testsuite_allocator.h>
-
-// uneq_allocator as a non-empty allocator.
-void
-test01()
-{
- bool test __attribute__((unused)) = true;
- using namespace std;
- using namespace tr1;
-
- typedef __gnu_test::uneq_allocator<char> my_alloc;
- typedef unordered_multiset<char, hash<char>, equal_to<char>, my_alloc>
- my_umset;
-
- const char title01[] = "Rivers of sand";
- const char title02[] = "Concret PH";
- const char title03[] = "Sonatas and Interludes for Prepared Piano";
- const char title04[] = "never as tired as when i'm waking up";
-
- const size_t N1 = sizeof(title01);
- const size_t N2 = sizeof(title02);
- const size_t N3 = sizeof(title03);
- const size_t N4 = sizeof(title04);
-
- typedef multiset<char> my_mset;
- const my_mset mset01_ref(title01, title01 + N1);
- const my_mset mset02_ref(title02, title02 + N2);
- const my_mset mset03_ref(title03, title03 + N3);
- const my_mset mset04_ref(title04, title04 + N4);
-
- my_umset::size_type size01, size02;
-
- my_alloc alloc01(1);
-
- my_umset umset01(10, hash<char>(), equal_to<char>(), alloc01);
- size01 = umset01.size();
- my_umset umset02(10, hash<char>(), equal_to<char>(), alloc01);
- size02 = umset02.size();
-
- umset01.swap(umset02);
- VERIFY( umset01.size() == size02 );
- VERIFY( umset01.empty() );
- VERIFY( umset02.size() == size01 );
- VERIFY( umset02.empty() );
-
- my_umset umset03(10, hash<char>(), equal_to<char>(), alloc01);
- size01 = umset03.size();
- my_umset umset04(mset02_ref.begin(), mset02_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = umset04.size();
-
- umset03.swap(umset04);
- VERIFY( umset03.size() == size02 );
- VERIFY( my_mset(umset03.begin(), umset03.end()) == mset02_ref );
- VERIFY( umset04.size() == size01 );
- VERIFY( umset04.empty() );
-
- my_umset umset05(mset01_ref.begin(), mset01_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size01 = umset05.size();
- my_umset umset06(mset02_ref.begin(), mset02_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = umset06.size();
-
- umset05.swap(umset06);
- VERIFY( umset05.size() == size02 );
- VERIFY( my_mset(umset05.begin(), umset05.end()) == mset02_ref );
- VERIFY( umset06.size() == size01 );
- VERIFY( my_mset(umset06.begin(), umset06.end()) == mset01_ref );
-
- my_umset umset07(mset01_ref.begin(), mset01_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size01 = umset07.size();
- my_umset umset08(mset03_ref.begin(), mset03_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = umset08.size();
-
- umset07.swap(umset08);
- VERIFY( umset07.size() == size02 );
- VERIFY( my_mset(umset07.begin(), umset07.end()) == mset03_ref );
- VERIFY( umset08.size() == size01 );
- VERIFY( my_mset(umset08.begin(), umset08.end()) == mset01_ref );
-
- my_umset umset09(mset03_ref.begin(), mset03_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size01 = umset09.size();
- my_umset umset10(mset04_ref.begin(), mset04_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = umset10.size();
-
- umset09.swap(umset10);
- VERIFY( umset09.size() == size02 );
- VERIFY( my_mset(umset09.begin(), umset09.end()) == mset04_ref );
- VERIFY( umset10.size() == size01 );
- VERIFY( my_mset(umset10.begin(), umset10.end()) == mset03_ref );
-
- my_umset umset11(mset04_ref.begin(), mset04_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size01 = umset11.size();
- my_umset umset12(mset01_ref.begin(), mset01_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = umset12.size();
-
- umset11.swap(umset12);
- VERIFY( umset11.size() == size02 );
- VERIFY( my_mset(umset11.begin(), umset11.end()) == mset01_ref );
- VERIFY( umset12.size() == size01 );
- VERIFY( my_mset(umset12.begin(), umset12.end()) == mset04_ref );
-
- my_umset umset13(mset03_ref.begin(), mset03_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size01 = umset13.size();
- my_umset umset14(mset03_ref.begin(), mset03_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = umset14.size();
-
- umset13.swap(umset14);
- VERIFY( umset13.size() == size02 );
- VERIFY( my_mset(umset13.begin(), umset13.end()) == mset03_ref );
- VERIFY( umset14.size() == size01 );
- VERIFY( my_mset(umset14.begin(), umset14.end()) == mset03_ref );
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// 2005-12-20 Paolo Carlini <pcarlini@suse.de>
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-// USA.
-
-// 6.3.4.5 unordered_multiset::swap
-
-#include <tr1/unordered_set>
-#include <set>
-#include <testsuite_hooks.h>
-#include <testsuite_allocator.h>
-
-// uneq_allocator, two different personalities.
-void
-test01()
-{
- bool test __attribute__((unused)) = true;
- using namespace std;
- using namespace tr1;
-
- typedef __gnu_test::uneq_allocator<char> my_alloc;
- typedef unordered_multiset<char, hash<char>, equal_to<char>, my_alloc>
- my_umset;
-
- const char title01[] = "Rivers of sand";
- const char title02[] = "Concret PH";
- const char title03[] = "Sonatas and Interludes for Prepared Piano";
- const char title04[] = "never as tired as when i'm waking up";
-
- const size_t N1 = sizeof(title01);
- const size_t N2 = sizeof(title02);
- const size_t N3 = sizeof(title03);
- const size_t N4 = sizeof(title04);
-
- typedef multiset<char> my_mset;
- const my_mset mset01_ref(title01, title01 + N1);
- const my_mset mset02_ref(title02, title02 + N2);
- const my_mset mset03_ref(title03, title03 + N3);
- const my_mset mset04_ref(title04, title04 + N4);
-
- my_umset::size_type size01, size02;
-
- my_alloc alloc01(1), alloc02(2);
- int personality01, personality02;
-
- my_umset umset01(10, hash<char>(), equal_to<char>(), alloc01);
- size01 = umset01.size();
- personality01 = umset01.get_allocator().get_personality();
- my_umset umset02(10, hash<char>(), equal_to<char>(), alloc02);
- size02 = umset02.size();
- personality02 = umset02.get_allocator().get_personality();
-
- umset01.swap(umset02);
- VERIFY( umset01.size() == size02 );
- VERIFY( umset01.empty() );
- VERIFY( umset02.size() == size01 );
- VERIFY( umset02.empty() );
- VERIFY( umset01.get_allocator().get_personality() == personality02 );
- VERIFY( umset02.get_allocator().get_personality() == personality01 );
-
- my_umset umset03(10, hash<char>(), equal_to<char>(), alloc02);
- size01 = umset03.size();
- personality01 = umset03.get_allocator().get_personality();
- my_umset umset04(mset02_ref.begin(), mset02_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = umset04.size();
- personality02 = umset04.get_allocator().get_personality();
-
- umset03.swap(umset04);
- VERIFY( umset03.size() == size02 );
- VERIFY( my_mset(umset03.begin(), umset03.end()) == mset02_ref );
- VERIFY( umset04.size() == size01 );
- VERIFY( umset04.empty() );
- VERIFY( umset03.get_allocator().get_personality() == personality02 );
- VERIFY( umset04.get_allocator().get_personality() == personality01 );
-
- my_umset umset05(mset01_ref.begin(), mset01_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size01 = umset05.size();
- personality01 = umset05.get_allocator().get_personality();
- my_umset umset06(mset02_ref.begin(), mset02_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc02);
- size02 = umset06.size();
- personality02 = umset06.get_allocator().get_personality();
-
- umset05.swap(umset06);
- VERIFY( umset05.size() == size02 );
- VERIFY( my_mset(umset05.begin(), umset05.end()) == mset02_ref );
- VERIFY( umset06.size() == size01 );
- VERIFY( my_mset(umset06.begin(), umset06.end()) == mset01_ref );
- VERIFY( umset05.get_allocator().get_personality() == personality02 );
- VERIFY( umset06.get_allocator().get_personality() == personality01 );
-
- my_umset umset07(mset01_ref.begin(), mset01_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc02);
- size01 = umset07.size();
- personality01 = umset07.get_allocator().get_personality();
- my_umset umset08(mset03_ref.begin(), mset03_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = umset08.size();
- personality02 = umset08.get_allocator().get_personality();
-
- umset07.swap(umset08);
- VERIFY( umset07.size() == size02 );
- VERIFY( my_mset(umset07.begin(), umset07.end()) == mset03_ref );
- VERIFY( umset08.size() == size01 );
- VERIFY( my_mset(umset08.begin(), umset08.end()) == mset01_ref );
- VERIFY( umset07.get_allocator().get_personality() == personality02 );
- VERIFY( umset08.get_allocator().get_personality() == personality01 );
-
- my_umset umset09(mset03_ref.begin(), mset03_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size01 = umset09.size();
- personality01 = umset09.get_allocator().get_personality();
- my_umset umset10(mset04_ref.begin(), mset04_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc02);
- size02 = umset10.size();
- personality02 = umset10.get_allocator().get_personality();
-
- umset09.swap(umset10);
- VERIFY( umset09.size() == size02 );
- VERIFY( my_mset(umset09.begin(), umset09.end()) == mset04_ref );
- VERIFY( umset10.size() == size01 );
- VERIFY( my_mset(umset10.begin(), umset10.end()) == mset03_ref );
- VERIFY( umset09.get_allocator().get_personality() == personality02 );
- VERIFY( umset10.get_allocator().get_personality() == personality01 );
-
- my_umset umset11(mset04_ref.begin(), mset04_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc02);
- size01 = umset11.size();
- personality01 = umset11.get_allocator().get_personality();
- my_umset umset12(mset01_ref.begin(), mset01_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = umset12.size();
- personality02 = umset12.get_allocator().get_personality();
-
- umset11.swap(umset12);
- VERIFY( umset11.size() == size02 );
- VERIFY( my_mset(umset11.begin(), umset11.end()) == mset01_ref );
- VERIFY( umset12.size() == size01 );
- VERIFY( my_mset(umset12.begin(), umset12.end()) == mset04_ref );
- VERIFY( umset11.get_allocator().get_personality() == personality02 );
- VERIFY( umset12.get_allocator().get_personality() == personality01 );
-
- my_umset umset13(mset03_ref.begin(), mset03_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size01 = umset13.size();
- personality01 = umset13.get_allocator().get_personality();
- my_umset umset14(mset03_ref.begin(), mset03_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc02);
- size02 = umset14.size();
- personality02 = umset14.get_allocator().get_personality();
-
- umset13.swap(umset14);
- VERIFY( umset13.size() == size02 );
- VERIFY( my_mset(umset13.begin(), umset13.end()) == mset03_ref );
- VERIFY( umset14.size() == size01 );
- VERIFY( my_mset(umset14.begin(), umset14.end()) == mset03_ref );
- VERIFY( umset13.get_allocator().get_personality() == personality02 );
- VERIFY( umset14.get_allocator().get_personality() == personality01 );
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// 2005-12-20 Paolo Carlini <pcarlini@suse.de>
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-// USA.
-
-// 6.3.4.3 unordered_set::swap
-
-#include <tr1/unordered_set>
-#include <set>
-#include <testsuite_hooks.h>
-#include <testsuite_allocator.h>
-
-// uneq_allocator as a non-empty allocator.
-void
-test01()
-{
- bool test __attribute__((unused)) = true;
- using namespace std;
- using namespace tr1;
-
- typedef __gnu_test::uneq_allocator<char> my_alloc;
- typedef unordered_set<char, hash<char>, equal_to<char>, my_alloc> my_uset;
-
- const char title01[] = "Rivers of sand";
- const char title02[] = "Concret PH";
- const char title03[] = "Sonatas and Interludes for Prepared Piano";
- const char title04[] = "never as tired as when i'm waking up";
-
- const size_t N1 = sizeof(title01);
- const size_t N2 = sizeof(title02);
- const size_t N3 = sizeof(title03);
- const size_t N4 = sizeof(title04);
-
- typedef set<char> my_set;
- const my_set set01_ref(title01, title01 + N1);
- const my_set set02_ref(title02, title02 + N2);
- const my_set set03_ref(title03, title03 + N3);
- const my_set set04_ref(title04, title04 + N4);
-
- my_uset::size_type size01, size02;
-
- my_alloc alloc01(1);
-
- my_uset uset01(10, hash<char>(), equal_to<char>(), alloc01);
- size01 = uset01.size();
- my_uset uset02(10, hash<char>(), equal_to<char>(), alloc01);
- size02 = uset02.size();
-
- uset01.swap(uset02);
- VERIFY( uset01.size() == size02 );
- VERIFY( uset01.empty() );
- VERIFY( uset02.size() == size01 );
- VERIFY( uset02.empty() );
-
- my_uset uset03(10, hash<char>(), equal_to<char>(), alloc01);
- size01 = uset03.size();
- my_uset uset04(set02_ref.begin(), set02_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = uset04.size();
-
- uset03.swap(uset04);
- VERIFY( uset03.size() == size02 );
- VERIFY( my_set(uset03.begin(), uset03.end()) == set02_ref );
- VERIFY( uset04.size() == size01 );
- VERIFY( uset04.empty() );
-
- my_uset uset05(set01_ref.begin(), set01_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size01 = uset05.size();
- my_uset uset06(set02_ref.begin(), set02_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = uset06.size();
-
- uset05.swap(uset06);
- VERIFY( uset05.size() == size02 );
- VERIFY( my_set(uset05.begin(), uset05.end()) == set02_ref );
- VERIFY( uset06.size() == size01 );
- VERIFY( my_set(uset06.begin(), uset06.end()) == set01_ref );
-
- my_uset uset07(set01_ref.begin(), set01_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size01 = uset07.size();
- my_uset uset08(set03_ref.begin(), set03_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = uset08.size();
-
- uset07.swap(uset08);
- VERIFY( uset07.size() == size02 );
- VERIFY( my_set(uset07.begin(), uset07.end()) == set03_ref );
- VERIFY( uset08.size() == size01 );
- VERIFY( my_set(uset08.begin(), uset08.end()) == set01_ref );
-
- my_uset uset09(set03_ref.begin(), set03_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size01 = uset09.size();
- my_uset uset10(set04_ref.begin(), set04_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = uset10.size();
-
- uset09.swap(uset10);
- VERIFY( uset09.size() == size02 );
- VERIFY( my_set(uset09.begin(), uset09.end()) == set04_ref );
- VERIFY( uset10.size() == size01 );
- VERIFY( my_set(uset10.begin(), uset10.end()) == set03_ref );
-
- my_uset uset11(set04_ref.begin(), set04_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size01 = uset11.size();
- my_uset uset12(set01_ref.begin(), set01_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = uset12.size();
-
- uset11.swap(uset12);
- VERIFY( uset11.size() == size02 );
- VERIFY( my_set(uset11.begin(), uset11.end()) == set01_ref );
- VERIFY( uset12.size() == size01 );
- VERIFY( my_set(uset12.begin(), uset12.end()) == set04_ref );
-
- my_uset uset13(set03_ref.begin(), set03_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size01 = uset13.size();
- my_uset uset14(set03_ref.begin(), set03_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = uset14.size();
-
- uset13.swap(uset14);
- VERIFY( uset13.size() == size02 );
- VERIFY( my_set(uset13.begin(), uset13.end()) == set03_ref );
- VERIFY( uset14.size() == size01 );
- VERIFY( my_set(uset14.begin(), uset14.end()) == set03_ref );
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// 2005-12-20 Paolo Carlini <pcarlini@suse.de>
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-// USA.
-
-// 6.3.4.3 unordered_set::swap
-
-#include <tr1/unordered_set>
-#include <set>
-#include <testsuite_hooks.h>
-#include <testsuite_allocator.h>
-
-// uneq_allocator, two different personalities.
-void
-test01()
-{
- bool test __attribute__((unused)) = true;
- using namespace std;
- using namespace tr1;
-
- typedef __gnu_test::uneq_allocator<char> my_alloc;
- typedef unordered_set<char, hash<char>, equal_to<char>, my_alloc> my_uset;
-
- const char title01[] = "Rivers of sand";
- const char title02[] = "Concret PH";
- const char title03[] = "Sonatas and Interludes for Prepared Piano";
- const char title04[] = "never as tired as when i'm waking up";
-
- const size_t N1 = sizeof(title01);
- const size_t N2 = sizeof(title02);
- const size_t N3 = sizeof(title03);
- const size_t N4 = sizeof(title04);
-
- typedef set<char> my_set;
- const my_set set01_ref(title01, title01 + N1);
- const my_set set02_ref(title02, title02 + N2);
- const my_set set03_ref(title03, title03 + N3);
- const my_set set04_ref(title04, title04 + N4);
-
- my_uset::size_type size01, size02;
-
- my_alloc alloc01(1), alloc02(2);
- int personality01, personality02;
-
- my_uset uset01(10, hash<char>(), equal_to<char>(), alloc01);
- size01 = uset01.size();
- personality01 = uset01.get_allocator().get_personality();
- my_uset uset02(10, hash<char>(), equal_to<char>(), alloc02);
- size02 = uset02.size();
- personality02 = uset02.get_allocator().get_personality();
-
- uset01.swap(uset02);
- VERIFY( uset01.size() == size02 );
- VERIFY( uset01.empty() );
- VERIFY( uset02.size() == size01 );
- VERIFY( uset02.empty() );
- VERIFY( uset01.get_allocator().get_personality() == personality02 );
- VERIFY( uset02.get_allocator().get_personality() == personality01 );
-
- my_uset uset03(10, hash<char>(), equal_to<char>(), alloc02);
- size01 = uset03.size();
- personality01 = uset03.get_allocator().get_personality();
- my_uset uset04(set02_ref.begin(), set02_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = uset04.size();
- personality02 = uset04.get_allocator().get_personality();
-
- uset03.swap(uset04);
- VERIFY( uset03.size() == size02 );
- VERIFY( my_set(uset03.begin(), uset03.end()) == set02_ref );
- VERIFY( uset04.size() == size01 );
- VERIFY( uset04.empty() );
- VERIFY( uset03.get_allocator().get_personality() == personality02 );
- VERIFY( uset04.get_allocator().get_personality() == personality01 );
-
- my_uset uset05(set01_ref.begin(), set01_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size01 = uset05.size();
- personality01 = uset05.get_allocator().get_personality();
- my_uset uset06(set02_ref.begin(), set02_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc02);
- size02 = uset06.size();
- personality02 = uset06.get_allocator().get_personality();
-
- uset05.swap(uset06);
- VERIFY( uset05.size() == size02 );
- VERIFY( my_set(uset05.begin(), uset05.end()) == set02_ref );
- VERIFY( uset06.size() == size01 );
- VERIFY( my_set(uset06.begin(), uset06.end()) == set01_ref );
- VERIFY( uset05.get_allocator().get_personality() == personality02 );
- VERIFY( uset06.get_allocator().get_personality() == personality01 );
-
- my_uset uset07(set01_ref.begin(), set01_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc02);
- size01 = uset07.size();
- personality01 = uset07.get_allocator().get_personality();
- my_uset uset08(set03_ref.begin(), set03_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = uset08.size();
- personality02 = uset08.get_allocator().get_personality();
-
- uset07.swap(uset08);
- VERIFY( uset07.size() == size02 );
- VERIFY( my_set(uset07.begin(), uset07.end()) == set03_ref );
- VERIFY( uset08.size() == size01 );
- VERIFY( my_set(uset08.begin(), uset08.end()) == set01_ref );
- VERIFY( uset07.get_allocator().get_personality() == personality02 );
- VERIFY( uset08.get_allocator().get_personality() == personality01 );
-
- my_uset uset09(set03_ref.begin(), set03_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size01 = uset09.size();
- personality01 = uset09.get_allocator().get_personality();
- my_uset uset10(set04_ref.begin(), set04_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc02);
- size02 = uset10.size();
- personality02 = uset10.get_allocator().get_personality();
-
- uset09.swap(uset10);
- VERIFY( uset09.size() == size02 );
- VERIFY( my_set(uset09.begin(), uset09.end()) == set04_ref );
- VERIFY( uset10.size() == size01 );
- VERIFY( my_set(uset10.begin(), uset10.end()) == set03_ref );
- VERIFY( uset09.get_allocator().get_personality() == personality02 );
- VERIFY( uset10.get_allocator().get_personality() == personality01 );
-
- my_uset uset11(set04_ref.begin(), set04_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc02);
- size01 = uset11.size();
- personality01 = uset11.get_allocator().get_personality();
- my_uset uset12(set01_ref.begin(), set01_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size02 = uset12.size();
- personality02 = uset12.get_allocator().get_personality();
-
- uset11.swap(uset12);
- VERIFY( uset11.size() == size02 );
- VERIFY( my_set(uset11.begin(), uset11.end()) == set01_ref );
- VERIFY( uset12.size() == size01 );
- VERIFY( my_set(uset12.begin(), uset12.end()) == set04_ref );
- VERIFY( uset11.get_allocator().get_personality() == personality02 );
- VERIFY( uset12.get_allocator().get_personality() == personality01 );
-
- my_uset uset13(set03_ref.begin(), set03_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc01);
- size01 = uset13.size();
- personality01 = uset13.get_allocator().get_personality();
- my_uset uset14(set03_ref.begin(), set03_ref.end(), 10, hash<char>(),
- equal_to<char>(), alloc02);
- size02 = uset14.size();
- personality02 = uset14.get_allocator().get_personality();
-
- uset13.swap(uset14);
- VERIFY( uset13.size() == size02 );
- VERIFY( my_set(uset13.begin(), uset13.end()) == set03_ref );
- VERIFY( uset14.size() == size01 );
- VERIFY( my_set(uset14.begin(), uset14.end()) == set03_ref );
- VERIFY( uset13.get_allocator().get_personality() == personality02 );
- VERIFY( uset14.get_allocator().get_personality() == personality01 );
-}
-
-int main()
-{
- test01();
- return 0;
-}
+++ /dev/null
-// 2005-10-02 Paolo Carlini <pcarlini@suse.de>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-//
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// { dg-do compile }
-
-#include <tr1/unordered_map>
-
-void test01()
-{
- typedef std::tr1::unordered_map<int, int> Map;
-
- Map m;
-
- Map::const_iterator cit = m.begin();
- (*cit).second = 0; // { dg-error "read-only" }
-
- Map::const_local_iterator clit = m.begin(0);
- (*clit).second = 0; // { dg-error "read-only" }
-
- Map::iterator it = cit; // { dg-error "conversion" }
-
- Map::local_iterator lit = clit; // { dg-error "conversion" }
-}
+++ /dev/null
-// 2005-10-02 Paolo Carlini <pcarlini@suse.de>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-//
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// { dg-do compile }
-
-#include <tr1/unordered_map>
-
-void test01()
-{
- typedef std::tr1::unordered_multimap<int, int> Mmap;
-
- Mmap mm;
-
- Mmap::const_iterator cit = mm.begin();
- (*cit).second = 0; // { dg-error "read-only" }
-
- Mmap::const_local_iterator clit = mm.begin(0);
- (*clit).second = 0; // { dg-error "read-only" }
-
- Mmap::iterator it = cit; // { dg-error "conversion" }
-
- Mmap::local_iterator lit = clit; // { dg-error "conversion" }
-}
+++ /dev/null
-// 2005-10-02 Paolo Carlini <pcarlini@suse.de>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-//
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// { dg-do compile }
-
-#include <tr1/unordered_set>
-
-void test01()
-{
- typedef std::tr1::unordered_multiset<int> Mset;
-
- Mset ms;
-
- Mset::const_iterator cit = ms.begin();
- *cit = 0; // { dg-error "read-only" }
-
- Mset::const_local_iterator clit = ms.begin(0);
- *clit = 0; // { dg-error "read-only" }
-}
+++ /dev/null
-// 2005-10-02 Paolo Carlini <pcarlini@suse.de>
-//
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-//
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// { dg-do compile }
-
-#include <tr1/unordered_set>
-
-void test01()
-{
- typedef std::tr1::unordered_set<int> Set;
-
- Set s;
-
- Set::const_iterator cit = s.begin();
- *cit = 0; // { dg-error "read-only" }
-
- Set::const_local_iterator clit = s.begin(0);
- *clit = 0; // { dg-error "read-only" }
-}
--- /dev/null
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3 Unordered associative containers
+
+#include <tr1/unordered_map>
+#include <testsuite_hooks.h>
+
+// libstdc++/24064
+void test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ using namespace std;
+ using namespace tr1;
+
+ unordered_map<int, char, hash<int>, equal_to<int>,
+ allocator<pair<const int, char> >, true> m;
+
+ for (int i = 0; i < 1000; ++i)
+ m[i] = '0' + i % 9;
+
+ for (int i = 0; i < 1000; ++i)
+ VERIFY( ++m.find(i)->second == '1' + i % 9 );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without Pred the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.4 Class template unordered_map
+
+#include <tr1/unordered_map>
+#include <testsuite_hooks.h>
+
+// libstdc++/29134
+void test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ std::tr1::unordered_map<int, int> um;
+
+ VERIFY( um.max_size() == um.get_allocator().max_size() );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// 2005-10-08 Paolo Carlini <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.4 Class template unordered_map
+
+#include <tr1/unordered_map>
+#include <string>
+#include <testsuite_hooks.h>
+
+// libstdc++/24061
+void test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ typedef std::tr1::unordered_map<std::string, int> Map;
+ typedef Map::iterator iterator;
+ typedef Map::const_iterator const_iterator;
+ typedef Map::value_type value_type;
+
+ Map m1;
+
+ m1.insert(value_type("all the love in the world", 1));
+ m1.insert(value_type("you know what you are?", 2));
+ m1.insert(value_type("the collector", 3));
+ m1.insert(value_type("the hand that feeds", 4));
+ m1.insert(value_type("love is not enough", 5));
+ m1.insert(value_type("every day is exactly the same", 6));
+ m1.insert(value_type("with teeth", 7));
+ m1.insert(value_type("only", 8));
+ m1.insert(value_type("getting smaller", 9));
+ m1.insert(value_type("sunspots", 10));
+ VERIFY( m1.size() == 10 );
+
+ iterator it1 = m1.begin();
+ ++it1;
+ iterator it2 = it1;
+ ++it2;
+ iterator it3 = m1.erase(it1);
+ VERIFY( m1.size() == 9 );
+ VERIFY( it3 == it2 );
+ VERIFY( *it3 == *it2 );
+
+ iterator it4 = m1.begin();
+ ++it4;
+ ++it4;
+ ++it4;
+ iterator it5 = it4;
+ ++it5;
+ ++it5;
+ iterator it6 = m1.erase(it4, it5);
+ VERIFY( m1.size() == 7 );
+ VERIFY( it6 == it5 );
+ VERIFY( *it6 == *it5 );
+
+ const_iterator it7 = m1.begin();
+ ++it7;
+ ++it7;
+ ++it7;
+ const_iterator it8 = it7;
+ ++it8;
+ const_iterator it9 = m1.erase(it7);
+ VERIFY( m1.size() == 6 );
+ VERIFY( it9 == it8 );
+ VERIFY( *it9 == *it8 );
+
+ const_iterator it10 = m1.begin();
+ ++it10;
+ const_iterator it11 = it10;
+ ++it11;
+ ++it11;
+ ++it11;
+ ++it11;
+ const_iterator it12 = m1.erase(it10, it11);
+ VERIFY( m1.size() == 2 );
+ VERIFY( it12 == it11 );
+ VERIFY( *it12 == *it11 );
+ VERIFY( ++it12 == m1.end() );
+
+ iterator it13 = m1.erase(m1.begin(), m1.end());
+ VERIFY( m1.size() == 0 );
+ VERIFY( it13 == it12 );
+ VERIFY( it13 == m1.begin() );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// { dg-do run }
+
+// 2005-2-18 Matt Austern <austern@apple.com>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.4 unordered_map
+// find, equal_range, count
+
+#include <string>
+#include <iterator>
+#include <algorithm>
+#include <utility>
+#include <tr1/unordered_map>
+#include "testsuite_hooks.h"
+
+bool test __attribute__((unused)) = true;
+
+void test01()
+{
+ typedef std::tr1::unordered_map<std::string, int> Map;
+ typedef std::pair<const std::string, int> Pair;
+
+ Map m;
+ VERIFY(m.empty());
+
+ std::pair<Map::iterator, bool> tmp = m.insert(Pair("grape", 3));
+ Map::iterator i = tmp.first;
+ VERIFY(tmp.second);
+
+ Map::iterator i2 = m.find("grape");
+ VERIFY(i2 != m.end());
+ VERIFY(i2 == i);
+ VERIFY(i2->first == "grape");
+ VERIFY(i2->second == 3);
+
+ Map::iterator i3 = m.find("lime");
+ VERIFY(i3 == m.end());
+
+ std::pair<Map::iterator, Map::iterator> p = m.equal_range("grape");
+ VERIFY(std::distance(p.first, p.second) == 1);
+ VERIFY(p.first == i2);
+
+ std::pair<Map::iterator, Map::iterator> p2 = m.equal_range("lime");
+ VERIFY(p2.first == p2.second);
+
+ VERIFY(m.count("grape") == 1);
+ VERIFY(m.count("lime") == 0);
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// 2005-10-08 Paolo Carlini <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.4 Class template unordered_map
+
+#include <tr1/unordered_map>
+#include <string>
+#include <testsuite_hooks.h>
+
+// libstdc++/24061
+void test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ typedef std::tr1::unordered_map<std::string, int> Map;
+ typedef Map::iterator iterator;
+ typedef Map::const_iterator const_iterator;
+ typedef Map::value_type value_type;
+
+ Map m1;
+
+ iterator it1 = m1.insert(m1.begin(),
+ value_type("all the love in the world", 1));
+ VERIFY( m1.size() == 1 );
+ VERIFY( *it1 == value_type("all the love in the world", 1) );
+
+ const_iterator cit1(it1);
+ const_iterator cit2 = m1.insert(cit1,
+ value_type("you know what you are?", 2));
+ VERIFY( m1.size() == 2 );
+ VERIFY( cit2 != cit1 );
+ VERIFY( *cit2 == value_type("you know what you are?", 2) );
+
+ iterator it2 = m1.insert(it1, value_type("all the love in the world", 3));
+ VERIFY( m1.size() == 2 );
+ VERIFY( it2 == it1 );
+ VERIFY( *it2 == value_type("all the love in the world", 1) );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// { dg-do run }
+
+// 2005-2-17 Matt Austern <austern@apple.com>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.4 unordered_map
+// Array version of insert
+
+#include <string>
+#include <iterator>
+#include <tr1/unordered_map>
+#include "testsuite_hooks.h"
+
+bool test __attribute__((unused)) = true;
+
+void test01()
+{
+ typedef std::tr1::unordered_map<std::string, int> Map;
+ typedef std::pair<const std::string, int> Pair;
+
+ Map m;
+ VERIFY(m.empty());
+
+ m["red"] = 17;
+ VERIFY(m.size() == 1);
+ VERIFY(m.begin()->first == "red");
+ VERIFY(m.begin()->second == 17);
+ VERIFY(m["red"] == 17);
+
+ m["blue"] = 9;
+ VERIFY(m.size() == 2);
+ VERIFY(m["blue"] == 9);
+
+ m["red"] = 5;
+ VERIFY(m.size() == 2);
+ VERIFY(m["red"] == 5);
+ VERIFY(m["blue"] == 9);
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// { dg-do run }
+
+// 2005-2-17 Matt Austern <austern@apple.com>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.4 unordered_map
+// range insert
+
+#include <string>
+#include <iterator>
+#include <algorithm>
+#include <tr1/unordered_map>
+#include "testsuite_hooks.h"
+
+bool test __attribute__((unused)) = true;
+
+void test01()
+{
+ typedef std::tr1::unordered_map<std::string, int> Map;
+ typedef std::pair<const std::string, int> Pair;
+
+ Map m;
+ VERIFY(m.empty());
+
+ Pair A[5] =
+ {
+ Pair("red", 5),
+ Pair("green", 9),
+ Pair("blue", 3),
+ Pair("cyan", 8),
+ Pair("magenta", 7)
+ };
+
+ m.insert(A+0, A+5);
+ VERIFY(m.size() == 5);
+ VERIFY(std::distance(m.begin(), m.end()) == 5);
+
+ VERIFY(m["red"] == 5);
+ VERIFY(m["green"] == 9);
+ VERIFY(m["blue"] == 3);
+ VERIFY(m["cyan"] == 8);
+ VERIFY(m["magenta"] == 7);
+}
+
+void test02()
+{
+ typedef std::tr1::unordered_map<std::string, int> Map;
+ typedef std::pair<const std::string, int> Pair;
+
+ Map m;
+ VERIFY(m.empty());
+
+ Pair A[9] =
+ {
+ Pair("red", 5),
+ Pair("green", 9),
+ Pair("red", 19),
+ Pair("blue", 3),
+ Pair("blue", 60),
+ Pair("cyan", 8),
+ Pair("magenta", 7),
+ Pair("blue", 99),
+ Pair("green", 33)
+ };
+
+ m.insert(A+0, A+9);
+ VERIFY(m.size() == 5);
+ VERIFY(std::distance(m.begin(), m.end()) == 5);
+
+ VERIFY(m["red"] == 5);
+ VERIFY(m["green"] == 9);
+ VERIFY(m["blue"] == 3);
+ VERIFY(m["cyan"] == 8);
+ VERIFY(m["magenta"] == 7);
+}
+
+int main()
+{
+ test01();
+ test02();
+ return 0;
+}
--- /dev/null
+// { dg-do run }
+
+// 2005-2-17 Matt Austern <austern@apple.com>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.4 unordered_map
+// Single-element insert
+
+#include <string>
+#include <iterator>
+#include <tr1/unordered_map>
+#include "testsuite_hooks.h"
+
+bool test __attribute__((unused)) = true;
+
+void test01()
+{
+ typedef std::tr1::unordered_map<std::string, int> Map;
+ typedef std::pair<const std::string, int> Pair;
+
+ Map m;
+ VERIFY(m.empty());
+
+ std::pair<Map::iterator, bool> p = m.insert(Pair("abcde", 3));
+ VERIFY(p.second);
+ VERIFY(m.size() == 1);
+ VERIFY(std::distance(m.begin(), m.end()) == 1);
+ VERIFY(p.first == m.begin());
+ VERIFY(p.first->first == "abcde");
+ VERIFY(p.first->second == 3);
+}
+
+void test02()
+{
+ typedef std::tr1::unordered_map<std::string, int> Map;
+ typedef std::pair<const std::string, int> Pair;
+
+ Map m;
+ VERIFY(m.empty());
+
+ std::pair<Map::iterator, bool> p1 = m.insert(Pair("abcde", 3));
+ std::pair<Map::iterator, bool> p2 = m.insert(Pair("abcde", 7));
+
+ VERIFY(p1.second);
+ VERIFY(!p2.second);
+ VERIFY(m.size() == 1);
+ VERIFY(p1.first == p2.first);
+ VERIFY(p1.first->first == "abcde");
+ VERIFY(p2.first->second == 3);
+}
+
+int main()
+{
+ test01();
+ test02();
+ return 0;
+}
--- /dev/null
+// { dg-do compile }
+
+// 2005-02-17 Matt Austern <austern@apple.com>
+//
+// Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.4 unordered_map
+
+#include <string>
+#include <tr1/unordered_map>
+
+using namespace std;
+using namespace std::tr1;
+
+template class unordered_map<string, float>;
+template class unordered_map<string, float,
+ hash<string>, equal_to<string>,
+ allocator<pair<const string, float> >, true>;
+template class unordered_map<string, float,
+ hash<string>, equal_to<string>,
+ allocator<char>, false>;
--- /dev/null
+// 2005-10-02 Paolo Carlini <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// { dg-do compile }
+
+#include <tr1/unordered_map>
+
+void test01()
+{
+ typedef std::tr1::unordered_map<int, int> Map;
+
+ Map m;
+
+ Map::const_iterator cit = m.begin();
+ (*cit).second = 0; // { dg-error "read-only" }
+
+ Map::const_local_iterator clit = m.begin(0);
+ (*clit).second = 0; // { dg-error "read-only" }
+
+ Map::iterator it = cit; // { dg-error "conversion" }
+
+ Map::local_iterator lit = clit; // { dg-error "conversion" }
+}
--- /dev/null
+// 2005-09-10 Paolo Carlini <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// { dg-do compile }
+
+// libstdc++/23781
+#include <tr1/unordered_map>
+
+std::tr1::unordered_map<int, int>::iterator it1 = NULL; // { dg-error "conversion" }
+std::tr1::unordered_map<int, int>::const_iterator cit1 = NULL; // { dg-error "conversion" }
--- /dev/null
+// 2005-12-20 Paolo Carlini <pcarlini@suse.de>
+
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 6.3.4.4 unordered_map::swap
+
+#include <tr1/unordered_map>
+#include <map>
+#include <testsuite_hooks.h>
+#include <testsuite_allocator.h>
+
+// uneq_allocator as a non-empty allocator.
+void
+test01()
+{
+ bool test __attribute__((unused)) = true;
+ using namespace std;
+ using namespace tr1;
+
+ typedef pair<const char, int> my_pair;
+ typedef __gnu_test::uneq_allocator<my_pair> my_alloc;
+ typedef unordered_map<char, int, hash<char>, equal_to<char>, my_alloc>
+ my_umap;
+
+ const char title01[] = "Rivers of sand";
+ const char title02[] = "Concret PH";
+ const char title03[] = "Sonatas and Interludes for Prepared Piano";
+ const char title04[] = "never as tired as when i'm waking up";
+
+ const size_t N1 = sizeof(title01);
+ const size_t N2 = sizeof(title02);
+ const size_t N3 = sizeof(title03);
+ const size_t N4 = sizeof(title04);
+
+ typedef map<char, int> my_map;
+ my_map map01_ref;
+ for (size_t i = 0; i < N1; ++i)
+ map01_ref.insert(my_pair(title01[i], i));
+ my_map map02_ref;
+ for (size_t i = 0; i < N2; ++i)
+ map02_ref.insert(my_pair(title02[i], i));
+ my_map map03_ref;
+ for (size_t i = 0; i < N3; ++i)
+ map03_ref.insert(my_pair(title03[i], i));
+ my_map map04_ref;
+ for (size_t i = 0; i < N4; ++i)
+ map04_ref.insert(my_pair(title04[i], i));
+
+ my_umap::size_type size01, size02;
+
+ my_alloc alloc01(1);
+
+ my_umap umap01(10, hash<char>(), equal_to<char>(), alloc01);
+ size01 = umap01.size();
+ my_umap umap02(10, hash<char>(), equal_to<char>(), alloc01);
+ size02 = umap02.size();
+
+ umap01.swap(umap02);
+ VERIFY( umap01.size() == size02 );
+ VERIFY( umap01.empty() );
+ VERIFY( umap02.size() == size01 );
+ VERIFY( umap02.empty() );
+
+ my_umap umap03(10, hash<char>(), equal_to<char>(), alloc01);
+ size01 = umap03.size();
+ my_umap umap04(map02_ref.begin(), map02_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = umap04.size();
+
+ umap03.swap(umap04);
+ VERIFY( umap03.size() == size02 );
+ VERIFY( my_map(umap03.begin(), umap03.end()) == map02_ref );
+ VERIFY( umap04.size() == size01 );
+ VERIFY( umap04.empty() );
+
+ my_umap umap05(map01_ref.begin(), map01_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size01 = umap05.size();
+ my_umap umap06(map02_ref.begin(), map02_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = umap06.size();
+
+ umap05.swap(umap06);
+ VERIFY( umap05.size() == size02 );
+ VERIFY( my_map(umap05.begin(), umap05.end()) == map02_ref );
+ VERIFY( umap06.size() == size01 );
+ VERIFY( my_map(umap06.begin(), umap06.end()) == map01_ref );
+
+ my_umap umap07(map01_ref.begin(), map01_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size01 = umap07.size();
+ my_umap umap08(map03_ref.begin(), map03_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = umap08.size();
+
+ umap07.swap(umap08);
+ VERIFY( umap07.size() == size02 );
+ VERIFY( my_map(umap07.begin(), umap07.end()) == map03_ref );
+ VERIFY( umap08.size() == size01 );
+ VERIFY( my_map(umap08.begin(), umap08.end()) == map01_ref );
+
+ my_umap umap09(map03_ref.begin(), map03_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size01 = umap09.size();
+ my_umap umap10(map04_ref.begin(), map04_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = umap10.size();
+
+ umap09.swap(umap10);
+ VERIFY( umap09.size() == size02 );
+ VERIFY( my_map(umap09.begin(), umap09.end()) == map04_ref );
+ VERIFY( umap10.size() == size01 );
+ VERIFY( my_map(umap10.begin(), umap10.end()) == map03_ref );
+
+ my_umap umap11(map04_ref.begin(), map04_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size01 = umap11.size();
+ my_umap umap12(map01_ref.begin(), map01_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = umap12.size();
+
+ umap11.swap(umap12);
+ VERIFY( umap11.size() == size02 );
+ VERIFY( my_map(umap11.begin(), umap11.end()) == map01_ref );
+ VERIFY( umap12.size() == size01 );
+ VERIFY( my_map(umap12.begin(), umap12.end()) == map04_ref );
+
+ my_umap umap13(map03_ref.begin(), map03_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size01 = umap13.size();
+ my_umap umap14(map03_ref.begin(), map03_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = umap14.size();
+
+ umap13.swap(umap14);
+ VERIFY( umap13.size() == size02 );
+ VERIFY( my_map(umap13.begin(), umap13.end()) == map03_ref );
+ VERIFY( umap14.size() == size01 );
+ VERIFY( my_map(umap14.begin(), umap14.end()) == map03_ref );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// 2005-12-20 Paolo Carlini <pcarlini@suse.de>
+
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 6.3.4.4 unordered_map::swap
+
+#include <tr1/unordered_map>
+#include <map>
+#include <testsuite_hooks.h>
+#include <testsuite_allocator.h>
+
+// uneq_allocator, two different personalities.
+void
+test01()
+{
+ bool test __attribute__((unused)) = true;
+ using namespace std;
+ using namespace tr1;
+
+ typedef pair<const char, int> my_pair;
+ typedef __gnu_test::uneq_allocator<my_pair> my_alloc;
+ typedef unordered_map<char, int, hash<char>, equal_to<char>, my_alloc>
+ my_umap;
+
+ const char title01[] = "Rivers of sand";
+ const char title02[] = "Concret PH";
+ const char title03[] = "Sonatas and Interludes for Prepared Piano";
+ const char title04[] = "never as tired as when i'm waking up";
+
+ const size_t N1 = sizeof(title01);
+ const size_t N2 = sizeof(title02);
+ const size_t N3 = sizeof(title03);
+ const size_t N4 = sizeof(title04);
+
+ typedef map<char, int> my_map;
+ my_map map01_ref;
+ for (size_t i = 0; i < N1; ++i)
+ map01_ref.insert(my_pair(title01[i], i));
+ my_map map02_ref;
+ for (size_t i = 0; i < N2; ++i)
+ map02_ref.insert(my_pair(title02[i], i));
+ my_map map03_ref;
+ for (size_t i = 0; i < N3; ++i)
+ map03_ref.insert(my_pair(title03[i], i));
+ my_map map04_ref;
+ for (size_t i = 0; i < N4; ++i)
+ map04_ref.insert(my_pair(title04[i], i));
+
+ my_umap::size_type size01, size02;
+
+ my_alloc alloc01(1), alloc02(2);
+ int personality01, personality02;
+
+ my_umap umap01(10, hash<char>(), equal_to<char>(), alloc01);
+ size01 = umap01.size();
+ personality01 = umap01.get_allocator().get_personality();
+ my_umap umap02(10, hash<char>(), equal_to<char>(), alloc02);
+ size02 = umap02.size();
+ personality02 = umap02.get_allocator().get_personality();
+
+ umap01.swap(umap02);
+ VERIFY( umap01.size() == size02 );
+ VERIFY( umap01.empty() );
+ VERIFY( umap02.size() == size01 );
+ VERIFY( umap02.empty() );
+ VERIFY( umap01.get_allocator().get_personality() == personality02 );
+ VERIFY( umap02.get_allocator().get_personality() == personality01 );
+
+ my_umap umap03(10, hash<char>(), equal_to<char>(), alloc02);
+ size01 = umap03.size();
+ personality01 = umap03.get_allocator().get_personality();
+ my_umap umap04(map02_ref.begin(), map02_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = umap04.size();
+ personality02 = umap04.get_allocator().get_personality();
+
+ umap03.swap(umap04);
+ VERIFY( umap03.size() == size02 );
+ VERIFY( my_map(umap03.begin(), umap03.end()) == map02_ref );
+ VERIFY( umap04.size() == size01 );
+ VERIFY( umap04.empty() );
+ VERIFY( umap03.get_allocator().get_personality() == personality02 );
+ VERIFY( umap04.get_allocator().get_personality() == personality01 );
+
+ my_umap umap05(map01_ref.begin(), map01_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size01 = umap05.size();
+ personality01 = umap05.get_allocator().get_personality();
+ my_umap umap06(map02_ref.begin(), map02_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc02);
+ size02 = umap06.size();
+ personality02 = umap06.get_allocator().get_personality();
+
+ umap05.swap(umap06);
+ VERIFY( umap05.size() == size02 );
+ VERIFY( my_map(umap05.begin(), umap05.end()) == map02_ref );
+ VERIFY( umap06.size() == size01 );
+ VERIFY( my_map(umap06.begin(), umap06.end()) == map01_ref );
+ VERIFY( umap05.get_allocator().get_personality() == personality02 );
+ VERIFY( umap06.get_allocator().get_personality() == personality01 );
+
+ my_umap umap07(map01_ref.begin(), map01_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc02);
+ size01 = umap07.size();
+ personality01 = umap07.get_allocator().get_personality();
+ my_umap umap08(map03_ref.begin(), map03_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = umap08.size();
+ personality02 = umap08.get_allocator().get_personality();
+
+ umap07.swap(umap08);
+ VERIFY( umap07.size() == size02 );
+ VERIFY( my_map(umap07.begin(), umap07.end()) == map03_ref );
+ VERIFY( umap08.size() == size01 );
+ VERIFY( my_map(umap08.begin(), umap08.end()) == map01_ref );
+ VERIFY( umap07.get_allocator().get_personality() == personality02 );
+ VERIFY( umap08.get_allocator().get_personality() == personality01 );
+
+ my_umap umap09(map03_ref.begin(), map03_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size01 = umap09.size();
+ personality01 = umap09.get_allocator().get_personality();
+ my_umap umap10(map04_ref.begin(), map04_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc02);
+ size02 = umap10.size();
+ personality02 = umap10.get_allocator().get_personality();
+
+ umap09.swap(umap10);
+ VERIFY( umap09.size() == size02 );
+ VERIFY( my_map(umap09.begin(), umap09.end()) == map04_ref );
+ VERIFY( umap10.size() == size01 );
+ VERIFY( my_map(umap10.begin(), umap10.end()) == map03_ref );
+ VERIFY( umap09.get_allocator().get_personality() == personality02 );
+ VERIFY( umap10.get_allocator().get_personality() == personality01 );
+
+ my_umap umap11(map04_ref.begin(), map04_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc02);
+ size01 = umap11.size();
+ personality01 = umap11.get_allocator().get_personality();
+ my_umap umap12(map01_ref.begin(), map01_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = umap12.size();
+ personality02 = umap12.get_allocator().get_personality();
+
+ umap11.swap(umap12);
+ VERIFY( umap11.size() == size02 );
+ VERIFY( my_map(umap11.begin(), umap11.end()) == map01_ref );
+ VERIFY( umap12.size() == size01 );
+ VERIFY( my_map(umap12.begin(), umap12.end()) == map04_ref );
+ VERIFY( umap11.get_allocator().get_personality() == personality02 );
+ VERIFY( umap12.get_allocator().get_personality() == personality01 );
+
+ my_umap umap13(map03_ref.begin(), map03_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size01 = umap13.size();
+ personality01 = umap13.get_allocator().get_personality();
+ my_umap umap14(map03_ref.begin(), map03_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc02);
+ size02 = umap14.size();
+ personality02 = umap14.get_allocator().get_personality();
+
+ umap13.swap(umap14);
+ VERIFY( umap13.size() == size02 );
+ VERIFY( my_map(umap13.begin(), umap13.end()) == map03_ref );
+ VERIFY( umap14.size() == size01 );
+ VERIFY( my_map(umap14.begin(), umap14.end()) == map03_ref );
+ VERIFY( umap13.get_allocator().get_personality() == personality02 );
+ VERIFY( umap14.get_allocator().get_personality() == personality01 );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without Pred the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.6 Class template unordered_multimap
+
+#include <tr1/unordered_map>
+#include <testsuite_hooks.h>
+
+// libstdc++/29134
+void test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ std::tr1::unordered_multimap<int, int> umm;
+
+ VERIFY( umm.max_size() == umm.get_allocator().max_size() );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// 2005-10-08 Paolo Carlini <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.6 Class template unordered_multimap
+
+#include <tr1/unordered_map>
+#include <string>
+#include <testsuite_hooks.h>
+
+// libstdc++/24061
+void test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ typedef std::tr1::unordered_multimap<std::string, int> Mmap;
+ typedef Mmap::iterator iterator;
+ typedef Mmap::const_iterator const_iterator;
+ typedef Mmap::value_type value_type;
+
+ Mmap mm1;
+
+ mm1.insert(value_type("all the love in the world", 1));
+ mm1.insert(value_type("you know what you are?", 2));
+ mm1.insert(value_type("the collector", 3));
+ mm1.insert(value_type("the hand that feeds", 4));
+ mm1.insert(value_type("love is not enough", 5));
+ mm1.insert(value_type("every day is exactly the same", 6));
+ mm1.insert(value_type("with teeth", 7));
+ mm1.insert(value_type("only", 8));
+ mm1.insert(value_type("getting smaller", 9));
+ mm1.insert(value_type("sunspots", 10));
+
+ mm1.insert(value_type("you know what you are?", 5));
+ mm1.insert(value_type("the collector", 6));
+ mm1.insert(value_type("the hand that feeds", 7));
+ VERIFY( mm1.size() == 13 );
+
+ iterator it1 = mm1.begin();
+ ++it1;
+ iterator it2 = it1;
+ ++it2;
+ iterator it3 = mm1.erase(it1);
+ VERIFY( mm1.size() == 12 );
+ VERIFY( it3 == it2 );
+ VERIFY( *it3 == *it2 );
+
+ iterator it4 = mm1.begin();
+ ++it4;
+ ++it4;
+ ++it4;
+ iterator it5 = it4;
+ ++it5;
+ ++it5;
+ iterator it6 = mm1.erase(it4, it5);
+ VERIFY( mm1.size() == 10 );
+ VERIFY( it6 == it5 );
+ VERIFY( *it6 == *it5 );
+
+ const_iterator it7 = mm1.begin();
+ ++it7;
+ ++it7;
+ ++it7;
+ const_iterator it8 = it7;
+ ++it8;
+ const_iterator it9 = mm1.erase(it7);
+ VERIFY( mm1.size() == 9 );
+ VERIFY( it9 == it8 );
+ VERIFY( *it9 == *it8 );
+
+ const_iterator it10 = mm1.begin();
+ ++it10;
+ const_iterator it11 = it10;
+ ++it11;
+ ++it11;
+ ++it11;
+ ++it11;
+ const_iterator it12 = mm1.erase(it10, it11);
+ VERIFY( mm1.size() == 5 );
+ VERIFY( it12 == it11 );
+ VERIFY( *it12 == *it11 );
+
+ iterator it13 = mm1.erase(mm1.begin(), mm1.end());
+ VERIFY( mm1.size() == 0 );
+ VERIFY( it13 == mm1.end() );
+ VERIFY( it13 == mm1.begin() );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// { dg-do run }
+
+// 2005-2-18 Matt Austern <austern@apple.com>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.6 unordered_multimap
+// find, equal_range, count
+
+#include <string>
+#include <iterator>
+#include <algorithm>
+#include <utility>
+#include <tr1/unordered_map>
+#include "testsuite_hooks.h"
+
+bool test __attribute__((unused)) = true;
+
+void test01()
+{
+ typedef std::tr1::unordered_multimap<std::string, int> Map;
+ typedef std::pair<const std::string, int> Pair;
+
+ Map m;
+ VERIFY(m.empty());
+
+ m.insert(Pair("grape", 3));
+ m.insert(Pair("durian", 8));
+ m.insert(Pair("grape", 7));
+
+ Map::iterator i1 = m.find("grape");
+ Map::iterator i2 = m.find("durian");
+ Map::iterator i3 = m.find("kiwi");
+
+ VERIFY(i1 != m.end());
+ VERIFY(i1->first == "grape");
+ VERIFY(i1->second == 3 || i2->second == 7);
+ VERIFY(i2 != m.end());
+ VERIFY(i2->first == "durian");
+ VERIFY(i2->second == 8);
+ VERIFY(i3 == m.end());
+
+ std::pair<Map::iterator, Map::iterator> p1 = m.equal_range("grape");
+ VERIFY(std::distance(p1.first, p1.second) == 2);
+ Map::iterator tmp = p1.first;
+ ++tmp;
+ VERIFY(p1.first->first == "grape");
+ VERIFY(tmp->first == "grape");
+ VERIFY((p1.first->second == 3 && tmp->second == 7) ||
+ (p1.first->second == 7 && tmp->second == 3));
+
+ std::pair<Map::iterator, Map::iterator> p2 = m.equal_range("durian");
+ VERIFY(std::distance(p2.first, p2.second) == 1);
+ VERIFY(p2.first->first == "durian");
+ VERIFY(p2.first->second == 8);
+
+ std::pair<Map::iterator, Map::iterator> p3 = m.equal_range("kiwi");
+ VERIFY(p3.first == p3.second);
+
+ VERIFY(m.count("grape") == 2);
+ VERIFY(m.count("durian") == 1);
+ VERIFY(m.count("kiwi") == 0);
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// 2005-10-08 Paolo Carlini <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.6 Class template unordered_multimap
+
+#include <tr1/unordered_map>
+#include <string>
+#include <testsuite_hooks.h>
+
+// libstdc++/24061
+void test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ typedef std::tr1::unordered_multimap<std::string, int> Mmap;
+ typedef Mmap::iterator iterator;
+ typedef Mmap::const_iterator const_iterator;
+ typedef Mmap::value_type value_type;
+
+ Mmap mm1;
+
+ iterator it1 = mm1.insert(mm1.begin(),
+ value_type("all the love in the world", 1));
+ VERIFY( mm1.size() == 1 );
+ VERIFY( *it1 == value_type("all the love in the world", 1) );
+
+ const_iterator cit1(it1);
+ const_iterator cit2 = mm1.insert(cit1,
+ value_type("you know what you are?", 2));
+ VERIFY( mm1.size() == 2 );
+ VERIFY( cit2 != cit1 );
+ VERIFY( *cit2 == value_type("you know what you are?", 2) );
+
+ iterator it2 = mm1.insert(it1, value_type("all the love in the world", 3));
+ VERIFY( mm1.size() == 3 );
+ VERIFY( it2 != it1 );
+ VERIFY( *it2 == value_type("all the love in the world", 3) );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// { dg-do run }
+
+// 2005-2-17 Matt Austern <austern@apple.com>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.6 unordered_multimap
+// range insert
+
+#include <string>
+#include <iterator>
+#include <algorithm>
+#include <tr1/unordered_map>
+#include "testsuite_hooks.h"
+
+bool test __attribute__((unused)) = true;
+
+void test01()
+{
+ typedef std::tr1::unordered_multimap<std::string, int> Map;
+ typedef std::pair<const std::string, int> Pair;
+
+ Map m;
+ VERIFY(m.empty());
+
+ Pair A[5] =
+ {
+ Pair("red", 5),
+ Pair("green", 9),
+ Pair("blue", 3),
+ Pair("cyan", 8),
+ Pair("magenta", 7)
+ };
+
+ m.insert(A+0, A+5);
+ VERIFY(m.size() == 5);
+ VERIFY(std::distance(m.begin(), m.end()) == 5);
+
+ for (int i = 0; i < 5; ++i)
+ VERIFY(std::find(m.begin(), m.end(), A[i]) != m.end());
+}
+
+void test02()
+{
+ typedef std::tr1::unordered_multimap<std::string, int> Map;
+ typedef std::pair<const std::string, int> Pair;
+
+ Map m;
+ VERIFY(m.empty());
+
+ Pair A[9] =
+ {
+ Pair("red", 5),
+ Pair("green", 9),
+ Pair("red", 19),
+ Pair("blue", 3),
+ Pair("blue", 60),
+ Pair("cyan", 8),
+ Pair("magenta", 7),
+ Pair("blue", 99),
+ Pair("green", 33)
+ };
+
+ m.insert(A+0, A+9);
+ VERIFY(m.size() == 9);
+ VERIFY(std::distance(m.begin(), m.end()) == 9);
+
+ for (int i = 0; i < 9; ++i)
+ VERIFY(std::find(m.begin(), m.end(), A[i]) != m.end());
+}
+
+int main()
+{
+ test01();
+ test02();
+ return 0;
+}
--- /dev/null
+// { dg-do run }
+
+// 2005-2-17 Matt Austern <austern@apple.com>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.6 unordered_multimap
+// Single-element insert
+
+#include <string>
+#include <iterator>
+#include <tr1/unordered_map>
+#include "testsuite_hooks.h"
+
+bool test __attribute__((unused)) = true;
+
+void test01()
+{
+ typedef std::tr1::unordered_multimap<std::string, int> Map;
+ typedef std::pair<const std::string, int> Pair;
+
+ Map m;
+ VERIFY(m.empty());
+
+ Map::iterator i = m.insert(Pair("abcde", 3));
+ VERIFY(m.size() == 1);
+ VERIFY(std::distance(m.begin(), m.end()) == 1);
+ VERIFY(i == m.begin());
+ VERIFY(i->first == "abcde");
+ VERIFY(i->second == 3);
+}
+
+void test02()
+{
+ typedef std::tr1::unordered_multimap<std::string, int> Map;
+ typedef std::pair<const std::string, int> Pair;
+
+ Map m;
+ VERIFY(m.empty());
+
+ m.insert(Pair("abcde", 3));
+ m.insert(Pair("abcde", 7));
+
+ VERIFY(m.size() == 2);
+ VERIFY(std::distance(m.begin(), m.end()) == 2);
+
+ Map::iterator i1 = m.begin();
+ Map::iterator i2 = i1;
+ ++i2;
+
+ VERIFY(i1->first == "abcde");
+ VERIFY(i2->first == "abcde");
+ VERIFY((i1->second == 3 && i2->second == 7) ||
+ (i1->second == 7 && i2->second == 3));
+}
+
+int main()
+{
+ test01();
+ test02();
+ return 0;
+}
--- /dev/null
+// { dg-do compile }
+
+// 2005-02-17 Matt Austern <austern@apple.com>
+//
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.6 unordered_multimap
+
+#include <string>
+#include <tr1/unordered_map>
+
+using namespace std;
+using namespace std::tr1;
+
+template class unordered_multimap<string, float>;
+template class unordered_multimap<string, float,
+ hash<string>, equal_to<string>,
+ allocator<pair<const string, float> >, true>;
+template class unordered_multimap<string, float,
+ hash<string>, equal_to<string>,
+ allocator<char>, false>;
--- /dev/null
+// 2005-10-02 Paolo Carlini <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// { dg-do compile }
+
+#include <tr1/unordered_map>
+
+void test01()
+{
+ typedef std::tr1::unordered_multimap<int, int> Mmap;
+
+ Mmap mm;
+
+ Mmap::const_iterator cit = mm.begin();
+ (*cit).second = 0; // { dg-error "read-only" }
+
+ Mmap::const_local_iterator clit = mm.begin(0);
+ (*clit).second = 0; // { dg-error "read-only" }
+
+ Mmap::iterator it = cit; // { dg-error "conversion" }
+
+ Mmap::local_iterator lit = clit; // { dg-error "conversion" }
+}
--- /dev/null
+// 2005-09-10 Paolo Carlini <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// { dg-do compile }
+
+// libstdc++/23781
+#include <tr1/unordered_map>
+
+std::tr1::unordered_multimap<int, int>::iterator it2 = NULL; // { dg-error "conversion" }
+std::tr1::unordered_multimap<int, int>::const_iterator cit2 = NULL; // { dg-error "conversion" }
--- /dev/null
+// 2005-12-20 Paolo Carlini <pcarlini@suse.de>
+
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 6.3.4.6 unordered_multimap::swap
+
+#include <tr1/unordered_map>
+#include <map>
+#include <testsuite_hooks.h>
+#include <testsuite_allocator.h>
+
+// uneq_allocator as a non-empty allocator.
+void
+test01()
+{
+ bool test __attribute__((unused)) = true;
+ using namespace std;
+ using namespace tr1;
+
+ typedef pair<const char, int> my_pair;
+ typedef __gnu_test::uneq_allocator<my_pair> my_alloc;
+ typedef unordered_multimap<char, int, hash<char>, equal_to<char>, my_alloc>
+ my_ummap;
+
+ const char title01[] = "Rivers of sand";
+ const char title02[] = "Concret PH";
+ const char title03[] = "Sonatas and Interludes for Prepared Piano";
+ const char title04[] = "never as tired as when i'm waking up";
+
+ const size_t N1 = sizeof(title01);
+ const size_t N2 = sizeof(title02);
+ const size_t N3 = sizeof(title03);
+ const size_t N4 = sizeof(title04);
+
+ typedef multimap<char, int> my_mmap;
+ my_mmap mmap01_ref;
+ for (size_t i = 0; i < N1; ++i)
+ mmap01_ref.insert(my_pair(title01[i], i));
+ my_mmap mmap02_ref;
+ for (size_t i = 0; i < N2; ++i)
+ mmap02_ref.insert(my_pair(title02[i], i));
+ my_mmap mmap03_ref;
+ for (size_t i = 0; i < N3; ++i)
+ mmap03_ref.insert(my_pair(title03[i], i));
+ my_mmap mmap04_ref;
+ for (size_t i = 0; i < N4; ++i)
+ mmap04_ref.insert(my_pair(title04[i], i));
+
+ typedef map<char, int> my_map;
+
+ my_ummap::size_type size01, size02;
+
+ my_alloc alloc01(1);
+
+ my_ummap ummap01(10, hash<char>(), equal_to<char>(), alloc01);
+ size01 = ummap01.size();
+ my_ummap ummap02(10, hash<char>(), equal_to<char>(), alloc01);
+ size02 = ummap02.size();
+
+ ummap01.swap(ummap02);
+ VERIFY( ummap01.size() == size02 );
+ VERIFY( ummap01.empty() );
+ VERIFY( ummap02.size() == size01 );
+ VERIFY( ummap02.empty() );
+
+ my_ummap ummap03(10, hash<char>(), equal_to<char>(), alloc01);
+ size01 = ummap03.size();
+ my_ummap ummap04(mmap02_ref.begin(), mmap02_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = ummap04.size();
+
+ ummap03.swap(ummap04);
+ VERIFY( ummap03.size() == size02 );
+ VERIFY( my_map(ummap03.begin(), ummap03.end())
+ == my_map(mmap02_ref.begin(), mmap02_ref.end()) );
+ VERIFY( ummap04.size() == size01 );
+ VERIFY( ummap04.empty() );
+
+ my_ummap ummap05(mmap01_ref.begin(), mmap01_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size01 = ummap05.size();
+ my_ummap ummap06(mmap02_ref.begin(), mmap02_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = ummap06.size();
+
+ ummap05.swap(ummap06);
+ VERIFY( ummap05.size() == size02 );
+ VERIFY( my_map(ummap05.begin(), ummap05.end())
+ == my_map(mmap02_ref.begin(), mmap02_ref.end()) );
+ VERIFY( ummap06.size() == size01 );
+ VERIFY( my_map(ummap06.begin(), ummap06.end())
+ == my_map(mmap01_ref.begin(), mmap01_ref.end()) );
+
+ my_ummap ummap07(mmap01_ref.begin(), mmap01_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size01 = ummap07.size();
+ my_ummap ummap08(mmap03_ref.begin(), mmap03_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = ummap08.size();
+
+ ummap07.swap(ummap08);
+ VERIFY( ummap07.size() == size02 );
+ VERIFY( my_map(ummap07.begin(), ummap07.end())
+ == my_map(mmap03_ref.begin(), mmap03_ref.end()) );
+ VERIFY( ummap08.size() == size01 );
+ VERIFY( my_map(ummap08.begin(), ummap08.end())
+ == my_map(mmap01_ref.begin(), mmap01_ref.end()) );
+
+ my_ummap ummap09(mmap03_ref.begin(), mmap03_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size01 = ummap09.size();
+ my_ummap ummap10(mmap04_ref.begin(), mmap04_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = ummap10.size();
+
+ ummap09.swap(ummap10);
+ VERIFY( ummap09.size() == size02 );
+ VERIFY( my_map(ummap09.begin(), ummap09.end())
+ == my_map(mmap04_ref.begin(), mmap04_ref.end()) );
+ VERIFY( ummap10.size() == size01 );
+ VERIFY( my_map(ummap10.begin(), ummap10.end())
+ == my_map(mmap03_ref.begin(), mmap03_ref.end()) );
+
+ my_ummap ummap11(mmap04_ref.begin(), mmap04_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size01 = ummap11.size();
+ my_ummap ummap12(mmap01_ref.begin(), mmap01_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = ummap12.size();
+
+ ummap11.swap(ummap12);
+ VERIFY( ummap11.size() == size02 );
+ VERIFY( my_map(ummap11.begin(), ummap11.end())
+ == my_map(mmap01_ref.begin(), mmap01_ref.end()) );
+ VERIFY( ummap12.size() == size01 );
+ VERIFY( my_map(ummap12.begin(), ummap12.end())
+ == my_map(mmap04_ref.begin(), mmap04_ref.end()) );
+
+ my_ummap ummap13(mmap03_ref.begin(), mmap03_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size01 = ummap13.size();
+ my_ummap ummap14(mmap03_ref.begin(), mmap03_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = ummap14.size();
+
+ ummap13.swap(ummap14);
+ VERIFY( ummap13.size() == size02 );
+ VERIFY( my_map(ummap13.begin(), ummap13.end())
+ == my_map(mmap03_ref.begin(), mmap03_ref.end()) );
+ VERIFY( ummap14.size() == size01 );
+ VERIFY( my_map(ummap14.begin(), ummap14.end())
+ == my_map(mmap03_ref.begin(), mmap03_ref.end()) );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// 2005-12-20 Paolo Carlini <pcarlini@suse.de>
+
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 6.3.4.6 unordered_multimap::swap
+
+#include <tr1/unordered_map>
+#include <map>
+#include <testsuite_hooks.h>
+#include <testsuite_allocator.h>
+
+// uneq_allocator, two different personalities.
+void
+test01()
+{
+ bool test __attribute__((unused)) = true;
+ using namespace std;
+ using namespace tr1;
+
+ typedef pair<const char, int> my_pair;
+ typedef __gnu_test::uneq_allocator<my_pair> my_alloc;
+ typedef unordered_multimap<char, int, hash<char>, equal_to<char>, my_alloc>
+ my_ummap;
+
+ const char title01[] = "Rivers of sand";
+ const char title02[] = "Concret PH";
+ const char title03[] = "Sonatas and Interludes for Prepared Piano";
+ const char title04[] = "never as tired as when i'm waking up";
+
+ const size_t N1 = sizeof(title01);
+ const size_t N2 = sizeof(title02);
+ const size_t N3 = sizeof(title03);
+ const size_t N4 = sizeof(title04);
+
+ typedef multimap<char, int> my_mmap;
+ my_mmap mmap01_ref;
+ for (size_t i = 0; i < N1; ++i)
+ mmap01_ref.insert(my_pair(title01[i], i));
+ my_mmap mmap02_ref;
+ for (size_t i = 0; i < N2; ++i)
+ mmap02_ref.insert(my_pair(title02[i], i));
+ my_mmap mmap03_ref;
+ for (size_t i = 0; i < N3; ++i)
+ mmap03_ref.insert(my_pair(title03[i], i));
+ my_mmap mmap04_ref;
+ for (size_t i = 0; i < N4; ++i)
+ mmap04_ref.insert(my_pair(title04[i], i));
+
+ typedef map<char, int> my_map;
+
+ my_ummap::size_type size01, size02;
+
+ my_alloc alloc01(1), alloc02(2);
+ int personality01, personality02;
+
+ my_ummap ummap01(10, hash<char>(), equal_to<char>(), alloc01);
+ size01 = ummap01.size();
+ personality01 = ummap01.get_allocator().get_personality();
+ my_ummap ummap02(10, hash<char>(), equal_to<char>(), alloc02);
+ size02 = ummap02.size();
+ personality02 = ummap02.get_allocator().get_personality();
+
+ ummap01.swap(ummap02);
+ VERIFY( ummap01.size() == size02 );
+ VERIFY( ummap01.empty() );
+ VERIFY( ummap02.size() == size01 );
+ VERIFY( ummap02.empty() );
+ VERIFY( ummap01.get_allocator().get_personality() == personality02 );
+ VERIFY( ummap02.get_allocator().get_personality() == personality01 );
+
+ my_ummap ummap03(10, hash<char>(), equal_to<char>(), alloc02);
+ size01 = ummap03.size();
+ personality01 = ummap03.get_allocator().get_personality();
+ my_ummap ummap04(mmap02_ref.begin(), mmap02_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = ummap04.size();
+ personality02 = ummap04.get_allocator().get_personality();
+
+ ummap03.swap(ummap04);
+ VERIFY( ummap03.size() == size02 );
+ VERIFY( my_map(ummap03.begin(), ummap03.end())
+ == my_map(mmap02_ref.begin(), mmap02_ref.end()) );
+ VERIFY( ummap04.size() == size01 );
+ VERIFY( ummap04.empty() );
+ VERIFY( ummap03.get_allocator().get_personality() == personality02 );
+ VERIFY( ummap04.get_allocator().get_personality() == personality01 );
+
+ my_ummap ummap05(mmap01_ref.begin(), mmap01_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size01 = ummap05.size();
+ personality01 = ummap05.get_allocator().get_personality();
+ my_ummap ummap06(mmap02_ref.begin(), mmap02_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc02);
+ size02 = ummap06.size();
+ personality02 = ummap06.get_allocator().get_personality();
+
+ ummap05.swap(ummap06);
+ VERIFY( ummap05.size() == size02 );
+ VERIFY( my_map(ummap05.begin(), ummap05.end())
+ == my_map(mmap02_ref.begin(), mmap02_ref.end()) );
+ VERIFY( ummap06.size() == size01 );
+ VERIFY( my_map(ummap06.begin(), ummap06.end())
+ == my_map(mmap01_ref.begin(), mmap01_ref.end()) );
+ VERIFY( ummap05.get_allocator().get_personality() == personality02 );
+ VERIFY( ummap06.get_allocator().get_personality() == personality01 );
+
+ my_ummap ummap07(mmap01_ref.begin(), mmap01_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc02);
+ size01 = ummap07.size();
+ personality01 = ummap07.get_allocator().get_personality();
+ my_ummap ummap08(mmap03_ref.begin(), mmap03_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = ummap08.size();
+ personality02 = ummap08.get_allocator().get_personality();
+
+ ummap07.swap(ummap08);
+ VERIFY( ummap07.size() == size02 );
+ VERIFY( my_map(ummap07.begin(), ummap07.end())
+ == my_map(mmap03_ref.begin(), mmap03_ref.end()) );
+ VERIFY( ummap08.size() == size01 );
+ VERIFY( my_map(ummap08.begin(), ummap08.end())
+ == my_map(mmap01_ref.begin(), mmap01_ref.end()) );
+ VERIFY( ummap07.get_allocator().get_personality() == personality02 );
+ VERIFY( ummap08.get_allocator().get_personality() == personality01 );
+
+ my_ummap ummap09(mmap03_ref.begin(), mmap03_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size01 = ummap09.size();
+ personality01 = ummap09.get_allocator().get_personality();
+ my_ummap ummap10(mmap04_ref.begin(), mmap04_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc02);
+ size02 = ummap10.size();
+ personality02 = ummap10.get_allocator().get_personality();
+
+ ummap09.swap(ummap10);
+ VERIFY( ummap09.size() == size02 );
+ VERIFY( my_map(ummap09.begin(), ummap09.end())
+ == my_map(mmap04_ref.begin(), mmap04_ref.end()) );
+ VERIFY( ummap10.size() == size01 );
+ VERIFY( my_map(ummap10.begin(), ummap10.end())
+ == my_map(mmap03_ref.begin(), mmap03_ref.end()) );
+ VERIFY( ummap09.get_allocator().get_personality() == personality02 );
+ VERIFY( ummap10.get_allocator().get_personality() == personality01 );
+
+ my_ummap ummap11(mmap04_ref.begin(), mmap04_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc02);
+ size01 = ummap11.size();
+ personality01 = ummap11.get_allocator().get_personality();
+ my_ummap ummap12(mmap01_ref.begin(), mmap01_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = ummap12.size();
+ personality02 = ummap12.get_allocator().get_personality();
+
+ ummap11.swap(ummap12);
+ VERIFY( ummap11.size() == size02 );
+ VERIFY( my_map(ummap11.begin(), ummap11.end())
+ == my_map(mmap01_ref.begin(), mmap01_ref.end()) );
+ VERIFY( ummap12.size() == size01 );
+ VERIFY( my_map(ummap12.begin(), ummap12.end())
+ == my_map(mmap04_ref.begin(), mmap04_ref.end()) );
+ VERIFY( ummap11.get_allocator().get_personality() == personality02 );
+ VERIFY( ummap12.get_allocator().get_personality() == personality01 );
+
+ my_ummap ummap13(mmap03_ref.begin(), mmap03_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size01 = ummap13.size();
+ personality01 = ummap13.get_allocator().get_personality();
+ my_ummap ummap14(mmap03_ref.begin(), mmap03_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc02);
+ size02 = ummap14.size();
+ personality02 = ummap14.get_allocator().get_personality();
+
+ ummap13.swap(ummap14);
+ VERIFY( ummap13.size() == size02 );
+ VERIFY( my_map(ummap13.begin(), ummap13.end())
+ == my_map(mmap03_ref.begin(), mmap03_ref.end()) );
+ VERIFY( ummap14.size() == size01 );
+ VERIFY( my_map(ummap14.begin(), ummap14.end())
+ == my_map(mmap03_ref.begin(), mmap03_ref.end()) );
+ VERIFY( ummap13.get_allocator().get_personality() == personality02 );
+ VERIFY( ummap14.get_allocator().get_personality() == personality01 );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3 Unordered associative containers
+
+#include <tr1/unordered_set>
+#include <string>
+#include <testsuite_hooks.h>
+
+// libstdc++/24054
+void test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ typedef std::tr1::unordered_multiset<std::string> Set;
+
+ Set s;
+
+ s.insert("etaoin");
+ s.insert("etaoin");
+ s.insert("etaoin");
+ s.insert("shrdlu");
+
+ VERIFY( s.erase("") == 0 );
+ VERIFY( s.size() == 4 );
+
+ VERIFY( s.erase("etaoin") == 3 );
+ VERIFY( s.size() == 1 );
+
+ VERIFY( s.erase("shrdlu") == 1 );
+ VERIFY( s.size() == 0 );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without Pred the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.5 Class template unordered_multiset
+
+#include <tr1/unordered_set>
+#include <testsuite_hooks.h>
+
+// libstdc++/29134
+void test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ std::tr1::unordered_multiset<int> ums;
+
+ VERIFY( ums.max_size() == ums.get_allocator().max_size() );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// 2005-10-08 Paolo Carlini <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.5 Class template unordered_multiset
+
+#include <tr1/unordered_set>
+#include <string>
+#include <testsuite_hooks.h>
+
+// libstdc++/24061
+void test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ typedef std::tr1::unordered_multiset<std::string> Mset;
+ typedef Mset::iterator iterator;
+ typedef Mset::const_iterator const_iterator;
+
+ Mset ms1;
+
+ ms1.insert("all the love in the world");
+ ms1.insert("you know what you are?");
+ ms1.insert("the collector");
+ ms1.insert("the hand that feeds");
+ ms1.insert("love is not enough");
+ ms1.insert("every day is exactly the same");
+ ms1.insert("with teeth");
+ ms1.insert("only");
+ ms1.insert("getting smaller");
+ ms1.insert("sunspots");
+
+ ms1.insert("the hand that feeds");
+ ms1.insert("love is not enough");
+ ms1.insert("every day is exactly the same");
+ VERIFY( ms1.size() == 13 );
+
+ iterator it1 = ms1.begin();
+ ++it1;
+ iterator it2 = it1;
+ ++it2;
+ iterator it3 = ms1.erase(it1);
+ VERIFY( ms1.size() == 12 );
+ VERIFY( it3 == it2 );
+ VERIFY( *it3 == *it2 );
+
+ iterator it4 = ms1.begin();
+ ++it4;
+ ++it4;
+ ++it4;
+ iterator it5 = it4;
+ ++it5;
+ ++it5;
+ iterator it6 = ms1.erase(it4, it5);
+ VERIFY( ms1.size() == 10 );
+ VERIFY( it6 == it5 );
+ VERIFY( *it6 == *it5 );
+
+ const_iterator it7 = ms1.begin();
+ ++it7;
+ ++it7;
+ ++it7;
+ const_iterator it8 = it7;
+ ++it8;
+ const_iterator it9 = ms1.erase(it7);
+ VERIFY( ms1.size() == 9 );
+ VERIFY( it9 == it8 );
+ VERIFY( *it9 == *it8 );
+
+ const_iterator it10 = ms1.begin();
+ ++it10;
+ const_iterator it11 = it10;
+ ++it11;
+ ++it11;
+ ++it11;
+ ++it11;
+ const_iterator it12 = ms1.erase(it10, it11);
+ VERIFY( ms1.size() == 5 );
+ VERIFY( it12 == it11 );
+ VERIFY( *it12 == *it11 );
+
+ iterator it13 = ms1.erase(ms1.begin(), ms1.end());
+ VERIFY( ms1.size() == 0 );
+ VERIFY( it13 == ms1.end() );
+ VERIFY( it13 == ms1.begin() );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// { dg-do run }
+
+// 2005-2-18 Matt Austern <austern@apple.com>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.5 unordered_set
+// find, equal_range, count
+
+#include <string>
+#include <iterator>
+#include <algorithm>
+#include <tr1/unordered_set>
+#include "testsuite_hooks.h"
+
+bool test __attribute__((unused)) = true;
+
+void test01()
+{
+ typedef std::tr1::unordered_multiset<std::string> Set;
+ Set s;
+ VERIFY(s.empty());
+
+ s.insert("grape");
+ s.insert("banana");
+ s.insert("grape");
+
+ Set::iterator i2 = s.find("banana");
+ VERIFY(i2 != s.end());
+ VERIFY(*i2 == "banana");
+
+ std::pair<Set::iterator, Set::iterator> p = s.equal_range("grape");
+ VERIFY(std::distance(p.first, p.second) == 2);
+ Set::iterator i3 = p.first;
+ ++i3;
+ VERIFY(*p.first == "grape");
+ VERIFY(*i3 == "grape");
+
+ Set::iterator i4 = s.find("lime");
+ VERIFY(i4 == s.end());
+
+ VERIFY(s.count("grape") == 2);
+ VERIFY(s.count("banana") == 1);
+ VERIFY(s.count("lime") == 0);
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// 2005-10-08 Paolo Carlini <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.5 Class template unordered_multiset
+
+#include <tr1/unordered_set>
+#include <string>
+#include <testsuite_hooks.h>
+
+// libstdc++/24061
+void test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ typedef std::tr1::unordered_multiset<std::string> Mset;
+ typedef Mset::iterator iterator;
+ typedef Mset::const_iterator const_iterator;
+
+ Mset ms1;
+
+ iterator it1 = ms1.insert(ms1.begin(), "all the love in the world");
+ VERIFY( ms1.size() == 1 );
+ VERIFY( *it1 == "all the love in the world" );
+
+ const_iterator cit1(it1);
+ const_iterator cit2 = ms1.insert(cit1, "you know what you are?");
+ VERIFY( ms1.size() == 2 );
+ VERIFY( cit2 != cit1 );
+ VERIFY( *cit2 == "you know what you are?" );
+
+ iterator it2 = ms1.insert(it1, "all the love in the world");
+ VERIFY( ms1.size() == 3 );
+ VERIFY( it2 != it1 );
+ VERIFY( *it2 == "all the love in the world" );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// { dg-do run }
+
+// 2005-2-17 Matt Austern <austern@apple.com>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.5 unordered_multiset
+// range insert
+
+#include <string>
+#include <iterator>
+#include <algorithm>
+#include <tr1/unordered_set>
+#include <testsuite_hooks.h>
+
+bool test __attribute__((unused)) = true;
+
+void test01()
+{
+ typedef std::tr1::unordered_multiset<std::string> Set;
+ Set s;
+ VERIFY(s.empty());
+
+ const int N = 10;
+ const std::string A[N] = { "red", "green", "blue", "violet", "cyan",
+ "magenta", "yellow", "orange", "pink", "gray" };
+
+ s.insert(A+0, A+N);
+ VERIFY(s.size() == static_cast<unsigned int>(N));
+ VERIFY(std::distance(s.begin(), s.end()) == N);
+
+ for (int i = 0; i < N; ++i) {
+ std::string str = A[i];
+ Set::iterator it = std::find(s.begin(), s.end(), str);
+ VERIFY(it != s.end());
+ }
+}
+
+void test02()
+{
+ typedef std::tr1::unordered_multiset<int> Set;
+ Set s;
+ VERIFY(s.empty());
+
+ const int N = 8;
+ const int A[N] = { 3, 7, 4, 8, 2, 4, 6, 7 };
+
+ s.insert(A+0, A+N);
+ VERIFY(s.size() == static_cast<unsigned int>(N));
+ VERIFY(std::distance(s.begin(), s.end()) == N);
+
+ VERIFY(std::count(s.begin(), s.end(), 2) == 1);
+ VERIFY(std::count(s.begin(), s.end(), 3) == 1);
+ VERIFY(std::count(s.begin(), s.end(), 4) == 2);
+ VERIFY(std::count(s.begin(), s.end(), 6) == 1);
+ VERIFY(std::count(s.begin(), s.end(), 7) == 2);
+ VERIFY(std::count(s.begin(), s.end(), 8) == 1);
+}
+
+int main()
+{
+ test01();
+ test02();
+ return 0;
+}
--- /dev/null
+// { dg-do run }
+
+// 2005-2-17 Matt Austern <austern@apple.com>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.5 unordered_multiset
+// Single-element insert
+
+#include <string>
+#include <iterator>
+#include <tr1/unordered_set>
+#include "testsuite_hooks.h"
+
+bool test __attribute__((unused)) = true;
+
+void test01()
+{
+ typedef std::tr1::unordered_multiset<std::string> Set;
+ Set s;
+ VERIFY(s.empty());
+
+ Set::iterator i = s.insert("abcde");
+ VERIFY(s.size() == 1);
+ VERIFY(std::distance(s.begin(), s.end()) == 1);
+ VERIFY(i == s.begin());
+ VERIFY(*i == "abcde");
+}
+
+void test02()
+{
+ typedef std::tr1::unordered_multiset<std::string> Set;
+ Set s;
+ VERIFY(s.empty());
+
+ s.insert("abcde");
+ Set::iterator i = s.insert("abcde");
+ VERIFY(s.size() == 2);
+ VERIFY(std::distance(s.begin(), s.end()) == 2);
+ VERIFY(*i == "abcde");
+
+ Set::iterator i2 = s.begin();
+ ++i2;
+ VERIFY(i == s.begin() || i == i2);
+ VERIFY(*(s.begin()) == "abcde" && *i2 == "abcde");
+}
+
+int main()
+{
+ test01();
+ test02();
+ return 0;
+}
--- /dev/null
+// { dg-do compile }
+
+// 2005-02-17 Matt Austern <austern@apple.com>
+//
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.5 unordered_multiset
+
+#include <tr1/unordered_set>
+
+using namespace std;
+using namespace std::tr1;
+
+template class unordered_multiset<int>;
+template class unordered_multiset<int, hash<int>, equal_to<int>,
+ allocator<int>, true>;
+template class unordered_multiset<int, hash<int>, equal_to<int>,
+ allocator<char>, false>;
--- /dev/null
+// 2005-10-02 Paolo Carlini <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// { dg-do compile }
+
+#include <tr1/unordered_set>
+
+void test01()
+{
+ typedef std::tr1::unordered_multiset<int> Mset;
+
+ Mset ms;
+
+ Mset::const_iterator cit = ms.begin();
+ *cit = 0; // { dg-error "read-only" }
+
+ Mset::const_local_iterator clit = ms.begin(0);
+ *clit = 0; // { dg-error "read-only" }
+}
--- /dev/null
+// 2005-09-10 Paolo Carlini <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// { dg-do compile }
+
+// libstdc++/23781
+#include <tr1/unordered_set>
+
+std::tr1::unordered_multiset<int>::iterator it3 = NULL; // { dg-error "conversion" }
+std::tr1::unordered_multiset<int>::const_iterator cit3 = NULL; // { dg-error "conversion" }
--- /dev/null
+// 2005-12-20 Paolo Carlini <pcarlini@suse.de>
+
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 6.3.4.5 unordered_multiset::swap
+
+#include <tr1/unordered_set>
+#include <set>
+#include <testsuite_hooks.h>
+#include <testsuite_allocator.h>
+
+// uneq_allocator as a non-empty allocator.
+void
+test01()
+{
+ bool test __attribute__((unused)) = true;
+ using namespace std;
+ using namespace tr1;
+
+ typedef __gnu_test::uneq_allocator<char> my_alloc;
+ typedef unordered_multiset<char, hash<char>, equal_to<char>, my_alloc>
+ my_umset;
+
+ const char title01[] = "Rivers of sand";
+ const char title02[] = "Concret PH";
+ const char title03[] = "Sonatas and Interludes for Prepared Piano";
+ const char title04[] = "never as tired as when i'm waking up";
+
+ const size_t N1 = sizeof(title01);
+ const size_t N2 = sizeof(title02);
+ const size_t N3 = sizeof(title03);
+ const size_t N4 = sizeof(title04);
+
+ typedef multiset<char> my_mset;
+ const my_mset mset01_ref(title01, title01 + N1);
+ const my_mset mset02_ref(title02, title02 + N2);
+ const my_mset mset03_ref(title03, title03 + N3);
+ const my_mset mset04_ref(title04, title04 + N4);
+
+ my_umset::size_type size01, size02;
+
+ my_alloc alloc01(1);
+
+ my_umset umset01(10, hash<char>(), equal_to<char>(), alloc01);
+ size01 = umset01.size();
+ my_umset umset02(10, hash<char>(), equal_to<char>(), alloc01);
+ size02 = umset02.size();
+
+ umset01.swap(umset02);
+ VERIFY( umset01.size() == size02 );
+ VERIFY( umset01.empty() );
+ VERIFY( umset02.size() == size01 );
+ VERIFY( umset02.empty() );
+
+ my_umset umset03(10, hash<char>(), equal_to<char>(), alloc01);
+ size01 = umset03.size();
+ my_umset umset04(mset02_ref.begin(), mset02_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = umset04.size();
+
+ umset03.swap(umset04);
+ VERIFY( umset03.size() == size02 );
+ VERIFY( my_mset(umset03.begin(), umset03.end()) == mset02_ref );
+ VERIFY( umset04.size() == size01 );
+ VERIFY( umset04.empty() );
+
+ my_umset umset05(mset01_ref.begin(), mset01_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size01 = umset05.size();
+ my_umset umset06(mset02_ref.begin(), mset02_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = umset06.size();
+
+ umset05.swap(umset06);
+ VERIFY( umset05.size() == size02 );
+ VERIFY( my_mset(umset05.begin(), umset05.end()) == mset02_ref );
+ VERIFY( umset06.size() == size01 );
+ VERIFY( my_mset(umset06.begin(), umset06.end()) == mset01_ref );
+
+ my_umset umset07(mset01_ref.begin(), mset01_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size01 = umset07.size();
+ my_umset umset08(mset03_ref.begin(), mset03_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = umset08.size();
+
+ umset07.swap(umset08);
+ VERIFY( umset07.size() == size02 );
+ VERIFY( my_mset(umset07.begin(), umset07.end()) == mset03_ref );
+ VERIFY( umset08.size() == size01 );
+ VERIFY( my_mset(umset08.begin(), umset08.end()) == mset01_ref );
+
+ my_umset umset09(mset03_ref.begin(), mset03_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size01 = umset09.size();
+ my_umset umset10(mset04_ref.begin(), mset04_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = umset10.size();
+
+ umset09.swap(umset10);
+ VERIFY( umset09.size() == size02 );
+ VERIFY( my_mset(umset09.begin(), umset09.end()) == mset04_ref );
+ VERIFY( umset10.size() == size01 );
+ VERIFY( my_mset(umset10.begin(), umset10.end()) == mset03_ref );
+
+ my_umset umset11(mset04_ref.begin(), mset04_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size01 = umset11.size();
+ my_umset umset12(mset01_ref.begin(), mset01_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = umset12.size();
+
+ umset11.swap(umset12);
+ VERIFY( umset11.size() == size02 );
+ VERIFY( my_mset(umset11.begin(), umset11.end()) == mset01_ref );
+ VERIFY( umset12.size() == size01 );
+ VERIFY( my_mset(umset12.begin(), umset12.end()) == mset04_ref );
+
+ my_umset umset13(mset03_ref.begin(), mset03_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size01 = umset13.size();
+ my_umset umset14(mset03_ref.begin(), mset03_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = umset14.size();
+
+ umset13.swap(umset14);
+ VERIFY( umset13.size() == size02 );
+ VERIFY( my_mset(umset13.begin(), umset13.end()) == mset03_ref );
+ VERIFY( umset14.size() == size01 );
+ VERIFY( my_mset(umset14.begin(), umset14.end()) == mset03_ref );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// 2005-12-20 Paolo Carlini <pcarlini@suse.de>
+
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 6.3.4.5 unordered_multiset::swap
+
+#include <tr1/unordered_set>
+#include <set>
+#include <testsuite_hooks.h>
+#include <testsuite_allocator.h>
+
+// uneq_allocator, two different personalities.
+void
+test01()
+{
+ bool test __attribute__((unused)) = true;
+ using namespace std;
+ using namespace tr1;
+
+ typedef __gnu_test::uneq_allocator<char> my_alloc;
+ typedef unordered_multiset<char, hash<char>, equal_to<char>, my_alloc>
+ my_umset;
+
+ const char title01[] = "Rivers of sand";
+ const char title02[] = "Concret PH";
+ const char title03[] = "Sonatas and Interludes for Prepared Piano";
+ const char title04[] = "never as tired as when i'm waking up";
+
+ const size_t N1 = sizeof(title01);
+ const size_t N2 = sizeof(title02);
+ const size_t N3 = sizeof(title03);
+ const size_t N4 = sizeof(title04);
+
+ typedef multiset<char> my_mset;
+ const my_mset mset01_ref(title01, title01 + N1);
+ const my_mset mset02_ref(title02, title02 + N2);
+ const my_mset mset03_ref(title03, title03 + N3);
+ const my_mset mset04_ref(title04, title04 + N4);
+
+ my_umset::size_type size01, size02;
+
+ my_alloc alloc01(1), alloc02(2);
+ int personality01, personality02;
+
+ my_umset umset01(10, hash<char>(), equal_to<char>(), alloc01);
+ size01 = umset01.size();
+ personality01 = umset01.get_allocator().get_personality();
+ my_umset umset02(10, hash<char>(), equal_to<char>(), alloc02);
+ size02 = umset02.size();
+ personality02 = umset02.get_allocator().get_personality();
+
+ umset01.swap(umset02);
+ VERIFY( umset01.size() == size02 );
+ VERIFY( umset01.empty() );
+ VERIFY( umset02.size() == size01 );
+ VERIFY( umset02.empty() );
+ VERIFY( umset01.get_allocator().get_personality() == personality02 );
+ VERIFY( umset02.get_allocator().get_personality() == personality01 );
+
+ my_umset umset03(10, hash<char>(), equal_to<char>(), alloc02);
+ size01 = umset03.size();
+ personality01 = umset03.get_allocator().get_personality();
+ my_umset umset04(mset02_ref.begin(), mset02_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = umset04.size();
+ personality02 = umset04.get_allocator().get_personality();
+
+ umset03.swap(umset04);
+ VERIFY( umset03.size() == size02 );
+ VERIFY( my_mset(umset03.begin(), umset03.end()) == mset02_ref );
+ VERIFY( umset04.size() == size01 );
+ VERIFY( umset04.empty() );
+ VERIFY( umset03.get_allocator().get_personality() == personality02 );
+ VERIFY( umset04.get_allocator().get_personality() == personality01 );
+
+ my_umset umset05(mset01_ref.begin(), mset01_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size01 = umset05.size();
+ personality01 = umset05.get_allocator().get_personality();
+ my_umset umset06(mset02_ref.begin(), mset02_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc02);
+ size02 = umset06.size();
+ personality02 = umset06.get_allocator().get_personality();
+
+ umset05.swap(umset06);
+ VERIFY( umset05.size() == size02 );
+ VERIFY( my_mset(umset05.begin(), umset05.end()) == mset02_ref );
+ VERIFY( umset06.size() == size01 );
+ VERIFY( my_mset(umset06.begin(), umset06.end()) == mset01_ref );
+ VERIFY( umset05.get_allocator().get_personality() == personality02 );
+ VERIFY( umset06.get_allocator().get_personality() == personality01 );
+
+ my_umset umset07(mset01_ref.begin(), mset01_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc02);
+ size01 = umset07.size();
+ personality01 = umset07.get_allocator().get_personality();
+ my_umset umset08(mset03_ref.begin(), mset03_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = umset08.size();
+ personality02 = umset08.get_allocator().get_personality();
+
+ umset07.swap(umset08);
+ VERIFY( umset07.size() == size02 );
+ VERIFY( my_mset(umset07.begin(), umset07.end()) == mset03_ref );
+ VERIFY( umset08.size() == size01 );
+ VERIFY( my_mset(umset08.begin(), umset08.end()) == mset01_ref );
+ VERIFY( umset07.get_allocator().get_personality() == personality02 );
+ VERIFY( umset08.get_allocator().get_personality() == personality01 );
+
+ my_umset umset09(mset03_ref.begin(), mset03_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size01 = umset09.size();
+ personality01 = umset09.get_allocator().get_personality();
+ my_umset umset10(mset04_ref.begin(), mset04_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc02);
+ size02 = umset10.size();
+ personality02 = umset10.get_allocator().get_personality();
+
+ umset09.swap(umset10);
+ VERIFY( umset09.size() == size02 );
+ VERIFY( my_mset(umset09.begin(), umset09.end()) == mset04_ref );
+ VERIFY( umset10.size() == size01 );
+ VERIFY( my_mset(umset10.begin(), umset10.end()) == mset03_ref );
+ VERIFY( umset09.get_allocator().get_personality() == personality02 );
+ VERIFY( umset10.get_allocator().get_personality() == personality01 );
+
+ my_umset umset11(mset04_ref.begin(), mset04_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc02);
+ size01 = umset11.size();
+ personality01 = umset11.get_allocator().get_personality();
+ my_umset umset12(mset01_ref.begin(), mset01_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = umset12.size();
+ personality02 = umset12.get_allocator().get_personality();
+
+ umset11.swap(umset12);
+ VERIFY( umset11.size() == size02 );
+ VERIFY( my_mset(umset11.begin(), umset11.end()) == mset01_ref );
+ VERIFY( umset12.size() == size01 );
+ VERIFY( my_mset(umset12.begin(), umset12.end()) == mset04_ref );
+ VERIFY( umset11.get_allocator().get_personality() == personality02 );
+ VERIFY( umset12.get_allocator().get_personality() == personality01 );
+
+ my_umset umset13(mset03_ref.begin(), mset03_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size01 = umset13.size();
+ personality01 = umset13.get_allocator().get_personality();
+ my_umset umset14(mset03_ref.begin(), mset03_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc02);
+ size02 = umset14.size();
+ personality02 = umset14.get_allocator().get_personality();
+
+ umset13.swap(umset14);
+ VERIFY( umset13.size() == size02 );
+ VERIFY( my_mset(umset13.begin(), umset13.end()) == mset03_ref );
+ VERIFY( umset14.size() == size01 );
+ VERIFY( my_mset(umset14.begin(), umset14.end()) == mset03_ref );
+ VERIFY( umset13.get_allocator().get_personality() == personality02 );
+ VERIFY( umset14.get_allocator().get_personality() == personality01 );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3 Unordered associative containers
+
+#include <tr1/unordered_set>
+
+// libstdc++/23053
+void test01()
+{
+ std::tr1::unordered_set<int> s;
+
+ const std::tr1::unordered_set<int> &s_ref = s;
+
+ s_ref.find(27);
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3 Unordered associative containers
+
+#include <tr1/unordered_set>
+#include <testsuite_hooks.h>
+
+// libstdc++/23465
+void test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ for (float lf = 0.1; lf < 101.0; lf *= 10.0)
+ for (int size = 1; size <= 6561; size *= 3)
+ {
+ std::tr1::unordered_set<int> us1, us2;
+ typedef std::tr1::unordered_set<int>::local_iterator local_iterator;
+ typedef std::tr1::unordered_set<int>::size_type size_type;
+
+ us1.max_load_factor(lf);
+
+ for (int i = 0; i < size; ++i)
+ us1.insert(i);
+
+ us2 = us1;
+
+ VERIFY( us2.size() == us1.size() );
+ VERIFY( us2.bucket_count() == us1.bucket_count() );
+
+ for (size_type b = 0; b < us1.bucket_count(); ++b)
+ {
+ size_type cnt = 0;
+ for (local_iterator it1 = us1.begin(b), it2 = us2.begin(b);
+ it1 != us1.end(b) && it2 != us2.end(b); ++it1, ++it2)
+ {
+ VERIFY( *it1 == *it2 );
+ ++cnt;
+ }
+ VERIFY( cnt == us1.bucket_size(b) );
+ }
+ }
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3 Unordered associative containers
+
+#include <tr1/unordered_set>
+
+// libstdc++/26127
+void test01()
+{
+ std::tr1::unordered_set<int> s;
+
+ s.bucket(42);
+ s.key_eq();
+ s.max_load_factor();
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// 2006-02-22 Paolo Carlini <pcarlini@suse.de>
+//
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3 Unordered associative containers
+
+#include <tr1/unordered_set>
+#include <testsuite_hooks.h>
+
+// libstdc++/26132
+void test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ for (float lf = 1.0; lf < 101.0; lf *= 10.0)
+ for (int size = 1; size <= 6561; size *= 3)
+ {
+ std::tr1::unordered_set<int> us1;
+ typedef std::tr1::unordered_set<int>::size_type size_type;
+
+ us1.max_load_factor(10.0);
+
+ for (int i = 0; i < size; ++i)
+ us1.insert(i);
+
+ us1.max_load_factor(lf);
+
+ for (int i = 1; i <= 6561; i *= 81)
+ {
+ const size_type n = size * 81 / i;
+ us1.rehash(n);
+ VERIFY( us1.bucket_count() > us1.size() / us1.max_load_factor() );
+ VERIFY( us1.bucket_count() >= n );
+ }
+ }
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without Pred the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.3 Class template unordered_set
+
+#include <tr1/unordered_set>
+#include <testsuite_hooks.h>
+
+// libstdc++/29134
+void test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ std::tr1::unordered_set<int> us;
+
+ VERIFY( us.max_size() == us.get_allocator().max_size() );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// 2005-10-08 Paolo Carlini <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.3 Class template unordered_set
+
+#include <tr1/unordered_set>
+#include <string>
+#include <testsuite_hooks.h>
+
+// libstdc++/24061
+void test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ typedef std::tr1::unordered_set<std::string> Set;
+ typedef Set::iterator iterator;
+ typedef Set::const_iterator const_iterator;
+
+ Set s1;
+
+ s1.insert("all the love in the world");
+ s1.insert("you know what you are?");
+ s1.insert("the collector");
+ s1.insert("the hand that feeds");
+ s1.insert("love is not enough");
+ s1.insert("every day is exactly the same");
+ s1.insert("with teeth");
+ s1.insert("only");
+ s1.insert("getting smaller");
+ s1.insert("sunspots");
+ VERIFY( s1.size() == 10 );
+
+ iterator it1 = s1.begin();
+ ++it1;
+ iterator it2 = it1;
+ ++it2;
+ iterator it3 = s1.erase(it1);
+ VERIFY( s1.size() == 9 );
+ VERIFY( it3 == it2 );
+ VERIFY( *it3 == *it2 );
+
+ iterator it4 = s1.begin();
+ ++it4;
+ ++it4;
+ ++it4;
+ iterator it5 = it4;
+ ++it5;
+ ++it5;
+ iterator it6 = s1.erase(it4, it5);
+ VERIFY( s1.size() == 7 );
+ VERIFY( it6 == it5 );
+ VERIFY( *it6 == *it5 );
+
+ const_iterator it7 = s1.begin();
+ ++it7;
+ ++it7;
+ ++it7;
+ const_iterator it8 = it7;
+ ++it8;
+ const_iterator it9 = s1.erase(it7);
+ VERIFY( s1.size() == 6 );
+ VERIFY( it9 == it8 );
+ VERIFY( *it9 == *it8 );
+
+ const_iterator it10 = s1.begin();
+ ++it10;
+ const_iterator it11 = it10;
+ ++it11;
+ ++it11;
+ ++it11;
+ ++it11;
+ const_iterator it12 = s1.erase(it10, it11);
+ VERIFY( s1.size() == 2 );
+ VERIFY( it12 == it11 );
+ VERIFY( *it12 == *it11 );
+ VERIFY( ++it12 == s1.end() );
+
+ iterator it13 = s1.erase(s1.begin(), s1.end());
+ VERIFY( s1.size() == 0 );
+ VERIFY( it13 == s1.end() );
+ VERIFY( it13 == s1.begin() );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// { dg-do run }
+
+// 2005-2-18 Matt Austern <austern@apple.com>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.3 unordered_set
+// find, equal_range, count
+
+#include <string>
+#include <iterator>
+#include <algorithm>
+#include <tr1/unordered_set>
+#include "testsuite_hooks.h"
+
+bool test __attribute__((unused)) = true;
+
+void test01()
+{
+ typedef std::tr1::unordered_set<std::string> Set;
+ Set s;
+ VERIFY(s.empty());
+
+ std::pair<Set::iterator, bool> tmp = s.insert("grape");
+ Set::iterator i = tmp.first;
+
+ Set::iterator i2 = s.find("grape");
+ VERIFY(i2 != s.end());
+ VERIFY(i2 == i);
+ VERIFY(*i2 == "grape");
+
+ std::pair<Set::iterator, Set::iterator> p = s.equal_range("grape");
+ VERIFY(p.first == i2);
+ VERIFY(std::distance(p.first, p.second) == 1);
+
+ Set::iterator i3 = s.find("lime");
+ VERIFY(i3 == s.end());
+
+ std::pair<Set::iterator, Set::iterator> p2 = s.equal_range("lime");
+ VERIFY(p2.first == p2.second);
+
+ VERIFY(s.count("grape") == 1);
+ VERIFY(s.count("lime") == 0);
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// 2005-10-08 Paolo Carlini <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.3 Class template unordered_set
+
+#include <tr1/unordered_set>
+#include <string>
+#include <testsuite_hooks.h>
+
+// libstdc++/24061
+void test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ typedef std::tr1::unordered_set<std::string> Set;
+ typedef Set::iterator iterator;
+ typedef Set::const_iterator const_iterator;
+
+ Set s1;
+
+ iterator it1 = s1.insert(s1.begin(), "all the love in the world");
+ VERIFY( s1.size() == 1 );
+ VERIFY( *it1 == "all the love in the world" );
+
+ const_iterator cit1(it1);
+ const_iterator cit2 = s1.insert(cit1, "you know what you are?");
+ VERIFY( s1.size() == 2 );
+ VERIFY( cit2 != cit1 );
+ VERIFY( *cit2 == "you know what you are?" );
+
+ iterator it2 = s1.insert(it1, "all the love in the world");
+ VERIFY( s1.size() == 2 );
+ VERIFY( it2 == it1 );
+ VERIFY( *it2 == "all the love in the world" );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// { dg-do run }
+
+// 2005-2-17 Matt Austern <austern@apple.com>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.3 unordered_set
+// range insert
+
+#include <string>
+#include <iterator>
+#include <algorithm>
+#include <tr1/unordered_set>
+#include <testsuite_hooks.h>
+
+bool test __attribute__((unused)) = true;
+
+void test01()
+{
+ typedef std::tr1::unordered_set<std::string> Set;
+ Set s;
+ VERIFY(s.empty());
+
+ const int N = 10;
+ const std::string A[N] = { "red", "green", "blue", "violet", "cyan",
+ "magenta", "yellow", "orange", "pink", "gray" };
+
+ s.insert(A+0, A+N);
+ VERIFY(s.size() == static_cast<unsigned int>(N));
+ VERIFY(std::distance(s.begin(), s.end()) == N);
+
+ for (int i = 0; i < N; ++i) {
+ std::string str = A[i];
+ Set::iterator it = std::find(s.begin(), s.end(), str);
+ VERIFY(it != s.end());
+ }
+}
+
+void test02()
+{
+ typedef std::tr1::unordered_set<int> Set;
+ Set s;
+ VERIFY(s.empty());
+
+ const int N = 8;
+ const int A[N] = { 3, 7, 4, 8, 2, 4, 6, 7 };
+
+ s.insert(A+0, A+N);
+ VERIFY(s.size() == 6);
+ VERIFY(std::distance(s.begin(), s.end()) == 6);
+
+ VERIFY(std::count(s.begin(), s.end(), 2) == 1);
+ VERIFY(std::count(s.begin(), s.end(), 3) == 1);
+ VERIFY(std::count(s.begin(), s.end(), 4) == 1);
+ VERIFY(std::count(s.begin(), s.end(), 6) == 1);
+ VERIFY(std::count(s.begin(), s.end(), 7) == 1);
+ VERIFY(std::count(s.begin(), s.end(), 8) == 1);
+}
+
+int main()
+{
+ test01();
+ test02();
+ return 0;
+}
--- /dev/null
+// { dg-do run }
+
+// 2005-2-17 Matt Austern <austern@apple.com>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.3 unordered_set
+// Single-element insert
+
+#include <string>
+#include <iterator>
+#include <tr1/unordered_set>
+#include "testsuite_hooks.h"
+
+bool test __attribute__((unused)) = true;
+
+void test01()
+{
+ typedef std::tr1::unordered_set<std::string> Set;
+ Set s;
+ VERIFY(s.empty());
+
+ std::pair<Set::iterator, bool> p = s.insert("abcde");
+ VERIFY(p.second);
+ VERIFY(s.size() == 1);
+ VERIFY(std::distance(s.begin(), s.end()) == 1);
+ VERIFY(p.first == s.begin());
+ VERIFY(*p.first == "abcde");
+}
+
+void test02()
+{
+ typedef std::tr1::unordered_set<std::string> Set;
+ Set s;
+ VERIFY(s.empty());
+
+ std::pair<Set::iterator, bool> p1 = s.insert("abcde");
+ std::pair<Set::iterator, bool> p2 = s.insert("abcde");
+ VERIFY(p1.second);
+ VERIFY(!p2.second);
+ VERIFY(s.size() == 1);
+ VERIFY(p1.first == p2.first);
+ VERIFY(*p1.first == "abcde");
+}
+
+int main()
+{
+ test01();
+ test02();
+ return 0;
+}
--- /dev/null
+// { dg-do compile }
+
+// 2005-02-17 Matt Austern <austern@apple.com>
+//
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3.4.3 unordered_set
+
+#include <tr1/unordered_set>
+
+using namespace std;
+using namespace std::tr1;
+
+template class unordered_set<int>;
+template class unordered_set<int, hash<int>, equal_to<int>,
+ allocator<int>, true>;
+template class unordered_set<int, hash<int>, equal_to<int>,
+ allocator<char>, false>;
--- /dev/null
+// 2005-10-02 Paolo Carlini <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// { dg-do compile }
+
+#include <tr1/unordered_set>
+
+void test01()
+{
+ typedef std::tr1::unordered_set<int> Set;
+
+ Set s;
+
+ Set::const_iterator cit = s.begin();
+ *cit = 0; // { dg-error "read-only" }
+
+ Set::const_local_iterator clit = s.begin(0);
+ *clit = 0; // { dg-error "read-only" }
+}
--- /dev/null
+// 2005-09-10 Paolo Carlini <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// { dg-do compile }
+
+// libstdc++/23781
+#include <tr1/unordered_set>
+
+std::tr1::unordered_set<int>::iterator it4 = NULL; // { dg-error "conversion" }
+std::tr1::unordered_set<int>::const_iterator cit4 = NULL; // { dg-error "conversion" }
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 6.3 Unordered associative containers
+
+#include <tr1/unordered_set>
+
+void
+test01()
+{
+ std::tr1::unordered_set<int>::iterator it;
+ std::tr1::unordered_set<int>::const_iterator cit;
+ std::tr1::unordered_set<int>::local_iterator lit;
+ std::tr1::unordered_set<int>::const_local_iterator clit;
+}
--- /dev/null
+// 2005-12-20 Paolo Carlini <pcarlini@suse.de>
+
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 6.3.4.3 unordered_set::swap
+
+#include <tr1/unordered_set>
+#include <set>
+#include <testsuite_hooks.h>
+#include <testsuite_allocator.h>
+
+// uneq_allocator as a non-empty allocator.
+void
+test01()
+{
+ bool test __attribute__((unused)) = true;
+ using namespace std;
+ using namespace tr1;
+
+ typedef __gnu_test::uneq_allocator<char> my_alloc;
+ typedef unordered_set<char, hash<char>, equal_to<char>, my_alloc> my_uset;
+
+ const char title01[] = "Rivers of sand";
+ const char title02[] = "Concret PH";
+ const char title03[] = "Sonatas and Interludes for Prepared Piano";
+ const char title04[] = "never as tired as when i'm waking up";
+
+ const size_t N1 = sizeof(title01);
+ const size_t N2 = sizeof(title02);
+ const size_t N3 = sizeof(title03);
+ const size_t N4 = sizeof(title04);
+
+ typedef set<char> my_set;
+ const my_set set01_ref(title01, title01 + N1);
+ const my_set set02_ref(title02, title02 + N2);
+ const my_set set03_ref(title03, title03 + N3);
+ const my_set set04_ref(title04, title04 + N4);
+
+ my_uset::size_type size01, size02;
+
+ my_alloc alloc01(1);
+
+ my_uset uset01(10, hash<char>(), equal_to<char>(), alloc01);
+ size01 = uset01.size();
+ my_uset uset02(10, hash<char>(), equal_to<char>(), alloc01);
+ size02 = uset02.size();
+
+ uset01.swap(uset02);
+ VERIFY( uset01.size() == size02 );
+ VERIFY( uset01.empty() );
+ VERIFY( uset02.size() == size01 );
+ VERIFY( uset02.empty() );
+
+ my_uset uset03(10, hash<char>(), equal_to<char>(), alloc01);
+ size01 = uset03.size();
+ my_uset uset04(set02_ref.begin(), set02_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = uset04.size();
+
+ uset03.swap(uset04);
+ VERIFY( uset03.size() == size02 );
+ VERIFY( my_set(uset03.begin(), uset03.end()) == set02_ref );
+ VERIFY( uset04.size() == size01 );
+ VERIFY( uset04.empty() );
+
+ my_uset uset05(set01_ref.begin(), set01_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size01 = uset05.size();
+ my_uset uset06(set02_ref.begin(), set02_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = uset06.size();
+
+ uset05.swap(uset06);
+ VERIFY( uset05.size() == size02 );
+ VERIFY( my_set(uset05.begin(), uset05.end()) == set02_ref );
+ VERIFY( uset06.size() == size01 );
+ VERIFY( my_set(uset06.begin(), uset06.end()) == set01_ref );
+
+ my_uset uset07(set01_ref.begin(), set01_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size01 = uset07.size();
+ my_uset uset08(set03_ref.begin(), set03_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = uset08.size();
+
+ uset07.swap(uset08);
+ VERIFY( uset07.size() == size02 );
+ VERIFY( my_set(uset07.begin(), uset07.end()) == set03_ref );
+ VERIFY( uset08.size() == size01 );
+ VERIFY( my_set(uset08.begin(), uset08.end()) == set01_ref );
+
+ my_uset uset09(set03_ref.begin(), set03_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size01 = uset09.size();
+ my_uset uset10(set04_ref.begin(), set04_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = uset10.size();
+
+ uset09.swap(uset10);
+ VERIFY( uset09.size() == size02 );
+ VERIFY( my_set(uset09.begin(), uset09.end()) == set04_ref );
+ VERIFY( uset10.size() == size01 );
+ VERIFY( my_set(uset10.begin(), uset10.end()) == set03_ref );
+
+ my_uset uset11(set04_ref.begin(), set04_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size01 = uset11.size();
+ my_uset uset12(set01_ref.begin(), set01_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = uset12.size();
+
+ uset11.swap(uset12);
+ VERIFY( uset11.size() == size02 );
+ VERIFY( my_set(uset11.begin(), uset11.end()) == set01_ref );
+ VERIFY( uset12.size() == size01 );
+ VERIFY( my_set(uset12.begin(), uset12.end()) == set04_ref );
+
+ my_uset uset13(set03_ref.begin(), set03_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size01 = uset13.size();
+ my_uset uset14(set03_ref.begin(), set03_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = uset14.size();
+
+ uset13.swap(uset14);
+ VERIFY( uset13.size() == size02 );
+ VERIFY( my_set(uset13.begin(), uset13.end()) == set03_ref );
+ VERIFY( uset14.size() == size01 );
+ VERIFY( my_set(uset14.begin(), uset14.end()) == set03_ref );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// 2005-12-20 Paolo Carlini <pcarlini@suse.de>
+
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 6.3.4.3 unordered_set::swap
+
+#include <tr1/unordered_set>
+#include <set>
+#include <testsuite_hooks.h>
+#include <testsuite_allocator.h>
+
+// uneq_allocator, two different personalities.
+void
+test01()
+{
+ bool test __attribute__((unused)) = true;
+ using namespace std;
+ using namespace tr1;
+
+ typedef __gnu_test::uneq_allocator<char> my_alloc;
+ typedef unordered_set<char, hash<char>, equal_to<char>, my_alloc> my_uset;
+
+ const char title01[] = "Rivers of sand";
+ const char title02[] = "Concret PH";
+ const char title03[] = "Sonatas and Interludes for Prepared Piano";
+ const char title04[] = "never as tired as when i'm waking up";
+
+ const size_t N1 = sizeof(title01);
+ const size_t N2 = sizeof(title02);
+ const size_t N3 = sizeof(title03);
+ const size_t N4 = sizeof(title04);
+
+ typedef set<char> my_set;
+ const my_set set01_ref(title01, title01 + N1);
+ const my_set set02_ref(title02, title02 + N2);
+ const my_set set03_ref(title03, title03 + N3);
+ const my_set set04_ref(title04, title04 + N4);
+
+ my_uset::size_type size01, size02;
+
+ my_alloc alloc01(1), alloc02(2);
+ int personality01, personality02;
+
+ my_uset uset01(10, hash<char>(), equal_to<char>(), alloc01);
+ size01 = uset01.size();
+ personality01 = uset01.get_allocator().get_personality();
+ my_uset uset02(10, hash<char>(), equal_to<char>(), alloc02);
+ size02 = uset02.size();
+ personality02 = uset02.get_allocator().get_personality();
+
+ uset01.swap(uset02);
+ VERIFY( uset01.size() == size02 );
+ VERIFY( uset01.empty() );
+ VERIFY( uset02.size() == size01 );
+ VERIFY( uset02.empty() );
+ VERIFY( uset01.get_allocator().get_personality() == personality02 );
+ VERIFY( uset02.get_allocator().get_personality() == personality01 );
+
+ my_uset uset03(10, hash<char>(), equal_to<char>(), alloc02);
+ size01 = uset03.size();
+ personality01 = uset03.get_allocator().get_personality();
+ my_uset uset04(set02_ref.begin(), set02_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = uset04.size();
+ personality02 = uset04.get_allocator().get_personality();
+
+ uset03.swap(uset04);
+ VERIFY( uset03.size() == size02 );
+ VERIFY( my_set(uset03.begin(), uset03.end()) == set02_ref );
+ VERIFY( uset04.size() == size01 );
+ VERIFY( uset04.empty() );
+ VERIFY( uset03.get_allocator().get_personality() == personality02 );
+ VERIFY( uset04.get_allocator().get_personality() == personality01 );
+
+ my_uset uset05(set01_ref.begin(), set01_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size01 = uset05.size();
+ personality01 = uset05.get_allocator().get_personality();
+ my_uset uset06(set02_ref.begin(), set02_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc02);
+ size02 = uset06.size();
+ personality02 = uset06.get_allocator().get_personality();
+
+ uset05.swap(uset06);
+ VERIFY( uset05.size() == size02 );
+ VERIFY( my_set(uset05.begin(), uset05.end()) == set02_ref );
+ VERIFY( uset06.size() == size01 );
+ VERIFY( my_set(uset06.begin(), uset06.end()) == set01_ref );
+ VERIFY( uset05.get_allocator().get_personality() == personality02 );
+ VERIFY( uset06.get_allocator().get_personality() == personality01 );
+
+ my_uset uset07(set01_ref.begin(), set01_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc02);
+ size01 = uset07.size();
+ personality01 = uset07.get_allocator().get_personality();
+ my_uset uset08(set03_ref.begin(), set03_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = uset08.size();
+ personality02 = uset08.get_allocator().get_personality();
+
+ uset07.swap(uset08);
+ VERIFY( uset07.size() == size02 );
+ VERIFY( my_set(uset07.begin(), uset07.end()) == set03_ref );
+ VERIFY( uset08.size() == size01 );
+ VERIFY( my_set(uset08.begin(), uset08.end()) == set01_ref );
+ VERIFY( uset07.get_allocator().get_personality() == personality02 );
+ VERIFY( uset08.get_allocator().get_personality() == personality01 );
+
+ my_uset uset09(set03_ref.begin(), set03_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size01 = uset09.size();
+ personality01 = uset09.get_allocator().get_personality();
+ my_uset uset10(set04_ref.begin(), set04_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc02);
+ size02 = uset10.size();
+ personality02 = uset10.get_allocator().get_personality();
+
+ uset09.swap(uset10);
+ VERIFY( uset09.size() == size02 );
+ VERIFY( my_set(uset09.begin(), uset09.end()) == set04_ref );
+ VERIFY( uset10.size() == size01 );
+ VERIFY( my_set(uset10.begin(), uset10.end()) == set03_ref );
+ VERIFY( uset09.get_allocator().get_personality() == personality02 );
+ VERIFY( uset10.get_allocator().get_personality() == personality01 );
+
+ my_uset uset11(set04_ref.begin(), set04_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc02);
+ size01 = uset11.size();
+ personality01 = uset11.get_allocator().get_personality();
+ my_uset uset12(set01_ref.begin(), set01_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size02 = uset12.size();
+ personality02 = uset12.get_allocator().get_personality();
+
+ uset11.swap(uset12);
+ VERIFY( uset11.size() == size02 );
+ VERIFY( my_set(uset11.begin(), uset11.end()) == set01_ref );
+ VERIFY( uset12.size() == size01 );
+ VERIFY( my_set(uset12.begin(), uset12.end()) == set04_ref );
+ VERIFY( uset11.get_allocator().get_personality() == personality02 );
+ VERIFY( uset12.get_allocator().get_personality() == personality01 );
+
+ my_uset uset13(set03_ref.begin(), set03_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc01);
+ size01 = uset13.size();
+ personality01 = uset13.get_allocator().get_personality();
+ my_uset uset14(set03_ref.begin(), set03_ref.end(), 10, hash<char>(),
+ equal_to<char>(), alloc02);
+ size02 = uset14.size();
+ personality02 = uset14.get_allocator().get_personality();
+
+ uset13.swap(uset14);
+ VERIFY( uset13.size() == size02 );
+ VERIFY( my_set(uset13.begin(), uset13.end()) == set03_ref );
+ VERIFY( uset14.size() == size01 );
+ VERIFY( my_set(uset14.begin(), uset14.end()) == set03_ref );
+ VERIFY( uset13.get_allocator().get_personality() == personality02 );
+ VERIFY( uset14.get_allocator().get_personality() == personality01 );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <tr1/tuple>
+
+namespace gnu
+{
+ using namespace std::tr1;
+}