+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
-// 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
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General 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>
+// { dg-do compile }
// 1999-05-12 bkoz
-// Copyright (C) 1999 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2007 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// 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 <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 }
+// 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
-// 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; }
-// 1999-07-01 bkoz
+// { dg-do compile }
-// Copyright (C) 1999 Free Software Foundation, Inc.
+// Copyright (C) 2007 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// 17.4.1.2 Headers, ios
+#include <new>
-#include <ios>
-#include <testsuite_hooks.h>
-
-
-int main(void)
+namespace gnu
{
- return 0;
+ using namespace std;
}
--- /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;
+
+}
-// 1999-07-01 bkoz
+// { dg-do compile }
-// Copyright (C) 1999 Free Software Foundation, Inc.
+// Copyright (C) 2007 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// 17.4.1.2 Headers, iomanip
+#include <csetjmp>
-#include <iomanip>
-#include <testsuite_hooks.h>
-
-
-int main(void)
+namespace gnu
{
- return 0;
+ using std::longjmp;
}
-// 1999-07-01 bkoz
+// { dg-do compile }
-// Copyright (C) 1999 Free Software Foundation, Inc.
+// Copyright (C) 2007 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// 17.4.1.2 Headers, fstream
+#include <csetjmp>
-#include <fstream>
-#include <testsuite_hooks.h>
-
-
-int main(void)
+namespace gnu
{
- return 0;
+#ifndef setjmp
+ #error "setjmp_must_be_a_macro"
+#endif
}
--- /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;
+}
-// 2001-02-06 Benjamin Kosnik <bkoz@redhat.com>
+// { dg-do compile }
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2007 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// 17.4.1.2 Headers, cstdarg
-
#include <cstdarg>
namespace gnu
{
- void test01()
- {
- std::va_list __attribute__((unused)) list;
#ifndef va_arg
#error "va_arg_must_be_a_macro"
#endif
-#ifndef va_end
- #error "va_end_must_be_a_macro"
-#endif
+
#ifndef va_start
#error "va_start_must_be_a_macro"
#endif
- }
-}
-
-int main()
-{
- gnu::test01();
- return 0;
+
+#ifndef va_end
+ #error "va_end_must_be_a_macro"
+#endif
}
--- /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;
+}
+// { dg-do compile }
// 2001-02-06 Benjamin Kosnik <bkoz@redhat.com>
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2003, 2007 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// 17.4.1.2 Headers, cstddef
-
#include <cstddef>
namespace gnu
int j;
};
+ // offsetof
void test01()
{
std::size_t i __attribute__((unused)) = offsetof(struct test_type, i);
#error "offsetof_must_be_a_macro"
#endif
}
-}
-
-int main()
-{
- gnu::test01();
- return 0;
+
+ // NULL
+ void test02()
+ {
+ // Must not be (void*)0
+ const int j = NULL;
+
+#ifndef NULL
+ #error "NULL_must_be_a_macro"
+#endif
+ }
}
--- /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;
+}
+// { dg-do compile }
// 2001-02-06 Benjamin Kosnik <bkoz@redhat.com>
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2003, 2007 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// 17.4.1.2 Headers, cassert
-
-#include <cassert>
+#include <cstddef>
namespace gnu
{
- void test01()
- {
- assert (true);
-#ifndef assert
- #error "assert_must_be_a_macro"
+#ifndef EXIT_FAILURE
+ #error "EXIT_FAILURE_must_be_a_macro"
+#endif
+
+#ifndef EXIT_SUCCESS
+ #error "EXIT_SUCCESS_must_be_a_macro"
#endif
- }
-}
-
-int main()
-{
- gnu::test01();
- return 0;
}
--- /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-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General 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-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this 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
+}
-// 2001-02-06 Benjamin Kosnik <bkoz@redhat.com>
+// { dg-do compile }
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2007 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// 17.4.1.2 Headers, cerrno
-
-#include <cerrno>
+#include <cassert>
namespace gnu
{
- int test01()
- {
- int i = errno;
+#ifndef EDOM
+ #error "EDOM_must_be_a_macro"
+#endif
+
+#ifndef ERANGE
+ #error "ERANGE_must_be_a_macro"
+#endif
+
#ifndef errno
#error "errno_must_be_a_macro"
#endif
- return i;
- }
-}
-
-int main()
-{
- gnu::test01();
- return 0;
}
--- /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
+}
-// 1999-07-01 bkoz
+// { dg-do compile }
-// Copyright (C) 1999 Free Software Foundation, Inc.
+// Copyright (C) 2007 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// 17.4.1.2 Headers, iosfwd
+#include <ctime>
-#include <iosfwd>
-#include <testsuite_hooks.h>
-
-
-int main(void)
+namespace gnu
{
- return 0;
+ std::size_t s;
+ std::clock_t c;
+ std::time_t t;
+
+ std::tm t2;
}
--- /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
+// { 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>;
+// { dg-do compile }
// 2001-06-18 Benjamin Kosnik <bkoz@redhat.com>
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2003, 2007 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
{
using namespace std;
- // Check for required base class.
+ // Check for required typedefs
long l;
typedef raw_storage_iterator<long*, long> test_iterator;
- typedef iterator<output_iterator_tag, void, void, void, void> base_iterator;
- test_iterator rs_it(&l);
- base_iterator* base __attribute__((unused)) = &rs_it;
-
- // Check for required typedefs
typedef test_iterator::value_type value_type;
typedef test_iterator::difference_type difference_type;
typedef test_iterator::pointer pointer;
typedef test_iterator::reference reference;
typedef test_iterator::iterator_category iteratory_category;
}
-
-int main()
-{
- test01();
- return 0;
-}
--- /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
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this 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;
+}
-// 2001-02-06 Benjamin Kosnik <bkoz@redhat.com>
+// { dg-do compile }
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2007 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// 17.4.1.2 Headers, csetjmp
-
-#include <csetjmp>
+#include <cwchar>
namespace gnu
{
- void test01()
- {
- std::jmp_buf env;
- int i __attribute__((unused)) = setjmp(env);
-#ifndef setjmp
- #error "setjmp_must_be_a_macro"
+#ifndef NULL
+ #error "NULL_must_be_a_macro"
+#endif
+
+#ifndef WCHAR_MAX
+ #error "WCHAR_MAX_must_be_a_macro"
+#endif
+
+#ifndef WCHAR_MIN
+ #error "WCHAR_MIN_must_be_a_macro"
+#endif
+
+#ifndef WEOF
+ #error "WEOF_must_be_a_macro"
#endif
- }
-}
-
-int main()
-{
- gnu::test01();
- return 0;
}
--- /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;
+}
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;
}
#include <locale>
// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_codecvt: public std::codecvt<unsigned char, unsigned long, char>
-{ };
-
-void test02()
-{
- gnu_codecvt facet01;
-}
-
-int main()
-{
- test02();
- return 0;
-}
+template class std::codecvt<unsigned char, unsigned long, char>;
--- /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;
+}
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 }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General 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;
+}
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;
}
#include <locale>
// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_collate: public std::collate<unsigned char>
-{ };
-
-void test02()
-{
- gnu_collate facet01;
-}
-
-int main()
-{
- test02();
- return 0;
-}
+template class std::collate<unsigned char>;
--- /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;
+}
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 }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General 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;
+}
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 }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General 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 }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this 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;
+}
-// 2000-01-01 bkoz
+// { dg-do compile }
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2007 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// 17.4.1.2 Headers, cwchar
+#include <locale>
-#include <cwchar>
-
-int main(void)
+namespace gnu
{
- // Make sure size_t is in namespace std
- std::size_t i __attribute__((unused)) = 5;
-
- std::tm __attribute__((unused)) mytime;
-
- return 0;
+ typedef std::locale t1;
+ typedef std::ctype_base t2;
+ typedef std::codecvt_base t3;
+ typedef std::time_base t4;
+ typedef std::money_base t5;
+ typedef std::messages_base t6;
}
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;
}
#include <locale>
// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_messages: public std::messages<unsigned char>
-{ };
-
-void test02()
-{
- gnu_messages facet01;
-}
-
-int main()
-{
- test02();
- return 0;
-}
+template class std::messages<unsigned char>;
--- /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;
+}
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 }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General 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;
+}
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;
}
#include <locale>
// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_money_get: public std::money_get<unsigned char>
-{ };
-
-void test02()
-{
- gnu_money_get facet01;
-}
-
-int main()
-{
- test02();
- return 0;
-}
+template class std::money_get<unsigned char>;
--- /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;
+}
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;
}
#include <locale>
// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_money_put: public std::money_put<unsigned char>
-{ };
-
-void test02()
-{
- gnu_money_put facet01;
-}
-
-int main()
-{
- test02();
- return 0;
-}
+template class std::money_put<unsigned char>;
--- /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;
+}
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
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General 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>;
// 22.2.6.3 Template class moneypunct
-// { dg-do compile }
-
#include <locale>
#include <testsuite_hooks.h>
// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_moneypunct_t: public std::moneypunct<unsigned char, true>
-{ };
-
-class gnu_moneypunct_f: public std::moneypunct<unsigned char, false>
+class gnu_moneypunct_f: public std::moneypunct<char, false>
{ };
void test03()
{
- gnu_moneypunct_t facet01;
+ bool test __attribute__((unused)) = true;
gnu_moneypunct_f facet02;
- VERIFY (facet01.intl == true);
VERIFY (facet02.intl == false);
}
--- /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;
+}
// 22.2.6.3 Template class moneypunct
#include <locale>
-#include <testsuite_hooks.h>
void test01()
{
typedef std::locale::facet base_type;
const test_type& obj = std::use_facet<test_type>(std::locale());
const base_type* base __attribute__((unused)) = &obj;
-
- // Check for required typedefs
- typedef test_type::char_type char_type;
- typedef test_type::string_type string_type;
-}
-
-int main()
-{
- test01();
- return 0;
}
--- /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;
+}
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 }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General 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;
+}
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;
}
#include <locale>
// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_num_get: public std::num_get<unsigned char>
-{ };
-
-void test02()
-{
- gnu_num_get facet01;
-}
-
-int main()
-{
- test02();
- return 0;
-}
+template class std::num_get<unsigned char> ;
--- /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;
+}
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;
}
#include <locale>
// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_num_put: public std::num_put<unsigned char>
-{ };
-
-void test02()
-{
- gnu_num_put facet01;
-}
-
-int main()
-{
- test02();
- return 0;
-}
+template class std::num_put<unsigned char>;
--- /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;
+}
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;
}
#include <locale>
// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_numpunct: public std::numpunct<unsigned char>
-{ };
-
-void test02()
-{
- gnu_numpunct facet01;
-}
-
-int main()
-{
- test02();
- return 0;
-}
+template class std::numpunct<unsigned char>;
--- /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;
+}
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>
+
+// 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;
+}
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;
}
#include <locale>
// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_time_get: public std::time_get<unsigned char>
-{ };
-
-void test02()
-{
- gnu_time_get facet01;
-}
-
-int main()
-{
- test02();
- return 0;
-}
+template class std::time_get<unsigned char>;
--- /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;
+}
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;
}
#include <locale>
// Should be able to instantiate this for other types besides char, wchar_t
-class gnu_time_put: public std::time_put<unsigned char>
-{ };
-
-void test02()
-{
- gnu_time_put facet01;
-}
-
-int main()
-{
- test02();
- return 0;
-}
+template class std::time_put<unsigned char>;
--- /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
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this 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
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General 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
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General 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
+// 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> >;
+// { dg-do compile }
// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
{
using namespace std;
- // Check for required base class.
- list<int> l;
- typedef back_insert_iterator<list<int> > test_iterator;
- typedef iterator<output_iterator_tag, void, void, void, void> base_iterator;
- test_iterator r_it(l);
- base_iterator* base __attribute__((unused)) = &r_it;
-
// Check for required typedefs
+ typedef back_insert_iterator<list<int> > test_iterator;
typedef test_iterator::value_type value_type;
typedef test_iterator::difference_type difference_type;
typedef test_iterator::pointer pointer;
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, 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> >;
+// { dg-do compile }
// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
{
using namespace std;
- // Check for required base class.
- list<int> l;
- typedef front_insert_iterator<list<int> > test_iterator;
- typedef iterator<output_iterator_tag, void, void, void, void> base_iterator;
- test_iterator r_it(l);
- base_iterator* base __attribute__((unused)) = &r_it;
-
// Check for required typedefs
+ typedef front_insert_iterator<list<int> > test_iterator;
typedef test_iterator::value_type value_type;
typedef test_iterator::difference_type difference_type;
typedef test_iterator::pointer pointer;
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
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this 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;
+}
+
#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;
int main()
{
- test01();
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;
+}
-// 2000-01-01 bkoz
+// { dg-do compile }
+// 2001-06-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
//
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// 17.4.1.2 Headers, cstring
+// 24.5.1 Template class istream_iterator
-#include <cstring>
+#include <iterator>
+#include <sstream>
+#include <testsuite_hooks.h>
-
-int main(void)
-{
- // Make sure size_t is in namespace std
- std::size_t i __attribute__((unused)) = std::strlen("tibet shop/san francisco (415) 982-0326");
- return 0;
-}
+// Instantiate
+template class std::istream_iterator<char>;
--- /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;
+}
-// 1999-07-01 bkoz
+// { dg-do compile }
+// 1999-06-28 bkoz
-// Copyright (C) 1999 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2001, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// 17.4.1.2 Headers, sstream
+// 24.5.3 template class istreambuf_iterator
#include <sstream>
+#include <iterator>
#include <testsuite_hooks.h>
-
-int main(void)
-{
- return 0;
-}
+template class std::istreambuf_iterator<char>;
{
using namespace std;
- // Check for required base class.
- typedef istreambuf_iterator<char> test_iterator;
- typedef char_traits<char>::off_type off_type;
- typedef iterator<input_iterator_tag, char, off_type, char*, char&> base_iterator;
-
- istringstream isstream("this tag");
- test_iterator r_it(isstream);
- base_iterator* base __attribute__((unused)) = &r_it;
-
// Check for required typedefs
+ typedef istreambuf_iterator<char> test_iterator;
typedef test_iterator::value_type value_type;
typedef test_iterator::difference_type difference_type;
typedef test_iterator::pointer pointer;
--- /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;
+}
-// 2000-01-01 bkoz
+// { dg-do compile }
+// 2001-06-25 Benjamin Kosnik <bkoz@redhat.com>
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2001 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// 17.4.1.2 Headers, cstdio
+// 24.5.4 Template class ostream_iterator
-#include <cstdio>
+#include <iterator>
+#include <ostream>
+#include <sstream>
-int main(void)
-{
- // Make sure size_t is in namespace std
- std::size_t i __attribute__((unused)) = 5;
- return 0;
-}
+// Instantiate
+template class std::ostream_iterator<char>;
+// { dg-do compile }
// 2001-06-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2001 Free Software Foundation, Inc.
{
using namespace std;
- // Check for required base class.
- typedef ostream_iterator<long> test_iterator;
- typedef iterator<output_iterator_tag, void, void, void, void> base_iterator;
- ostringstream osstream("this tag");
- test_iterator r_it(osstream);
- base_iterator* base __attribute__((unused)) = &r_it;
-
// Check for required typedefs
+ typedef ostream_iterator<long> test_iterator;
typedef test_iterator::value_type value_type;
typedef test_iterator::difference_type difference_type;
typedef test_iterator::pointer pointer;
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-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>;
{
using namespace std;
- // Check for required base class.
- typedef ostreambuf_iterator<char> test_iterator;
- typedef iterator<output_iterator_tag, void, void, void, void> base_iterator;
- ostringstream osstream("this tag");
- test_iterator r_it(osstream);
- base_iterator* base __attribute__((unused)) = &r_it;
-
// Check for required typedefs
+ typedef ostreambuf_iterator<char> test_iterator;
typedef test_iterator::value_type value_type;
typedef test_iterator::difference_type difference_type;
typedef test_iterator::pointer pointer;
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();
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*>;
--- /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
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this 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
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this 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>&);
+}
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
+// { dg-do compile }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this 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;
+}
+// { dg-do compile }
// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2003 Free Software Foundation, Inc.
const base_type* base __attribute__((unused)) = &obj;
}
-int main()
-{
- test01();
- return 0;
-}
-
// more surf!!!
+// { 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
#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.
+// { 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
#include <fstream>
-// { dg-do compile }
-
// libstdc++/7216
void test01()
{
-// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
+// { dg-do compile }
+// 2003-03-26 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2003 Free Software Foundation, Inc.
//
const base_type* base __attribute__((unused)) = &obj;
}
-int main()
-{
- test01();
- return 0;
-}
-
// more surf!!!
+// { dg-do compile }
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
#include <testsuite_hooks.h>
#include <testsuite_character.h>
-// { dg-do compile }
-
namespace std
{
using __gnu_test::pod_char;
+// { dg-do compile }
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
#include <fstream>
#include <testsuite_hooks.h>
-// { dg-do compile }
-
// libstdc++/7216
void test01()
{
+// { dg-do compile }
// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2003 Free Software Foundation, Inc.
const base_type* base __attribute__((unused)) = &obj;
}
-int main()
-{
- test01();
- return 0;
-}
-
// more surf!!!
+// { dg-do compile }
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
#include <fstream>
-// { dg-do compile }
-
namespace std
{
typedef short type_t;
+// { dg-do compile }
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2002 Free Software Foundation, Inc.
#include <fstream>
-// { dg-do compile }
-
// libstdc++/7216
void test01()
{
-// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
+// { dg-do compile }
+// 2003-03-26 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2003 Free Software Foundation, Inc.
//
const base_type* base __attribute__((unused)) = &obj;
}
-int main()
-{
- test01();
- return 0;
-}
-
// more surf!!!
+// { dg-do compile }
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
#include <ios>
-// { dg-do compile }
-
namespace std
{
typedef short type_t;
+// { dg-do compile }
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2002 Free Software Foundation, Inc.
#include <ios>
-// { dg-do compile }
-
// libstdc++/7216
void test01()
{
+// { dg-do compile }
// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2003 Free Software Foundation, Inc.
const base_type2* base2 __attribute__((unused)) = &obj;
}
-int main()
-{
- test01();
- return 0;
-}
-
// more surf!!!
+// { dg-do compile }
// 2002-01-08 bkoz
// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
// 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
+// { dg-do compile }
// 2002-01-08 bkoz
// Copyright (C) 2002 Free Software Foundation, Inc.
// 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
+// { dg-do compile }
// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2003 Free Software Foundation, Inc.
const base_type* base __attribute__((unused)) = &obj;
}
-int main()
-{
- test01();
- return 0;
-}
-
// more surf!!!
+// { dg-do compile }
// 1999-09-20 bkoz
// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
#include <testsuite_hooks.h>
#include <testsuite_character.h>
-// { dg-do compile }
-
namespace std
{
using __gnu_test::pod_char;
+// { dg-do compile }
// 1999-09-20 bkoz
// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
#include <istream>
#include <testsuite_hooks.h>
-// { dg-do compile }
-
// libstdc++/7216
void test01()
{
+// { dg-do compile }
// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2003 Free Software Foundation, Inc.
const base_type* base __attribute__((unused)) = &obj;
}
-int main()
-{
- test01();
- return 0;
-}
-
// more surf!!!
+// { dg-do compile }
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
#include <sstream>
-// { dg-do compile }
-
namespace std
{
typedef short type_t;
+// { dg-do compile }
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2002 Free Software Foundation, Inc.
#include <sstream>
-// { dg-do compile }
-
// libstdc++/7216
void test01()
{
+// { dg-do compile }
// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2003 Free Software Foundation, Inc.
const base_type* base __attribute__((unused)) = &obj;
}
-int main()
-{
- test01();
- return 0;
-}
-
// more surf!!!
+// { dg-do compile }
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
#include <fstream>
-// { dg-do compile }
-
namespace std
{
typedef short type_t;
+// { dg-do compile }
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2002 Free Software Foundation, Inc.
#include <fstream>
-// { dg-do compile }
-
// libstdc++/7216
void test01()
{
+// { dg-do compile }
// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2003 Free Software Foundation, Inc.
const base_type* base __attribute__((unused)) = &obj;
}
-int main()
-{
- test01();
- return 0;
-}
-
// more surf!!!
+// { dg-do compile }
// 1999-09-20 bkoz
// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
#include <testsuite_hooks.h>
#include <testsuite_character.h>
-// { dg-do compile }
-
namespace std
{
using __gnu_test::pod_char;
+// { dg-do compile }
// 1999-09-20 bkoz
// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
#include <ostream>
#include <testsuite_hooks.h>
-// { dg-do compile }
-
// libstdc++/7216
void test01()
{
+// { dg-do compile }
// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2003 Free Software Foundation, Inc.
const base_type* base __attribute__((unused)) = &obj;
}
-int main()
-{
- test01();
- return 0;
-}
-
// more surf!!!
+// { dg-do compile }
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
#include <sstream>
-// { dg-do compile }
-
namespace std
{
typedef short type_t;
+// { dg-do compile }
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2002 Free Software Foundation, Inc.
#include <sstream>
-// { dg-do compile }
-
// libstdc++/7216
void test01()
{
+// { dg-do compile }
// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2003 Free Software Foundation, Inc.
const base_type* base __attribute__((unused)) = &obj;
}
-int main()
-{
- test01();
- return 0;
-}
-
// more surf!!!
+// { 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
#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.
+// { dg-do compile }
// 2003-04-07 bkoz
// Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
#include <testsuite_allocator.h>
#include <testsuite_character.h>
-// { dg-do compile }
-
namespace std
{
using __gnu_test::pod_char;
+// { dg-do compile }
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
#include <sstream>
#include <testsuite_hooks.h>
-// { dg-do compile }
-
// libstdc++/7216
void test01()
{
typedef test_type::pos_type pos_type;
typedef test_type::off_type off_type;
}
-
-int main()
-{
- test01();
- return 0;
-}
+// { dg-do compile }
// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2003 Free Software Foundation, Inc.
const base_type* base __attribute__((unused)) = &obj;
}
-int main()
-{
- test01();
- return 0;
-}
-
// more surf!!!
+// { dg-do compile }
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
#include <testsuite_hooks.h>
#include <testsuite_character.h>
-// { dg-do compile }
-
namespace std
{
using __gnu_test::pod_char;
+// { dg-do compile }
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
#include <sstream>
#include <testsuite_hooks.h>
-// { dg-do compile }
-
// libstdc++/7216
void test01()
{
--- /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;
+}
-// 1999-07-01 bkoz
+// { dg-do compile }
-// Copyright (C) 1999 Free Software Foundation, Inc.
+// Copyright (C) 2007 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// 17.4.1.2 Headers, iostream
-
#include <iostream>
-#include <testsuite_hooks.h>
-
-int main(void)
+namespace gnu
{
- return 0;
+ using std::cout;
+ using std::cerr;
+ using std::cin;
+ using std::clog;
+
+ using std::wcout;
+ using std::wcerr;
+ using std::wcin;
+ using std::wclog;
}
--- /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);
+}
-// 1999-07-01 bkoz
+// { dg-do compile }
-// Copyright (C) 1999 Free Software Foundation, Inc.
+// Copyright (C) 2007 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// 17.4.1.2 Headers, istream
-
#include <istream>
-#include <testsuite_hooks.h>
-
-int main(void)
+namespace gnu
{
- return 0;
+ typedef std::istream t1;
+ typedef std::wistream t2;
+
+ typedef std::iostream t3;
+ typedef std::wiostream t4;
}
--- /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);
+}
-// 1999-07-01 bkoz
+// { dg-do compile }
-// Copyright (C) 1999 Free Software Foundation, Inc.
+// Copyright (C) 2007 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// 17.4.1.2 Headers, ostream
-
#include <ostream>
-#include <testsuite_hooks.h>
-
-int main(void)
+namespace gnu
{
- return 0;
+ typedef std::ostream t1;
+ typedef std::wostream t2;
}
--- /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;
+}
-// 2000-01-01 bkoz
+// { dg-do compile }
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2007 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// 17.4.1.2 Headers, ctime
+#include <streambuf>
-#include <ctime>
-
-int main(void)
-{
- // Make sure size_t is in namespace std
- std::size_t i __attribute__((unused)) = 5;
- return 0;
+namespace std {
+ template <class charT, class traits>
+ class basic_streambuf;
+ typedef basic_streambuf<char> streambuf;
+ typedef basic_streambuf<wchar_t> wstreambuf;
}
-// 1999-07-01 bkoz
+// { dg-do compile }
-// Copyright (C) 1999 Free Software Foundation, Inc.
+// Copyright (C) 2007 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// 17.4.1.2 Headers, streambuf
-
#include <streambuf>
-#include <testsuite_hooks.h>
-
-int main(void)
+namespace gnu
{
- return 0;
+ typedef std::streambuf t1;
+ typedef std::wstreambuf t2;
}
// 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 }
+
+// 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
+// { 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 }
+
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this 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 }
+
+// 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
+// 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-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-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-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) 2007 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this 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;
+}