diff options
author | Benjamin Kosnik <bkoz@redhat.com> | 2007-02-20 18:15:01 +0000 |
---|---|---|
committer | Benjamin Kosnik <bkoz@gcc.gnu.org> | 2007-02-20 18:15:01 +0000 |
commit | a024740df47c300e9797ba4ac61f9ec671fa1fd3 (patch) | |
tree | 1d3253cfc7f815a8587de59e1608e83f9797f1aa | |
parent | 32ec65429c2d4b176bccc495682b1b37b3d31b7c (diff) | |
download | gcc-a024740df47c300e9797ba4ac61f9ec671fa1fd3.zip gcc-a024740df47c300e9797ba4ac61f9ec671fa1fd3.tar.gz gcc-a024740df47c300e9797ba4ac61f9ec671fa1fd3.tar.bz2 |
[multiple changes]
2007-02-20 Benjamin Kosnik <bkoz@redhat.com>
Revamp library API testing.
Added:
* 17_intro/headers
* 17_intro/headers/all_assert_neg.cc
* 17_intro/headers/all_c++200x_compatibility.cc
* 17_intro/headers/all.cc
* 17_intro/headers/c++1998
* 17_intro/headers/c++1998/all.cc
* 17_intro/headers/c++1998/all_multiple_inclusion.cc
* 17_intro/headers/c++1998/c++_for_c.tar
* 17_intro/headers/c++1998/c++.tar
* 17_intro/using_namespace_std.cc
* 18_support/headers
* 18_support/headers/cfloat
* 18_support/headers/cfloat/values.cc
* 18_support/headers/climits
* 18_support/headers/climits/values.cc
* 18_support/headers/csetjmp
* 18_support/headers/csetjmp/functions_std.cc
* 18_support/headers/csetjmp/macros.cc
* 18_support/headers/csetjmp/types_std.cc
* 18_support/headers/csignal
* 18_support/headers/csignal/functions_std.cc
* 18_support/headers/csignal/macros.cc
* 18_support/headers/csignal/types_std.cc
* 18_support/headers/cstdarg
* 18_support/headers/cstdarg/macros.cc
* 18_support/headers/cstdarg/types_std.cc
* 18_support/headers/cstddef
* 18_support/headers/cstddef/macros.cc
* 18_support/headers/cstddef/types_std.cc
* 18_support/headers/cstdlib
* 18_support/headers/cstdlib/functions_std.cc
* 18_support/headers/cstdlib/macros.cc
* 18_support/headers/ctime
* 18_support/headers/ctime/functions_std.cc
* 18_support/headers/ctime/macros.cc
* 18_support/headers/ctime/types_std.cc
* 18_support/headers/exception
* 18_support/headers/exception/synopsis.cc
* 18_support/headers/exception/types_std.cc
* 18_support/headers/limits
* 18_support/headers/limits/synopsis.cc
* 18_support/headers/new
* 18_support/headers/new/synopsis.cc
* 18_support/headers/new/types_std.cc
* 18_support/headers/typeinfo
* 18_support/headers/typeinfo/synopsis.cc
* 18_support/headers/typeinfo/types_std.cc
* 18_support/numeric_limits/is_signed.cc
* 18_support/numeric_limits/requirements
* 18_support/numeric_limits/requirements/explicit_instantiation
* 18_support/numeric_limits/requirements/explicit_instantiation/1.cc
* 18_support/numeric_limits/specialization_default_values.cc
* 19_diagnostics/headers
* 19_diagnostics/headers/cassert
* 19_diagnostics/headers/cassert/macros.cc
* 19_diagnostics/headers/cerrno
* 19_diagnostics/headers/cerrno/macros.cc
* 19_diagnostics/headers/stdexcept
* 19_diagnostics/headers/stdexcept/synopsis.cc
* 19_diagnostics/headers/stdexcept/types_std.cc
* 20_util/headers
* 20_util/headers/cstdlib
* 20_util/headers/cstdlib/functions_std.cc
* 20_util/headers/cstring
* 20_util/headers/cstring/functions_std.cc
* 20_util/headers/cstring/macros.cc
* 20_util/headers/cstring/types_std.cc
* 20_util/headers/ctime
* 20_util/headers/ctime/functions_std.cc
* 20_util/headers/ctime/macros.cc
* 20_util/headers/ctime/types_std.cc
* 20_util/headers/functional
* 20_util/headers/functional/synopsis.cc
* 20_util/headers/memory
* 20_util/headers/memory/synopsis.cc
* 20_util/headers/utility
* 20_util/headers/utility/synopsis.cc
* 20_util/headers/utility/using_namespace_std_rel_ops.cc
* 20_util/memory/allocator/requirements
* 20_util/memory/allocator/requirements/explicit_instantiation
* 20_util/memory/allocator/requirements/explicit_instantiation/1.cc
* 20_util/memory/auto_ptr/requirements
* 20_util/memory/auto_ptr/requirements/explicit_instantiation
* 20_util/memory/auto_ptr/requirements/explicit_instantiation/1.cc
* 20_util/memory/raw_storage_iterator
* 20_util/memory/raw_storage_iterator/requirements
* 20_util/memory/raw_storage_iterator/requirements/base_classes.cc
* 20_util/memory/raw_storage_iterator/requirements/
explicit_instantiation
* 20_util/memory/raw_storage_iterator/requirements/
explicit_instantiation/1.cc
* 20_util/memory/raw_storage_iterator/requirements/typedefs.cc
* 20_util/utility/pair/requirements
* 20_util/utility/pair/requirements/explicit_instantiation
* 20_util/utility/pair/requirements/explicit_instantiation/1.cc
* 21_strings/basic_string/requirements
* 21_strings/basic_string/requirements/explicit_instantiation
* 21_strings/basic_string/requirements/explicit_instantiation/1.cc
* 21_strings/basic_string/requirements/explicit_instantiation/debug.cc
* 21_strings/headers
* 21_strings/headers/cctype
* 21_strings/headers/cctype/functions_std.cc
* 21_strings/headers/cstdlib
* 21_strings/headers/cstdlib/functions_std.cc
* 21_strings/headers/cstdlib/macros.cc
* 21_strings/headers/cstring
* 21_strings/headers/cstring/functions_std.cc
* 21_strings/headers/cstring/macros.cc
* 21_strings/headers/cstring/types_std.cc
* 21_strings/headers/cwchar
* 21_strings/headers/cwchar/functions_std.cc
* 21_strings/headers/cwchar/macros.cc
* 21_strings/headers/cwchar/types_std.cc
* 21_strings/headers/cwctype
* 21_strings/headers/cwctype/functions_std.cc
* 21_strings/headers/cwctype/macros.cc
* 21_strings/headers/cwctype/types_std.cc
* 21_strings/headers/string
* 21_strings/headers/string/synopsis.cc
* 21_strings/headers/string/types_std.cc
* 22_locale/codecvt_byname/requirements
* 22_locale/codecvt_byname/requirements/base_classes.cc
* 22_locale/codecvt_byname/requirements/explicit_instantiation.cc
* 22_locale/codecvt_byname/requirements/typedefs.cc
* 22_locale/codecvt/requirements
* 22_locale/codecvt/requirements/base_classes.cc
* 22_locale/codecvt/requirements/explicit_instantiation.cc
* 22_locale/codecvt/requirements/typedefs.cc
* 22_locale/collate_byname/requirements
* 22_locale/collate_byname/requirements/base_classes.cc
* 22_locale/collate_byname/requirements/explicit_instantiation.cc
* 22_locale/collate_byname/requirements/typedefs.cc
* 22_locale/collate/requirements
* 22_locale/collate/requirements/base_classes.cc
* 22_locale/collate/requirements/explicit_instantiation.cc
* 22_locale/collate/requirements/typedefs.cc
* 22_locale/ctype_base/mask.cc
* 22_locale/ctype/requirements
* 22_locale/ctype/requirements/base_classes.cc
* 22_locale/ctype/requirements/explicit_instantiation.cc
* 22_locale/ctype/requirements/typedefs.cc
* 22_locale/headers
* 22_locale/headers/clocale
* 22_locale/headers/clocale/functions_std.cc
* 22_locale/headers/clocale/macros.cc
* 22_locale/headers/clocale/types_std.cc
* 22_locale/headers/locale
* 22_locale/headers/locale/synopsis.cc
* 22_locale/headers/locale/types_std.cc
* 22_locale/messages_byname/requirements
* 22_locale/messages_byname/requirements/base_classes.cc
* 22_locale/messages_byname/requirements/explicit_instantiation.cc
* 22_locale/messages_byname/requirements/typedefs.cc
* 22_locale/messages/requirements
* 22_locale/messages/requirements/base_classes.cc
* 22_locale/messages/requirements/explicit_instantiation.cc
* 22_locale/messages/requirements/typedefs.cc
* 22_locale/money_get/cons
* 22_locale/money_get/cons/3.cc
* 22_locale/money_get/requirements
* 22_locale/money_get/requirements/base_classes.cc
* 22_locale/money_get/requirements/explicit_instantiations.cc
* 22_locale/money_get/requirements/typedefs.cc
* 22_locale/moneypunct_byname/requirements
* 22_locale/moneypunct_byname/requirements/base_classes.cc
* 22_locale/moneypunct_byname/requirements/explicit_instantiation.cc
* 22_locale/moneypunct_byname/requirements/typedefs.cc
* 22_locale/moneypunct/requirements
* 22_locale/moneypunct/requirements/false
* 22_locale/moneypunct/requirements/false/base_classes.cc
* 22_locale/moneypunct/requirements/false/explicit_instantiation.cc
* 22_locale/moneypunct/requirements/false/intl.cc
* 22_locale/moneypunct/requirements/false/typedefs.cc
* 22_locale/moneypunct/requirements/true
* 22_locale/moneypunct/requirements/true/base_classes.cc
* 22_locale/moneypunct/requirements/true/explicit_instantiation.cc
* 22_locale/moneypunct/requirements/true/intl.cc
* 22_locale/moneypunct/requirements/true/typedefs.cc
* 22_locale/money_put/cons
* 22_locale/money_put/cons/3.cc
* 22_locale/money_put/requirements
* 22_locale/money_put/requirements/base_classes.cc
* 22_locale/money_put/requirements/explicit_instantiation.cc
* 22_locale/money_put/requirements/typedefs.cc
* 22_locale/num_get/cons
* 22_locale/num_get/cons/3.cc
* 22_locale/num_get/requirements
* 22_locale/num_get/requirements/base_classes.cc
* 22_locale/num_get/requirements/explicit_instantiation.cc
* 22_locale/num_get/requirements/typedefs.cc
* 22_locale/numpunct_byname/requirements
* 22_locale/numpunct_byname/requirements/base_classes.cc
* 22_locale/numpunct_byname/requirements/explicit_instantiations.cc
* 22_locale/numpunct_byname/requirements/typedefs.cc
* 22_locale/numpunct/requirements
* 22_locale/numpunct/requirements/base_classes.cc
* 22_locale/numpunct/requirements/explicit_instantiations.cc
* 22_locale/numpunct/requirements/typedefs.cc
* 22_locale/num_put/cons
* 22_locale/num_put/cons/3.cc
* 22_locale/num_put/requirements
* 22_locale/num_put/requirements/base_classes.cc
* 22_locale/num_put/requirements/explicit_instantiations.cc
* 22_locale/num_put/requirements/typedefs.cc
* 22_locale/time_get/requirements
* 22_locale/time_get/requirements/base_classes.cc
* 22_locale/time_get/requirements/explicit_instantiations.cc
* 22_locale/time_get/requirements/typedefs.cc
* 22_locale/time_put/requirements
* 22_locale/time_put/requirements/base_classes.cc
* 22_locale/time_put/requirements/explicit_instantiations.cc
* 22_locale/time_put/requirements/typedefs.cc
* 23_containers/bitset/requirements
* 23_containers/bitset/requirements/explicit_instantiation
* 23_containers/bitset/requirements/explicit_instantiation/1.cc
* 23_containers/deque/requirements
* 23_containers/deque/requirements/explicit_instantiation
* 23_containers/deque/requirements/partial_specialization
* 23_containers/deque/requirements/partial_specialization/1.cc
* 23_containers/headers
* 23_containers/headers/bitset
* 23_containers/headers/bitset/synopsis.cc
* 23_containers/headers/deque
* 23_containers/headers/deque/synopsis.cc
* 23_containers/headers/list
* 23_containers/headers/list/synopsis.cc
* 23_containers/headers/map
* 23_containers/headers/map/synopsis.cc
* 23_containers/headers/queue
* 23_containers/headers/queue/synopsis.cc
* 23_containers/headers/set
* 23_containers/headers/set/synopsis.cc
* 23_containers/headers/stack
* 23_containers/headers/stack/synopsis.cc
* 23_containers/headers/vector
* 23_containers/headers/vector/synopsis.cc
* 23_containers/list/requirements
* 23_containers/list/requirements/explicit_instantiation
* 23_containers/list/requirements/partial_specialization
* 23_containers/list/requirements/partial_specialization/1.cc
* 23_containers/map/requirements
* 23_containers/map/requirements/explicit_instantiation
* 23_containers/map/requirements/partial_specialization
* 23_containers/map/requirements/partial_specialization/1.cc
* 23_containers/multimap/requirements
* 23_containers/multimap/requirements/explicit_instantiation
* 23_containers/multimap/requirements/partial_specialization
* 23_containers/multimap/requirements/partial_specialization/1.cc
* 23_containers/multiset/requirements
* 23_containers/multiset/requirements/explicit_instantiation
* 23_containers/multiset/requirements/partial_specialization
* 23_containers/multiset/requirements/partial_specialization/1.cc
* 23_containers/priority_queue/requirements
* 23_containers/priority_queue/requirements/explicit_instantiation
* 23_containers/priority_queue/requirements/explicit_instantiation/1.cc
* 23_containers/queue/requirements
* 23_containers/queue/requirements/explicit_instantiation
* 23_containers/queue/requirements/explicit_instantiation/1.cc
* 23_containers/set/requirements
* 23_containers/set/requirements/explicit_instantiation
* 23_containers/set/requirements/partial_specialization
* 23_containers/set/requirements/partial_specialization/1.cc
* 23_containers/stack/requirements
* 23_containers/stack/requirements/explicit_instantiation
* 23_containers/stack/requirements/explicit_instantiation/1.cc
* 23_containers/vector/requirements
* 23_containers/vector/requirements/explicit_instantiation
* 23_containers/vector/requirements/partial_specialization
* 23_containers/vector/requirements/partial_specialization/1.cc
* 24_iterators/back_insert_iterator
* 24_iterators/back_insert_iterator/2.cc
* 24_iterators/back_insert_iterator/requirements
* 24_iterators/back_insert_iterator/requirements/base_classes.cc
* 24_iterators/back_insert_iterator/requirements/container.cc
* 24_iterators/back_insert_iterator/requirements/
explicit_instantiation.cc
* 24_iterators/back_insert_iterator/requirements/typedefs.cc
* 24_iterators/front_insert_iterator
* 24_iterators/front_insert_iterator/2.cc
* 24_iterators/front_insert_iterator/requirements
* 24_iterators/front_insert_iterator/requirements/base_classes.cc
* 24_iterators/front_insert_iterator/requirements/container.cc
* 24_iterators/front_insert_iterator/requirements/
explicit_instantiation.cc
* 24_iterators/front_insert_iterator/requirements/typedefs.cc
* 24_iterators/headers
* 24_iterators/headers/iterator
* 24_iterators/headers/iterator/synopsis.cc
* 24_iterators/headers/iterator/types_std.cc
* 24_iterators/insert_iterator
* 24_iterators/insert_iterator/2.cc
* 24_iterators/insert_iterator/requirements
* 24_iterators/insert_iterator/requirements/base_classes.cc
* 24_iterators/insert_iterator/requirements/container.cc
* 24_iterators/insert_iterator/requirements/explicit_instantiation.cc
* 24_iterators/insert_iterator/requirements/typedefs.cc
* 24_iterators/istreambuf_iterator/requirements
* 24_iterators/istreambuf_iterator/requirements/base_classes.cc
* 24_iterators/istreambuf_iterator/requirements/
explicit_instantiation.cc
* 24_iterators/istreambuf_iterator/requirements/typedefs.cc
* 24_iterators/istream_iterator
* 24_iterators/istream_iterator/2.cc
* 24_iterators/istream_iterator/requirements
* 24_iterators/istream_iterator/requirements/base_classes.cc
* 24_iterators/istream_iterator/requirements/explicit_instantiation.cc
* 24_iterators/istream_iterator/requirements/typedefs.cc
* 24_iterators/ostreambuf_iterator/requirements
* 24_iterators/ostreambuf_iterator/requirements/base_classes.cc
* 24_iterators/ostreambuf_iterator/requirements/
explicit_instantiation.cc
* 24_iterators/ostreambuf_iterator/requirements/typedefs.cc
* 24_iterators/ostream_iterator
* 24_iterators/ostream_iterator/requirements
* 24_iterators/ostream_iterator/requirements/base_classes.cc
* 24_iterators/ostream_iterator/requirements/explicit_instantiation.cc
* 24_iterators/ostream_iterator/requirements/typedefs.cc
* 24_iterators/random_access_iterator
* 24_iterators/random_access_iterator/26020.cc
* 24_iterators/random_access_iterator/string_vector_iterators.cc
* 24_iterators/reverse_iterator/requirements
* 24_iterators/reverse_iterator/requirements/base_classes.cc
* 24_iterators/reverse_iterator/requirements/current.cc
* 24_iterators/reverse_iterator/requirements/explicit_instantiation.cc
* 24_iterators/reverse_iterator/requirements/typedefs.cc
* 25_algorithms/headers
* 25_algorithms/headers/algorithm
* 25_algorithms/headers/algorithm/synopsis.cc
* 25_algorithms/headers/cstdlib
* 25_algorithms/headers/cstdlib/functions_std.cc
* 26_numerics/headers
* 26_numerics/headers/cmath
* 26_numerics/headers/cmath/19322.cc
* 26_numerics/headers/cmath/c99_classification_macros_c.cc
* 26_numerics/headers/cmath/c99_classification_macros_c++.cc
* 26_numerics/headers/cmath/c_math.cc
* 26_numerics/headers/cmath/c_math_dynamic.cc
* 26_numerics/headers/cmath/fabs_inline.cc
* 26_numerics/headers/cmath/functions_std.cc
* 26_numerics/headers/cmath/macros.cc
* 26_numerics/headers/cmath/overloads.cc
* 26_numerics/headers/cmath/powi.cc
* 26_numerics/headers/complex
* 26_numerics/headers/complex/synopsis.cc
* 26_numerics/headers/cstdlib
* 26_numerics/headers/cstdlib/13943.cc
* 26_numerics/headers/cstdlib/2190.cc
* 26_numerics/headers/cstdlib/functions_std.cc
* 26_numerics/headers/cstdlib/macros.cc
* 26_numerics/headers/cstdlib/types_std.cc
* 26_numerics/headers/numeric
* 26_numerics/headers/numeric/synopsis.cc
* 26_numerics/headers/valarray
* 26_numerics/headers/valarray/synopsis.cc
* 26_numerics/headers/valarray/types_std.cc
* 26_numerics/numeric_arrays
* 26_numerics/numeric_operations
* 27_io/basic_filebuf/cons/2020.cc
* 27_io/basic_filebuf/requirements
* 27_io/basic_filebuf/requirements/base_classes.cc
* 27_io/basic_filebuf/requirements/explicit_instantiation.cc
* 27_io/basic_filebuf/requirements/typedefs.cc
* 27_io/basic_fstream/cons
* 27_io/basic_fstream/cons/3.cc
* 27_io/basic_fstream/requirements
* 27_io/basic_fstream/requirements/base_classes.cc
* 27_io/basic_fstream/requirements/explicit_instantiation.cc
* 27_io/basic_fstream/requirements/typedefs.cc
* 27_io/basic_ifstream/cons/2020.cc
* 27_io/basic_ifstream/requirements
* 27_io/basic_ifstream/requirements/base_classes.cc
* 27_io/basic_ifstream/requirements/explicit_instantiation.cc
* 27_io/basic_ifstream/requirements/typedefs.cc
* 27_io/basic_ios/cons/2020.cc
* 27_io/basic_ios/requirements
* 27_io/basic_ios/requirements/base_classes.cc
* 27_io/basic_ios/requirements/explicit_instantiation.cc
* 27_io/basic_ios/requirements/typedefs.cc
* 27_io/basic_iostream/cons
* 27_io/basic_iostream/cons/2020.cc
* 27_io/basic_iostream/requirements
* 27_io/basic_iostream/requirements/base_classes.cc
* 27_io/basic_iostream/requirements/explicit_instantiation.cc
* 27_io/basic_iostream/requirements/typedefs.cc
* 27_io/basic_istream/cons
* 27_io/basic_istream/cons/3.cc
* 27_io/basic_istream/requirements
* 27_io/basic_istream/requirements/base_classes.cc
* 27_io/basic_istream/requirements/explicit_instantiation.cc
* 27_io/basic_istream/requirements/typedefs.cc
* 27_io/basic_istringstream/cons
* 27_io/basic_istringstream/cons/2020.cc
* 27_io/basic_istringstream/requirements
* 27_io/basic_istringstream/requirements/base_classes.cc
* 27_io/basic_istringstream/requirements/explicit_instantiation.cc
* 27_io/basic_istringstream/requirements/typedefs.cc
* 27_io/basic_ofstream/cons/2020.cc
* 27_io/basic_ofstream/requirements
* 27_io/basic_ofstream/requirements/base_classes.cc
* 27_io/basic_ofstream/requirements/explicit_instantiations.cc
* 27_io/basic_ofstream/requirements/typedefs.cc
* 27_io/basic_ostream/cons/2020.cc
* 27_io/basic_ostream/requirements
* 27_io/basic_ostream/requirements/base_classes.cc
* 27_io/basic_ostream/requirements/explicit_instantiation.cc
* 27_io/basic_ostream/requirements/typedefs.cc
* 27_io/basic_ostringstream/cons/2020.cc
* 27_io/basic_ostringstream/requirements
* 27_io/basic_ostringstream/requirements/base_classes.cc
* 27_io/basic_ostringstream/requirements/explicit_instantiation.cc
* 27_io/basic_ostringstream/requirements/typedefs.cc
* 27_io/basic_streambuf/cons/2020.cc
* 27_io/basic_streambuf/requirements
* 27_io/basic_streambuf/requirements/base_classes.cc
* 27_io/basic_streambuf/requirements/typedefs.cc
* 27_io/basic_stringbuf/cons/2020.cc
* 27_io/basic_stringbuf/requirements
* 27_io/basic_stringbuf/requirements/base_classes.cc
* 27_io/basic_stringbuf/requirements/explicit_instantiation
* 27_io/basic_stringbuf/requirements/explicit_instantiation/2.cc
* 27_io/basic_stringbuf/requirements/explicit_instantiation/4.cc
* 27_io/basic_stringbuf/requirements/typedefs.cc
* 27_io/basic_stringstream/cons
* 27_io/basic_stringstream/cons/2020.cc
* 27_io/basic_stringstream/requirements
* 27_io/basic_stringstream/requirements/base_classes.cc
* 27_io/basic_stringstream/requirements/explicit_instantiation.cc
* 27_io/basic_stringstream/requirements/typedefs.cc
* 27_io/fpos/requirements
* 27_io/fpos/requirements/explicit_instantiation.cc
* 27_io/headers
* 27_io/headers/cstdio
* 27_io/headers/cstdio/functions_std.cc
* 27_io/headers/cstdio/macros.cc
* 27_io/headers/cstdio/types_std.cc
* 27_io/headers/cstdlib
* 27_io/headers/fstream
* 27_io/headers/fstream/synopsis.cc
* 27_io/headers/fstream/types_std.cc
* 27_io/headers/iomanip
* 27_io/headers/iomanip/synopsis.cc
* 27_io/headers/ios
* 27_io/headers/ios/synopsis.cc
* 27_io/headers/iostream
* 27_io/headers/iostream/synopsis.cc
* 27_io/headers/iostream/types_std.cc
* 27_io/headers/ios/types_std.cc
* 27_io/headers/istream
* 27_io/headers/istream/synopsis.cc
* 27_io/headers/istream/types_std.cc
* 27_io/headers/ostream
* 27_io/headers/ostream/synopsis.cc
* 27_io/headers/ostream/types_std.cc
* 27_io/headers/sstream
* 27_io/headers/sstream/synopsis.cc
* 27_io/headers/sstream/types_std.cc
* 27_io/headers/streambuf
* 27_io/headers/streambuf/synopsis.cc
* 27_io/headers/streambuf/types_std.cc
* ext/debug_allocator/explicit_instantiation.cc
* ext/hash_map/requirements
* ext/hash_map/requirements/explicit_instantiation.cc
* ext/hash_set/requirements
* ext/hash_set/requirements/explicit_instantiation.cc
* ext/malloc_allocator/explicit_instantiation.cc
* ext/mt_allocator/explicit_instantiation.cc
* ext/pool_allocator/explicit_instantiation.cc
* ext/slist/requirements
* ext/slist/requirements/explicit_instantiation.cc
* ext/stdio_filebuf/requirements
* ext/stdio_filebuf/requirements/explicit_instantiation.cc
* ext/vstring/requirements
* ext/vstring/requirements/explicit_instantiation
* tr1/2_general_utilities/headers
* tr1/2_general_utilities/headers/functional
* tr1/2_general_utilities/headers/functional/synopsis.cc
* tr1/2_general_utilities/headers/memory
* tr1/2_general_utilities/headers/memory/synopsis.cc
* tr1/2_general_utilities/headers/memory/types_std_tr1.cc
* tr1/2_general_utilities/memory/enable_shared_from_this/requirements
* tr1/2_general_utilities/memory/enable_shared_from_this/
requirements/explicit_instantiation
* tr1/2_general_utilities/memory/shared_ptr/requirements
* tr1/2_general_utilities/memory/shared_ptr/requirements/
explicit_instantiation
* tr1/2_general_utilities/memory/weak_ptr/requirements
* tr1/2_general_utilities/memory/weak_ptr/requirements/
explicit_instantiation
* tr1/3_function_objects/headers
* tr1/3_function_objects/headers/functional
* tr1/3_function_objects/headers/functional/synopsis.cc
* tr1/3_function_objects/headers/functional/types_std_tr1.cc
* tr1/3_function_objects/headers/functional/
using_namespace_std_tr1_placeholders.cc
* tr1/4_metaprogramming/headers
* tr1/4_metaprogramming/headers/type_traits
* tr1/4_metaprogramming/headers/type_traits/synopsis.cc
* tr1/4_metaprogramming/headers/type_traits/types_std_tr1.cc
* tr1/5_numerical_facilities/headers
* tr1/5_numerical_facilities/headers/random
* tr1/5_numerical_facilities/headers/random/synopsis.cc
* tr1/5_numerical_facilities/headers/random/types_std_tr1.cc
* tr1/5_numerical_facilities/random/discard_block/
requirements/typedefs.cc
* tr1/6_containers/array/requirements/explicit_instantiation.cc
* tr1/6_containers/hash
* tr1/6_containers/hash/requirements
* tr1/6_containers/hash/requirements/base_classes.cc
* tr1/6_containers/hash/requirements/explicit_instantiation.cc
* tr1/6_containers/headers
* tr1/6_containers/headers/array
* tr1/6_containers/headers/array/synopsis.cc
* tr1/6_containers/headers/functional
* tr1/6_containers/headers/functional/synopsis.cc
* tr1/6_containers/headers/tuple
* tr1/6_containers/headers/tuple/synopsis.cc
* tr1/6_containers/headers/tuple/types_std_tr1.cc
* tr1/6_containers/headers/unordered_map
* tr1/6_containers/headers/unordered_map/synopsis.cc
* tr1/6_containers/headers/unordered_set
* tr1/6_containers/headers/unordered_set/synopsis.cc
* tr1/6_containers/tuple/requirements
* tr1/6_containers/tuple/requirements/explicit_instantiation.cc
* tr1/6_containers/unordered_map
* tr1/6_containers/unordered_map/24064.cc
* tr1/6_containers/unordered_map/capacity
* tr1/6_containers/unordered_map/capacity/29134-map.cc
* tr1/6_containers/unordered_map/erase
* tr1/6_containers/unordered_map/erase/24061-map.cc
* tr1/6_containers/unordered_map/find
* tr1/6_containers/unordered_map/find/map1.cc
* tr1/6_containers/unordered_map/insert
* tr1/6_containers/unordered_map/insert/24061-map.cc
* tr1/6_containers/unordered_map/insert/array_syntax.cc
* tr1/6_containers/unordered_map/insert/map_range.cc
* tr1/6_containers/unordered_map/insert/map_single.cc
* tr1/6_containers/unordered_map/requirements
* tr1/6_containers/unordered_map/requirements/explicit_instantiation.cc
* tr1/6_containers/unordered_map/requirements/iterator_neg.cc
* tr1/6_containers/unordered_map/requirements/iterator_null_neg.cc
* tr1/6_containers/unordered_map/swap
* tr1/6_containers/unordered_map/swap/1.cc
* tr1/6_containers/unordered_map/swap/2.cc
* tr1/6_containers/unordered_multimap
* tr1/6_containers/unordered_multimap/capacity
* tr1/6_containers/unordered_multimap/capacity/29134-multimap.cc
* tr1/6_containers/unordered_multimap/erase
* tr1/6_containers/unordered_multimap/erase/24061-multimap.cc
* tr1/6_containers/unordered_multimap/find
* tr1/6_containers/unordered_multimap/find/multimap1.cc
* tr1/6_containers/unordered_multimap/insert
* tr1/6_containers/unordered_multimap/insert/24061-multimap.cc
* tr1/6_containers/unordered_multimap/insert/multimap_range.cc
* tr1/6_containers/unordered_multimap/insert/multimap_single.cc
* tr1/6_containers/unordered_multimap/requirements
* tr1/6_containers/unordered_multimap/requirements/
explicit_instantiation.cc
* tr1/6_containers/unordered_multimap/requirements/iterator_neg.cc
* tr1/6_containers/unordered_multimap/requirements/iterator_null_neg.cc
* tr1/6_containers/unordered_multimap/swap
* tr1/6_containers/unordered_multimap/swap/1.cc
* tr1/6_containers/unordered_multimap/swap/2.cc
* tr1/6_containers/unordered_multiset
* tr1/6_containers/unordered_multiset/24054.cc
* tr1/6_containers/unordered_multiset/capacity
* tr1/6_containers/unordered_multiset/capacity/29134-multiset.cc
* tr1/6_containers/unordered_multiset/erase
* tr1/6_containers/unordered_multiset/erase/24061-multiset.cc
* tr1/6_containers/unordered_multiset/find
* tr1/6_containers/unordered_multiset/find/multiset1.cc
* tr1/6_containers/unordered_multiset/insert
* tr1/6_containers/unordered_multiset/insert/24061-multiset.cc
* tr1/6_containers/unordered_multiset/insert/multiset_range.cc
* tr1/6_containers/unordered_multiset/insert/multiset_single.cc
* tr1/6_containers/unordered_multiset/requirements
* tr1/6_containers/unordered_multiset/requirements/
explicit_instantiation.cc
* tr1/6_containers/unordered_multiset/requirements/iterator_neg.cc
* tr1/6_containers/unordered_multiset/requirements/iterator_null_neg.cc
* tr1/6_containers/unordered_multiset/swap
* tr1/6_containers/unordered_multiset/swap/1.cc
* tr1/6_containers/unordered_multiset/swap/2.cc
* tr1/6_containers/unordered_set
* tr1/6_containers/unordered_set/23053.cc
* tr1/6_containers/unordered_set/23465.cc
* tr1/6_containers/unordered_set/26127.cc
* tr1/6_containers/unordered_set/26132.cc
* tr1/6_containers/unordered_set/capacity
* tr1/6_containers/unordered_set/capacity/29134-set.cc
* tr1/6_containers/unordered_set/erase
* tr1/6_containers/unordered_set/erase/24061-set.cc
* tr1/6_containers/unordered_set/find
* tr1/6_containers/unordered_set/find/set1.cc
* tr1/6_containers/unordered_set/insert
* tr1/6_containers/unordered_set/insert/24061-set.cc
* tr1/6_containers/unordered_set/insert/set_range.cc
* tr1/6_containers/unordered_set/insert/set_single.cc
* tr1/6_containers/unordered_set/requirements
* tr1/6_containers/unordered_set/requirements/explicit_instantiation.cc
* tr1/6_containers/unordered_set/requirements/iterator_neg.cc
* tr1/6_containers/unordered_set/requirements/iterator_null_neg.cc
* tr1/6_containers/unordered_set/requirements/
iterators_default_constructor.cc
* tr1/6_containers/unordered_set/swap
* tr1/6_containers/unordered_set/swap/1.cc
* tr1/6_containers/unordered_set/swap/2.cc
* tr1/using_namespace_std_tr1.cc
Deleted:
* 17_intro/header_cassert.cc
* 17_intro/header_cerrno.cc
* 17_intro/header_csetjmp.cc
* 17_intro/header_cstdarg.cc
* 17_intro/header_cstddef.cc
* 17_intro/header_cstdio.cc
* 17_intro/header_cstdlib.cc
* 17_intro/header_cstring.cc
* 17_intro/header_ctime.cc
* 17_intro/header_cwchar.cc
* 17_intro/header_cwctype.cc
* 17_intro/header_fstream.cc
* 17_intro/header_iomanip.cc
* 17_intro/header_ios.cc
* 17_intro/header_iosfwd.cc
* 17_intro/header_iostream.cc
* 17_intro/header_istream.cc
* 17_intro/header_ostream.cc
* 17_intro/headers.cc
* 17_intro/headers_c++_c++0x_compat.cc
* 17_intro/headers_c.cc
* 17_intro/headers_c++.cc
* 17_intro/header_sstream.cc
* 17_intro/header_streambuf.cc
* 17_intro/no_assert_neg.cc
* 18_support/numeric_limits/sign.cc
* 18_support/numeric_limits/specialization.cc
* 20_util/memory/raw_storage_iterator.cc
* 21_strings/basic_string/1.cc
* 21_strings/basic_string/2.cc
* 22_locale/codecvt/1.cc
* 22_locale/codecvt/2.cc
* 22_locale/codecvt_byname/1.cc
* 22_locale/collate/1.cc
* 22_locale/collate/2.cc
* 22_locale/collate_byname/1.cc
* 22_locale/ctype/1.cc
* 22_locale/ctype_base/1.cc
* 22_locale/messages/1.cc
* 22_locale/messages/2.cc
* 22_locale/messages_byname/1.cc
* 22_locale/money_get/1.cc
* 22_locale/money_get/2.cc
* 22_locale/money_get/3.cc
* 22_locale/moneypunct/1.cc
* 22_locale/moneypunct/2.cc
* 22_locale/moneypunct/3.cc
* 22_locale/moneypunct_byname/1.cc
* 22_locale/money_put/1.cc
* 22_locale/money_put/2.cc
* 22_locale/money_put/3.cc
* 22_locale/num_get/1.cc
* 22_locale/num_get/2.cc
* 22_locale/num_get/3.cc
* 22_locale/numpunct/1.cc
* 22_locale/numpunct/2.cc
* 22_locale/numpunct_byname/1.cc
* 22_locale/num_put/1.cc
* 22_locale/num_put/2.cc
* 22_locale/num_put/3.cc
* 22_locale/time_get/1.cc
* 22_locale/time_get/2.cc
* 22_locale/time_put/1.cc
* 22_locale/time_put/2.cc
* 23_containers/deque/1.cc
* 23_containers/deque/explicit_instantiation
* 23_containers/deque/explicit_instantiation/1.cc
* 23_containers/deque/explicit_instantiation/2.cc
* 23_containers/deque/explicit_instantiation/3.cc
* 23_containers/list/1.cc
* 23_containers/list/explicit_instantiation
* 23_containers/list/explicit_instantiation/1.cc
* 23_containers/list/explicit_instantiation/2.cc
* 23_containers/list/explicit_instantiation/3.cc
* 23_containers/map/1.cc
* 23_containers/map/explicit_instantiation
* 23_containers/map/explicit_instantiation/1.cc
* 23_containers/map/explicit_instantiation/2.cc
* 23_containers/map/explicit_instantiation/3.cc
* 23_containers/multimap/1.cc
* 23_containers/multimap/explicit_instantiation
* 23_containers/multimap/explicit_instantiation/1.cc
* 23_containers/multimap/explicit_instantiation/2.cc
* 23_containers/multimap/explicit_instantiation/3.cc
* 23_containers/multiset/1.cc
* 23_containers/multiset/explicit_instantiation
* 23_containers/multiset/explicit_instantiation/1.cc
* 23_containers/multiset/explicit_instantiation/2.cc
* 23_containers/multiset/explicit_instantiation/3.cc
* 23_containers/set/1.cc
* 23_containers/set/explicit_instantiation
* 23_containers/set/explicit_instantiation/1.cc
* 23_containers/set/explicit_instantiation/2.cc
* 23_containers/set/explicit_instantiation/3.cc
* 23_containers/vector/1.cc
* 23_containers/vector/explicit_instantiation
* 23_containers/vector/explicit_instantiation/1.cc
* 23_containers/vector/explicit_instantiation/2.cc
* 23_containers/vector/explicit_instantiation/3.cc
* 24_iterators/26020.cc
* 24_iterators/back_insert_iterator.cc
* 24_iterators/front_insert_iterator.cc
* 24_iterators/insert_iterator.cc
* 24_iterators/istreambuf_iterator/1.cc
* 24_iterators/istream_iterator.cc
* 24_iterators/iterator.cc
* 24_iterators/ostreambuf_iterator/1.cc
* 24_iterators/ostream_iterator.cc
* 24_iterators/reverse_iterator/1.cc
* 26_numerics/cmath
* 26_numerics/cmath/19322.cc
* 26_numerics/cmath/c99_classification_macros_c.cc
* 26_numerics/cmath/c99_classification_macros_c++.cc
* 26_numerics/cmath/c_math.cc
* 26_numerics/cmath/c_math_dynamic.cc
* 26_numerics/cmath/fabs_inline.cc
* 26_numerics/cmath/overloads.cc
* 26_numerics/cmath/powi.cc
* 26_numerics/cstdlib
* 26_numerics/cstdlib/13943.cc
* 26_numerics/numeric
* 26_numerics/numeric/sum_diff.cc
* 26_numerics/valarray
* 26_numerics/valarray/27867.cc
* 26_numerics/valarray/28277.cc
* 26_numerics/valarray/30416.cc
* 26_numerics/valarray/binary_closure.cc
* 26_numerics/valarray/dr543.cc
* 26_numerics/valarray/slice_array_assignment.cc
* 26_numerics/valarray/slice.cc
* 26_numerics/valarray/valarray.cc
* 26_numerics/valarray/valarray_const_bracket.cc
* 26_numerics/valarray/valarray_name_lookup.cc
* 26_numerics/valarray/valarray_operators.cc
* 26_numerics/valarray/valarray_subset_assignment.cc
* 27_io/basic_filebuf/1.cc
* 27_io/basic_filebuf/2.cc
* 27_io/basic_filebuf/3.cc
* 27_io/basic_filebuf/4.cc
* 27_io/basic_fstream/1.cc
* 27_io/basic_fstream/2.cc
* 27_io/basic_fstream/3.cc
* 27_io/basic_fstream/4.cc
* 27_io/basic_ifstream/1.cc
* 27_io/basic_ifstream/2.cc
* 27_io/basic_ifstream/3.cc
* 27_io/basic_ifstream/4.cc
* 27_io/basic_ios/1.cc
* 27_io/basic_ios/2.cc
* 27_io/basic_ios/3.cc
* 27_io/basic_ios/4.cc
* 27_io/basic_iostream/1.cc
* 27_io/basic_iostream/2.cc
* 27_io/basic_iostream/3.cc
* 27_io/basic_iostream/4.cc
* 27_io/basic_istream/1.cc
* 27_io/basic_istream/2.cc
* 27_io/basic_istream/3.cc
* 27_io/basic_istream/4.cc
* 27_io/basic_istringstream/1.cc
* 27_io/basic_istringstream/2.cc
* 27_io/basic_istringstream/3.cc
* 27_io/basic_istringstream/4.cc
* 27_io/basic_ofstream/1.cc
* 27_io/basic_ofstream/2.cc
* 27_io/basic_ofstream/3.cc
* 27_io/basic_ofstream/4.cc
* 27_io/basic_ostream/1.cc
* 27_io/basic_ostream/2.cc
* 27_io/basic_ostream/3.cc
* 27_io/basic_ostream/4.cc
* 27_io/basic_ostringstream/1.cc
* 27_io/basic_ostringstream/2.cc
* 27_io/basic_ostringstream/3.cc
* 27_io/basic_ostringstream/4.cc
* 27_io/basic_streambuf/1.cc
* 27_io/basic_streambuf/2.cc
* 27_io/basic_streambuf/3.cc
* 27_io/basic_stringbuf/1.cc
* 27_io/basic_stringbuf/2.cc
* 27_io/basic_stringbuf/3.cc
* 27_io/basic_stringbuf/4.cc
* 27_io/basic_stringbuf/5.cc
* 27_io/basic_stringstream/1.cc
* 27_io/basic_stringstream/2.cc
* 27_io/basic_stringstream/3.cc
* 27_io/basic_stringstream/4.cc
* 27_io/fpos/1.cc
* ext/debug_allocator/instantiate.cc
* ext/hash_map/instantiate.cc
* ext/hash_set/instantiate.cc
* ext/malloc_allocator/instantiate.cc
* ext/mt_allocator/instantiate.cc
* ext/pool_allocator/instantiate.cc
* ext/slist/instantiate.cc
* ext/stdio_filebuf/char/1.cc
* ext/vstring/explicit_instantiation
* ext/vstring/explicit_instantiation/1.cc
* ext/vstring/explicit_instantiation/2.cc
* ext/vstring/explicit_instantiation/char
* ext/vstring/explicit_instantiation/char/1.cc
* ext/vstring/explicit_instantiation/wchar_t
* ext/vstring/explicit_instantiation/wchar_t/1.cc
* tr1/2_general_utilities/memory/enable_shared_from_this/
explicit_instantiation
* tr1/2_general_utilities/memory/enable_shared_from_this/
explicit_instantiation/1.cc
* tr1/2_general_utilities/memory/shared_ptr/explicit_instantiation
* tr1/2_general_utilities/memory/shared_ptr/explicit_instantiation/1.cc
* tr1/2_general_utilities/memory/weak_ptr/explicit_instantiation
* tr1/2_general_utilities/memory/weak_ptr/explicit_instantiation/1.cc
* tr1/5_numerical_facilities/random/discard_block/requirements/
requirements.cc
* tr1/6_containers/array/requirements/instantiate.cc
* tr1/6_containers/unordered
* tr1/6_containers/unordered/23781.cc
* tr1/6_containers/unordered/capacity
* tr1/6_containers/unordered/capacity/29134-map.cc
* tr1/6_containers/unordered/capacity/29134-multimap.cc
* tr1/6_containers/unordered/capacity/29134-multiset.cc
* tr1/6_containers/unordered/capacity/29134-set.cc
* tr1/6_containers/unordered/erase
* tr1/6_containers/unordered/erase/24061-map.cc
* tr1/6_containers/unordered/erase/24061-multimap.cc
* tr1/6_containers/unordered/erase/24061-multiset.cc
* tr1/6_containers/unordered/erase/24061-set.cc
* tr1/6_containers/unordered/find
* tr1/6_containers/unordered/find/map1.cc
* tr1/6_containers/unordered/find/multimap1.cc
* tr1/6_containers/unordered/find/multiset1.cc
* tr1/6_containers/unordered/find/set1.cc
* tr1/6_containers/unordered/hash
* tr1/6_containers/unordered/hash/24799.cc
* tr1/6_containers/unordered/hashtable
* tr1/6_containers/unordered/hashtable/23053.cc
* tr1/6_containers/unordered/hashtable/23465.cc
* tr1/6_containers/unordered/hashtable/24054.cc
* tr1/6_containers/unordered/hashtable/24064.cc
* tr1/6_containers/unordered/hashtable/26127.cc
* tr1/6_containers/unordered/hashtable/26132.cc
* tr1/6_containers/unordered/hashtable/iterators_default_constructor.cc
* tr1/6_containers/unordered/insert
* tr1/6_containers/unordered/insert/24061-map.cc
* tr1/6_containers/unordered/insert/24061-multimap.cc
* tr1/6_containers/unordered/insert/24061-multiset.cc
* tr1/6_containers/unordered/insert/24061-set.cc
* tr1/6_containers/unordered/insert/array_syntax.cc
* tr1/6_containers/unordered/insert/map_range.cc
* tr1/6_containers/unordered/insert/map_single.cc
* tr1/6_containers/unordered/insert/multimap_range.cc
* tr1/6_containers/unordered/insert/multimap_single.cc
* tr1/6_containers/unordered/insert/multiset_range.cc
* tr1/6_containers/unordered/insert/multiset_single.cc
* tr1/6_containers/unordered/insert/set_range.cc
* tr1/6_containers/unordered/insert/set_single.cc
* tr1/6_containers/unordered/instantiate
* tr1/6_containers/unordered/instantiate/hash.cc
* tr1/6_containers/unordered/instantiate/map.cc
* tr1/6_containers/unordered/instantiate/multimap.cc
* tr1/6_containers/unordered/instantiate/multiset.cc
* tr1/6_containers/unordered/instantiate/set.cc
* tr1/6_containers/unordered/swap
* tr1/6_containers/unordered/swap/unordered_map
* tr1/6_containers/unordered/swap/unordered_map/1.cc
* tr1/6_containers/unordered/swap/unordered_map/2.cc
* tr1/6_containers/unordered/swap/unordered_multimap
* tr1/6_containers/unordered/swap/unordered_multimap/1.cc
* tr1/6_containers/unordered/swap/unordered_multimap/2.cc
* tr1/6_containers/unordered/swap/unordered_multiset
* tr1/6_containers/unordered/swap/unordered_multiset/1.cc
* tr1/6_containers/unordered/swap/unordered_multiset/2.cc
* tr1/6_containers/unordered/swap/unordered_set
* tr1/6_containers/unordered/swap/unordered_set/1.cc
* tr1/6_containers/unordered/swap/unordered_set/2.cc
* tr1/6_containers/unordered/types
* tr1/6_containers/unordered/types/map_iterator.cc
* tr1/6_containers/unordered/types/multimap_iterator.cc
* tr1/6_containers/unordered/types/multiset_iterator.cc
* tr1/6_containers/unordered/types/set_iterator.cc
* 24_iterators/reverse_iterator/2.cc: To just one
non-requirements test.
* ext/headers.cc: Add new includes.
2007-02-18 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/28080 (partial)
* include/bits/stl_algobase.h: Do not include <climits>, use
std::numeric_limits.
* include/bits/stl_bvector.h: Use __CHAR_BIT__.
* config/locale/gnu/codecvt_members.cc: Include <climits>.
* config/locale/generic/codecvt_members.cc: Likewise.
* include/std/string: Do not include <algorithm>; do not include
<memory>, include <bits/allocator.h> instead.
* include/ext/vstring_fwd.h: Likewise.
* include/ext/vstring_util.h: Do not include <algorithm>.
* include/tr1/hashtable_policy.h: Include <algorithm>.
* testsuite/21_strings/basic_string/replace/char/1.cc: Likewise.
* testsuite/21_strings/basic_string/replace/wchar_t/1.cc: Likewise.
* testsuite/23_containers/bitset/cons/1.cc: Likewise.
* testsuite/util/testsuite_character.h: Likewise.
* config/locale/gnu/codecvt_members.cc: Also include <cstdlib>,
for MB_CUR_MAX.
* config/locale/generic/codecvt_members.cc: Likewise.
From-SVN: r122168
419 files changed, 8616 insertions, 1223 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index eb1a05b..937d315 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,900 @@ +2007-02-20 Benjamin Kosnik <bkoz@redhat.com> + + Revamp library API testing. + Added: + * 17_intro/headers + * 17_intro/headers/all_assert_neg.cc + * 17_intro/headers/all_c++200x_compatibility.cc + * 17_intro/headers/all.cc + * 17_intro/headers/c++1998 + * 17_intro/headers/c++1998/all.cc + * 17_intro/headers/c++1998/all_multiple_inclusion.cc + * 17_intro/headers/c++1998/c++_for_c.tar + * 17_intro/headers/c++1998/c++.tar + * 17_intro/using_namespace_std.cc + * 18_support/headers + * 18_support/headers/cfloat + * 18_support/headers/cfloat/values.cc + * 18_support/headers/climits + * 18_support/headers/climits/values.cc + * 18_support/headers/csetjmp + * 18_support/headers/csetjmp/functions_std.cc + * 18_support/headers/csetjmp/macros.cc + * 18_support/headers/csetjmp/types_std.cc + * 18_support/headers/csignal + * 18_support/headers/csignal/functions_std.cc + * 18_support/headers/csignal/macros.cc + * 18_support/headers/csignal/types_std.cc + * 18_support/headers/cstdarg + * 18_support/headers/cstdarg/macros.cc + * 18_support/headers/cstdarg/types_std.cc + * 18_support/headers/cstddef + * 18_support/headers/cstddef/macros.cc + * 18_support/headers/cstddef/types_std.cc + * 18_support/headers/cstdlib + * 18_support/headers/cstdlib/functions_std.cc + * 18_support/headers/cstdlib/macros.cc + * 18_support/headers/ctime + * 18_support/headers/ctime/functions_std.cc + * 18_support/headers/ctime/macros.cc + * 18_support/headers/ctime/types_std.cc + * 18_support/headers/exception + * 18_support/headers/exception/synopsis.cc + * 18_support/headers/exception/types_std.cc + * 18_support/headers/limits + * 18_support/headers/limits/synopsis.cc + * 18_support/headers/new + * 18_support/headers/new/synopsis.cc + * 18_support/headers/new/types_std.cc + * 18_support/headers/typeinfo + * 18_support/headers/typeinfo/synopsis.cc + * 18_support/headers/typeinfo/types_std.cc + * 18_support/numeric_limits/is_signed.cc + * 18_support/numeric_limits/requirements + * 18_support/numeric_limits/requirements/explicit_instantiation + * 18_support/numeric_limits/requirements/explicit_instantiation/1.cc + * 18_support/numeric_limits/specialization_default_values.cc + * 19_diagnostics/headers + * 19_diagnostics/headers/cassert + * 19_diagnostics/headers/cassert/macros.cc + * 19_diagnostics/headers/cerrno + * 19_diagnostics/headers/cerrno/macros.cc + * 19_diagnostics/headers/stdexcept + * 19_diagnostics/headers/stdexcept/synopsis.cc + * 19_diagnostics/headers/stdexcept/types_std.cc + * 20_util/headers + * 20_util/headers/cstdlib + * 20_util/headers/cstdlib/functions_std.cc + * 20_util/headers/cstring + * 20_util/headers/cstring/functions_std.cc + * 20_util/headers/cstring/macros.cc + * 20_util/headers/cstring/types_std.cc + * 20_util/headers/ctime + * 20_util/headers/ctime/functions_std.cc + * 20_util/headers/ctime/macros.cc + * 20_util/headers/ctime/types_std.cc + * 20_util/headers/functional + * 20_util/headers/functional/synopsis.cc + * 20_util/headers/memory + * 20_util/headers/memory/synopsis.cc + * 20_util/headers/utility + * 20_util/headers/utility/synopsis.cc + * 20_util/headers/utility/using_namespace_std_rel_ops.cc + * 20_util/memory/allocator/requirements + * 20_util/memory/allocator/requirements/explicit_instantiation + * 20_util/memory/allocator/requirements/explicit_instantiation/1.cc + * 20_util/memory/auto_ptr/requirements + * 20_util/memory/auto_ptr/requirements/explicit_instantiation + * 20_util/memory/auto_ptr/requirements/explicit_instantiation/1.cc + * 20_util/memory/raw_storage_iterator + * 20_util/memory/raw_storage_iterator/requirements + * 20_util/memory/raw_storage_iterator/requirements/base_classes.cc + * 20_util/memory/raw_storage_iterator/requirements/ + explicit_instantiation + * 20_util/memory/raw_storage_iterator/requirements/ + explicit_instantiation/1.cc + * 20_util/memory/raw_storage_iterator/requirements/typedefs.cc + * 20_util/utility/pair/requirements + * 20_util/utility/pair/requirements/explicit_instantiation + * 20_util/utility/pair/requirements/explicit_instantiation/1.cc + * 21_strings/basic_string/requirements + * 21_strings/basic_string/requirements/explicit_instantiation + * 21_strings/basic_string/requirements/explicit_instantiation/1.cc + * 21_strings/basic_string/requirements/explicit_instantiation/debug.cc + * 21_strings/headers + * 21_strings/headers/cctype + * 21_strings/headers/cctype/functions_std.cc + * 21_strings/headers/cstdlib + * 21_strings/headers/cstdlib/functions_std.cc + * 21_strings/headers/cstdlib/macros.cc + * 21_strings/headers/cstring + * 21_strings/headers/cstring/functions_std.cc + * 21_strings/headers/cstring/macros.cc + * 21_strings/headers/cstring/types_std.cc + * 21_strings/headers/cwchar + * 21_strings/headers/cwchar/functions_std.cc + * 21_strings/headers/cwchar/macros.cc + * 21_strings/headers/cwchar/types_std.cc + * 21_strings/headers/cwctype + * 21_strings/headers/cwctype/functions_std.cc + * 21_strings/headers/cwctype/macros.cc + * 21_strings/headers/cwctype/types_std.cc + * 21_strings/headers/string + * 21_strings/headers/string/synopsis.cc + * 21_strings/headers/string/types_std.cc + * 22_locale/codecvt_byname/requirements + * 22_locale/codecvt_byname/requirements/base_classes.cc + * 22_locale/codecvt_byname/requirements/explicit_instantiation.cc + * 22_locale/codecvt_byname/requirements/typedefs.cc + * 22_locale/codecvt/requirements + * 22_locale/codecvt/requirements/base_classes.cc + * 22_locale/codecvt/requirements/explicit_instantiation.cc + * 22_locale/codecvt/requirements/typedefs.cc + * 22_locale/collate_byname/requirements + * 22_locale/collate_byname/requirements/base_classes.cc + * 22_locale/collate_byname/requirements/explicit_instantiation.cc + * 22_locale/collate_byname/requirements/typedefs.cc + * 22_locale/collate/requirements + * 22_locale/collate/requirements/base_classes.cc + * 22_locale/collate/requirements/explicit_instantiation.cc + * 22_locale/collate/requirements/typedefs.cc + * 22_locale/ctype_base/mask.cc + * 22_locale/ctype/requirements + * 22_locale/ctype/requirements/base_classes.cc + * 22_locale/ctype/requirements/explicit_instantiation.cc + * 22_locale/ctype/requirements/typedefs.cc + * 22_locale/headers + * 22_locale/headers/clocale + * 22_locale/headers/clocale/functions_std.cc + * 22_locale/headers/clocale/macros.cc + * 22_locale/headers/clocale/types_std.cc + * 22_locale/headers/locale + * 22_locale/headers/locale/synopsis.cc + * 22_locale/headers/locale/types_std.cc + * 22_locale/messages_byname/requirements + * 22_locale/messages_byname/requirements/base_classes.cc + * 22_locale/messages_byname/requirements/explicit_instantiation.cc + * 22_locale/messages_byname/requirements/typedefs.cc + * 22_locale/messages/requirements + * 22_locale/messages/requirements/base_classes.cc + * 22_locale/messages/requirements/explicit_instantiation.cc + * 22_locale/messages/requirements/typedefs.cc + * 22_locale/money_get/cons + * 22_locale/money_get/cons/3.cc + * 22_locale/money_get/requirements + * 22_locale/money_get/requirements/base_classes.cc + * 22_locale/money_get/requirements/explicit_instantiations.cc + * 22_locale/money_get/requirements/typedefs.cc + * 22_locale/moneypunct_byname/requirements + * 22_locale/moneypunct_byname/requirements/base_classes.cc + * 22_locale/moneypunct_byname/requirements/explicit_instantiation.cc + * 22_locale/moneypunct_byname/requirements/typedefs.cc + * 22_locale/moneypunct/requirements + * 22_locale/moneypunct/requirements/false + * 22_locale/moneypunct/requirements/false/base_classes.cc + * 22_locale/moneypunct/requirements/false/explicit_instantiation.cc + * 22_locale/moneypunct/requirements/false/intl.cc + * 22_locale/moneypunct/requirements/false/typedefs.cc + * 22_locale/moneypunct/requirements/true + * 22_locale/moneypunct/requirements/true/base_classes.cc + * 22_locale/moneypunct/requirements/true/explicit_instantiation.cc + * 22_locale/moneypunct/requirements/true/intl.cc + * 22_locale/moneypunct/requirements/true/typedefs.cc + * 22_locale/money_put/cons + * 22_locale/money_put/cons/3.cc + * 22_locale/money_put/requirements + * 22_locale/money_put/requirements/base_classes.cc + * 22_locale/money_put/requirements/explicit_instantiation.cc + * 22_locale/money_put/requirements/typedefs.cc + * 22_locale/num_get/cons + * 22_locale/num_get/cons/3.cc + * 22_locale/num_get/requirements + * 22_locale/num_get/requirements/base_classes.cc + * 22_locale/num_get/requirements/explicit_instantiation.cc + * 22_locale/num_get/requirements/typedefs.cc + * 22_locale/numpunct_byname/requirements + * 22_locale/numpunct_byname/requirements/base_classes.cc + * 22_locale/numpunct_byname/requirements/explicit_instantiations.cc + * 22_locale/numpunct_byname/requirements/typedefs.cc + * 22_locale/numpunct/requirements + * 22_locale/numpunct/requirements/base_classes.cc + * 22_locale/numpunct/requirements/explicit_instantiations.cc + * 22_locale/numpunct/requirements/typedefs.cc + * 22_locale/num_put/cons + * 22_locale/num_put/cons/3.cc + * 22_locale/num_put/requirements + * 22_locale/num_put/requirements/base_classes.cc + * 22_locale/num_put/requirements/explicit_instantiations.cc + * 22_locale/num_put/requirements/typedefs.cc + * 22_locale/time_get/requirements + * 22_locale/time_get/requirements/base_classes.cc + * 22_locale/time_get/requirements/explicit_instantiations.cc + * 22_locale/time_get/requirements/typedefs.cc + * 22_locale/time_put/requirements + * 22_locale/time_put/requirements/base_classes.cc + * 22_locale/time_put/requirements/explicit_instantiations.cc + * 22_locale/time_put/requirements/typedefs.cc + * 23_containers/bitset/requirements + * 23_containers/bitset/requirements/explicit_instantiation + * 23_containers/bitset/requirements/explicit_instantiation/1.cc + * 23_containers/deque/requirements + * 23_containers/deque/requirements/explicit_instantiation + * 23_containers/deque/requirements/partial_specialization + * 23_containers/deque/requirements/partial_specialization/1.cc + * 23_containers/headers + * 23_containers/headers/bitset + * 23_containers/headers/bitset/synopsis.cc + * 23_containers/headers/deque + * 23_containers/headers/deque/synopsis.cc + * 23_containers/headers/list + * 23_containers/headers/list/synopsis.cc + * 23_containers/headers/map + * 23_containers/headers/map/synopsis.cc + * 23_containers/headers/queue + * 23_containers/headers/queue/synopsis.cc + * 23_containers/headers/set + * 23_containers/headers/set/synopsis.cc + * 23_containers/headers/stack + * 23_containers/headers/stack/synopsis.cc + * 23_containers/headers/vector + * 23_containers/headers/vector/synopsis.cc + * 23_containers/list/requirements + * 23_containers/list/requirements/explicit_instantiation + * 23_containers/list/requirements/partial_specialization + * 23_containers/list/requirements/partial_specialization/1.cc + * 23_containers/map/requirements + * 23_containers/map/requirements/explicit_instantiation + * 23_containers/map/requirements/partial_specialization + * 23_containers/map/requirements/partial_specialization/1.cc + * 23_containers/multimap/requirements + * 23_containers/multimap/requirements/explicit_instantiation + * 23_containers/multimap/requirements/partial_specialization + * 23_containers/multimap/requirements/partial_specialization/1.cc + * 23_containers/multiset/requirements + * 23_containers/multiset/requirements/explicit_instantiation + * 23_containers/multiset/requirements/partial_specialization + * 23_containers/multiset/requirements/partial_specialization/1.cc + * 23_containers/priority_queue/requirements + * 23_containers/priority_queue/requirements/explicit_instantiation + * 23_containers/priority_queue/requirements/explicit_instantiation/1.cc + * 23_containers/queue/requirements + * 23_containers/queue/requirements/explicit_instantiation + * 23_containers/queue/requirements/explicit_instantiation/1.cc + * 23_containers/set/requirements + * 23_containers/set/requirements/explicit_instantiation + * 23_containers/set/requirements/partial_specialization + * 23_containers/set/requirements/partial_specialization/1.cc + * 23_containers/stack/requirements + * 23_containers/stack/requirements/explicit_instantiation + * 23_containers/stack/requirements/explicit_instantiation/1.cc + * 23_containers/vector/requirements + * 23_containers/vector/requirements/explicit_instantiation + * 23_containers/vector/requirements/partial_specialization + * 23_containers/vector/requirements/partial_specialization/1.cc + * 24_iterators/back_insert_iterator + * 24_iterators/back_insert_iterator/2.cc + * 24_iterators/back_insert_iterator/requirements + * 24_iterators/back_insert_iterator/requirements/base_classes.cc + * 24_iterators/back_insert_iterator/requirements/container.cc + * 24_iterators/back_insert_iterator/requirements/ + explicit_instantiation.cc + * 24_iterators/back_insert_iterator/requirements/typedefs.cc + * 24_iterators/front_insert_iterator + * 24_iterators/front_insert_iterator/2.cc + * 24_iterators/front_insert_iterator/requirements + * 24_iterators/front_insert_iterator/requirements/base_classes.cc + * 24_iterators/front_insert_iterator/requirements/container.cc + * 24_iterators/front_insert_iterator/requirements/ + explicit_instantiation.cc + * 24_iterators/front_insert_iterator/requirements/typedefs.cc + * 24_iterators/headers + * 24_iterators/headers/iterator + * 24_iterators/headers/iterator/synopsis.cc + * 24_iterators/headers/iterator/types_std.cc + * 24_iterators/insert_iterator + * 24_iterators/insert_iterator/2.cc + * 24_iterators/insert_iterator/requirements + * 24_iterators/insert_iterator/requirements/base_classes.cc + * 24_iterators/insert_iterator/requirements/container.cc + * 24_iterators/insert_iterator/requirements/explicit_instantiation.cc + * 24_iterators/insert_iterator/requirements/typedefs.cc + * 24_iterators/istreambuf_iterator/requirements + * 24_iterators/istreambuf_iterator/requirements/base_classes.cc + * 24_iterators/istreambuf_iterator/requirements/ + explicit_instantiation.cc + * 24_iterators/istreambuf_iterator/requirements/typedefs.cc + * 24_iterators/istream_iterator + * 24_iterators/istream_iterator/2.cc + * 24_iterators/istream_iterator/requirements + * 24_iterators/istream_iterator/requirements/base_classes.cc + * 24_iterators/istream_iterator/requirements/explicit_instantiation.cc + * 24_iterators/istream_iterator/requirements/typedefs.cc + * 24_iterators/ostreambuf_iterator/requirements + * 24_iterators/ostreambuf_iterator/requirements/base_classes.cc + * 24_iterators/ostreambuf_iterator/requirements/ + explicit_instantiation.cc + * 24_iterators/ostreambuf_iterator/requirements/typedefs.cc + * 24_iterators/ostream_iterator + * 24_iterators/ostream_iterator/requirements + * 24_iterators/ostream_iterator/requirements/base_classes.cc + * 24_iterators/ostream_iterator/requirements/explicit_instantiation.cc + * 24_iterators/ostream_iterator/requirements/typedefs.cc + * 24_iterators/random_access_iterator + * 24_iterators/random_access_iterator/26020.cc + * 24_iterators/random_access_iterator/string_vector_iterators.cc + * 24_iterators/reverse_iterator/requirements + * 24_iterators/reverse_iterator/requirements/base_classes.cc + * 24_iterators/reverse_iterator/requirements/current.cc + * 24_iterators/reverse_iterator/requirements/explicit_instantiation.cc + * 24_iterators/reverse_iterator/requirements/typedefs.cc + * 25_algorithms/headers + * 25_algorithms/headers/algorithm + * 25_algorithms/headers/algorithm/synopsis.cc + * 25_algorithms/headers/cstdlib + * 25_algorithms/headers/cstdlib/functions_std.cc + * 26_numerics/headers + * 26_numerics/headers/cmath + * 26_numerics/headers/cmath/19322.cc + * 26_numerics/headers/cmath/c99_classification_macros_c.cc + * 26_numerics/headers/cmath/c99_classification_macros_c++.cc + * 26_numerics/headers/cmath/c_math.cc + * 26_numerics/headers/cmath/c_math_dynamic.cc + * 26_numerics/headers/cmath/fabs_inline.cc + * 26_numerics/headers/cmath/functions_std.cc + * 26_numerics/headers/cmath/macros.cc + * 26_numerics/headers/cmath/overloads.cc + * 26_numerics/headers/cmath/powi.cc + * 26_numerics/headers/complex + * 26_numerics/headers/complex/synopsis.cc + * 26_numerics/headers/cstdlib + * 26_numerics/headers/cstdlib/13943.cc + * 26_numerics/headers/cstdlib/2190.cc + * 26_numerics/headers/cstdlib/functions_std.cc + * 26_numerics/headers/cstdlib/macros.cc + * 26_numerics/headers/cstdlib/types_std.cc + * 26_numerics/headers/numeric + * 26_numerics/headers/numeric/synopsis.cc + * 26_numerics/headers/valarray + * 26_numerics/headers/valarray/synopsis.cc + * 26_numerics/headers/valarray/types_std.cc + * 26_numerics/numeric_arrays + * 26_numerics/numeric_operations + * 27_io/basic_filebuf/cons/2020.cc + * 27_io/basic_filebuf/requirements + * 27_io/basic_filebuf/requirements/base_classes.cc + * 27_io/basic_filebuf/requirements/explicit_instantiation.cc + * 27_io/basic_filebuf/requirements/typedefs.cc + * 27_io/basic_fstream/cons + * 27_io/basic_fstream/cons/3.cc + * 27_io/basic_fstream/requirements + * 27_io/basic_fstream/requirements/base_classes.cc + * 27_io/basic_fstream/requirements/explicit_instantiation.cc + * 27_io/basic_fstream/requirements/typedefs.cc + * 27_io/basic_ifstream/cons/2020.cc + * 27_io/basic_ifstream/requirements + * 27_io/basic_ifstream/requirements/base_classes.cc + * 27_io/basic_ifstream/requirements/explicit_instantiation.cc + * 27_io/basic_ifstream/requirements/typedefs.cc + * 27_io/basic_ios/cons/2020.cc + * 27_io/basic_ios/requirements + * 27_io/basic_ios/requirements/base_classes.cc + * 27_io/basic_ios/requirements/explicit_instantiation.cc + * 27_io/basic_ios/requirements/typedefs.cc + * 27_io/basic_iostream/cons + * 27_io/basic_iostream/cons/2020.cc + * 27_io/basic_iostream/requirements + * 27_io/basic_iostream/requirements/base_classes.cc + * 27_io/basic_iostream/requirements/explicit_instantiation.cc + * 27_io/basic_iostream/requirements/typedefs.cc + * 27_io/basic_istream/cons + * 27_io/basic_istream/cons/3.cc + * 27_io/basic_istream/requirements + * 27_io/basic_istream/requirements/base_classes.cc + * 27_io/basic_istream/requirements/explicit_instantiation.cc + * 27_io/basic_istream/requirements/typedefs.cc + * 27_io/basic_istringstream/cons + * 27_io/basic_istringstream/cons/2020.cc + * 27_io/basic_istringstream/requirements + * 27_io/basic_istringstream/requirements/base_classes.cc + * 27_io/basic_istringstream/requirements/explicit_instantiation.cc + * 27_io/basic_istringstream/requirements/typedefs.cc + * 27_io/basic_ofstream/cons/2020.cc + * 27_io/basic_ofstream/requirements + * 27_io/basic_ofstream/requirements/base_classes.cc + * 27_io/basic_ofstream/requirements/explicit_instantiations.cc + * 27_io/basic_ofstream/requirements/typedefs.cc + * 27_io/basic_ostream/cons/2020.cc + * 27_io/basic_ostream/requirements + * 27_io/basic_ostream/requirements/base_classes.cc + * 27_io/basic_ostream/requirements/explicit_instantiation.cc + * 27_io/basic_ostream/requirements/typedefs.cc + * 27_io/basic_ostringstream/cons/2020.cc + * 27_io/basic_ostringstream/requirements + * 27_io/basic_ostringstream/requirements/base_classes.cc + * 27_io/basic_ostringstream/requirements/explicit_instantiation.cc + * 27_io/basic_ostringstream/requirements/typedefs.cc + * 27_io/basic_streambuf/cons/2020.cc + * 27_io/basic_streambuf/requirements + * 27_io/basic_streambuf/requirements/base_classes.cc + * 27_io/basic_streambuf/requirements/typedefs.cc + * 27_io/basic_stringbuf/cons/2020.cc + * 27_io/basic_stringbuf/requirements + * 27_io/basic_stringbuf/requirements/base_classes.cc + * 27_io/basic_stringbuf/requirements/explicit_instantiation + * 27_io/basic_stringbuf/requirements/explicit_instantiation/2.cc + * 27_io/basic_stringbuf/requirements/explicit_instantiation/4.cc + * 27_io/basic_stringbuf/requirements/typedefs.cc + * 27_io/basic_stringstream/cons + * 27_io/basic_stringstream/cons/2020.cc + * 27_io/basic_stringstream/requirements + * 27_io/basic_stringstream/requirements/base_classes.cc + * 27_io/basic_stringstream/requirements/explicit_instantiation.cc + * 27_io/basic_stringstream/requirements/typedefs.cc + * 27_io/fpos/requirements + * 27_io/fpos/requirements/explicit_instantiation.cc + * 27_io/headers + * 27_io/headers/cstdio + * 27_io/headers/cstdio/functions_std.cc + * 27_io/headers/cstdio/macros.cc + * 27_io/headers/cstdio/types_std.cc + * 27_io/headers/cstdlib + * 27_io/headers/fstream + * 27_io/headers/fstream/synopsis.cc + * 27_io/headers/fstream/types_std.cc + * 27_io/headers/iomanip + * 27_io/headers/iomanip/synopsis.cc + * 27_io/headers/ios + * 27_io/headers/ios/synopsis.cc + * 27_io/headers/iostream + * 27_io/headers/iostream/synopsis.cc + * 27_io/headers/iostream/types_std.cc + * 27_io/headers/ios/types_std.cc + * 27_io/headers/istream + * 27_io/headers/istream/synopsis.cc + * 27_io/headers/istream/types_std.cc + * 27_io/headers/ostream + * 27_io/headers/ostream/synopsis.cc + * 27_io/headers/ostream/types_std.cc + * 27_io/headers/sstream + * 27_io/headers/sstream/synopsis.cc + * 27_io/headers/sstream/types_std.cc + * 27_io/headers/streambuf + * 27_io/headers/streambuf/synopsis.cc + * 27_io/headers/streambuf/types_std.cc + * ext/debug_allocator/explicit_instantiation.cc + * ext/hash_map/requirements + * ext/hash_map/requirements/explicit_instantiation.cc + * ext/hash_set/requirements + * ext/hash_set/requirements/explicit_instantiation.cc + * ext/malloc_allocator/explicit_instantiation.cc + * ext/mt_allocator/explicit_instantiation.cc + * ext/pool_allocator/explicit_instantiation.cc + * ext/slist/requirements + * ext/slist/requirements/explicit_instantiation.cc + * ext/stdio_filebuf/requirements + * ext/stdio_filebuf/requirements/explicit_instantiation.cc + * ext/vstring/requirements + * ext/vstring/requirements/explicit_instantiation + * tr1/2_general_utilities/headers + * tr1/2_general_utilities/headers/functional + * tr1/2_general_utilities/headers/functional/synopsis.cc + * tr1/2_general_utilities/headers/memory + * tr1/2_general_utilities/headers/memory/synopsis.cc + * tr1/2_general_utilities/headers/memory/types_std_tr1.cc + * tr1/2_general_utilities/memory/enable_shared_from_this/requirements + * tr1/2_general_utilities/memory/enable_shared_from_this/ + requirements/explicit_instantiation + * tr1/2_general_utilities/memory/shared_ptr/requirements + * tr1/2_general_utilities/memory/shared_ptr/requirements/ + explicit_instantiation + * tr1/2_general_utilities/memory/weak_ptr/requirements + * tr1/2_general_utilities/memory/weak_ptr/requirements/ + explicit_instantiation + * tr1/3_function_objects/headers + * tr1/3_function_objects/headers/functional + * tr1/3_function_objects/headers/functional/synopsis.cc + * tr1/3_function_objects/headers/functional/types_std_tr1.cc + * tr1/3_function_objects/headers/functional/ + using_namespace_std_tr1_placeholders.cc + * tr1/4_metaprogramming/headers + * tr1/4_metaprogramming/headers/type_traits + * tr1/4_metaprogramming/headers/type_traits/synopsis.cc + * tr1/4_metaprogramming/headers/type_traits/types_std_tr1.cc + * tr1/5_numerical_facilities/headers + * tr1/5_numerical_facilities/headers/random + * tr1/5_numerical_facilities/headers/random/synopsis.cc + * tr1/5_numerical_facilities/headers/random/types_std_tr1.cc + * tr1/5_numerical_facilities/random/discard_block/ + requirements/typedefs.cc + * tr1/6_containers/array/requirements/explicit_instantiation.cc + * tr1/6_containers/hash + * tr1/6_containers/hash/requirements + * tr1/6_containers/hash/requirements/base_classes.cc + * tr1/6_containers/hash/requirements/explicit_instantiation.cc + * tr1/6_containers/headers + * tr1/6_containers/headers/array + * tr1/6_containers/headers/array/synopsis.cc + * tr1/6_containers/headers/functional + * tr1/6_containers/headers/functional/synopsis.cc + * tr1/6_containers/headers/tuple + * tr1/6_containers/headers/tuple/synopsis.cc + * tr1/6_containers/headers/tuple/types_std_tr1.cc + * tr1/6_containers/headers/unordered_map + * tr1/6_containers/headers/unordered_map/synopsis.cc + * tr1/6_containers/headers/unordered_set + * tr1/6_containers/headers/unordered_set/synopsis.cc + * tr1/6_containers/tuple/requirements + * tr1/6_containers/tuple/requirements/explicit_instantiation.cc + * tr1/6_containers/unordered_map + * tr1/6_containers/unordered_map/24064.cc + * tr1/6_containers/unordered_map/capacity + * tr1/6_containers/unordered_map/capacity/29134-map.cc + * tr1/6_containers/unordered_map/erase + * tr1/6_containers/unordered_map/erase/24061-map.cc + * tr1/6_containers/unordered_map/find + * tr1/6_containers/unordered_map/find/map1.cc + * tr1/6_containers/unordered_map/insert + * tr1/6_containers/unordered_map/insert/24061-map.cc + * tr1/6_containers/unordered_map/insert/array_syntax.cc + * tr1/6_containers/unordered_map/insert/map_range.cc + * tr1/6_containers/unordered_map/insert/map_single.cc + * tr1/6_containers/unordered_map/requirements + * tr1/6_containers/unordered_map/requirements/explicit_instantiation.cc + * tr1/6_containers/unordered_map/requirements/iterator_neg.cc + * tr1/6_containers/unordered_map/requirements/iterator_null_neg.cc + * tr1/6_containers/unordered_map/swap + * tr1/6_containers/unordered_map/swap/1.cc + * tr1/6_containers/unordered_map/swap/2.cc + * tr1/6_containers/unordered_multimap + * tr1/6_containers/unordered_multimap/capacity + * tr1/6_containers/unordered_multimap/capacity/29134-multimap.cc + * tr1/6_containers/unordered_multimap/erase + * tr1/6_containers/unordered_multimap/erase/24061-multimap.cc + * tr1/6_containers/unordered_multimap/find + * tr1/6_containers/unordered_multimap/find/multimap1.cc + * tr1/6_containers/unordered_multimap/insert + * tr1/6_containers/unordered_multimap/insert/24061-multimap.cc + * tr1/6_containers/unordered_multimap/insert/multimap_range.cc + * tr1/6_containers/unordered_multimap/insert/multimap_single.cc + * tr1/6_containers/unordered_multimap/requirements + * tr1/6_containers/unordered_multimap/requirements/ + explicit_instantiation.cc + * tr1/6_containers/unordered_multimap/requirements/iterator_neg.cc + * tr1/6_containers/unordered_multimap/requirements/iterator_null_neg.cc + * tr1/6_containers/unordered_multimap/swap + * tr1/6_containers/unordered_multimap/swap/1.cc + * tr1/6_containers/unordered_multimap/swap/2.cc + * tr1/6_containers/unordered_multiset + * tr1/6_containers/unordered_multiset/24054.cc + * tr1/6_containers/unordered_multiset/capacity + * tr1/6_containers/unordered_multiset/capacity/29134-multiset.cc + * tr1/6_containers/unordered_multiset/erase + * tr1/6_containers/unordered_multiset/erase/24061-multiset.cc + * tr1/6_containers/unordered_multiset/find + * tr1/6_containers/unordered_multiset/find/multiset1.cc + * tr1/6_containers/unordered_multiset/insert + * tr1/6_containers/unordered_multiset/insert/24061-multiset.cc + * tr1/6_containers/unordered_multiset/insert/multiset_range.cc + * tr1/6_containers/unordered_multiset/insert/multiset_single.cc + * tr1/6_containers/unordered_multiset/requirements + * tr1/6_containers/unordered_multiset/requirements/ + explicit_instantiation.cc + * tr1/6_containers/unordered_multiset/requirements/iterator_neg.cc + * tr1/6_containers/unordered_multiset/requirements/iterator_null_neg.cc + * tr1/6_containers/unordered_multiset/swap + * tr1/6_containers/unordered_multiset/swap/1.cc + * tr1/6_containers/unordered_multiset/swap/2.cc + * tr1/6_containers/unordered_set + * tr1/6_containers/unordered_set/23053.cc + * tr1/6_containers/unordered_set/23465.cc + * tr1/6_containers/unordered_set/26127.cc + * tr1/6_containers/unordered_set/26132.cc + * tr1/6_containers/unordered_set/capacity + * tr1/6_containers/unordered_set/capacity/29134-set.cc + * tr1/6_containers/unordered_set/erase + * tr1/6_containers/unordered_set/erase/24061-set.cc + * tr1/6_containers/unordered_set/find + * tr1/6_containers/unordered_set/find/set1.cc + * tr1/6_containers/unordered_set/insert + * tr1/6_containers/unordered_set/insert/24061-set.cc + * tr1/6_containers/unordered_set/insert/set_range.cc + * tr1/6_containers/unordered_set/insert/set_single.cc + * tr1/6_containers/unordered_set/requirements + * tr1/6_containers/unordered_set/requirements/explicit_instantiation.cc + * tr1/6_containers/unordered_set/requirements/iterator_neg.cc + * tr1/6_containers/unordered_set/requirements/iterator_null_neg.cc + * tr1/6_containers/unordered_set/requirements/ + iterators_default_constructor.cc + * tr1/6_containers/unordered_set/swap + * tr1/6_containers/unordered_set/swap/1.cc + * tr1/6_containers/unordered_set/swap/2.cc + * tr1/using_namespace_std_tr1.cc + + Deleted: + * 17_intro/header_cassert.cc + * 17_intro/header_cerrno.cc + * 17_intro/header_csetjmp.cc + * 17_intro/header_cstdarg.cc + * 17_intro/header_cstddef.cc + * 17_intro/header_cstdio.cc + * 17_intro/header_cstdlib.cc + * 17_intro/header_cstring.cc + * 17_intro/header_ctime.cc + * 17_intro/header_cwchar.cc + * 17_intro/header_cwctype.cc + * 17_intro/header_fstream.cc + * 17_intro/header_iomanip.cc + * 17_intro/header_ios.cc + * 17_intro/header_iosfwd.cc + * 17_intro/header_iostream.cc + * 17_intro/header_istream.cc + * 17_intro/header_ostream.cc + * 17_intro/headers.cc + * 17_intro/headers_c++_c++0x_compat.cc + * 17_intro/headers_c.cc + * 17_intro/headers_c++.cc + * 17_intro/header_sstream.cc + * 17_intro/header_streambuf.cc + * 17_intro/no_assert_neg.cc + * 18_support/numeric_limits/sign.cc + * 18_support/numeric_limits/specialization.cc + * 20_util/memory/raw_storage_iterator.cc + * 21_strings/basic_string/1.cc + * 21_strings/basic_string/2.cc + * 22_locale/codecvt/1.cc + * 22_locale/codecvt/2.cc + * 22_locale/codecvt_byname/1.cc + * 22_locale/collate/1.cc + * 22_locale/collate/2.cc + * 22_locale/collate_byname/1.cc + * 22_locale/ctype/1.cc + * 22_locale/ctype_base/1.cc + * 22_locale/messages/1.cc + * 22_locale/messages/2.cc + * 22_locale/messages_byname/1.cc + * 22_locale/money_get/1.cc + * 22_locale/money_get/2.cc + * 22_locale/money_get/3.cc + * 22_locale/moneypunct/1.cc + * 22_locale/moneypunct/2.cc + * 22_locale/moneypunct/3.cc + * 22_locale/moneypunct_byname/1.cc + * 22_locale/money_put/1.cc + * 22_locale/money_put/2.cc + * 22_locale/money_put/3.cc + * 22_locale/num_get/1.cc + * 22_locale/num_get/2.cc + * 22_locale/num_get/3.cc + * 22_locale/numpunct/1.cc + * 22_locale/numpunct/2.cc + * 22_locale/numpunct_byname/1.cc + * 22_locale/num_put/1.cc + * 22_locale/num_put/2.cc + * 22_locale/num_put/3.cc + * 22_locale/time_get/1.cc + * 22_locale/time_get/2.cc + * 22_locale/time_put/1.cc + * 22_locale/time_put/2.cc + * 23_containers/deque/1.cc + * 23_containers/deque/explicit_instantiation + * 23_containers/deque/explicit_instantiation/1.cc + * 23_containers/deque/explicit_instantiation/2.cc + * 23_containers/deque/explicit_instantiation/3.cc + * 23_containers/list/1.cc + * 23_containers/list/explicit_instantiation + * 23_containers/list/explicit_instantiation/1.cc + * 23_containers/list/explicit_instantiation/2.cc + * 23_containers/list/explicit_instantiation/3.cc + * 23_containers/map/1.cc + * 23_containers/map/explicit_instantiation + * 23_containers/map/explicit_instantiation/1.cc + * 23_containers/map/explicit_instantiation/2.cc + * 23_containers/map/explicit_instantiation/3.cc + * 23_containers/multimap/1.cc + * 23_containers/multimap/explicit_instantiation + * 23_containers/multimap/explicit_instantiation/1.cc + * 23_containers/multimap/explicit_instantiation/2.cc + * 23_containers/multimap/explicit_instantiation/3.cc + * 23_containers/multiset/1.cc + * 23_containers/multiset/explicit_instantiation + * 23_containers/multiset/explicit_instantiation/1.cc + * 23_containers/multiset/explicit_instantiation/2.cc + * 23_containers/multiset/explicit_instantiation/3.cc + * 23_containers/set/1.cc + * 23_containers/set/explicit_instantiation + * 23_containers/set/explicit_instantiation/1.cc + * 23_containers/set/explicit_instantiation/2.cc + * 23_containers/set/explicit_instantiation/3.cc + * 23_containers/vector/1.cc + * 23_containers/vector/explicit_instantiation + * 23_containers/vector/explicit_instantiation/1.cc + * 23_containers/vector/explicit_instantiation/2.cc + * 23_containers/vector/explicit_instantiation/3.cc + * 24_iterators/26020.cc + * 24_iterators/back_insert_iterator.cc + * 24_iterators/front_insert_iterator.cc + * 24_iterators/insert_iterator.cc + * 24_iterators/istreambuf_iterator/1.cc + * 24_iterators/istream_iterator.cc + * 24_iterators/iterator.cc + * 24_iterators/ostreambuf_iterator/1.cc + * 24_iterators/ostream_iterator.cc + * 24_iterators/reverse_iterator/1.cc + * 26_numerics/cmath + * 26_numerics/cmath/19322.cc + * 26_numerics/cmath/c99_classification_macros_c.cc + * 26_numerics/cmath/c99_classification_macros_c++.cc + * 26_numerics/cmath/c_math.cc + * 26_numerics/cmath/c_math_dynamic.cc + * 26_numerics/cmath/fabs_inline.cc + * 26_numerics/cmath/overloads.cc + * 26_numerics/cmath/powi.cc + * 26_numerics/cstdlib + * 26_numerics/cstdlib/13943.cc + * 26_numerics/numeric + * 26_numerics/numeric/sum_diff.cc + * 26_numerics/valarray + * 26_numerics/valarray/27867.cc + * 26_numerics/valarray/28277.cc + * 26_numerics/valarray/30416.cc + * 26_numerics/valarray/binary_closure.cc + * 26_numerics/valarray/dr543.cc + * 26_numerics/valarray/slice_array_assignment.cc + * 26_numerics/valarray/slice.cc + * 26_numerics/valarray/valarray.cc + * 26_numerics/valarray/valarray_const_bracket.cc + * 26_numerics/valarray/valarray_name_lookup.cc + * 26_numerics/valarray/valarray_operators.cc + * 26_numerics/valarray/valarray_subset_assignment.cc + * 27_io/basic_filebuf/1.cc + * 27_io/basic_filebuf/2.cc + * 27_io/basic_filebuf/3.cc + * 27_io/basic_filebuf/4.cc + * 27_io/basic_fstream/1.cc + * 27_io/basic_fstream/2.cc + * 27_io/basic_fstream/3.cc + * 27_io/basic_fstream/4.cc + * 27_io/basic_ifstream/1.cc + * 27_io/basic_ifstream/2.cc + * 27_io/basic_ifstream/3.cc + * 27_io/basic_ifstream/4.cc + * 27_io/basic_ios/1.cc + * 27_io/basic_ios/2.cc + * 27_io/basic_ios/3.cc + * 27_io/basic_ios/4.cc + * 27_io/basic_iostream/1.cc + * 27_io/basic_iostream/2.cc + * 27_io/basic_iostream/3.cc + * 27_io/basic_iostream/4.cc + * 27_io/basic_istream/1.cc + * 27_io/basic_istream/2.cc + * 27_io/basic_istream/3.cc + * 27_io/basic_istream/4.cc + * 27_io/basic_istringstream/1.cc + * 27_io/basic_istringstream/2.cc + * 27_io/basic_istringstream/3.cc + * 27_io/basic_istringstream/4.cc + * 27_io/basic_ofstream/1.cc + * 27_io/basic_ofstream/2.cc + * 27_io/basic_ofstream/3.cc + * 27_io/basic_ofstream/4.cc + * 27_io/basic_ostream/1.cc + * 27_io/basic_ostream/2.cc + * 27_io/basic_ostream/3.cc + * 27_io/basic_ostream/4.cc + * 27_io/basic_ostringstream/1.cc + * 27_io/basic_ostringstream/2.cc + * 27_io/basic_ostringstream/3.cc + * 27_io/basic_ostringstream/4.cc + * 27_io/basic_streambuf/1.cc + * 27_io/basic_streambuf/2.cc + * 27_io/basic_streambuf/3.cc + * 27_io/basic_stringbuf/1.cc + * 27_io/basic_stringbuf/2.cc + * 27_io/basic_stringbuf/3.cc + * 27_io/basic_stringbuf/4.cc + * 27_io/basic_stringbuf/5.cc + * 27_io/basic_stringstream/1.cc + * 27_io/basic_stringstream/2.cc + * 27_io/basic_stringstream/3.cc + * 27_io/basic_stringstream/4.cc + * 27_io/fpos/1.cc + * ext/debug_allocator/instantiate.cc + * ext/hash_map/instantiate.cc + * ext/hash_set/instantiate.cc + * ext/malloc_allocator/instantiate.cc + * ext/mt_allocator/instantiate.cc + * ext/pool_allocator/instantiate.cc + * ext/slist/instantiate.cc + * ext/stdio_filebuf/char/1.cc + * ext/vstring/explicit_instantiation + * ext/vstring/explicit_instantiation/1.cc + * ext/vstring/explicit_instantiation/2.cc + * ext/vstring/explicit_instantiation/char + * ext/vstring/explicit_instantiation/char/1.cc + * ext/vstring/explicit_instantiation/wchar_t + * ext/vstring/explicit_instantiation/wchar_t/1.cc + * tr1/2_general_utilities/memory/enable_shared_from_this/ + explicit_instantiation + * tr1/2_general_utilities/memory/enable_shared_from_this/ + explicit_instantiation/1.cc + * tr1/2_general_utilities/memory/shared_ptr/explicit_instantiation + * tr1/2_general_utilities/memory/shared_ptr/explicit_instantiation/1.cc + * tr1/2_general_utilities/memory/weak_ptr/explicit_instantiation + * tr1/2_general_utilities/memory/weak_ptr/explicit_instantiation/1.cc + * tr1/5_numerical_facilities/random/discard_block/requirements/ + requirements.cc + * tr1/6_containers/array/requirements/instantiate.cc + * tr1/6_containers/unordered + * tr1/6_containers/unordered/23781.cc + * tr1/6_containers/unordered/capacity + * tr1/6_containers/unordered/capacity/29134-map.cc + * tr1/6_containers/unordered/capacity/29134-multimap.cc + * tr1/6_containers/unordered/capacity/29134-multiset.cc + * tr1/6_containers/unordered/capacity/29134-set.cc + * tr1/6_containers/unordered/erase + * tr1/6_containers/unordered/erase/24061-map.cc + * tr1/6_containers/unordered/erase/24061-multimap.cc + * tr1/6_containers/unordered/erase/24061-multiset.cc + * tr1/6_containers/unordered/erase/24061-set.cc + * tr1/6_containers/unordered/find + * tr1/6_containers/unordered/find/map1.cc + * tr1/6_containers/unordered/find/multimap1.cc + * tr1/6_containers/unordered/find/multiset1.cc + * tr1/6_containers/unordered/find/set1.cc + * tr1/6_containers/unordered/hash + * tr1/6_containers/unordered/hash/24799.cc + * tr1/6_containers/unordered/hashtable + * tr1/6_containers/unordered/hashtable/23053.cc + * tr1/6_containers/unordered/hashtable/23465.cc + * tr1/6_containers/unordered/hashtable/24054.cc + * tr1/6_containers/unordered/hashtable/24064.cc + * tr1/6_containers/unordered/hashtable/26127.cc + * tr1/6_containers/unordered/hashtable/26132.cc + * tr1/6_containers/unordered/hashtable/iterators_default_constructor.cc + * tr1/6_containers/unordered/insert + * tr1/6_containers/unordered/insert/24061-map.cc + * tr1/6_containers/unordered/insert/24061-multimap.cc + * tr1/6_containers/unordered/insert/24061-multiset.cc + * tr1/6_containers/unordered/insert/24061-set.cc + * tr1/6_containers/unordered/insert/array_syntax.cc + * tr1/6_containers/unordered/insert/map_range.cc + * tr1/6_containers/unordered/insert/map_single.cc + * tr1/6_containers/unordered/insert/multimap_range.cc + * tr1/6_containers/unordered/insert/multimap_single.cc + * tr1/6_containers/unordered/insert/multiset_range.cc + * tr1/6_containers/unordered/insert/multiset_single.cc + * tr1/6_containers/unordered/insert/set_range.cc + * tr1/6_containers/unordered/insert/set_single.cc + * tr1/6_containers/unordered/instantiate + * tr1/6_containers/unordered/instantiate/hash.cc + * tr1/6_containers/unordered/instantiate/map.cc + * tr1/6_containers/unordered/instantiate/multimap.cc + * tr1/6_containers/unordered/instantiate/multiset.cc + * tr1/6_containers/unordered/instantiate/set.cc + * tr1/6_containers/unordered/swap + * tr1/6_containers/unordered/swap/unordered_map + * tr1/6_containers/unordered/swap/unordered_map/1.cc + * tr1/6_containers/unordered/swap/unordered_map/2.cc + * tr1/6_containers/unordered/swap/unordered_multimap + * tr1/6_containers/unordered/swap/unordered_multimap/1.cc + * tr1/6_containers/unordered/swap/unordered_multimap/2.cc + * tr1/6_containers/unordered/swap/unordered_multiset + * tr1/6_containers/unordered/swap/unordered_multiset/1.cc + * tr1/6_containers/unordered/swap/unordered_multiset/2.cc + * tr1/6_containers/unordered/swap/unordered_set + * tr1/6_containers/unordered/swap/unordered_set/1.cc + * tr1/6_containers/unordered/swap/unordered_set/2.cc + * tr1/6_containers/unordered/types + * tr1/6_containers/unordered/types/map_iterator.cc + * tr1/6_containers/unordered/types/multimap_iterator.cc + * tr1/6_containers/unordered/types/multiset_iterator.cc + * tr1/6_containers/unordered/types/set_iterator.cc + + * 24_iterators/reverse_iterator/2.cc: To just one + non-requirements test. + * ext/headers.cc: Add new includes. + 2007-02-18 Paolo Carlini <pcarlini@suse.de> PR libstdc++/28080 (partial) diff --git a/libstdc++-v3/testsuite/17_intro/header_csetjmp.cc b/libstdc++-v3/testsuite/17_intro/header_csetjmp.cc deleted file mode 100644 index 28d3631..0000000 --- a/libstdc++-v3/testsuite/17_intro/header_csetjmp.cc +++ /dev/null @@ -1,41 +0,0 @@ -// 2001-02-06 Benjamin Kosnik <bkoz@redhat.com> - -// Copyright (C) 2001, 2003 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 2, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING. If not, write to the Free -// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -// USA. - -// 17.4.1.2 Headers, csetjmp - -#include <csetjmp> - -namespace gnu -{ - void test01() - { - std::jmp_buf env; - int i __attribute__((unused)) = setjmp(env); -#ifndef setjmp - #error "setjmp_must_be_a_macro" -#endif - } -} - -int main() -{ - gnu::test01(); - return 0; -} diff --git a/libstdc++-v3/testsuite/17_intro/header_cwchar.cc b/libstdc++-v3/testsuite/17_intro/header_cwchar.cc deleted file mode 100644 index faf623c..0000000 --- a/libstdc++-v3/testsuite/17_intro/header_cwchar.cc +++ /dev/null @@ -1,33 +0,0 @@ -// 2000-01-01 bkoz - -// Copyright (C) 2001, 2003 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 2, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING. If not, write to the Free -// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -// USA. - -// 17.4.1.2 Headers, cwchar - -#include <cwchar> - -int main(void) -{ - // Make sure size_t is in namespace std - std::size_t i __attribute__((unused)) = 5; - - std::tm __attribute__((unused)) mytime; - - return 0; -} diff --git a/libstdc++-v3/testsuite/17_intro/header_cwctype.cc b/libstdc++-v3/testsuite/17_intro/header_cwctype.cc deleted file mode 100644 index 850e58b..0000000 --- a/libstdc++-v3/testsuite/17_intro/header_cwctype.cc +++ /dev/null @@ -1,54 +0,0 @@ -// 2000-01-03 bkoz - -// Copyright (C) 2001 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 2, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING. If not, write to the Free -// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -// USA. - -// 17.4.1.2 Headers, cwctype - -#if _GLIBCXX_USE_WCHAR_T -#include <cwctype> -// Make sure wint_t is in namespace std -std::wint_t i = 5; - -// Make sure table 46 is in namespace std. -using std::wctype_t; -using std::wctrans_t; -using std::iswalpha; -using std::iswupper; -using std::iswlower; -using std::iswdigit; -using std::iswxdigit; -using std::iswalnum; -using std::iswspace; -using std::iswpunct; -using std::iswprint; -using std::iswgraph; -using std::iswcntrl; -using std::iswctype; -using std::towctrans; -using std::towlower; -using std::towupper; -using std::wctrans; -using std::wctype; -#endif - -int main(void) -{ - return 0; -} - diff --git a/libstdc++-v3/testsuite/17_intro/headers/all.cc b/libstdc++-v3/testsuite/17_intro/headers/all.cc new file mode 100644 index 0000000..c0ef4bf --- /dev/null +++ b/libstdc++-v3/testsuite/17_intro/headers/all.cc @@ -0,0 +1,145 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// Make sure all the includes can be compiled with -Wc++0x-compat +// libstdc++/30571 + +// C +#include <cassert> +#include <cctype> +#include <cerrno> +#include <cfloat> +#include <ciso646> +#include <climits> +#include <clocale> +#include <cmath> +#include <csetjmp> +#include <csignal> +#include <cstdarg> +#include <cstddef> +#include <cstdio> +#include <cstdlib> +#include <cstring> +#include <ctime> + +// C++ +#include <algorithm> +#include <bitset> +#include <complex> +#include <deque> +#include <exception> +#include <fstream> +#include <functional> +#include <iomanip> +#include <ios> +#include <iosfwd> +#include <iostream> +#include <istream> +#include <iterator> +#include <limits> +#include <list> +#include <locale> +#include <map> +#include <memory> +#include <new> +#include <numeric> +#include <ostream> +#include <queue> +#include <set> +#include <sstream> +#include <stack> +#include <stdexcept> +#include <streambuf> +#include <string> +#include <typeinfo> +#include <utility> +#include <valarray> +#include <vector> + +// TR1 +#include <tr1/array> +#include <tr1/cctype> +#include <tr1/cfenv> +#include <tr1/cfloat> +#include <tr1/cinttypes> +#include <tr1/climits> +#include <tr1/cmath> +#include <tr1/complex> +#include <tr1/cstdarg> +#include <tr1/cstdbool> +#include <tr1/cstdint> +#include <tr1/cstdio> +#include <tr1/cstdlib> +#include <tr1/ctgmath> +#include <tr1/ctime> +#include <tr1/cwchar> +#include <tr1/cwctype> +#include <tr1/functional> +#include <tr1/random> +#include <tr1/tuple> +#include <tr1/unordered_map> +#include <tr1/unordered_set> +#include <tr1/utility> + +// Extensions +#include <ext/algorithm> +#include <ext/array_allocator.h> +#include <ext/atomicity.h> +#include <ext/bitmap_allocator.h> +#include <ext/codecvt_specializations.h> +#include <ext/concurrence.h> +#include <ext/debug_allocator.h> +#include <ext/enc_filebuf.h> +#include <ext/functional> +#include <ext/hash_map> +#include <ext/hash_set> +#include <ext/iterator> +#include <ext/malloc_allocator.h> +#include <ext/memory> +#include <ext/mt_allocator.h> +#include <ext/new_allocator.h> +#include <ext/numeric> +#include <ext/pod_char_traits.h> +#include <ext/pool_allocator.h> +#include <ext/rb_tree> +#include <ext/rope> +#include <ext/slist> +#include <ext/stdio_filebuf.h> +#include <ext/stdio_sync_filebuf.h> +#include <ext/throw_allocator.h> +#include <ext/typelist.h> +#include <ext/type_traits.h> +#include <ext/vstring.h> +#include <ext/pb_ds/assoc_container.hpp> +#include <ext/pb_ds/priority_queue.hpp> +#include <ext/pb_ds/exception.hpp> +#include <ext/pb_ds/hash_policy.hpp> +#include <ext/pb_ds/list_update_policy.hpp> +#include <ext/pb_ds/tree_policy.hpp> +#include <ext/pb_ds/trie_policy.hpp> diff --git a/libstdc++-v3/testsuite/17_intro/no_assert_neg.cc b/libstdc++-v3/testsuite/17_intro/headers/all_assert_neg.cc index d259c2c..d259c2c 100644 --- a/libstdc++-v3/testsuite/17_intro/no_assert_neg.cc +++ b/libstdc++-v3/testsuite/17_intro/headers/all_assert_neg.cc diff --git a/libstdc++-v3/testsuite/17_intro/headers_c++_c++0x_compat.cc b/libstdc++-v3/testsuite/17_intro/headers/all_c++200x_compatibility.cc index 1052cd7..1052cd7 100644 --- a/libstdc++-v3/testsuite/17_intro/headers_c++_c++0x_compat.cc +++ b/libstdc++-v3/testsuite/17_intro/headers/all_c++200x_compatibility.cc diff --git a/libstdc++-v3/testsuite/17_intro/headers.cc b/libstdc++-v3/testsuite/17_intro/headers/c++1998/all.cc index 4697540..2704e49 100644 --- a/libstdc++-v3/testsuite/17_intro/headers.cc +++ b/libstdc++-v3/testsuite/17_intro/headers/c++1998/all.cc @@ -1,6 +1,7 @@ +// { dg-do compile } // 1999-05-12 bkoz -// Copyright (C) 1999 Free Software Foundation, Inc. +// Copyright (C) 1999, 2007 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -23,6 +24,45 @@ // 17.4.1.2 Headers +// "C" headers +#include <cassert> +#include <cctype> +#include <cerrno> +#include <cfloat> +#include <ciso646> +#include <climits> +#include <clocale> +#include <cmath> +#include <csetjmp> +#include <csignal> +#include <cstdarg> +#include <cstddef> +#include <cstdio> +#include <cstdlib> +#include <cstring> +#include <ctime> +#include <cwchar> +#include <cwctype> + +// "C" compatibility headers +#include <assert.h> +#include <ctype.h> +#include <errno.h> +#include <float.h> +#include <iso646.h> +#include <limits.h> +#include <locale.h> +#include <math.h> +#include <setjmp.h> +#include <signal.h> +#include <stdarg.h> +#include <stddef.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <time.h> +#include <wchar.h> +#include <wctype.h> // "C++" headers #include <algorithm> @@ -58,29 +98,3 @@ #include <valarray> #include <vector> -// "C" headers -#include <cassert> -#include <cctype> -#include <cerrno> -#include <cfloat> -#include <ciso646> -#include <climits> -#include <clocale> -#include <cmath> -#include <csetjmp> -#include <csignal> -#include <cstdarg> -#include <cstddef> -#include <cstdio> -#include <cstdlib> -#include <cstring> -#include <ctime> - -// "C" headers that might not work if wchar_t support is disabled. -#include <bits/c++config.h> -#if _GLIBCXX_USE_WCHAR_T - #include <cwchar> - #include <cwctype> -#endif - -int main() { return 0; } diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++1998/all_multiple_inclusion.cc b/libstdc++-v3/testsuite/17_intro/headers/c++1998/all_multiple_inclusion.cc new file mode 100644 index 0000000..a1cb289 --- /dev/null +++ b/libstdc++-v3/testsuite/17_intro/headers/c++1998/all_multiple_inclusion.cc @@ -0,0 +1,174 @@ +// { dg-do compile } +// 1999-05-12 bkoz + +// Copyright (C) 1999, 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// FreeBSD wants warning clean system headers: +// { dg-options "-Wall -Wsystem-headers" { target *-*-freebsd* } } + +// 17.4.1.2 Headers + +// "C" headers +#include <cassert> +#include <cctype> +#include <cerrno> +#include <cfloat> +#include <ciso646> +#include <climits> +#include <clocale> +#include <cmath> +#include <csetjmp> +#include <csignal> +#include <cstdarg> +#include <cstddef> +#include <cstdio> +#include <cstdlib> +#include <cstring> +#include <ctime> +#include <cwchar> +#include <cwctype> + +// "C" compatibility headers +#include <assert.h> +#include <ctype.h> +#include <errno.h> +#include <float.h> +#include <iso646.h> +#include <limits.h> +#include <locale.h> +#include <math.h> +#include <setjmp.h> +#include <signal.h> +#include <stdarg.h> +#include <stddef.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <time.h> +#include <wchar.h> +#include <wctype.h> + +// "C++" headers +#include <algorithm> +#include <bitset> +#include <complex> +#include <deque> +#include <exception> +#include <fstream> +#include <functional> +#include <iomanip> +#include <ios> +#include <iosfwd> +#include <iostream> +#include <istream> +#include <iterator> +#include <limits> +#include <list> +#include <locale> +#include <map> +#include <memory> +#include <new> +#include <numeric> +#include <ostream> +#include <queue> +#include <set> +#include <sstream> +#include <stack> +#include <stdexcept> +#include <streambuf> +#include <string> +#include <typeinfo> +#include <utility> +#include <valarray> +#include <vector> + + +// "C" headers +#include <cassert> +#include <cctype> +#include <cerrno> +#include <cfloat> +#include <ciso646> +#include <climits> +#include <clocale> +#include <cmath> +#include <csetjmp> +#include <csignal> +#include <cstdarg> +#include <cstddef> +#include <cstdio> +#include <cstdlib> +#include <cstring> +#include <ctime> +#include <cwchar> +#include <cwctype> + +// "C" compatibility headers +#include <assert.h> +#include <ctype.h> +#include <errno.h> +#include <float.h> +#include <iso646.h> +#include <limits.h> +#include <locale.h> +#include <math.h> +#include <setjmp.h> +#include <signal.h> +#include <stdarg.h> +#include <stddef.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <time.h> +#include <wchar.h> +#include <wctype.h> + +// "C++" headers +#include <algorithm> +#include <bitset> +#include <complex> +#include <deque> +#include <exception> +#include <fstream> +#include <functional> +#include <iomanip> +#include <ios> +#include <iosfwd> +#include <iostream> +#include <istream> +#include <iterator> +#include <limits> +#include <list> +#include <locale> +#include <map> +#include <memory> +#include <new> +#include <numeric> +#include <ostream> +#include <queue> +#include <set> +#include <sstream> +#include <stack> +#include <stdexcept> +#include <streambuf> +#include <string> +#include <typeinfo> +#include <utility> +#include <valarray> +#include <vector> diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++1998/c++.tar b/libstdc++-v3/testsuite/17_intro/headers/c++1998/c++.tar Binary files differnew file mode 100644 index 0000000..bbe7c5a --- /dev/null +++ b/libstdc++-v3/testsuite/17_intro/headers/c++1998/c++.tar diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++1998/c++_for_c.tar b/libstdc++-v3/testsuite/17_intro/headers/c++1998/c++_for_c.tar Binary files differnew file mode 100644 index 0000000..9f25ab9 --- /dev/null +++ b/libstdc++-v3/testsuite/17_intro/headers/c++1998/c++_for_c.tar diff --git a/libstdc++-v3/testsuite/17_intro/headers_c++.cc b/libstdc++-v3/testsuite/17_intro/headers_c++.cc deleted file mode 100644 index 03c902a..0000000 --- a/libstdc++-v3/testsuite/17_intro/headers_c++.cc +++ /dev/null @@ -1,84 +0,0 @@ -// 2001-01-01 bkoz - -// Copyright (C) 2001 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 2, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING. If not, write to the Free -// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -// USA. - -// 17.4.1.2 Headers - -// This file tests C++ inclusion then C inclusion. - -// C++ headers -#include <cassert> -#include <cctype> -#include <cerrno> -#include <cfloat> -#include <ciso646> -#include <climits> -#include <clocale> -#include <cmath> -#include <csetjmp> -#include <csignal> -#include <cstdarg> -#include <cstddef> -#include <cstdio> -#include <cstdlib> -#include <cstring> -#include <ctime> - -// "C" headers -#include <assert.h> -#include <ctype.h> -#include <errno.h> -#include <float.h> -#include <iso646.h> -#include <limits.h> -#include <locale.h> -#include <math.h> -#include <setjmp.h> -#include <signal.h> -#include <stdarg.h> -#include <stddef.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <time.h> - -// "C++" headers that might not work if wchar_t support is disabled. -#include <bits/c++config.h> -#if _GLIBCXX_USE_WCHAR_T - #include <cwchar> - #include <cwctype> - #include <wchar.h> - #include <wctype.h> -#endif - -// libstdc++/2992 -namespace bar -{ - int foo(const char *x) - { return strlen(x); } -}; - - -int main() { return 0; } - - - - - - diff --git a/libstdc++-v3/testsuite/17_intro/headers_c.cc b/libstdc++-v3/testsuite/17_intro/headers_c.cc deleted file mode 100644 index 369639c..0000000 --- a/libstdc++-v3/testsuite/17_intro/headers_c.cc +++ /dev/null @@ -1,78 +0,0 @@ -// 2000-12-20 bkoz - -// Copyright (C) 2000, 2001 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 2, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING. If not, write to the Free -// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -// USA. - -// 17.4.1.2 Headers - -// This file tests C inclusion then C++ inclusion. - -// "C" headers -#include <assert.h> -#include <ctype.h> -#include <errno.h> -#include <float.h> -#include <iso646.h> -#include <limits.h> -#include <locale.h> -#include <math.h> -#include <setjmp.h> -#include <signal.h> -#include <stdarg.h> -#include <stddef.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <time.h> - -// C++ headers -#include <cassert> -#include <cctype> -#include <cerrno> -#include <cfloat> -#include <ciso646> -#include <climits> -#include <clocale> -#include <cmath> -#include <csetjmp> -#include <csignal> -#include <cstdarg> -#include <cstddef> -#include <cstdio> -#include <cstdlib> -#include <cstring> -#include <ctime> - -// "C" headers that might not work if wchar_t support is disabled. -#include <bits/c++config.h> -#if _GLIBCXX_USE_WCHAR_T - #include <wchar.h> - #include <wctype.h> - #include <cwchar> - #include <cwctype> -#endif - -// libstdc++/2992 -namespace bar -{ - int foo(const char *x) - { return strlen(x); } -}; - - -int main() { return 0; } diff --git a/libstdc++-v3/testsuite/17_intro/header_ios.cc b/libstdc++-v3/testsuite/17_intro/using_namespace_std.cc index d04e14a..26a2c65 100644 --- a/libstdc++-v3/testsuite/17_intro/header_ios.cc +++ b/libstdc++-v3/testsuite/17_intro/using_namespace_std.cc @@ -1,6 +1,6 @@ -// 1999-07-01 bkoz +// { dg-do compile } -// Copyright (C) 1999 Free Software Foundation, Inc. +// Copyright (C) 2007 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -18,13 +18,9 @@ // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, // USA. -// 17.4.1.2 Headers, ios +#include <new> -#include <ios> -#include <testsuite_hooks.h> - - -int main(void) +namespace gnu { - return 0; + using namespace std; } diff --git a/libstdc++-v3/testsuite/18_support/headers/cfloat/values.cc b/libstdc++-v3/testsuite/18_support/headers/cfloat/values.cc new file mode 100644 index 0000000..7a06a68 --- /dev/null +++ b/libstdc++-v3/testsuite/18_support/headers/cfloat/values.cc @@ -0,0 +1,54 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <cfloat> + +namespace gnu +{ + double d1 = DBL_DIG; + double d2 = DBL_EPSILON; + double d3 = DBL_MANT_DIG; + double d4 = DBL_MAX; + double d5 = DBL_MAX_10_EXP; + double d6 = DBL_MAX_EXP; + double d7 = DBL_MIN; + double d8 = DBL_MIN_10_EXP; + double d9 = DBL_MIN_EXP; + + float f1 = FLT_DIG; + float f2 = FLT_EPSILON; + float f3 = FLT_MANT_DIG; + float f4 = FLT_MAX; + float f5 = FLT_MAX_10_EXP; + float f6 = FLT_MAX_EXP; + float f7 = FLT_MIN; + float f8 = FLT_MIN_10_EXP; + float f9 = FLT_MIN_EXP; + + long double ld1 = LDBL_DIG; + long double ld2 = LDBL_EPSILON; + long double ld3 = LDBL_MANT_DIG; + long double ld4 = LDBL_MAX; + long double ld5 = LDBL_MAX_10_EXP; + long double ld6 = LDBL_MAX_EXP; + long double ld7 = LDBL_MIN; + long double ld8 = LDBL_MIN_10_EXP; + long double ld9 = LDBL_MIN_EXP; +} diff --git a/libstdc++-v3/testsuite/18_support/headers/climits/values.cc b/libstdc++-v3/testsuite/18_support/headers/climits/values.cc new file mode 100644 index 0000000..2d15600 --- /dev/null +++ b/libstdc++-v3/testsuite/18_support/headers/climits/values.cc @@ -0,0 +1,53 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <climits> + +namespace gnu +{ + // char + char c1 = CHAR_BIT; + char c2 = CHAR_MAX; + char c3 = CHAR_MIN; + + // int + int i2 = INT_MAX; + int i3 = INT_MIN; + + // short + short s2 = SHRT_MAX; + short s3 = SHRT_MIN; + + // long + long l2 = LONG_MAX; + long l3 = LONG_MIN; + + unsigned long mb = MB_LEN_MAX; + + // signed char + signed char sc1 = SCHAR_MIN; + signed char sc2 = SCHAR_MAX; + + // unsigned + unsigned int ui = UINT_MAX; + unsigned short us = USHRT_MAX; + unsigned long ul = ULONG_MAX; + +} diff --git a/libstdc++-v3/testsuite/17_intro/header_iomanip.cc b/libstdc++-v3/testsuite/18_support/headers/csetjmp/functions_std.cc index 6d46224..d0a2494 100644 --- a/libstdc++-v3/testsuite/17_intro/header_iomanip.cc +++ b/libstdc++-v3/testsuite/18_support/headers/csetjmp/functions_std.cc @@ -1,6 +1,6 @@ -// 1999-07-01 bkoz +// { dg-do compile } -// Copyright (C) 1999 Free Software Foundation, Inc. +// Copyright (C) 2007 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -18,13 +18,9 @@ // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, // USA. -// 17.4.1.2 Headers, iomanip +#include <csetjmp> -#include <iomanip> -#include <testsuite_hooks.h> - - -int main(void) +namespace gnu { - return 0; + using std::longjmp; } diff --git a/libstdc++-v3/testsuite/17_intro/header_fstream.cc b/libstdc++-v3/testsuite/18_support/headers/csetjmp/macros.cc index c190d50..01a9013 100644 --- a/libstdc++-v3/testsuite/17_intro/header_fstream.cc +++ b/libstdc++-v3/testsuite/18_support/headers/csetjmp/macros.cc @@ -1,6 +1,6 @@ -// 1999-07-01 bkoz +// { dg-do compile } -// Copyright (C) 1999 Free Software Foundation, Inc. +// Copyright (C) 2007 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -18,13 +18,11 @@ // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, // USA. -// 17.4.1.2 Headers, fstream +#include <csetjmp> -#include <fstream> -#include <testsuite_hooks.h> - - -int main(void) +namespace gnu { - return 0; +#ifndef setjmp + #error "setjmp_must_be_a_macro" +#endif } diff --git a/libstdc++-v3/testsuite/18_support/headers/csetjmp/types_std.cc b/libstdc++-v3/testsuite/18_support/headers/csetjmp/types_std.cc new file mode 100644 index 0000000..ecf7f66 --- /dev/null +++ b/libstdc++-v3/testsuite/18_support/headers/csetjmp/types_std.cc @@ -0,0 +1,26 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <csetjmp> + +namespace gnu +{ + std::jmp_buf j; +} diff --git a/libstdc++-v3/testsuite/18_support/headers/csignal/functions_std.cc b/libstdc++-v3/testsuite/18_support/headers/csignal/functions_std.cc new file mode 100644 index 0000000..6823376 --- /dev/null +++ b/libstdc++-v3/testsuite/18_support/headers/csignal/functions_std.cc @@ -0,0 +1,27 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <csignal> + +namespace gnu +{ + using std::raise; + using std::signal; +} diff --git a/libstdc++-v3/testsuite/18_support/headers/csignal/macros.cc b/libstdc++-v3/testsuite/18_support/headers/csignal/macros.cc new file mode 100644 index 0000000..8842611 --- /dev/null +++ b/libstdc++-v3/testsuite/18_support/headers/csignal/macros.cc @@ -0,0 +1,56 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <csignal> + +namespace gnu +{ +#ifndef SIGABRT + #error "SIGABRT_must_be_a_macro" +#endif + +#ifndef SIGILL + #error "SIGILL_must_be_a_macro" +#endif + +#ifndef SIGSEGV + #error "SIGSEGV_must_be_a_macro" +#endif + +#ifndef SIG_DFL + #error "SIG_DFL_must_be_a_macro" +#endif + +#ifndef SIGFPE + #error "SIGFPE_must_be_a_macro" +#endif + +#ifndef SIGINT + #error "SIGINT_must_be_a_macro" +#endif + +#ifndef SIGTERM + #error "SIGTERM_must_be_a_macro" +#endif + +#ifndef SIG_ERR + #error "SIG_ERR_must_be_a_macro" +#endif +} diff --git a/libstdc++-v3/testsuite/18_support/headers/csignal/types_std.cc b/libstdc++-v3/testsuite/18_support/headers/csignal/types_std.cc new file mode 100644 index 0000000..7562727 --- /dev/null +++ b/libstdc++-v3/testsuite/18_support/headers/csignal/types_std.cc @@ -0,0 +1,26 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <csignal> + +namespace gnu +{ + std::sig_atomic_t s; +} diff --git a/libstdc++-v3/testsuite/17_intro/header_cstdarg.cc b/libstdc++-v3/testsuite/18_support/headers/cstdarg/macros.cc index e23edbb..add2f90 100644 --- a/libstdc++-v3/testsuite/17_intro/header_cstdarg.cc +++ b/libstdc++-v3/testsuite/18_support/headers/cstdarg/macros.cc @@ -1,6 +1,6 @@ -// 2001-02-06 Benjamin Kosnik <bkoz@redhat.com> +// { dg-do compile } -// Copyright (C) 2001, 2003 Free Software Foundation, Inc. +// Copyright (C) 2007 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -18,29 +18,19 @@ // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, // USA. -// 17.4.1.2 Headers, cstdarg - #include <cstdarg> namespace gnu { - void test01() - { - std::va_list __attribute__((unused)) list; #ifndef va_arg #error "va_arg_must_be_a_macro" #endif -#ifndef va_end - #error "va_end_must_be_a_macro" -#endif + #ifndef va_start #error "va_start_must_be_a_macro" #endif - } -} - -int main() -{ - gnu::test01(); - return 0; + +#ifndef va_end + #error "va_end_must_be_a_macro" +#endif } diff --git a/libstdc++-v3/testsuite/18_support/headers/cstdarg/types_std.cc b/libstdc++-v3/testsuite/18_support/headers/cstdarg/types_std.cc new file mode 100644 index 0000000..5215152 --- /dev/null +++ b/libstdc++-v3/testsuite/18_support/headers/cstdarg/types_std.cc @@ -0,0 +1,26 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <cstdarg> + +namespace gnu +{ + std::va_list v; +} diff --git a/libstdc++-v3/testsuite/17_intro/header_cstddef.cc b/libstdc++-v3/testsuite/18_support/headers/cstddef/macros.cc index ec195bb..4751d16 100644 --- a/libstdc++-v3/testsuite/17_intro/header_cstddef.cc +++ b/libstdc++-v3/testsuite/18_support/headers/cstddef/macros.cc @@ -1,6 +1,7 @@ +// { dg-do compile } // 2001-02-06 Benjamin Kosnik <bkoz@redhat.com> -// Copyright (C) 2001, 2003 Free Software Foundation, Inc. +// Copyright (C) 2001, 2003, 2007 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -18,8 +19,6 @@ // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, // USA. -// 17.4.1.2 Headers, cstddef - #include <cstddef> namespace gnu @@ -30,6 +29,7 @@ namespace gnu int j; }; + // offsetof void test01() { std::size_t i __attribute__((unused)) = offsetof(struct test_type, i); @@ -37,10 +37,15 @@ namespace gnu #error "offsetof_must_be_a_macro" #endif } -} - -int main() -{ - gnu::test01(); - return 0; + + // NULL + void test02() + { + // Must not be (void*)0 + const int j = NULL; + +#ifndef NULL + #error "NULL_must_be_a_macro" +#endif + } } diff --git a/libstdc++-v3/testsuite/18_support/headers/cstddef/types_std.cc b/libstdc++-v3/testsuite/18_support/headers/cstddef/types_std.cc new file mode 100644 index 0000000..a00dd16 --- /dev/null +++ b/libstdc++-v3/testsuite/18_support/headers/cstddef/types_std.cc @@ -0,0 +1,27 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <cstddef> + +namespace gnu +{ + std::size_t s; + std::ptrdiff_t p; +} diff --git a/libstdc++-v3/testsuite/18_support/headers/cstdlib/functions_std.cc b/libstdc++-v3/testsuite/18_support/headers/cstdlib/functions_std.cc new file mode 100644 index 0000000..9956158 --- /dev/null +++ b/libstdc++-v3/testsuite/18_support/headers/cstdlib/functions_std.cc @@ -0,0 +1,31 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <cstdlib> + +namespace gnu +{ + using std::abort; + using std::atexit; + using std::exit; + + using std::getenv; + using std::system; +} diff --git a/libstdc++-v3/testsuite/17_intro/header_cassert.cc b/libstdc++-v3/testsuite/18_support/headers/cstdlib/macros.cc index 50f5db4..419ee74 100644 --- a/libstdc++-v3/testsuite/17_intro/header_cassert.cc +++ b/libstdc++-v3/testsuite/18_support/headers/cstdlib/macros.cc @@ -1,6 +1,7 @@ +// { dg-do compile } // 2001-02-06 Benjamin Kosnik <bkoz@redhat.com> -// Copyright (C) 2001 Free Software Foundation, Inc. +// Copyright (C) 2001, 2003, 2007 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -18,23 +19,15 @@ // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, // USA. -// 17.4.1.2 Headers, cassert - -#include <cassert> +#include <cstddef> namespace gnu { - void test01() - { - assert (true); -#ifndef assert - #error "assert_must_be_a_macro" +#ifndef EXIT_FAILURE + #error "EXIT_FAILURE_must_be_a_macro" +#endif + +#ifndef EXIT_SUCCESS + #error "EXIT_SUCCESS_must_be_a_macro" #endif - } -} - -int main() -{ - gnu::test01(); - return 0; } diff --git a/libstdc++-v3/testsuite/18_support/headers/ctime/functions_std.cc b/libstdc++-v3/testsuite/18_support/headers/ctime/functions_std.cc new file mode 100644 index 0000000..5a7e56d --- /dev/null +++ b/libstdc++-v3/testsuite/18_support/headers/ctime/functions_std.cc @@ -0,0 +1,26 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <ctime> + +namespace gnu +{ + using std::clock; +} diff --git a/libstdc++-v3/testsuite/18_support/headers/ctime/macros.cc b/libstdc++-v3/testsuite/18_support/headers/ctime/macros.cc new file mode 100644 index 0000000..de92381 --- /dev/null +++ b/libstdc++-v3/testsuite/18_support/headers/ctime/macros.cc @@ -0,0 +1,28 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <ctime> + +namespace gnu +{ +#ifndef CLOCKS_PER_SEC + #error "CLOCKS_PER_SEC_must_be_a_macro" +#endif +} diff --git a/libstdc++-v3/testsuite/18_support/headers/ctime/types_std.cc b/libstdc++-v3/testsuite/18_support/headers/ctime/types_std.cc new file mode 100644 index 0000000..c0168af --- /dev/null +++ b/libstdc++-v3/testsuite/18_support/headers/ctime/types_std.cc @@ -0,0 +1,26 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <ctime> + +namespace gnu +{ + std::clock_t c; +} diff --git a/libstdc++-v3/testsuite/18_support/headers/exception/synopsis.cc b/libstdc++-v3/testsuite/18_support/headers/exception/synopsis.cc new file mode 100644 index 0000000..24585ee --- /dev/null +++ b/libstdc++-v3/testsuite/18_support/headers/exception/synopsis.cc @@ -0,0 +1,36 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <exception> + +namespace std { + class exception; + class bad_exception; + + typedef void (*unexpected_handler)(); + unexpected_handler set_unexpected(unexpected_handler f ) throw(); + void unexpected(); + + typedef void (*terminate_handler)(); + terminate_handler set_terminate(terminate_handler f ) throw(); + void terminate(); + + bool uncaught_exception() throw(); +} diff --git a/libstdc++-v3/testsuite/18_support/headers/exception/types_std.cc b/libstdc++-v3/testsuite/18_support/headers/exception/types_std.cc new file mode 100644 index 0000000..467f68a --- /dev/null +++ b/libstdc++-v3/testsuite/18_support/headers/exception/types_std.cc @@ -0,0 +1,27 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <exception> + +namespace gnu +{ + typedef std::exception t1; + typedef std::bad_exception t2; +} diff --git a/libstdc++-v3/testsuite/18_support/headers/limits/synopsis.cc b/libstdc++-v3/testsuite/18_support/headers/limits/synopsis.cc new file mode 100644 index 0000000..a0db1d9 --- /dev/null +++ b/libstdc++-v3/testsuite/18_support/headers/limits/synopsis.cc @@ -0,0 +1,48 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <limits> + +namespace std { + template<class T> class numeric_limits; + +#if 0 + enum float_round_style; + enum float_denorm_style; +#endif + + template<> class numeric_limits<bool>; + + template<> class numeric_limits<char>; + template<> class numeric_limits<signed char>; + template<> class numeric_limits<unsigned char>; + template<> class numeric_limits<wchar_t>; + + template<> class numeric_limits<short>; + template<> class numeric_limits<int>; + template<> class numeric_limits<long>; + template<> class numeric_limits<unsigned short>; + template<> class numeric_limits<unsigned int>; + template<> class numeric_limits<unsigned long>; + + template<> class numeric_limits<float>; + template<> class numeric_limits<double>; + template<> class numeric_limits<long double>; +} diff --git a/libstdc++-v3/testsuite/18_support/headers/new/synopsis.cc b/libstdc++-v3/testsuite/18_support/headers/new/synopsis.cc new file mode 100644 index 0000000..6d05bb4 --- /dev/null +++ b/libstdc++-v3/testsuite/18_support/headers/new/synopsis.cc @@ -0,0 +1,43 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <new> + +namespace std { + class bad_alloc; + struct nothrow_t; + extern const nothrow_t nothrow; + typedef void (*new_handler)(); + new_handler set_new_handler(new_handler new_p) throw(); +} + +void* operator new(std::size_t size) throw(std::bad_alloc); +void* operator new(std::size_t size, const std::nothrow_t&) throw(); +void operator delete(void* ptr) throw(); +void operator delete(void* ptr, const std::nothrow_t&) throw(); +void* operator new[](std::size_t size) throw(std::bad_alloc); +void* operator new[](std::size_t size, const std::nothrow_t&) throw(); +void operator delete[](void* ptr) throw(); +void operator delete[](void* ptr, const std::nothrow_t&) throw(); + +void* operator new (std::size_t size, void* ptr) throw(); +void* operator new[](std::size_t size, void* ptr) throw(); +void operator delete (void* ptr, void*) throw(); +void operator delete[](void* ptr, void*) throw(); diff --git a/libstdc++-v3/testsuite/18_support/headers/new/types_std.cc b/libstdc++-v3/testsuite/18_support/headers/new/types_std.cc new file mode 100644 index 0000000..a0d2c4e --- /dev/null +++ b/libstdc++-v3/testsuite/18_support/headers/new/types_std.cc @@ -0,0 +1,29 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <new> + +namespace gnu +{ + typedef std::bad_alloc t1; + typedef std::nothrow_t t2; + + typedef std::new_handler t3; +} diff --git a/libstdc++-v3/testsuite/18_support/headers/typeinfo/synopsis.cc b/libstdc++-v3/testsuite/18_support/headers/typeinfo/synopsis.cc new file mode 100644 index 0000000..7e87055 --- /dev/null +++ b/libstdc++-v3/testsuite/18_support/headers/typeinfo/synopsis.cc @@ -0,0 +1,27 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <typeinfo> + +namespace std { + class type_info; + class bad_cast; + class bad_typeid; +} diff --git a/libstdc++-v3/testsuite/18_support/headers/typeinfo/types_std.cc b/libstdc++-v3/testsuite/18_support/headers/typeinfo/types_std.cc new file mode 100644 index 0000000..8db903e --- /dev/null +++ b/libstdc++-v3/testsuite/18_support/headers/typeinfo/types_std.cc @@ -0,0 +1,29 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <typeinfo> + +namespace gnu +{ + typedef std::type_info t1; + typedef std::bad_cast t2; + + typedef std::bad_typeid t3; +} diff --git a/libstdc++-v3/testsuite/18_support/numeric_limits/sign.cc b/libstdc++-v3/testsuite/18_support/numeric_limits/is_signed.cc index e6c5f1d..e6c5f1d 100644 --- a/libstdc++-v3/testsuite/18_support/numeric_limits/sign.cc +++ b/libstdc++-v3/testsuite/18_support/numeric_limits/is_signed.cc diff --git a/libstdc++-v3/testsuite/18_support/numeric_limits/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/18_support/numeric_limits/requirements/explicit_instantiation/1.cc new file mode 100644 index 0000000..77856e9 --- /dev/null +++ b/libstdc++-v3/testsuite/18_support/numeric_limits/requirements/explicit_instantiation/1.cc @@ -0,0 +1,50 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02110-1301, USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// This file tests explicit instantiation of library containers. + +#include <limits> + +template<typename T> + struct A + { + int key; + public: + A(int i = 0): key(i) { } + bool + operator==(int i) { return i == key; } + }; + +struct B +{ + B(int = 0) { } +}; + +// XXX Should this work for POD types? +template class std::numeric_limits<A<B> >; diff --git a/libstdc++-v3/testsuite/18_support/numeric_limits/specialization.cc b/libstdc++-v3/testsuite/18_support/numeric_limits/specialization_default_values.cc index 0a1c8fe..0a1c8fe 100644 --- a/libstdc++-v3/testsuite/18_support/numeric_limits/specialization.cc +++ b/libstdc++-v3/testsuite/18_support/numeric_limits/specialization_default_values.cc diff --git a/libstdc++-v3/testsuite/19_diagnostics/headers/cassert/macros.cc b/libstdc++-v3/testsuite/19_diagnostics/headers/cassert/macros.cc new file mode 100644 index 0000000..822414c --- /dev/null +++ b/libstdc++-v3/testsuite/19_diagnostics/headers/cassert/macros.cc @@ -0,0 +1,28 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <cassert> + +namespace gnu +{ +#ifndef assert + #error "assert_must_be_a_macro" +#endif +} diff --git a/libstdc++-v3/testsuite/17_intro/header_cerrno.cc b/libstdc++-v3/testsuite/19_diagnostics/headers/cerrno/macros.cc index d8d28ce..468d4a1 100644 --- a/libstdc++-v3/testsuite/17_intro/header_cerrno.cc +++ b/libstdc++-v3/testsuite/19_diagnostics/headers/cerrno/macros.cc @@ -1,6 +1,6 @@ -// 2001-02-06 Benjamin Kosnik <bkoz@redhat.com> +// { dg-do compile } -// Copyright (C) 2001, 2003 Free Software Foundation, Inc. +// Copyright (C) 2007 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -18,24 +18,19 @@ // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, // USA. -// 17.4.1.2 Headers, cerrno - -#include <cerrno> +#include <cassert> namespace gnu { - int test01() - { - int i = errno; +#ifndef EDOM + #error "EDOM_must_be_a_macro" +#endif + +#ifndef ERANGE + #error "ERANGE_must_be_a_macro" +#endif + #ifndef errno #error "errno_must_be_a_macro" #endif - return i; - } -} - -int main() -{ - gnu::test01(); - return 0; } diff --git a/libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/synopsis.cc b/libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/synopsis.cc new file mode 100644 index 0000000..6be26e0 --- /dev/null +++ b/libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/synopsis.cc @@ -0,0 +1,34 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <stdexcept> + +namespace std { + class logic_error; + class domain_error; + class invalid_argument; + class length_error; + class out_of_range; + class runtime_error; + class range_error; + class overflow_error; + class underflow_error; +} + diff --git a/libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/types_std.cc b/libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/types_std.cc new file mode 100644 index 0000000..160c691 --- /dev/null +++ b/libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/types_std.cc @@ -0,0 +1,34 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <stdexcept> + +namespace gnu +{ + typedef std::logic_error t1; + typedef std::domain_error t2; + typedef std::invalid_argument t3; + typedef std::length_error t4; + typedef std::out_of_range t5; + typedef std::runtime_error t6; + typedef std::range_error t7; + typedef std::overflow_error t8; + typedef std::underflow_error t9; +} diff --git a/libstdc++-v3/testsuite/20_util/headers/cstdlib/functions_std.cc b/libstdc++-v3/testsuite/20_util/headers/cstdlib/functions_std.cc new file mode 100644 index 0000000..7ac51ed --- /dev/null +++ b/libstdc++-v3/testsuite/20_util/headers/cstdlib/functions_std.cc @@ -0,0 +1,29 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <cstdlib> + +namespace gnu +{ + using std::calloc; + using std::malloc; + using std::free; + using std::realloc; +} diff --git a/libstdc++-v3/testsuite/20_util/headers/cstring/functions_std.cc b/libstdc++-v3/testsuite/20_util/headers/cstring/functions_std.cc new file mode 100644 index 0000000..f521d72 --- /dev/null +++ b/libstdc++-v3/testsuite/20_util/headers/cstring/functions_std.cc @@ -0,0 +1,30 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <cstring> + +namespace gnu +{ + using std::memchr; + using std::memcmp; + using std::memcpy; + using std::memmove; + using std::memset; +} diff --git a/libstdc++-v3/testsuite/20_util/headers/cstring/macros.cc b/libstdc++-v3/testsuite/20_util/headers/cstring/macros.cc new file mode 100644 index 0000000..c714d16 --- /dev/null +++ b/libstdc++-v3/testsuite/20_util/headers/cstring/macros.cc @@ -0,0 +1,28 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <cstring> + +namespace gnu +{ +#ifndef NULL + #error "NULL_must_be_a_macro" +#endif +} diff --git a/libstdc++-v3/testsuite/20_util/headers/cstring/types_std.cc b/libstdc++-v3/testsuite/20_util/headers/cstring/types_std.cc new file mode 100644 index 0000000..f554d5a --- /dev/null +++ b/libstdc++-v3/testsuite/20_util/headers/cstring/types_std.cc @@ -0,0 +1,26 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <cstring> + +namespace gnu +{ + std::size_t s; +} diff --git a/libstdc++-v3/testsuite/17_intro/header_ctime.cc b/libstdc++-v3/testsuite/20_util/headers/ctime/functions_std.cc index 0df0157..ce381b2 100644 --- a/libstdc++-v3/testsuite/17_intro/header_ctime.cc +++ b/libstdc++-v3/testsuite/20_util/headers/ctime/functions_std.cc @@ -1,6 +1,6 @@ -// 2000-01-01 bkoz +// { dg-do compile } -// Copyright (C) 2001, 2003 Free Software Foundation, Inc. +// Copyright (C) 2007 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -18,13 +18,17 @@ // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, // USA. -// 17.4.1.2 Headers, ctime - #include <ctime> -int main(void) +namespace gnu { - // Make sure size_t is in namespace std - std::size_t i __attribute__((unused)) = 5; - return 0; + using std::asctime; + using std::clock; + using std::difftime; + using std::localtime; + using std::strftime; + using std::ctime; + using std::gmtime; + using std::mktime; + using std::time; } diff --git a/libstdc++-v3/testsuite/20_util/headers/ctime/macros.cc b/libstdc++-v3/testsuite/20_util/headers/ctime/macros.cc new file mode 100644 index 0000000..7c7e134 --- /dev/null +++ b/libstdc++-v3/testsuite/20_util/headers/ctime/macros.cc @@ -0,0 +1,28 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <ctime> + +namespace gnu +{ +#ifndef NULL + #error "NULL_must_be_a_macro" +#endif +} diff --git a/libstdc++-v3/testsuite/17_intro/header_iosfwd.cc b/libstdc++-v3/testsuite/20_util/headers/ctime/types_std.cc index ccfd14a..ef0cab6 100644 --- a/libstdc++-v3/testsuite/17_intro/header_iosfwd.cc +++ b/libstdc++-v3/testsuite/20_util/headers/ctime/types_std.cc @@ -1,6 +1,6 @@ -// 1999-07-01 bkoz +// { dg-do compile } -// Copyright (C) 1999 Free Software Foundation, Inc. +// Copyright (C) 2007 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -18,13 +18,13 @@ // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, // USA. -// 17.4.1.2 Headers, iosfwd +#include <ctime> -#include <iosfwd> -#include <testsuite_hooks.h> - - -int main(void) +namespace gnu { - return 0; + std::size_t s; + std::clock_t c; + std::time_t t; + + std::tm t2; } diff --git a/libstdc++-v3/testsuite/20_util/headers/functional/synopsis.cc b/libstdc++-v3/testsuite/20_util/headers/functional/synopsis.cc new file mode 100644 index 0000000..d4853b2 --- /dev/null +++ b/libstdc++-v3/testsuite/20_util/headers/functional/synopsis.cc @@ -0,0 +1,101 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <functional> + +namespace std { + // lib.base, base: + template <class Arg, class Result> struct unary_function; + template <class Arg1, class Arg2, class Result> struct binary_function; + + // lib.arithmetic.operations, arithmetic operations: + template <class T> struct plus; + template <class T> struct minus; + template <class T> struct multiplies; + template <class T> struct divides; + template <class T> struct modulus; + template <class T> struct negate; + + // lib.comparisons, comparisons: + template <class T> struct equal_to; + template <class T> struct not_equal_to; + template <class T> struct greater; + template <class T> struct less; + template <class T> struct greater_equal; + template <class T> struct less_equal; + + // lib.logical.operations, logical operations: + template <class T> struct logical_and; + template <class T> struct logical_or; + template <class T> struct logical_not; + + // lib.negators, negators: + template <class Predicate> struct unary_negate; + template <class Predicate> + unary_negate<Predicate> not1(const Predicate&); + template <class Predicate> struct binary_negate; + template <class Predicate> + binary_negate<Predicate> not2(const Predicate&); + + // lib.binders, binders: + template <class Operation> class binder1st; + template <class Operation, class T> + binder1st<Operation> bind1st(const Operation&, const T&); + template <class Operation> class binder2nd; + template <class Operation, class T> + binder2nd<Operation> bind2nd(const Operation&, const T&); + + // lib.function.pointer.adaptors, adaptors: + template <class Arg, class Result> class pointer_to_unary_function; + template <class Arg, class Result> + pointer_to_unary_function<Arg,Result> ptr_fun(Result (*)(Arg)); + template <class Arg1, class Arg2, class Result> + class pointer_to_binary_function; + template <class Arg1, class Arg2, class Result> + pointer_to_binary_function<Arg1,Arg2,Result> + ptr_fun(Result (*)(Arg1,Arg2)); + + // lib.member.pointer.adaptors, adaptors: + template<class S, class T> class mem_fun_t; + template<class S, class T, class A> class mem_fun1_t; + template<class S, class T> + mem_fun_t<S,T> mem_fun(S (T::*f)()); + template<class S, class T, class A> + mem_fun1_t<S,T,A> mem_fun(S (T::*f)(A)); + template<class S, class T> class mem_fun_ref_t; + template<class S, class T, class A> class mem_fun1_ref_t; + template<class S, class T> + mem_fun_ref_t<S,T> mem_fun_ref(S (T::*f)()); + template<class S, class T, class A> + mem_fun1_ref_t<S,T,A> mem_fun_ref(S (T::*f)(A)); + + template <class S, class T> class const_mem_fun_t; + template <class S, class T, class A> class const_mem_fun1_t; + template <class S, class T> + const_mem_fun_t<S,T> mem_fun(S (T::*f)() const); + template <class S, class T, class A> + const_mem_fun1_t<S,T,A> mem_fun(S (T::*f)(A) const); + template <class S, class T> class const_mem_fun_ref_t; + template <class S, class T, class A> class const_mem_fun1_ref_t; + template <class S, class T> + const_mem_fun_ref_t<S,T> mem_fun_ref(S (T::*f)() const); + template <class S, class T, class A> + const_mem_fun1_ref_t<S,T,A> mem_fun_ref(S (T::*f)(A) const); +} diff --git a/libstdc++-v3/testsuite/20_util/headers/memory/synopsis.cc b/libstdc++-v3/testsuite/20_util/headers/memory/synopsis.cc new file mode 100644 index 0000000..306a37e --- /dev/null +++ b/libstdc++-v3/testsuite/20_util/headers/memory/synopsis.cc @@ -0,0 +1,54 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <memory> + +namespace std { + // lib.default.allocator, the default allocator: + template <class T> class allocator; + template <> class allocator<void>; + template <class T, class U> + bool operator==(const allocator<T>&, const allocator<U>&) throw(); + template <class T, class U> + bool operator!=(const allocator<T>&, const allocator<U>&) throw(); + + // lib.storage.iterator, raw storage iterator: + template <class OutputIterator, class T> class raw_storage_iterator; + + // lib.temporary.buffer, temporary buffers: + template <class T> + pair<T*,ptrdiff_t> get_temporary_buffer(ptrdiff_t n); + template <class T> + void return_temporary_buffer(T* p); + + // lib.specialized.algorithms, specialized algorithms: + template <class InputIterator, class ForwardIterator> + ForwardIterator + uninitialized_copy(InputIterator first, InputIterator last, + ForwardIterator result); + template <class ForwardIterator, class T> + void uninitialized_fill(ForwardIterator first, ForwardIterator last, + const T& x); + template <class ForwardIterator, class Size, class T> + void uninitialized_fill_n(ForwardIterator first, Size n, const T& x); + + // lib.auto.ptr, pointers: + template<class X> class auto_ptr; +} diff --git a/libstdc++-v3/testsuite/20_util/headers/utility/synopsis.cc b/libstdc++-v3/testsuite/20_util/headers/utility/synopsis.cc new file mode 100644 index 0000000..bb96c32 --- /dev/null +++ b/libstdc++-v3/testsuite/20_util/headers/utility/synopsis.cc @@ -0,0 +1,46 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <utility> + +namespace std { + // lib.operators, operators: + namespace rel_ops { + template<class T> bool operator!=(const T&, const T&); + template<class T> bool operator> (const T&, const T&); + template<class T> bool operator<=(const T&, const T&); + template<class T> bool operator>=(const T&, const T&); + } + + // lib.pairs, pairs: + template <class T1, class T2> struct pair; + template <class T1, class T2> + bool operator==(const pair<T1,T2>&, const pair<T1,T2>&); + template <class T1, class T2> + bool operator< (const pair<T1,T2>&, const pair<T1,T2>&); + template <class T1, class T2> + bool operator!=(const pair<T1,T2>&, const pair<T1,T2>&); + template <class T1, class T2> + bool operator> (const pair<T1,T2>&, const pair<T1,T2>&); + template <class T1, class T2> + bool operator>=(const pair<T1,T2>&, const pair<T1,T2>&); + template <class T1, class T2> + bool operator<=(const pair<T1,T2>&, const pair<T1,T2>&); +} diff --git a/libstdc++-v3/testsuite/20_util/headers/utility/using_namespace_std_rel_ops.cc b/libstdc++-v3/testsuite/20_util/headers/utility/using_namespace_std_rel_ops.cc new file mode 100644 index 0000000..1e78aeb --- /dev/null +++ b/libstdc++-v3/testsuite/20_util/headers/utility/using_namespace_std_rel_ops.cc @@ -0,0 +1,26 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <utility> + +namespace gnu +{ + using namespace std::rel_ops; +} diff --git a/libstdc++-v3/testsuite/20_util/memory/allocator/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/20_util/memory/allocator/requirements/explicit_instantiation/1.cc new file mode 100644 index 0000000..ed88aef --- /dev/null +++ b/libstdc++-v3/testsuite/20_util/memory/allocator/requirements/explicit_instantiation/1.cc @@ -0,0 +1,34 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02110-1301, USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// This file tests explicit instantiation of library containers. + +#include <memory> + +template class std::allocator<int>; diff --git a/libstdc++-v3/testsuite/20_util/memory/auto_ptr/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/20_util/memory/auto_ptr/requirements/explicit_instantiation/1.cc new file mode 100644 index 0000000..e6abacd --- /dev/null +++ b/libstdc++-v3/testsuite/20_util/memory/auto_ptr/requirements/explicit_instantiation/1.cc @@ -0,0 +1,34 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02110-1301, USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// This file tests explicit instantiation of library containers. + +#include <memory> + +template class std::auto_ptr<int>; diff --git a/libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator/requirements/base_classes.cc b/libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator/requirements/base_classes.cc new file mode 100644 index 0000000..bc2793f --- /dev/null +++ b/libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator/requirements/base_classes.cc @@ -0,0 +1,37 @@ +// { dg-do compile } + +// 2001-06-18 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2003, 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 20.4.2 raw storage iterator + +#include <memory> + +void test01() +{ + using namespace std; + + // Check for required base class. + long l; + typedef raw_storage_iterator<long*, long> test_iterator; + typedef iterator<output_iterator_tag, void, void, void, void> base_iterator; + test_iterator rs_it(&l); + base_iterator* base __attribute__((unused)) = &rs_it; +} diff --git a/libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator/requirements/explicit_instantiation/1.cc new file mode 100644 index 0000000..41023b6 --- /dev/null +++ b/libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator/requirements/explicit_instantiation/1.cc @@ -0,0 +1,34 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02110-1301, USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// This file tests explicit instantiation of library containers. + +#include <memory> + +template class std::raw_storage_iterator<int*, int>; diff --git a/libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator.cc b/libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator/requirements/typedefs.cc index 36e7d25..4a51c4c 100644 --- a/libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator.cc +++ b/libstdc++-v3/testsuite/20_util/memory/raw_storage_iterator/requirements/typedefs.cc @@ -1,6 +1,7 @@ +// { dg-do compile } // 2001-06-18 Benjamin Kosnik <bkoz@redhat.com> -// Copyright (C) 2001, 2003 Free Software Foundation, Inc. +// Copyright (C) 2001, 2003, 2007 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -26,23 +27,12 @@ void test01() { using namespace std; - // Check for required base class. + // Check for required typedefs long l; typedef raw_storage_iterator<long*, long> test_iterator; - typedef iterator<output_iterator_tag, void, void, void, void> base_iterator; - test_iterator rs_it(&l); - base_iterator* base __attribute__((unused)) = &rs_it; - - // Check for required typedefs typedef test_iterator::value_type value_type; typedef test_iterator::difference_type difference_type; typedef test_iterator::pointer pointer; typedef test_iterator::reference reference; typedef test_iterator::iterator_category iteratory_category; } - -int main() -{ - test01(); - return 0; -} diff --git a/libstdc++-v3/testsuite/20_util/utility/pair/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/20_util/utility/pair/requirements/explicit_instantiation/1.cc new file mode 100644 index 0000000..3d55f62 --- /dev/null +++ b/libstdc++-v3/testsuite/20_util/utility/pair/requirements/explicit_instantiation/1.cc @@ -0,0 +1,34 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02110-1301, USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// This file tests explicit instantiation of library containers. + +#include <utility> + +template class std::pair<int, long>; diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/1.cc b/libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/1.cc index ec83914..ec83914 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/1.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/1.cc diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/2.cc b/libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/debug.cc index 8b02175..8b02175 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/2.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/debug.cc diff --git a/libstdc++-v3/testsuite/21_strings/headers/cctype/functions_std.cc b/libstdc++-v3/testsuite/21_strings/headers/cctype/functions_std.cc new file mode 100644 index 0000000..b0375f6 --- /dev/null +++ b/libstdc++-v3/testsuite/21_strings/headers/cctype/functions_std.cc @@ -0,0 +1,38 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <cctype> + +namespace gnu +{ + using std::isalnum; + using std::isdigit; + using std::isprint; + using std::isupper; + using std::tolower; + using std::isalpha; + using std::isgraph; + using std::ispunct; + using std::isxdigit; + using std::toupper; + using std::iscntrl; + using std::islower; + using std::isspace; +} diff --git a/libstdc++-v3/testsuite/21_strings/headers/cstdlib/functions_std.cc b/libstdc++-v3/testsuite/21_strings/headers/cstdlib/functions_std.cc new file mode 100644 index 0000000..4840dfd --- /dev/null +++ b/libstdc++-v3/testsuite/21_strings/headers/cstdlib/functions_std.cc @@ -0,0 +1,36 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <cstdlib> + +namespace gnu +{ + using std::atol; + using std::atof; + using std::atoi; + using std::mblen; + using std::mbstowcs; + using std::mbtowc; + using std::strtod; + using std::strtol; + using std::strtoul; + using std::wctomb; + using std::wcstombs; +} diff --git a/libstdc++-v3/testsuite/21_strings/headers/cstdlib/macros.cc b/libstdc++-v3/testsuite/21_strings/headers/cstdlib/macros.cc new file mode 100644 index 0000000..c714d16 --- /dev/null +++ b/libstdc++-v3/testsuite/21_strings/headers/cstdlib/macros.cc @@ -0,0 +1,28 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <cstring> + +namespace gnu +{ +#ifndef NULL + #error "NULL_must_be_a_macro" +#endif +} diff --git a/libstdc++-v3/testsuite/21_strings/headers/cstring/functions_std.cc b/libstdc++-v3/testsuite/21_strings/headers/cstring/functions_std.cc new file mode 100644 index 0000000..3b4662f --- /dev/null +++ b/libstdc++-v3/testsuite/21_strings/headers/cstring/functions_std.cc @@ -0,0 +1,47 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <cstring> + +namespace gnu +{ + using std::memchr; + using std::memcmp; + using std::memcpy; + using std::memmove; + using std::memset; + using std::strcat; + using std::strchr; + using std::strcmp; + using std::strcoll; + using std::strcpy; + using std::strcspn; + using std::strerror; + using std::strlen; + using std::strncat; + using std::strncmp; + using std::strncpy; + using std::strpbrk; + using std::strrchr; + using std::strspn; + using std::strstr; + using std::strtok; + using std::strxfrm; +} diff --git a/libstdc++-v3/testsuite/21_strings/headers/cstring/macros.cc b/libstdc++-v3/testsuite/21_strings/headers/cstring/macros.cc new file mode 100644 index 0000000..c714d16 --- /dev/null +++ b/libstdc++-v3/testsuite/21_strings/headers/cstring/macros.cc @@ -0,0 +1,28 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <cstring> + +namespace gnu +{ +#ifndef NULL + #error "NULL_must_be_a_macro" +#endif +} diff --git a/libstdc++-v3/testsuite/21_strings/headers/cstring/types_std.cc b/libstdc++-v3/testsuite/21_strings/headers/cstring/types_std.cc new file mode 100644 index 0000000..f554d5a --- /dev/null +++ b/libstdc++-v3/testsuite/21_strings/headers/cstring/types_std.cc @@ -0,0 +1,26 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <cstring> + +namespace gnu +{ + std::size_t s; +} diff --git a/libstdc++-v3/testsuite/21_strings/headers/cwchar/functions_std.cc b/libstdc++-v3/testsuite/21_strings/headers/cwchar/functions_std.cc new file mode 100644 index 0000000..377cbdc --- /dev/null +++ b/libstdc++-v3/testsuite/21_strings/headers/cwchar/functions_std.cc @@ -0,0 +1,77 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <cwchar> + +namespace gnu +{ + using std::btowc; + using std::fgetwc; + using std::fgetws; + using std::fputwc; + using std::fputws; + using std::fwide; + using std::fwprintf; + using std::fwscanf; + using std::getwc; + using std::getwchar; + using std::mbrlen; + using std::mbrtowc; + using std::mbsinit; + using std::mbsrtowcs; + using std::putwc; + using std::putwchar; + using std::swprintf; + using std::swscanf; + using std::ungetwc; + using std::vfwprintf; + using std::vswprintf; + using std::vwprintf; + using std::wcrtomb; + using std::wcscat; + using std::wcschr; + using std::wcscmp; + using std::wcscoll; + using std::wcscpy; + using std::wcscmp; + using std::wcsftime; + using std::wcslen; + using std::wcsncat; + using std::wcsncmp; + using std::wcsncpy; + using std::wcspbrk; + using std::wcsrchr; + using std::wcsrtombs; + using std::wcsspn; + using std::wcsstr; + using std::wcstod; + using std::wcstok; + using std::wcstol; + using std::wcstoul; + using std::wcsxfrm; + using std::wctob; + using std::wmemchr; + using std::wmemcmp; + using std::wmemcpy; + using std::wmemmove; + using std::wmemset; + using std::wprintf; + using std::wscanf; +} diff --git a/libstdc++-v3/testsuite/21_strings/headers/cwchar/macros.cc b/libstdc++-v3/testsuite/21_strings/headers/cwchar/macros.cc new file mode 100644 index 0000000..17d6129 --- /dev/null +++ b/libstdc++-v3/testsuite/21_strings/headers/cwchar/macros.cc @@ -0,0 +1,40 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <cwchar> + +namespace gnu +{ +#ifndef NULL + #error "NULL_must_be_a_macro" +#endif + +#ifndef WCHAR_MAX + #error "WCHAR_MAX_must_be_a_macro" +#endif + +#ifndef WCHAR_MIN + #error "WCHAR_MIN_must_be_a_macro" +#endif + +#ifndef WEOF + #error "WEOF_must_be_a_macro" +#endif +} diff --git a/libstdc++-v3/testsuite/21_strings/headers/cwchar/types_std.cc b/libstdc++-v3/testsuite/21_strings/headers/cwchar/types_std.cc new file mode 100644 index 0000000..f7cd6a7 --- /dev/null +++ b/libstdc++-v3/testsuite/21_strings/headers/cwchar/types_std.cc @@ -0,0 +1,28 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <cwchar> + +namespace gnu +{ + std::mbstate_t mb; + std::wint_t wt; + std::size_t s; +} diff --git a/libstdc++-v3/testsuite/21_strings/headers/cwctype/functions_std.cc b/libstdc++-v3/testsuite/21_strings/headers/cwctype/functions_std.cc new file mode 100644 index 0000000..88871fa --- /dev/null +++ b/libstdc++-v3/testsuite/21_strings/headers/cwctype/functions_std.cc @@ -0,0 +1,40 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <cwctype> + +namespace gnu +{ + using std::iswalnum; + using std::iswdigit; + using std::iswprint; + using std::iswupper; + using std::iswalpha; + using std::iswgraph; + using std::iswpunct; + using std::iswxdigit; + using std::iswspace; + using std::iswcntrl; + using std::towlower; + using std::towupper; + using std::towctrans; + using std::wctrans; + using std::wctype; +} diff --git a/libstdc++-v3/testsuite/21_strings/headers/cwctype/macros.cc b/libstdc++-v3/testsuite/21_strings/headers/cwctype/macros.cc new file mode 100644 index 0000000..a1d78c7 --- /dev/null +++ b/libstdc++-v3/testsuite/21_strings/headers/cwctype/macros.cc @@ -0,0 +1,28 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <cwctype> + +namespace gnu +{ +#ifndef WEOF + #error "WEOF_must_be_a_macro" +#endif +} diff --git a/libstdc++-v3/testsuite/21_strings/headers/cwctype/types_std.cc b/libstdc++-v3/testsuite/21_strings/headers/cwctype/types_std.cc new file mode 100644 index 0000000..f8a48cf --- /dev/null +++ b/libstdc++-v3/testsuite/21_strings/headers/cwctype/types_std.cc @@ -0,0 +1,28 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <cwctype> + +namespace gnu +{ + std::wctrans_t wt; + std::wctype_t wct; + std::wint_t wint; +} diff --git a/libstdc++-v3/testsuite/21_strings/headers/string/synopsis.cc b/libstdc++-v3/testsuite/21_strings/headers/string/synopsis.cc new file mode 100644 index 0000000..a482ec1 --- /dev/null +++ b/libstdc++-v3/testsuite/21_strings/headers/string/synopsis.cc @@ -0,0 +1,135 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <string> + +namespace std { + // lib.char.traits, character traits: + template<class charT> + struct char_traits; + template <> struct char_traits<char>; + template <> struct char_traits<wchar_t>; + + // lib.basic.string, basic_string: + template<class charT, class traits, class Allocator > + class basic_string; + + template<class charT, class traits, class Allocator> + basic_string<charT,traits,Allocator> + operator+(const basic_string<charT,traits,Allocator>& lhs, + const basic_string<charT,traits,Allocator>& rhs); + template<class charT, class traits, class Allocator> + basic_string<charT,traits,Allocator> + operator+(const charT* lhs, + const basic_string<charT,traits,Allocator>& rhs); + template<class charT, class traits, class Allocator> + basic_string<charT,traits,Allocator> + operator+(charT lhs, const basic_string<charT,traits,Allocator>& rhs); + template<class charT, class traits, class Allocator> + basic_string<charT,traits,Allocator> + operator+(const basic_string<charT,traits,Allocator>& lhs, + const charT* rhs); + template<class charT, class traits, class Allocator> + basic_string<charT,traits,Allocator> + operator+(const basic_string<charT,traits,Allocator>& lhs, charT rhs); + + template<class charT, class traits, class Allocator> + bool operator==(const basic_string<charT,traits,Allocator>& lhs, + const basic_string<charT,traits,Allocator>& rhs); + template<class charT, class traits, class Allocator> + bool operator==(const charT* lhs, + const basic_string<charT,traits,Allocator>& rhs); + template<class charT, class traits, class Allocator> + bool operator==(const basic_string<charT,traits,Allocator>& lhs, + const charT* rhs); + template<class charT, class traits, class Allocator> + bool operator!=(const basic_string<charT,traits,Allocator>& lhs, + const basic_string<charT,traits,Allocator>& rhs); + template<class charT, class traits, class Allocator> + bool operator!=(const charT* lhs, + const basic_string<charT,traits,Allocator>& rhs); + template<class charT, class traits, class Allocator> + bool operator!=(const basic_string<charT,traits,Allocator>& lhs, + const charT* rhs); + + template<class charT, class traits, class Allocator> + bool operator< (const basic_string<charT,traits,Allocator>& lhs, + const basic_string<charT,traits,Allocator>& rhs); + template<class charT, class traits, class Allocator> + bool operator< (const basic_string<charT,traits,Allocator>& lhs, + const charT* rhs); + template<class charT, class traits, class Allocator> + bool operator< (const charT* lhs, + const basic_string<charT,traits,Allocator>& rhs); + template<class charT, class traits, class Allocator> + bool operator> (const basic_string<charT,traits,Allocator>& lhs, + const basic_string<charT,traits,Allocator>& rhs); + template<class charT, class traits, class Allocator> + bool operator> (const basic_string<charT,traits,Allocator>& lhs, + const charT* rhs); + template<class charT, class traits, class Allocator> + bool operator> (const charT* lhs, + const basic_string<charT,traits,Allocator>& rhs); + + template<class charT, class traits, class Allocator> + bool operator<=(const basic_string<charT,traits,Allocator>& lhs, + const basic_string<charT,traits,Allocator>& rhs); + template<class charT, class traits, class Allocator> + bool operator<=(const basic_string<charT,traits,Allocator>& lhs, + const charT* rhs); + template<class charT, class traits, class Allocator> + bool operator<=(const charT* lhs, + const basic_string<charT,traits,Allocator>& rhs); + template<class charT, class traits, class Allocator> + bool operator>=(const basic_string<charT,traits,Allocator>& lhs, + const basic_string<charT,traits,Allocator>& rhs); + template<class charT, class traits, class Allocator> + bool operator>=(const basic_string<charT,traits,Allocator>& lhs, + const charT* rhs); + template<class charT, class traits, class Allocator> + bool operator>=(const charT* lhs, + const basic_string<charT,traits,Allocator>& rhs); + + // lib.string.special: + template<class charT, class traits, class Allocator> + void swap(basic_string<charT,traits,Allocator>& lhs, + basic_string<charT,traits,Allocator>& rhs); + + template<class charT, class traits, class Allocator> + basic_istream<charT,traits>& + operator>>(basic_istream<charT,traits>& is, + basic_string<charT,traits,Allocator>& str); + template<class charT, class traits, class Allocator> + basic_ostream<charT, traits>& + operator<<(basic_ostream<charT, traits>& os, + const basic_string<charT,traits,Allocator>& str); + template<class charT, class traits, class Allocator> + basic_istream<charT,traits>& + getline(basic_istream<charT,traits>& is, + basic_string<charT,traits,Allocator>& str, + charT delim); + template<class charT, class traits, class Allocator> + basic_istream<charT,traits>& + getline(basic_istream<charT,traits>& is, + basic_string<charT,traits,Allocator>& str); + + typedef basic_string<char> string; + typedef basic_string<wchar_t> wstring; +} diff --git a/libstdc++-v3/testsuite/21_strings/headers/string/types_std.cc b/libstdc++-v3/testsuite/21_strings/headers/string/types_std.cc new file mode 100644 index 0000000..40731c4 --- /dev/null +++ b/libstdc++-v3/testsuite/21_strings/headers/string/types_std.cc @@ -0,0 +1,27 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <string> + +namespace gnu +{ + typedef std::string t1; + typedef std::wstring t2; +} diff --git a/libstdc++-v3/testsuite/22_locale/codecvt/1.cc b/libstdc++-v3/testsuite/22_locale/codecvt/requirements/base_classes.cc index c0232ce..15f5d64 100644 --- a/libstdc++-v3/testsuite/22_locale/codecvt/1.cc +++ b/libstdc++-v3/testsuite/22_locale/codecvt/requirements/base_classes.cc @@ -30,15 +30,4 @@ void test01() typedef std::locale::facet base_type; const test_type& obj = std::use_facet<test_type>(std::locale()); const base_type* base __attribute__((unused)) = &obj; - - // Check for required typedefs - typedef test_type::intern_type intern_type; - typedef test_type::extern_type extern_type; - typedef test_type::state_type state_type; -} - -int main() -{ - test01(); - return 0; } diff --git a/libstdc++-v3/testsuite/22_locale/codecvt/2.cc b/libstdc++-v3/testsuite/22_locale/codecvt/requirements/explicit_instantiation.cc index 4e12657..b73c870 100644 --- a/libstdc++-v3/testsuite/22_locale/codecvt/2.cc +++ b/libstdc++-v3/testsuite/22_locale/codecvt/requirements/explicit_instantiation.cc @@ -24,16 +24,4 @@ #include <locale> // Should be able to instantiate this for other types besides char, wchar_t -class gnu_codecvt: public std::codecvt<unsigned char, unsigned long, char> -{ }; - -void test02() -{ - gnu_codecvt facet01; -} - -int main() -{ - test02(); - return 0; -} +template class std::codecvt<unsigned char, unsigned long, char>; diff --git a/libstdc++-v3/testsuite/22_locale/codecvt/requirements/typedefs.cc b/libstdc++-v3/testsuite/22_locale/codecvt/requirements/typedefs.cc new file mode 100644 index 0000000..45cfb2a --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/codecvt/requirements/typedefs.cc @@ -0,0 +1,33 @@ +// { dg-do compile } +// 2001-08-27 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2003 Free Software Foundation +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 22.2.1.5 Template class codecvt + +#include <locale> + +void test01() +{ + // Check for required typedefs + typedef std::codecvt<char, char, mbstate_t> test_type; + typedef test_type::intern_type intern_type; + typedef test_type::extern_type extern_type; + typedef test_type::state_type state_type; +} diff --git a/libstdc++-v3/testsuite/22_locale/codecvt_byname/1.cc b/libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/base_classes.cc index d9c9f16..337bd10 100644 --- a/libstdc++-v3/testsuite/22_locale/codecvt_byname/1.cc +++ b/libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/base_classes.cc @@ -30,15 +30,4 @@ void test01() typedef std::codecvt<char, char, mbstate_t> base_type; const test_type& obj = std::use_facet<test_type>(std::locale::classic()); const base_type* base __attribute__((unused)) = &obj; - - // Check for required typedefs - typedef test_type::intern_type intern_type; - typedef test_type::extern_type extern_type; - typedef test_type::state_type state_type; -} - -int main() -{ - test01(); - return 0; } diff --git a/libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/explicit_instantiation.cc new file mode 100644 index 0000000..094b386 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/explicit_instantiation.cc @@ -0,0 +1,34 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02110-1301, USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// This file tests explicit instantiation of library containers. + +#include <locale> + +template class std::codecvt_byname<short, short, mbstate_t>; diff --git a/libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/typedefs.cc b/libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/typedefs.cc new file mode 100644 index 0000000..1bb9059 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/typedefs.cc @@ -0,0 +1,33 @@ +// { dg-do compile } +// 2001-08-27 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2003 Free Software Foundation +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 22.2.1.5 Template class codecvt + +#include <locale> + +void test01() +{ + // Check for required typedefs + typedef std::codecvt_byname<char, char, mbstate_t> test_type; + typedef test_type::intern_type intern_type; + typedef test_type::extern_type extern_type; + typedef test_type::state_type state_type; +} diff --git a/libstdc++-v3/testsuite/22_locale/collate/1.cc b/libstdc++-v3/testsuite/22_locale/collate/requirements/base_classes.cc index 72de0a9..7659800 100644 --- a/libstdc++-v3/testsuite/22_locale/collate/1.cc +++ b/libstdc++-v3/testsuite/22_locale/collate/requirements/base_classes.cc @@ -30,14 +30,4 @@ void test01() typedef std::locale::facet base_type; const test_type& obj = std::use_facet<test_type>(std::locale()); const base_type* base __attribute__((unused)) = &obj; - - // Check for required typedefs - typedef test_type::char_type char_type; - typedef test_type::string_type string_type; -} - -int main() -{ - test01(); - return 0; } diff --git a/libstdc++-v3/testsuite/22_locale/collate/2.cc b/libstdc++-v3/testsuite/22_locale/collate/requirements/explicit_instantiation.cc index e4d43e8..a9be3b1 100644 --- a/libstdc++-v3/testsuite/22_locale/collate/2.cc +++ b/libstdc++-v3/testsuite/22_locale/collate/requirements/explicit_instantiation.cc @@ -24,16 +24,4 @@ #include <locale> // Should be able to instantiate this for other types besides char, wchar_t -class gnu_collate: public std::collate<unsigned char> -{ }; - -void test02() -{ - gnu_collate facet01; -} - -int main() -{ - test02(); - return 0; -} +template class std::collate<unsigned char>; diff --git a/libstdc++-v3/testsuite/22_locale/collate/requirements/typedefs.cc b/libstdc++-v3/testsuite/22_locale/collate/requirements/typedefs.cc new file mode 100644 index 0000000..9baafac --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/collate/requirements/typedefs.cc @@ -0,0 +1,32 @@ +// { dg-do compile } +// 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001 Free Software Foundation +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 22.2.4 The collate category + +#include <locale> + +void test01() +{ + // Check for required typedefs + typedef std::collate<char> test_type; + typedef test_type::char_type char_type; + typedef test_type::string_type string_type; +} diff --git a/libstdc++-v3/testsuite/22_locale/collate_byname/1.cc b/libstdc++-v3/testsuite/22_locale/collate_byname/requirements/base_classes.cc index be3b7d2..f3d6571 100644 --- a/libstdc++-v3/testsuite/22_locale/collate_byname/1.cc +++ b/libstdc++-v3/testsuite/22_locale/collate_byname/requirements/base_classes.cc @@ -30,14 +30,4 @@ void test01() typedef std::collate<char> base_type; const test_type& obj = std::use_facet<test_type>(std::locale::classic()); const base_type* base __attribute__((unused)) = &obj; - - // Check for required typedefs - typedef test_type::char_type char_type; - typedef test_type::string_type string_type; -} - -int main() -{ - test01(); - return 0; } diff --git a/libstdc++-v3/testsuite/22_locale/collate_byname/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/22_locale/collate_byname/requirements/explicit_instantiation.cc new file mode 100644 index 0000000..43eda6f --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/collate_byname/requirements/explicit_instantiation.cc @@ -0,0 +1,34 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02110-1301, USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// This file tests explicit instantiation of library containers. + +#include <locale> + +template class std::collate_byname<short>; diff --git a/libstdc++-v3/testsuite/22_locale/collate_byname/requirements/typedefs.cc b/libstdc++-v3/testsuite/22_locale/collate_byname/requirements/typedefs.cc new file mode 100644 index 0000000..52ae527 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/collate_byname/requirements/typedefs.cc @@ -0,0 +1,32 @@ +// { dg-do compile } +// 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001 Free Software Foundation +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 22.2.4 The collate category + +#include <locale> + +void test01() +{ + // Check for required typedefs + typedef std::collate_byname<char> test_type; + typedef test_type::char_type char_type; + typedef test_type::string_type string_type; +} diff --git a/libstdc++-v3/testsuite/22_locale/ctype/1.cc b/libstdc++-v3/testsuite/22_locale/ctype/requirements/base_classes.cc index a1e2f1f..0cf4c51 100644 --- a/libstdc++-v3/testsuite/22_locale/ctype/1.cc +++ b/libstdc++-v3/testsuite/22_locale/ctype/requirements/base_classes.cc @@ -32,13 +32,4 @@ void test01() const test_type& obj = std::use_facet<test_type>(std::locale::classic()); const base_type1* base1 __attribute__((unused)) = &obj; const base_type2* base2 __attribute__((unused)) = &obj; - - // Check for required typedefs - typedef test_type::char_type char_type; -} - -int main() -{ - test01(); - return 0; } diff --git a/libstdc++-v3/testsuite/22_locale/ctype/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/22_locale/ctype/requirements/explicit_instantiation.cc new file mode 100644 index 0000000..85ebec3 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/ctype/requirements/explicit_instantiation.cc @@ -0,0 +1,34 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02110-1301, USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// This file tests explicit instantiation of library containers. + +#include <locale> + +template class std::ctype<short>; diff --git a/libstdc++-v3/testsuite/22_locale/ctype/requirements/typedefs.cc b/libstdc++-v3/testsuite/22_locale/ctype/requirements/typedefs.cc new file mode 100644 index 0000000..f88fa34 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/ctype/requirements/typedefs.cc @@ -0,0 +1,31 @@ +// { dg-do compile } +// 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2003 Free Software Foundation +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 22.2.1.1 - Template class ctype + +#include <locale> + +void test01() +{ + // Check for required typedefs + typedef std::ctype<char> test_type; + typedef test_type::char_type char_type; +} diff --git a/libstdc++-v3/testsuite/22_locale/ctype_base/1.cc b/libstdc++-v3/testsuite/22_locale/ctype_base/mask.cc index 260e1b0..260e1b0 100644 --- a/libstdc++-v3/testsuite/22_locale/ctype_base/1.cc +++ b/libstdc++-v3/testsuite/22_locale/ctype_base/mask.cc diff --git a/libstdc++-v3/testsuite/22_locale/headers/clocale/functions_std.cc b/libstdc++-v3/testsuite/22_locale/headers/clocale/functions_std.cc new file mode 100644 index 0000000..39626e8 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/headers/clocale/functions_std.cc @@ -0,0 +1,27 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <clocale> + +namespace gnu +{ + using std::localeconv; + using std::setlocale; +} diff --git a/libstdc++-v3/testsuite/22_locale/headers/clocale/macros.cc b/libstdc++-v3/testsuite/22_locale/headers/clocale/macros.cc new file mode 100644 index 0000000..575a33a --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/headers/clocale/macros.cc @@ -0,0 +1,52 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <clocale> + +namespace gnu +{ +#ifndef NULL + #error "NULL_must_be_a_macro" +#endif + +#ifndef LC_ALL + #error "LC_ALL_must_be_a_macro" +#endif + +#ifndef LC_COLLATE + #error "LC_COLLATE_must_be_a_macro" +#endif + +#ifndef LC_CTYPE + #error "LC_CTYPE_must_be_a_macro" +#endif + +#ifndef LC_MONETARY + #error "LC_MONETARY_must_be_a_macro" +#endif + +#ifndef LC_NUMERIC + #error "LC_NUMERIC_must_be_a_macro" +#endif + +#ifndef LC_TIME + #error "LC_TIME_must_be_a_macro" +#endif +} diff --git a/libstdc++-v3/testsuite/22_locale/headers/clocale/types_std.cc b/libstdc++-v3/testsuite/22_locale/headers/clocale/types_std.cc new file mode 100644 index 0000000..125aef9 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/headers/clocale/types_std.cc @@ -0,0 +1,26 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <clocale> + +namespace gnu +{ + std::lconv l; +} diff --git a/libstdc++-v3/testsuite/22_locale/headers/locale/synopsis.cc b/libstdc++-v3/testsuite/22_locale/headers/locale/synopsis.cc new file mode 100644 index 0000000..a26eab1 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/headers/locale/synopsis.cc @@ -0,0 +1,85 @@ +// { dg-do compile { xfail *-*-* } } +// { dg-excess-errors "" } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <locale> + +namespace std { + // lib.locale, locale: + class locale; + template <class Facet> const Facet& use_facet(const locale&); + template <class Facet> bool has_facet(const locale&) throw(); + + // lib.locale.convenience, convenience interfaces: + template <class charT> bool isspace (charT c, const locale& loc); + template <class charT> bool isprint (charT c, const locale& loc); + template <class charT> bool iscntrl (charT c, const locale& loc); + template <class charT> bool isupper (charT c, const locale& loc); + template <class charT> bool islower (charT c, const locale& loc); + template <class charT> bool isalpha (charT c, const locale& loc); + template <class charT> bool isdigit (charT c, const locale& loc); + template <class charT> bool ispunct (charT c, const locale& loc); + template <class charT> bool isxdigit(charT c, const locale& loc); + template <class charT> bool isalnum (charT c, const locale& loc); + template <class charT> bool isgraph (charT c, const locale& loc); + template <class charT> charT toupper(charT c, const locale& loc); + template <class charT> charT tolower(charT c, const locale& loc); + + // lib.category.ctype and lib.facet.ctype.special, ctype: + class ctype_base; + template <class charT> class ctype; + template <> class ctype<char>; // specialization + template <class charT> class ctype_byname; + template <> class ctype_byname<char>; // specialization + class codecvt_base; + template <class internT, class externT, class stateT> + class codecvt; + template <class internT, class externT, class stateT> + class codecvt_byname; + + // lib.category.numeric and lib.facet.numpunct, numeric: + template <class charT, class InputIterator> class num_get; + template <class charT, class OutputIterator> class num_put; + template <class charT> class numpunct; + template <class charT> class numpunct_byname; + + // lib.category.collate, collation: + template <class charT> class collate; + template <class charT> class collate_byname; + + // lib.category.time, date and time: + class time_base; + template <class charT, class InputIterator> class time_get; + template <class charT, class InputIterator> class time_get_byname; + template <class charT, class OutputIterator> class time_put; + template <class charT, class OutputIterator> class time_put_byname; + + // lib.category.monetary, money: + class money_base; + template <class charT, class InputIterator> class money_get; + template <class charT, class OutputIterator> class money_put; + template <class charT, bool Intl> class moneypunct; + template <class charT, bool Intl> class moneypunct_byname; + + // lib.category.messages, message retrieval: + class messages_base; + template <class charT> class messages; + template <class charT> class messages_byname; +} diff --git a/libstdc++-v3/testsuite/22_locale/headers/locale/types_std.cc b/libstdc++-v3/testsuite/22_locale/headers/locale/types_std.cc new file mode 100644 index 0000000..85e4b9d --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/headers/locale/types_std.cc @@ -0,0 +1,31 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <locale> + +namespace gnu +{ + typedef std::locale t1; + typedef std::ctype_base t2; + typedef std::codecvt_base t3; + typedef std::time_base t4; + typedef std::money_base t5; + typedef std::messages_base t6; +} diff --git a/libstdc++-v3/testsuite/22_locale/messages/1.cc b/libstdc++-v3/testsuite/22_locale/messages/requirements/base_classes.cc index 55b59ef..ea89f80 100644 --- a/libstdc++-v3/testsuite/22_locale/messages/1.cc +++ b/libstdc++-v3/testsuite/22_locale/messages/requirements/base_classes.cc @@ -32,14 +32,4 @@ void test01() const test_type& obj = std::use_facet<test_type>(std::locale()); const base_type1* base1 __attribute__((unused)) = &obj; const base_type2* base2 __attribute__((unused)) = &obj; - - // Check for required typedefs - typedef test_type::char_type char_type; - typedef test_type::string_type string_type; -} - -int main() -{ - test01(); - return 0; } diff --git a/libstdc++-v3/testsuite/22_locale/messages/2.cc b/libstdc++-v3/testsuite/22_locale/messages/requirements/explicit_instantiation.cc index 42c37d9..eaea104 100644 --- a/libstdc++-v3/testsuite/22_locale/messages/2.cc +++ b/libstdc++-v3/testsuite/22_locale/messages/requirements/explicit_instantiation.cc @@ -24,16 +24,4 @@ #include <locale> // Should be able to instantiate this for other types besides char, wchar_t -class gnu_messages: public std::messages<unsigned char> -{ }; - -void test02() -{ - gnu_messages facet01; -} - -int main() -{ - test02(); - return 0; -} +template class std::messages<unsigned char>; diff --git a/libstdc++-v3/testsuite/22_locale/messages/requirements/typedefs.cc b/libstdc++-v3/testsuite/22_locale/messages/requirements/typedefs.cc new file mode 100644 index 0000000..e8c5b95 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/messages/requirements/typedefs.cc @@ -0,0 +1,32 @@ +// { dg-do compile } +// 2001-07-17 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2003 Free Software Foundation +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 22.2.7 The message retrieval category + +#include <locale> + +void test01() +{ + // Check for required typedefs + typedef std::messages<char> test_type; + typedef test_type::char_type char_type; + typedef test_type::string_type string_type; +} diff --git a/libstdc++-v3/testsuite/22_locale/messages_byname/1.cc b/libstdc++-v3/testsuite/22_locale/messages_byname/requirements/base_classes.cc index 51077ca..4836c04 100644 --- a/libstdc++-v3/testsuite/22_locale/messages_byname/1.cc +++ b/libstdc++-v3/testsuite/22_locale/messages_byname/requirements/base_classes.cc @@ -30,14 +30,4 @@ void test01() typedef std::messages<char> base_type; const test_type& obj = std::use_facet<test_type>(std::locale::classic()); const base_type* base __attribute__((unused)) = &obj; - - // Check for required typedefs - typedef test_type::char_type char_type; - typedef test_type::string_type string_type; -} - -int main() -{ - test01(); - return 0; } diff --git a/libstdc++-v3/testsuite/22_locale/messages_byname/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/22_locale/messages_byname/requirements/explicit_instantiation.cc new file mode 100644 index 0000000..b108ff8 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/messages_byname/requirements/explicit_instantiation.cc @@ -0,0 +1,34 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02110-1301, USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// This file tests explicit instantiation of library containers. + +#include <locale> + +template class std::messages_byname<short>; diff --git a/libstdc++-v3/testsuite/22_locale/messages_byname/requirements/typedefs.cc b/libstdc++-v3/testsuite/22_locale/messages_byname/requirements/typedefs.cc new file mode 100644 index 0000000..b74150e --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/messages_byname/requirements/typedefs.cc @@ -0,0 +1,32 @@ +// { dg-do compile } +// 2001-07-17 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2003 Free Software Foundation +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 22.2.7 The message retrieval category + +#include <locale> + +void test01() +{ + // Check for required typedefs + typedef std::messages_byname<char> test_type; + typedef test_type::char_type char_type; + typedef test_type::string_type string_type; +} diff --git a/libstdc++-v3/testsuite/22_locale/money_get/3.cc b/libstdc++-v3/testsuite/22_locale/money_get/cons/3.cc index 61e2a1f..61e2a1f 100644 --- a/libstdc++-v3/testsuite/22_locale/money_get/3.cc +++ b/libstdc++-v3/testsuite/22_locale/money_get/cons/3.cc diff --git a/libstdc++-v3/testsuite/22_locale/money_get/1.cc b/libstdc++-v3/testsuite/22_locale/money_get/requirements/base_classes.cc index dd7d0d2..a0a936e 100644 --- a/libstdc++-v3/testsuite/22_locale/money_get/1.cc +++ b/libstdc++-v3/testsuite/22_locale/money_get/requirements/base_classes.cc @@ -30,15 +30,4 @@ void test01() typedef std::locale::facet base_type; const test_type& obj = std::use_facet<test_type>(std::locale()); const base_type* base __attribute__((unused)) = &obj; - - // Check for required typedefs - typedef test_type::char_type char_type; - typedef test_type::string_type string_type; - typedef test_type::iter_type iter_type; -} - -int main() -{ - test01(); - return 0; } diff --git a/libstdc++-v3/testsuite/22_locale/money_get/2.cc b/libstdc++-v3/testsuite/22_locale/money_get/requirements/explicit_instantiations.cc index 3853a22..dc7f859 100644 --- a/libstdc++-v3/testsuite/22_locale/money_get/2.cc +++ b/libstdc++-v3/testsuite/22_locale/money_get/requirements/explicit_instantiations.cc @@ -24,16 +24,4 @@ #include <locale> // Should be able to instantiate this for other types besides char, wchar_t -class gnu_money_get: public std::money_get<unsigned char> -{ }; - -void test02() -{ - gnu_money_get facet01; -} - -int main() -{ - test02(); - return 0; -} +template class std::money_get<unsigned char>; diff --git a/libstdc++-v3/testsuite/22_locale/money_get/requirements/typedefs.cc b/libstdc++-v3/testsuite/22_locale/money_get/requirements/typedefs.cc new file mode 100644 index 0000000..ee3b04d --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/money_get/requirements/typedefs.cc @@ -0,0 +1,33 @@ +// { dg-do compile } +// 2001-09-12 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2003 Free Software Foundation +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 22.2.6.1 Template class money_get + +#include <locale> + +void test01() +{ + // Check for required typedefs + typedef std::money_get<char> test_type; + typedef test_type::char_type char_type; + typedef test_type::string_type string_type; + typedef test_type::iter_type iter_type; +} diff --git a/libstdc++-v3/testsuite/22_locale/money_put/3.cc b/libstdc++-v3/testsuite/22_locale/money_put/cons/3.cc index 535ca6e..535ca6e 100644 --- a/libstdc++-v3/testsuite/22_locale/money_put/3.cc +++ b/libstdc++-v3/testsuite/22_locale/money_put/cons/3.cc diff --git a/libstdc++-v3/testsuite/22_locale/money_put/1.cc b/libstdc++-v3/testsuite/22_locale/money_put/requirements/base_classes.cc index 2e0bfa0..b352a25 100644 --- a/libstdc++-v3/testsuite/22_locale/money_put/1.cc +++ b/libstdc++-v3/testsuite/22_locale/money_put/requirements/base_classes.cc @@ -30,15 +30,4 @@ void test01() typedef std::locale::facet base_type; const test_type& obj = std::use_facet<test_type>(std::locale()); const base_type* base __attribute__((unused)) = &obj; - - // Check for required typedefs - typedef test_type::char_type char_type; - typedef test_type::string_type string_type; - typedef test_type::iter_type iter_type; -} - -int main() -{ - test01(); - return 0; } diff --git a/libstdc++-v3/testsuite/22_locale/money_put/2.cc b/libstdc++-v3/testsuite/22_locale/money_put/requirements/explicit_instantiation.cc index 28f9005..0afb187 100644 --- a/libstdc++-v3/testsuite/22_locale/money_put/2.cc +++ b/libstdc++-v3/testsuite/22_locale/money_put/requirements/explicit_instantiation.cc @@ -24,16 +24,4 @@ #include <locale> // Should be able to instantiate this for other types besides char, wchar_t -class gnu_money_put: public std::money_put<unsigned char> -{ }; - -void test02() -{ - gnu_money_put facet01; -} - -int main() -{ - test02(); - return 0; -} +template class std::money_put<unsigned char>; diff --git a/libstdc++-v3/testsuite/22_locale/money_put/requirements/typedefs.cc b/libstdc++-v3/testsuite/22_locale/money_put/requirements/typedefs.cc new file mode 100644 index 0000000..1e5ded2 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/money_put/requirements/typedefs.cc @@ -0,0 +1,33 @@ +// { dg-do compile } +// 2001-08-27 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2003 Free Software Foundation +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 22.2.6.2 Template class money_put + +#include <locale> + +void test01() +{ + // Check for required typedefs + typedef std::money_put<char> test_type; + typedef test_type::char_type char_type; + typedef test_type::string_type string_type; + typedef test_type::iter_type iter_type; +} diff --git a/libstdc++-v3/testsuite/22_locale/moneypunct/2.cc b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/base_classes.cc index 87fb4f4..a880d82 100644 --- a/libstdc++-v3/testsuite/22_locale/moneypunct/2.cc +++ b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/base_classes.cc @@ -31,14 +31,4 @@ void test02() typedef std::locale::facet base_type; const test_type& obj = std::use_facet<test_type>(std::locale()); const base_type* base __attribute__((unused)) = &obj; - - // Check for required typedefs - typedef test_type::char_type char_type; - typedef test_type::string_type string_type; -} - -int main() -{ - test02(); - return 0; } diff --git a/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/explicit_instantiation.cc b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/explicit_instantiation.cc new file mode 100644 index 0000000..9b24c0b3 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/explicit_instantiation.cc @@ -0,0 +1,34 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02110-1301, USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// This file tests explicit instantiation of library containers. + +#include <locale> + +template class std::moneypunct<short, false>; diff --git a/libstdc++-v3/testsuite/22_locale/moneypunct/3.cc b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/intl.cc index 2b8cdc3..9380ecb 100644 --- a/libstdc++-v3/testsuite/22_locale/moneypunct/3.cc +++ b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/intl.cc @@ -20,23 +20,17 @@ // 22.2.6.3 Template class moneypunct -// { dg-do compile } - #include <locale> #include <testsuite_hooks.h> // Should be able to instantiate this for other types besides char, wchar_t -class gnu_moneypunct_t: public std::moneypunct<unsigned char, true> -{ }; - -class gnu_moneypunct_f: public std::moneypunct<unsigned char, false> +class gnu_moneypunct_f: public std::moneypunct<char, false> { }; void test03() { - gnu_moneypunct_t facet01; + bool test __attribute__((unused)) = true; gnu_moneypunct_f facet02; - VERIFY (facet01.intl == true); VERIFY (facet02.intl == false); } diff --git a/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/typedefs.cc b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/typedefs.cc new file mode 100644 index 0000000..cd6b92b --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/typedefs.cc @@ -0,0 +1,33 @@ +// { dg-do compile } +// 2001-08-23 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2003 Free Software Foundation +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 22.2.6.3 Template class moneypunct + +#include <locale> +#include <testsuite_hooks.h> + +void test02() +{ + // Check for required typedefs + typedef std::moneypunct<char, false> test_type; + typedef test_type::char_type char_type; + typedef test_type::string_type string_type; +} diff --git a/libstdc++-v3/testsuite/22_locale/moneypunct/1.cc b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/base_classes.cc index 2995945..231172e 100644 --- a/libstdc++-v3/testsuite/22_locale/moneypunct/1.cc +++ b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/base_classes.cc @@ -22,7 +22,6 @@ // 22.2.6.3 Template class moneypunct #include <locale> -#include <testsuite_hooks.h> void test01() { @@ -31,14 +30,4 @@ void test01() typedef std::locale::facet base_type; const test_type& obj = std::use_facet<test_type>(std::locale()); const base_type* base __attribute__((unused)) = &obj; - - // Check for required typedefs - typedef test_type::char_type char_type; - typedef test_type::string_type string_type; -} - -int main() -{ - test01(); - return 0; } diff --git a/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/explicit_instantiation.cc b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/explicit_instantiation.cc new file mode 100644 index 0000000..20cac01 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/explicit_instantiation.cc @@ -0,0 +1,34 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02110-1301, USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// This file tests explicit instantiation of library containers. + +#include <locale> + +template class std::moneypunct<short, true>; diff --git a/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/intl.cc b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/intl.cc new file mode 100644 index 0000000..3448737 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/intl.cc @@ -0,0 +1,41 @@ +// 2001-08-23 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2003 Free Software Foundation +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 22.2.6.3 Template class moneypunct + +#include <locale> +#include <testsuite_hooks.h> + +// Should be able to instantiate this for other types besides char, wchar_t +class gnu_moneypunct_t: public std::moneypunct<char, true> +{ }; + +void test03() +{ + bool test __attribute__((unused)) = true; + gnu_moneypunct_t facet01; + VERIFY (facet01.intl == true); +} + +int main() +{ + test03(); + return 0; +} diff --git a/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/typedefs.cc b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/typedefs.cc new file mode 100644 index 0000000..f1ced4e --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/typedefs.cc @@ -0,0 +1,33 @@ +// { dg-do compile } +// 2001-08-23 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2003 Free Software Foundation +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 22.2.6.3 Template class moneypunct + +#include <locale> +#include <testsuite_hooks.h> + +void test01() +{ + // Check for required typedefs + typedef std::moneypunct<char, true> test_type; + typedef test_type::char_type char_type; + typedef test_type::string_type string_type; +} diff --git a/libstdc++-v3/testsuite/22_locale/moneypunct_byname/1.cc b/libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/base_classes.cc index 0751211..1180f29 100644 --- a/libstdc++-v3/testsuite/22_locale/moneypunct_byname/1.cc +++ b/libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/base_classes.cc @@ -31,14 +31,4 @@ void test01() typedef std::moneypunct<char, true> base_type; const test_type& obj = std::use_facet<test_type>(std::locale()); const base_type* base __attribute__((unused)) = &obj; - - // Check for required typedefs - typedef test_type::char_type char_type; - typedef test_type::string_type string_type; -} - -int main() -{ - test01(); - return 0; } diff --git a/libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/explicit_instantiation.cc new file mode 100644 index 0000000..4330285 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/explicit_instantiation.cc @@ -0,0 +1,34 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02110-1301, USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// This file tests explicit instantiation of library containers. + +#include <locale> + +template class std::moneypunct_byname<short, true>; diff --git a/libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/typedefs.cc b/libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/typedefs.cc new file mode 100644 index 0000000..b4b3b51 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/typedefs.cc @@ -0,0 +1,32 @@ +// { dg-do compile } +// 2001-08-23 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2003 Free Software Foundation +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 22.2.6.3 Template class moneypunct + +#include <locale> + +void test01() +{ + // Check for required typedefs + typedef std::moneypunct_byname<char, true> test_type; + typedef test_type::char_type char_type; + typedef test_type::string_type string_type; +} diff --git a/libstdc++-v3/testsuite/22_locale/num_get/3.cc b/libstdc++-v3/testsuite/22_locale/num_get/cons/3.cc index 92295c0..92295c0 100644 --- a/libstdc++-v3/testsuite/22_locale/num_get/3.cc +++ b/libstdc++-v3/testsuite/22_locale/num_get/cons/3.cc diff --git a/libstdc++-v3/testsuite/22_locale/num_get/1.cc b/libstdc++-v3/testsuite/22_locale/num_get/requirements/base_classes.cc index f1f1f85..363ad15 100644 --- a/libstdc++-v3/testsuite/22_locale/num_get/1.cc +++ b/libstdc++-v3/testsuite/22_locale/num_get/requirements/base_classes.cc @@ -30,14 +30,4 @@ void test01() typedef std::locale::facet base_type; const test_type& obj = std::use_facet<test_type>(std::locale()); const base_type* base __attribute__((unused)) = &obj; - - // Check for required typedefs - typedef test_type::char_type char_type; - typedef test_type::iter_type iter_type; -} - -int main() -{ - test01(); - return 0; } diff --git a/libstdc++-v3/testsuite/22_locale/num_get/2.cc b/libstdc++-v3/testsuite/22_locale/num_get/requirements/explicit_instantiation.cc index ab2d743..87e126a 100644 --- a/libstdc++-v3/testsuite/22_locale/num_get/2.cc +++ b/libstdc++-v3/testsuite/22_locale/num_get/requirements/explicit_instantiation.cc @@ -24,16 +24,4 @@ #include <locale> // Should be able to instantiate this for other types besides char, wchar_t -class gnu_num_get: public std::num_get<unsigned char> -{ }; - -void test02() -{ - gnu_num_get facet01; -} - -int main() -{ - test02(); - return 0; -} +template class std::num_get<unsigned char> ; diff --git a/libstdc++-v3/testsuite/22_locale/num_get/requirements/typedefs.cc b/libstdc++-v3/testsuite/22_locale/num_get/requirements/typedefs.cc new file mode 100644 index 0000000..1229581 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/num_get/requirements/typedefs.cc @@ -0,0 +1,32 @@ +// { dg-do compile } +// 2001-11-21 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2003 Free Software Foundation +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 22.2.2.1 Template class num_get + +#include <locale> + +void test01() +{ + // Check for required typedefs + typedef std::num_get<char> test_type; + typedef test_type::char_type char_type; + typedef test_type::iter_type iter_type; +} diff --git a/libstdc++-v3/testsuite/22_locale/num_put/3.cc b/libstdc++-v3/testsuite/22_locale/num_put/cons/3.cc index 6ecad4f..6ecad4f 100644 --- a/libstdc++-v3/testsuite/22_locale/num_put/3.cc +++ b/libstdc++-v3/testsuite/22_locale/num_put/cons/3.cc diff --git a/libstdc++-v3/testsuite/22_locale/num_put/1.cc b/libstdc++-v3/testsuite/22_locale/num_put/requirements/base_classes.cc index 528c130..eb8432c 100644 --- a/libstdc++-v3/testsuite/22_locale/num_put/1.cc +++ b/libstdc++-v3/testsuite/22_locale/num_put/requirements/base_classes.cc @@ -30,14 +30,4 @@ void test01() typedef std::locale::facet base_type; const test_type& obj = std::use_facet<test_type>(std::locale()); const base_type* base __attribute__((unused)) = &obj; - - // Check for required typedefs - typedef test_type::char_type char_type; - typedef test_type::iter_type iter_type; -} - -int main() -{ - test01(); - return 0; } diff --git a/libstdc++-v3/testsuite/22_locale/num_put/2.cc b/libstdc++-v3/testsuite/22_locale/num_put/requirements/explicit_instantiations.cc index cec69bb..08008ee 100644 --- a/libstdc++-v3/testsuite/22_locale/num_put/2.cc +++ b/libstdc++-v3/testsuite/22_locale/num_put/requirements/explicit_instantiations.cc @@ -24,16 +24,4 @@ #include <locale> // Should be able to instantiate this for other types besides char, wchar_t -class gnu_num_put: public std::num_put<unsigned char> -{ }; - -void test02() -{ - gnu_num_put facet01; -} - -int main() -{ - test02(); - return 0; -} +template class std::num_put<unsigned char>; diff --git a/libstdc++-v3/testsuite/22_locale/num_put/requirements/typedefs.cc b/libstdc++-v3/testsuite/22_locale/num_put/requirements/typedefs.cc new file mode 100644 index 0000000..2dfed97 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/num_put/requirements/typedefs.cc @@ -0,0 +1,32 @@ +// { dg-do compile } +// 2001-11-19 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2003 Free Software Foundation +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 22.2.2.2 Template class num_put + +#include <locale> + +void test01() +{ + // Check for required typedefs + typedef std::num_put<char> test_type; + typedef test_type::char_type char_type; + typedef test_type::iter_type iter_type; +} diff --git a/libstdc++-v3/testsuite/22_locale/numpunct/1.cc b/libstdc++-v3/testsuite/22_locale/numpunct/requirements/base_classes.cc index b4dc0d9..db5ce24 100644 --- a/libstdc++-v3/testsuite/22_locale/numpunct/1.cc +++ b/libstdc++-v3/testsuite/22_locale/numpunct/requirements/base_classes.cc @@ -30,14 +30,4 @@ void test01() typedef std::locale::facet base_type; const test_type& obj = std::use_facet<test_type>(std::locale()); const base_type* base __attribute__((unused)) = &obj; - - // Check for required typedefs - typedef test_type::char_type char_type; - typedef test_type::string_type string_type; -} - -int main() -{ - test01(); - return 0; } diff --git a/libstdc++-v3/testsuite/22_locale/numpunct/2.cc b/libstdc++-v3/testsuite/22_locale/numpunct/requirements/explicit_instantiations.cc index 59aa3d9..279633a 100644 --- a/libstdc++-v3/testsuite/22_locale/numpunct/2.cc +++ b/libstdc++-v3/testsuite/22_locale/numpunct/requirements/explicit_instantiations.cc @@ -24,16 +24,4 @@ #include <locale> // Should be able to instantiate this for other types besides char, wchar_t -class gnu_numpunct: public std::numpunct<unsigned char> -{ }; - -void test02() -{ - gnu_numpunct facet01; -} - -int main() -{ - test02(); - return 0; -} +template class std::numpunct<unsigned char>; diff --git a/libstdc++-v3/testsuite/22_locale/numpunct/requirements/typedefs.cc b/libstdc++-v3/testsuite/22_locale/numpunct/requirements/typedefs.cc new file mode 100644 index 0000000..e58fa1e --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/numpunct/requirements/typedefs.cc @@ -0,0 +1,32 @@ +// { dg-do compile } +// 2001-01-23 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2003 Free Software Foundation +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 22.2.3 The numeric punctuation facet + +#include <locale> + +void test01() +{ + // Check for required typedefs + typedef std::numpunct<char> test_type; + typedef test_type::char_type char_type; + typedef test_type::string_type string_type; +} diff --git a/libstdc++-v3/testsuite/22_locale/numpunct_byname/1.cc b/libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/base_classes.cc index c417078..9b79493 100644 --- a/libstdc++-v3/testsuite/22_locale/numpunct_byname/1.cc +++ b/libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/base_classes.cc @@ -30,14 +30,4 @@ void test01() typedef std::numpunct<char> base_type; const test_type& obj = std::use_facet<test_type>(std::locale()); const base_type* base __attribute__((unused)) = &obj; - - // Check for required typedefs - typedef test_type::char_type char_type; - typedef test_type::string_type string_type; -} - -int main() -{ - test01(); - return 0; } diff --git a/libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/explicit_instantiations.cc b/libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/explicit_instantiations.cc new file mode 100644 index 0000000..799541d --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/explicit_instantiations.cc @@ -0,0 +1,27 @@ +// { dg-do compile } +// 2001-01-23 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2003 Free Software Foundation +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 22.2.3 The numeric punctuation facet + +#include <locale> + +// Should be able to instantiate this for other types besides char, wchar_t +template class std::numpunct_byname<unsigned char>; diff --git a/libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/typedefs.cc b/libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/typedefs.cc new file mode 100644 index 0000000..d269996 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/typedefs.cc @@ -0,0 +1,32 @@ +// { dg-do compile } +// 2001-01-23 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2003 Free Software Foundation +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 22.2.3 The numeric punctuation facet + +#include <locale> + +void test01() +{ + // Check for required typedefs + typedef std::numpunct_byname<char> test_type; + typedef test_type::char_type char_type; + typedef test_type::string_type string_type; +} diff --git a/libstdc++-v3/testsuite/22_locale/time_get/1.cc b/libstdc++-v3/testsuite/22_locale/time_get/requirements/base_classes.cc index 1a68ce7..072db6d 100644 --- a/libstdc++-v3/testsuite/22_locale/time_get/1.cc +++ b/libstdc++-v3/testsuite/22_locale/time_get/requirements/base_classes.cc @@ -32,14 +32,4 @@ void test01() const test_type& obj = std::use_facet<test_type>(std::locale()); const base_type1* base1 __attribute__((unused)) = &obj; const base_type2* base2 __attribute__((unused)) = &obj; - - // Check for required typedefs - typedef test_type::char_type char_type; - typedef test_type::iter_type iter_type; -} - -int main() -{ - test01(); - return 0; } diff --git a/libstdc++-v3/testsuite/22_locale/time_get/2.cc b/libstdc++-v3/testsuite/22_locale/time_get/requirements/explicit_instantiations.cc index 19c145c..170e9e7 100644 --- a/libstdc++-v3/testsuite/22_locale/time_get/2.cc +++ b/libstdc++-v3/testsuite/22_locale/time_get/requirements/explicit_instantiations.cc @@ -24,16 +24,4 @@ #include <locale> // Should be able to instantiate this for other types besides char, wchar_t -class gnu_time_get: public std::time_get<unsigned char> -{ }; - -void test02() -{ - gnu_time_get facet01; -} - -int main() -{ - test02(); - return 0; -} +template class std::time_get<unsigned char>; diff --git a/libstdc++-v3/testsuite/22_locale/time_get/requirements/typedefs.cc b/libstdc++-v3/testsuite/22_locale/time_get/requirements/typedefs.cc new file mode 100644 index 0000000..1d2afa6 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/time_get/requirements/typedefs.cc @@ -0,0 +1,32 @@ +// { dg-do compile } +// 2001-09-21 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2003 Free Software Foundation +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 22.2.5.1 Template class time_get + +#include <locale> + +void test01() +{ + // Check for required typedefs + typedef std::time_get<char> test_type; + typedef test_type::char_type char_type; + typedef test_type::iter_type iter_type; +} diff --git a/libstdc++-v3/testsuite/22_locale/time_put/1.cc b/libstdc++-v3/testsuite/22_locale/time_put/requirements/base_classes.cc index 69f24ae..197fa6e 100644 --- a/libstdc++-v3/testsuite/22_locale/time_put/1.cc +++ b/libstdc++-v3/testsuite/22_locale/time_put/requirements/base_classes.cc @@ -30,14 +30,4 @@ void test01() typedef std::locale::facet base_type; const test_type& obj = std::use_facet<test_type>(std::locale()); const base_type* base __attribute__((unused)) = &obj; - - // Check for required typedefs - typedef test_type::char_type char_type; - typedef test_type::iter_type iter_type; -} - -int main() -{ - test01(); - return 0; } diff --git a/libstdc++-v3/testsuite/22_locale/time_put/2.cc b/libstdc++-v3/testsuite/22_locale/time_put/requirements/explicit_instantiations.cc index 5038355..a1b365c 100644 --- a/libstdc++-v3/testsuite/22_locale/time_put/2.cc +++ b/libstdc++-v3/testsuite/22_locale/time_put/requirements/explicit_instantiations.cc @@ -24,16 +24,4 @@ #include <locale> // Should be able to instantiate this for other types besides char, wchar_t -class gnu_time_put: public std::time_put<unsigned char> -{ }; - -void test02() -{ - gnu_time_put facet01; -} - -int main() -{ - test02(); - return 0; -} +template class std::time_put<unsigned char>; diff --git a/libstdc++-v3/testsuite/22_locale/time_put/requirements/typedefs.cc b/libstdc++-v3/testsuite/22_locale/time_put/requirements/typedefs.cc new file mode 100644 index 0000000..69e7c4ac --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/time_put/requirements/typedefs.cc @@ -0,0 +1,32 @@ +// { dg-do compile } +// 2001-09-17 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2003 Free Software Foundation +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 22.2.5.3 Template class time_put + +#include <locale> + +void test01() +{ + // Check for required typedefs + typedef std::time_put<char> test_type; + typedef test_type::char_type char_type; + typedef test_type::iter_type iter_type; +} diff --git a/libstdc++-v3/testsuite/23_containers/bitset/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/bitset/requirements/explicit_instantiation/1.cc new file mode 100644 index 0000000..bec170e --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/bitset/requirements/explicit_instantiation/1.cc @@ -0,0 +1,34 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02110-1301, USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// This file tests explicit instantiation of library containers. + +#include <bitset> + +template class std::bitset<10>; diff --git a/libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/1.cc index c6aef03..c6aef03 100644 --- a/libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/1.cc +++ b/libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/1.cc diff --git a/libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/2.cc index 6c1b9ad..6c1b9ad 100644 --- a/libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/2.cc diff --git a/libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc index ca6cb6a..ca6cb6a 100644 --- a/libstdc++-v3/testsuite/23_containers/deque/explicit_instantiation/3.cc +++ b/libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc diff --git a/libstdc++-v3/testsuite/23_containers/deque/1.cc b/libstdc++-v3/testsuite/23_containers/deque/requirements/partial_specialization/1.cc index 26882be..26882be 100644 --- a/libstdc++-v3/testsuite/23_containers/deque/1.cc +++ b/libstdc++-v3/testsuite/23_containers/deque/requirements/partial_specialization/1.cc diff --git a/libstdc++-v3/testsuite/23_containers/headers/bitset/synopsis.cc b/libstdc++-v3/testsuite/23_containers/headers/bitset/synopsis.cc new file mode 100644 index 0000000..e0ba4d4 --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/headers/bitset/synopsis.cc @@ -0,0 +1,43 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <bitset> + +namespace std { + template <size_t N> class bitset; + + // 23.3.5.3 bitset operations: + template <size_t N> + bitset<N> operator&(const bitset<N>&, const bitset<N>&); + + template <size_t N> + bitset<N> operator|(const bitset<N>&, const bitset<N>&); + + template <size_t N> + bitset<N> operator^(const bitset<N>&, const bitset<N>&); + + template <class charT, class traits, size_t N> + basic_istream<charT, traits>& + operator>>(basic_istream<charT, traits>& is, bitset<N>& x); + + template <class charT, class traits, size_t N> + basic_ostream<charT, traits>& + operator<<(basic_ostream<charT, traits>& os, const bitset<N>& x); +} diff --git a/libstdc++-v3/testsuite/23_containers/headers/deque/synopsis.cc b/libstdc++-v3/testsuite/23_containers/headers/deque/synopsis.cc new file mode 100644 index 0000000..832baf1 --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/headers/deque/synopsis.cc @@ -0,0 +1,46 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <deque> + +namespace std { + template <class T, class Allocator> class deque; + + template <class T, class Allocator> + bool operator== (const deque<T,Allocator>& x, const deque<T,Allocator>& y); + + template <class T, class Allocator> + bool operator< (const deque<T,Allocator>& x, const deque<T,Allocator>& y); + + template <class T, class Allocator> + bool operator!= (const deque<T,Allocator>& x, const deque<T,Allocator>& y); + + template <class T, class Allocator> + bool operator> (const deque<T,Allocator>& x, const deque<T,Allocator>& y); + + template <class T, class Allocator> + bool operator>= (const deque<T,Allocator>& x, const deque<T,Allocator>& y); + + template <class T, class Allocator> + bool operator<= (const deque<T,Allocator>& x, const deque<T,Allocator>& y); + + template <class T, class Allocator> + void swap(deque<T,Allocator>& x, deque<T,Allocator>& y); +} diff --git a/libstdc++-v3/testsuite/23_containers/headers/list/synopsis.cc b/libstdc++-v3/testsuite/23_containers/headers/list/synopsis.cc new file mode 100644 index 0000000..1b3fb40 --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/headers/list/synopsis.cc @@ -0,0 +1,46 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <list> + +namespace std { + template <class T, class Allocator> class list; + + template <class T, class Allocator> + bool operator==(const list<T,Allocator>& x, const list<T,Allocator>&); + + template <class T, class Allocator> + bool operator< (const list<T,Allocator>& x, const list<T,Allocator>&); + + template <class T, class Allocator> + bool operator!=(const list<T,Allocator>& x, const list<T,Allocator>&); + + template <class T, class Allocator> + bool operator> (const list<T,Allocator>& x, const list<T,Allocator>&); + + template <class T, class Allocator> + bool operator>=(const list<T,Allocator>& x, const list<T,Allocator>&); + + template <class T, class Allocator> + bool operator<=(const list<T,Allocator>& x, const list<T,Allocator>&); + + template <class T, class Allocator> + void swap(list<T,Allocator>& x, list<T,Allocator>& y); +} diff --git a/libstdc++-v3/testsuite/23_containers/headers/map/synopsis.cc b/libstdc++-v3/testsuite/23_containers/headers/map/synopsis.cc new file mode 100644 index 0000000..a8129df --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/headers/map/synopsis.cc @@ -0,0 +1,71 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <map> + +namespace std { + template <class Key, class T, class Compare, class Allocator> + class map; + template <class Key, class T, class Compare, class Allocator> + bool operator==(const map<Key,T,Compare,Allocator>& x, + const map<Key,T,Compare,Allocator>& y); + template <class Key, class T, class Compare, class Allocator> + bool operator< (const map<Key,T,Compare,Allocator>& x, + const map<Key,T,Compare,Allocator>& y); + template <class Key, class T, class Compare, class Allocator> + bool operator!=(const map<Key,T,Compare,Allocator>& x, + const map<Key,T,Compare,Allocator>& y); + template <class Key, class T, class Compare, class Allocator> + bool operator> (const map<Key,T,Compare,Allocator>& x, + const map<Key,T,Compare,Allocator>& y); + template <class Key, class T, class Compare, class Allocator> + bool operator>=(const map<Key,T,Compare,Allocator>& x, + const map<Key,T,Compare,Allocator>& y); + template <class Key, class T, class Compare, class Allocator> + bool operator<=(const map<Key,T,Compare,Allocator>& x, + const map<Key,T,Compare,Allocator>& y); + template <class Key, class T, class Compare, class Allocator> + void swap(map<Key,T,Compare,Allocator>& x, + map<Key,T,Compare,Allocator>& y); + + template <class Key, class T, class Compare, class Allocator> + class multimap; + template <class Key, class T, class Compare, class Allocator> + bool operator==(const multimap<Key,T,Compare,Allocator>& x, + const multimap<Key,T,Compare,Allocator>& y); + template <class Key, class T, class Compare, class Allocator> + bool operator< (const multimap<Key,T,Compare,Allocator>& x, + const multimap<Key,T,Compare,Allocator>& y); + template <class Key, class T, class Compare, class Allocator> + bool operator!=(const multimap<Key,T,Compare,Allocator>& x, + const multimap<Key,T,Compare,Allocator>& y); + template <class Key, class T, class Compare, class Allocator> + bool operator> (const multimap<Key,T,Compare,Allocator>& x, + const multimap<Key,T,Compare,Allocator>& y); + template <class Key, class T, class Compare, class Allocator> + bool operator>=(const multimap<Key,T,Compare,Allocator>& x, + const multimap<Key,T,Compare,Allocator>& y); + template <class Key, class T, class Compare, class Allocator> + bool operator<=(const multimap<Key,T,Compare,Allocator>& x, + const multimap<Key,T,Compare,Allocator>& y); + template <class Key, class T, class Compare, class Allocator> + void swap(multimap<Key,T,Compare,Allocator>& x, + multimap<Key,T,Compare,Allocator>& y); +} diff --git a/libstdc++-v3/testsuite/23_containers/headers/queue/synopsis.cc b/libstdc++-v3/testsuite/23_containers/headers/queue/synopsis.cc new file mode 100644 index 0000000..67a99d2 --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/headers/queue/synopsis.cc @@ -0,0 +1,51 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <queue> + +namespace std { + template <class T, class Container> class queue; + template <class T, class Container> + bool operator==(const queue<T, Container>& x, + const queue<T, Container>& y); + + template <class T, class Container> + bool operator< (const queue<T, Container>& x, + const queue<T, Container>& y); + + template <class T, class Container> + bool operator!=(const queue<T, Container>& x, + const queue<T, Container>& y); + + template <class T, class Container> + bool operator> (const queue<T, Container>& x, + const queue<T, Container>& y); + + template <class T, class Container> + bool operator>=(const queue<T, Container>& x, + const queue<T, Container>& y); + + template <class T, class Container> + bool operator<=(const queue<T, Container>& x, + const queue<T, Container>& y); + + template <class T, class Container, class Compare> + class priority_queue; +} diff --git a/libstdc++-v3/testsuite/23_containers/headers/set/synopsis.cc b/libstdc++-v3/testsuite/23_containers/headers/set/synopsis.cc new file mode 100644 index 0000000..e517bf4 --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/headers/set/synopsis.cc @@ -0,0 +1,85 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <set> + +namespace std { + template <class Key, class Compare, class Allocator> + class set; + + template <class Key, class Compare, class Allocator> + bool operator==(const set<Key,Compare,Allocator>& x, + const set<Key,Compare,Allocator>& y); + + template <class Key, class Compare, class Allocator> + bool operator< (const set<Key,Compare,Allocator>& x, + const set<Key,Compare,Allocator>& y); + + template <class Key, class Compare, class Allocator> + bool operator!=(const set<Key,Compare,Allocator>& x, + const set<Key,Compare,Allocator>& y); + + template <class Key, class Compare, class Allocator> + bool operator> (const set<Key,Compare,Allocator>& x, + const set<Key,Compare,Allocator>& y); + + template <class Key, class Compare, class Allocator> + bool operator>=(const set<Key,Compare,Allocator>& x, + const set<Key,Compare,Allocator>& y); + + template <class Key, class Compare, class Allocator> + bool operator<=(const set<Key,Compare,Allocator>& x, + const set<Key,Compare,Allocator>& y); + + template <class Key, class Compare, class Allocator> + void swap(set<Key,Compare,Allocator>& x, + set<Key,Compare,Allocator>& y); + + template <class Key, class Compare, class Allocator> + class multiset; + + template <class Key, class Compare, class Allocator> + bool operator==(const multiset<Key,Compare,Allocator>& x, + const multiset<Key,Compare,Allocator>& y); + + template <class Key, class Compare, class Allocator> + bool operator< (const multiset<Key,Compare,Allocator>& x, + const multiset<Key,Compare,Allocator>& y); + + template <class Key, class Compare, class Allocator> + bool operator!=(const multiset<Key,Compare,Allocator>& x, + const multiset<Key,Compare,Allocator>& y); + + template <class Key, class Compare, class Allocator> + bool operator> (const multiset<Key,Compare,Allocator>& x, + const multiset<Key,Compare,Allocator>& y); + + template <class Key, class Compare, class Allocator> + bool operator>=(const multiset<Key,Compare,Allocator>& x, + const multiset<Key,Compare,Allocator>& y); + + template <class Key, class Compare, class Allocator> + bool operator<=(const multiset<Key,Compare,Allocator>& x, + const multiset<Key,Compare,Allocator>& y); + + template <class Key, class Compare, class Allocator> + void swap(multiset<Key,Compare,Allocator>& x, + multiset<Key,Compare,Allocator>& y); +} diff --git a/libstdc++-v3/testsuite/23_containers/headers/stack/synopsis.cc b/libstdc++-v3/testsuite/23_containers/headers/stack/synopsis.cc new file mode 100644 index 0000000..b6bea1e --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/headers/stack/synopsis.cc @@ -0,0 +1,49 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <stack> + +namespace std { + template <class T, class Container> class stack; + + template <class T, class Container> + bool operator==(const stack<T, Container>& x, + const stack<T, Container>& y); + + template <class T, class Container> + bool operator< (const stack<T, Container>& x, + const stack<T, Container>& y); + + template <class T, class Container> + bool operator!=(const stack<T, Container>& x, + const stack<T, Container>& y); + + template <class T, class Container> + bool operator> (const stack<T, Container>& x, + const stack<T, Container>& y); + + template <class T, class Container> + bool operator>=(const stack<T, Container>& x, + const stack<T, Container>& y); + + template <class T, class Container> + bool operator<=(const stack<T, Container>& x, + const stack<T, Container>& y); +} diff --git a/libstdc++-v3/testsuite/23_containers/headers/vector/synopsis.cc b/libstdc++-v3/testsuite/23_containers/headers/vector/synopsis.cc new file mode 100644 index 0000000..713fb79 --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/headers/vector/synopsis.cc @@ -0,0 +1,81 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <vector> + +namespace std { + template <class T, class Allocator> class vector; + + template <class T, class Allocator> + bool operator==(const vector<T,Allocator>& x, + const vector<T,Allocator>& y); + + template <class T, class Allocator> + bool operator< (const vector<T,Allocator>& x, + const vector<T,Allocator>& y); + + template <class T, class Allocator> + bool operator!=(const vector<T,Allocator>& x, + const vector<T,Allocator>& y); + + template <class T, class Allocator> + bool operator> (const vector<T,Allocator>& x, + const vector<T,Allocator>& y); + + template <class T, class Allocator> + bool operator>=(const vector<T,Allocator>& x, + const vector<T,Allocator>& y); + + template <class T, class Allocator> + bool operator<=(const vector<T,Allocator>& x, + const vector<T,Allocator>& y); + + template <class T, class Allocator> + void swap(vector<T,Allocator>& x, vector<T,Allocator>& y); + + template <class Allocator> class vector<bool,Allocator>; + + template <class Allocator> + bool operator==(const vector<bool,Allocator>& x, + const vector<bool,Allocator>& y); + + template <class Allocator> + bool operator< (const vector<bool,Allocator>& x, + const vector<bool,Allocator>& y); + + template <class Allocator> + bool operator!=(const vector<bool,Allocator>& x, + const vector<bool,Allocator>& y); + + template <class Allocator> + bool operator> (const vector<bool,Allocator>& x, + const vector<bool,Allocator>& y); + + template <class Allocator> + bool operator>=(const vector<bool,Allocator>& x, + const vector<bool,Allocator>& y); + + template <class Allocator> + bool operator<=(const vector<bool,Allocator>& x, + const vector<bool,Allocator>& y); + + template <class Allocator> + void swap(vector<bool,Allocator>& x, vector<bool,Allocator>& y); +} diff --git a/libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/1.cc index 1bbc639..1bbc639 100644 --- a/libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/1.cc +++ b/libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/1.cc diff --git a/libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/2.cc index 8b27d10..8b27d10 100644 --- a/libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/2.cc diff --git a/libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/3.cc index cdbec31..cdbec31 100644 --- a/libstdc++-v3/testsuite/23_containers/list/explicit_instantiation/3.cc +++ b/libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/3.cc diff --git a/libstdc++-v3/testsuite/23_containers/list/1.cc b/libstdc++-v3/testsuite/23_containers/list/requirements/partial_specialization/1.cc index 57b950b..57b950b 100644 --- a/libstdc++-v3/testsuite/23_containers/list/1.cc +++ b/libstdc++-v3/testsuite/23_containers/list/requirements/partial_specialization/1.cc diff --git a/libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/1.cc index b898b4b..b898b4b 100644 --- a/libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/1.cc +++ b/libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/1.cc diff --git a/libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/2.cc index 4333494..4333494 100644 --- a/libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/2.cc diff --git a/libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/3.cc index 0a8866d..0a8866d 100644 --- a/libstdc++-v3/testsuite/23_containers/map/explicit_instantiation/3.cc +++ b/libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/3.cc diff --git a/libstdc++-v3/testsuite/23_containers/map/1.cc b/libstdc++-v3/testsuite/23_containers/map/requirements/partial_specialization/1.cc index 3d20c1f..3d20c1f 100644 --- a/libstdc++-v3/testsuite/23_containers/map/1.cc +++ b/libstdc++-v3/testsuite/23_containers/map/requirements/partial_specialization/1.cc diff --git a/libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/1.cc index 05db935..05db935 100644 --- a/libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/1.cc +++ b/libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/1.cc diff --git a/libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/2.cc index 86527fd..86527fd 100644 --- a/libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/2.cc diff --git a/libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc index cdb7e96..cdb7e96 100644 --- a/libstdc++-v3/testsuite/23_containers/multimap/explicit_instantiation/3.cc +++ b/libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc diff --git a/libstdc++-v3/testsuite/23_containers/multimap/1.cc b/libstdc++-v3/testsuite/23_containers/multimap/requirements/partial_specialization/1.cc index 2b04d68..2b04d68 100644 --- a/libstdc++-v3/testsuite/23_containers/multimap/1.cc +++ b/libstdc++-v3/testsuite/23_containers/multimap/requirements/partial_specialization/1.cc diff --git a/libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/1.cc index 3ed6701..3ed6701 100644 --- a/libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/1.cc +++ b/libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/1.cc diff --git a/libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/2.cc index c1e69b7..c1e69b7 100644 --- a/libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/2.cc diff --git a/libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc index 9478097..9478097 100644 --- a/libstdc++-v3/testsuite/23_containers/multiset/explicit_instantiation/3.cc +++ b/libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc diff --git a/libstdc++-v3/testsuite/23_containers/multiset/1.cc b/libstdc++-v3/testsuite/23_containers/multiset/requirements/partial_specialization/1.cc index 2df195f..2df195f 100644 --- a/libstdc++-v3/testsuite/23_containers/multiset/1.cc +++ b/libstdc++-v3/testsuite/23_containers/multiset/requirements/partial_specialization/1.cc diff --git a/libstdc++-v3/testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc new file mode 100644 index 0000000..648040d --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc @@ -0,0 +1,34 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02110-1301, USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// This file tests explicit instantiation of library containers. + +#include <queue> + +template class std::priority_queue<int>; diff --git a/libstdc++-v3/testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc new file mode 100644 index 0000000..081f73a --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc @@ -0,0 +1,34 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02110-1301, USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// This file tests explicit instantiation of library containers. + +#include <queue> + +template class std::queue<int>; diff --git a/libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/1.cc index 7eb7248..7eb7248 100644 --- a/libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/1.cc +++ b/libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/1.cc diff --git a/libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/2.cc index 44bc5de..44bc5de 100644 --- a/libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/2.cc diff --git a/libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/3.cc index 1f2c69b..1f2c69b 100644 --- a/libstdc++-v3/testsuite/23_containers/set/explicit_instantiation/3.cc +++ b/libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/3.cc diff --git a/libstdc++-v3/testsuite/23_containers/set/1.cc b/libstdc++-v3/testsuite/23_containers/set/requirements/partial_specialization/1.cc index 9a9a781..9a9a781 100644 --- a/libstdc++-v3/testsuite/23_containers/set/1.cc +++ b/libstdc++-v3/testsuite/23_containers/set/requirements/partial_specialization/1.cc diff --git a/libstdc++-v3/testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc new file mode 100644 index 0000000..ee0a244 --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc @@ -0,0 +1,34 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02110-1301, USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// This file tests explicit instantiation of library containers. + +#include <stack> + +template class std::stack<int>; diff --git a/libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/1.cc index 58de322..58de322 100644 --- a/libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/1.cc +++ b/libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/1.cc diff --git a/libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/2.cc index 0a48971..0a48971 100644 --- a/libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/2.cc diff --git a/libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc index 263a7c8..263a7c8 100644 --- a/libstdc++-v3/testsuite/23_containers/vector/explicit_instantiation/3.cc +++ b/libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc diff --git a/libstdc++-v3/testsuite/23_containers/vector/1.cc b/libstdc++-v3/testsuite/23_containers/vector/requirements/partial_specialization/1.cc index 074912d..074912d 100644 --- a/libstdc++-v3/testsuite/23_containers/vector/1.cc +++ b/libstdc++-v3/testsuite/23_containers/vector/requirements/partial_specialization/1.cc diff --git a/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/2.cc b/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/2.cc new file mode 100644 index 0000000..ce2f1ff --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/2.cc @@ -0,0 +1,37 @@ +// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 24.4.2.1 Template class back_insert_iterator + +#include <iterator> +#include <list> + +void test02() +{ + typedef std::back_insert_iterator<std::list<int> > iterator_type; + std::list<int> li; + iterator_type it = std::back_inserter(li); +} + +int main() +{ + test02(); + return 0; +} diff --git a/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc b/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc new file mode 100644 index 0000000..527301a --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc @@ -0,0 +1,37 @@ +// { dg-do compile } +// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 24.4.2.1 Template class back_insert_iterator + +#include <iterator> +#include <list> + +void test01() +{ + using namespace std; + + // Check for required base class. + list<int> l; + typedef back_insert_iterator<list<int> > test_iterator; + typedef iterator<output_iterator_tag, void, void, void, void> base_iterator; + test_iterator r_it(l); + base_iterator* base __attribute__((unused)) = &r_it; +} diff --git a/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/container.cc b/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/container.cc new file mode 100644 index 0000000..1d2d4e0 --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/container.cc @@ -0,0 +1,34 @@ +// { dg-do compile } +// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 24.4.2.1 Template class back_insert_iterator + +#include <iterator> +#include <list> + +// Check data member 'container' accessible. +class test_dm : public std::back_insert_iterator<std::list<int> > +{ + container_type l; + container_type* p; +public: + test_dm(): std::back_insert_iterator<std::list<int> >(l), p(container) { } +}; diff --git a/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/explicit_instantiation.cc new file mode 100644 index 0000000..dedcefb --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/explicit_instantiation.cc @@ -0,0 +1,28 @@ +// { dg-do compile } +// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 24.4.2.1 Template class back_insert_iterator + +#include <iterator> +#include <list> + +// Make sure iterator can be instantiated. +template class std::back_insert_iterator<std::list<int> >; diff --git a/libstdc++-v3/testsuite/24_iterators/back_insert_iterator.cc b/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/typedefs.cc index 9105a5591..3253d44 100644 --- a/libstdc++-v3/testsuite/24_iterators/back_insert_iterator.cc +++ b/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/typedefs.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 2001-06-21 Benjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc. @@ -27,14 +28,8 @@ void test01() { using namespace std; - // Check for required base class. - list<int> l; - typedef back_insert_iterator<list<int> > test_iterator; - typedef iterator<output_iterator_tag, void, void, void, void> base_iterator; - test_iterator r_it(l); - base_iterator* base __attribute__((unused)) = &r_it; - // Check for required typedefs + typedef back_insert_iterator<list<int> > test_iterator; typedef test_iterator::value_type value_type; typedef test_iterator::difference_type difference_type; typedef test_iterator::pointer pointer; @@ -42,30 +37,3 @@ void test01() typedef test_iterator::iterator_category iteratory_category; typedef test_iterator::container_type container_type; } - - -// Make sure iterator can be instantiated. -template class std::back_insert_iterator<std::list<int> >; - -void test02() -{ - typedef std::back_insert_iterator<std::list<int> > iterator_type; - std::list<int> li; - iterator_type it = std::back_inserter(li); -} - -// Check data member 'container' accessible. -class test_dm : public std::back_insert_iterator<std::list<int> > -{ - container_type l; - container_type* p; -public: - test_dm(): std::back_insert_iterator<std::list<int> >(l), p(container) { } -}; - -int main() -{ - test01(); - test02(); - return 0; -} diff --git a/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/2.cc b/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/2.cc new file mode 100644 index 0000000..fee624b --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/2.cc @@ -0,0 +1,37 @@ +// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 24.4.2.3 Template class front_insert_iterator + +#include <iterator> +#include <list> + +void test02() +{ + typedef std::front_insert_iterator<std::list<int> > iterator_type; + std::list<int> li; + iterator_type it = std::front_inserter(li); +} + +int main() +{ + test02(); + return 0; +} diff --git a/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc b/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc new file mode 100644 index 0000000..f037f76 --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc @@ -0,0 +1,37 @@ +// { dg-do compile } +// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 24.4.2.3 Template class front_insert_iterator + +#include <iterator> +#include <list> + +void test01() +{ + using namespace std; + + // Check for required base class. + list<int> l; + typedef front_insert_iterator<list<int> > test_iterator; + typedef iterator<output_iterator_tag, void, void, void, void> base_iterator; + test_iterator r_it(l); + base_iterator* base __attribute__((unused)) = &r_it; +} diff --git a/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/container.cc b/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/container.cc new file mode 100644 index 0000000..696292d --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/container.cc @@ -0,0 +1,34 @@ +// { dg-do compile } +// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 24.4.2.3 Template class front_insert_iterator + +#include <iterator> +#include <list> + +// Check data member 'container' accessible. +class test_dm : public std::front_insert_iterator<std::list<int> > +{ + container_type l; + container_type* p; +public: + test_dm(): std::front_insert_iterator<std::list<int> >(l), p(container) { } +}; diff --git a/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/explicit_instantiation.cc new file mode 100644 index 0000000..b6f13b1 --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/explicit_instantiation.cc @@ -0,0 +1,28 @@ +// { dg-do compile } +// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 24.4.2.3 Template class front_insert_iterator + +#include <iterator> +#include <list> + +// Make sure iterator can be instantiated. +template class std::front_insert_iterator<std::list<int> >; diff --git a/libstdc++-v3/testsuite/24_iterators/front_insert_iterator.cc b/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/typedefs.cc index bdd024c..a3ce57e 100644 --- a/libstdc++-v3/testsuite/24_iterators/front_insert_iterator.cc +++ b/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/typedefs.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 2001-06-21 Benjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc. @@ -27,14 +28,8 @@ void test01() { using namespace std; - // Check for required base class. - list<int> l; - typedef front_insert_iterator<list<int> > test_iterator; - typedef iterator<output_iterator_tag, void, void, void, void> base_iterator; - test_iterator r_it(l); - base_iterator* base __attribute__((unused)) = &r_it; - // Check for required typedefs + typedef front_insert_iterator<list<int> > test_iterator; typedef test_iterator::value_type value_type; typedef test_iterator::difference_type difference_type; typedef test_iterator::pointer pointer; @@ -42,29 +37,3 @@ void test01() typedef test_iterator::iterator_category iteratory_category; typedef test_iterator::container_type container_type; } - -// Make sure iterator can be instantiated. -template class std::front_insert_iterator<std::list<int> >; - -void test02() -{ - typedef std::front_insert_iterator<std::list<int> > iterator_type; - std::list<int> li; - iterator_type it = std::front_inserter(li); -} - -// Check data member 'container' accessible. -class test_dm : public std::front_insert_iterator<std::list<int> > -{ - container_type l; - container_type* p; -public: - test_dm(): std::front_insert_iterator<std::list<int> >(l), p(container) { } -}; - -int main() -{ - test01(); - test02(); - return 0; -} diff --git a/libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis.cc b/libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis.cc new file mode 100644 index 0000000..fdb22f0 --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis.cc @@ -0,0 +1,128 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <iterator> + +namespace std { + + // 24.3, primitives: + template<class Iterator> struct iterator_traits; + template<class T> struct iterator_traits<T*>; + + template<class Category, class T, class Distance, + class Pointer, class Reference> struct iterator; + + struct input_iterator_tag; + struct output_iterator_tag; + struct forward_iterator_tag; + struct bidirectional_iterator_tag; + struct random_access_iterator_tag; + + // 24.3.4, iterator operations: + template <class InputIterator, class Distance> + void + advance(InputIterator& i, Distance n); + + template <class InputIterator> + typename iterator_traits<InputIterator>::difference_type + distance(InputIterator first, InputIterator last); + + // 24.4, predefined iterators: + template <class Iterator> class reverse_iterator; + + template <class Iterator> + bool operator==(const reverse_iterator<Iterator>& x, + const reverse_iterator<Iterator>& y); + + template <class Iterator> + bool operator<(const reverse_iterator<Iterator>& x, + const reverse_iterator<Iterator>& y); + + template <class Iterator> + bool operator!=(const reverse_iterator<Iterator>& x, + const reverse_iterator<Iterator>& y); + + template <class Iterator> + bool operator>(const reverse_iterator<Iterator>& x, + const reverse_iterator<Iterator>& y); + + template <class Iterator> + bool operator>=(const reverse_iterator<Iterator>& x, + const reverse_iterator<Iterator>& y); + + template <class Iterator> + bool operator<=(const reverse_iterator<Iterator>& x, + const reverse_iterator<Iterator>& y); + + template <class Iterator> + typename reverse_iterator<Iterator>::difference_type + operator-(const reverse_iterator<Iterator>& x, + const reverse_iterator<Iterator>& y); + + template <class Iterator> + reverse_iterator<Iterator> + operator+(typename reverse_iterator<Iterator>::difference_type n, + const reverse_iterator<Iterator>& x); + + template <class Container> class back_insert_iterator; + + template <class Container> + back_insert_iterator<Container> back_inserter(Container& x); + + template <class Container> class front_insert_iterator; + + template <class Container> + front_insert_iterator<Container> front_inserter(Container& x); + + template <class Container> class insert_iterator; + + template <class Container, class Iterator> + insert_iterator<Container> inserter(Container& x, Iterator i); + + // 24.5, stream iterators: + template <class T, class charT, class traits, class Distance> + class istream_iterator; + + template <class T, class charT, class traits, class Distance> + bool operator==(const istream_iterator<T,charT,traits,Distance>& x, + const istream_iterator<T,charT,traits,Distance>& y); + + template <class T, class charT, class traits, class Distance> + bool operator!=(const istream_iterator<T,charT,traits,Distance>& x, + const istream_iterator<T,charT,traits,Distance>& y); + + template <class T, class charT, class traits> + class ostream_iterator; + + template<class charT, class traits> + class istreambuf_iterator; + + template <class charT, class traits> + bool + operator==(const istreambuf_iterator<charT,traits>&, + const istreambuf_iterator<charT,traits>&); + + template <class charT, class traits> + bool operator!=(const istreambuf_iterator<charT,traits>&, + const istreambuf_iterator<charT,traits>&); + + template <class charT, class traits> + class ostreambuf_iterator; +} diff --git a/libstdc++-v3/testsuite/24_iterators/headers/iterator/types_std.cc b/libstdc++-v3/testsuite/24_iterators/headers/iterator/types_std.cc new file mode 100644 index 0000000..0db2173 --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/headers/iterator/types_std.cc @@ -0,0 +1,30 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <iterator> + +namespace gnu +{ + typedef std::input_iterator_tag t1; + typedef std::output_iterator_tag t2; + typedef std::forward_iterator_tag t3; + typedef std::bidirectional_iterator_tag t4; + typedef std::random_access_iterator_tag t5; +} diff --git a/libstdc++-v3/testsuite/24_iterators/insert_iterator.cc b/libstdc++-v3/testsuite/24_iterators/insert_iterator.cc deleted file mode 100644 index 951d329..0000000 --- a/libstdc++-v3/testsuite/24_iterators/insert_iterator.cc +++ /dev/null @@ -1,78 +0,0 @@ -// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com> - -// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 2, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING. If not, write to the Free -// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -// USA. - -// 24.4.2.5 Template class insert_iterator - -#include <iterator> -#include <list> - -void test01() -{ - using namespace std; - - // Check for required base class. - list<int> l; - list<int>::iterator li = l.begin(); - - typedef insert_iterator<list<int> > test_iterator; - typedef iterator<output_iterator_tag, void, void, void, void> base_iterator; - test_iterator r_it(l, li); - base_iterator* base __attribute__((unused)) = &r_it; - - // Check for required typedefs - typedef test_iterator::value_type value_type; - typedef test_iterator::difference_type difference_type; - typedef test_iterator::pointer pointer; - typedef test_iterator::reference reference; - typedef test_iterator::iterator_category iteratory_category; - typedef test_iterator::container_type container_type; -} - - - -// Make sure iterator can be instantiated. -template class std::insert_iterator<std::list<int> >; - -void test02() -{ - typedef std::insert_iterator<std::list<int> > iterator_type; - - std::list<int> li; - std::list<int>::iterator liit = li.begin(); - iterator_type it01(li, liit); - iterator_type it02 = std::inserter(li, liit); -} - -// Check data member 'container' accessible. -class test_dm : public std::insert_iterator<std::list<int> > -{ - container_type l; - container_type::iterator i; - container_type* p; -public: - test_dm(): std::insert_iterator<std::list<int> >(l, i), p(container) { } -}; - -int main() -{ - test01(); - test02(); - return 0; -} diff --git a/libstdc++-v3/testsuite/24_iterators/insert_iterator/2.cc b/libstdc++-v3/testsuite/24_iterators/insert_iterator/2.cc new file mode 100644 index 0000000..4a8222a --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/insert_iterator/2.cc @@ -0,0 +1,40 @@ +// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 24.4.2.5 Template class insert_iterator + +#include <iterator> +#include <list> + +void test02() +{ + typedef std::insert_iterator<std::list<int> > iterator_type; + + std::list<int> li; + std::list<int>::iterator liit = li.begin(); + iterator_type it01(li, liit); + iterator_type it02 = std::inserter(li, liit); +} + +int main() +{ + test02(); + return 0; +} diff --git a/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/base_classes.cc b/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/base_classes.cc new file mode 100644 index 0000000..5becd2e --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/base_classes.cc @@ -0,0 +1,40 @@ +// { dg-do compile } +// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 24.4.2.5 Template class insert_iterator + +#include <iterator> +#include <list> + +void test01() +{ + using namespace std; + + // Check for required base class. + list<int> l; + list<int>::iterator li = l.begin(); + + typedef insert_iterator<list<int> > test_iterator; + typedef iterator<output_iterator_tag, void, void, void, void> base_iterator; + test_iterator r_it(l, li); + base_iterator* base __attribute__((unused)) = &r_it; +} + diff --git a/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/container.cc b/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/container.cc new file mode 100644 index 0000000..b4efd62 --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/container.cc @@ -0,0 +1,35 @@ +// { dg-do compile } +// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 24.4.2.5 Template class insert_iterator + +#include <iterator> +#include <list> + +// Check data member 'container' accessible. +class test_dm : public std::insert_iterator<std::list<int> > +{ + container_type l; + container_type::iterator i; + container_type* p; +public: + test_dm(): std::insert_iterator<std::list<int> >(l, i), p(container) { } +}; diff --git a/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/explicit_instantiation.cc new file mode 100644 index 0000000..d056073 --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/explicit_instantiation.cc @@ -0,0 +1,28 @@ +// { dg-do compile } +// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 24.4.2.5 Template class insert_iterator + +#include <iterator> +#include <list> + +// Make sure iterator can be instantiated. +template class std::insert_iterator<std::list<int> >; diff --git a/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/typedefs.cc b/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/typedefs.cc new file mode 100644 index 0000000..7ebed33 --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/typedefs.cc @@ -0,0 +1,40 @@ +// { dg-do compile } +// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 24.4.2.5 Template class insert_iterator + +#include <iterator> +#include <list> + +void test01() +{ + using namespace std; + + // Check for required typedefs + typedef insert_iterator<list<int> > test_iterator; + typedef test_iterator::value_type value_type; + typedef test_iterator::difference_type difference_type; + typedef test_iterator::pointer pointer; + typedef test_iterator::reference reference; + typedef test_iterator::iterator_category iteratory_category; + typedef test_iterator::container_type container_type; +} + diff --git a/libstdc++-v3/testsuite/24_iterators/istream_iterator.cc b/libstdc++-v3/testsuite/24_iterators/istream_iterator/2.cc index db57f66..ea26105 100644 --- a/libstdc++-v3/testsuite/24_iterators/istream_iterator.cc +++ b/libstdc++-v3/testsuite/24_iterators/istream_iterator/2.cc @@ -24,32 +24,6 @@ #include <sstream> #include <testsuite_hooks.h> -void test01() -{ - using namespace std; - - // Check for required base class. - typedef istream_iterator<long> test_iterator; - typedef iterator<input_iterator_tag, long, ptrdiff_t, const long*, - const long&> base_iterator; - test_iterator r_it; - base_iterator* base __attribute__((unused)) = &r_it; - - // Check for required typedefs - typedef test_iterator::value_type value_type; - typedef test_iterator::difference_type difference_type; - typedef test_iterator::pointer pointer; - typedef test_iterator::reference reference; - typedef test_iterator::iterator_category iteratory_category; - - typedef test_iterator::char_type char_type; - typedef test_iterator::traits_type traits_type; - typedef test_iterator::istream_type istream_type; -} - -// Instantiate -template class std::istream_iterator<char>; - void test02() { using namespace std; @@ -86,7 +60,6 @@ void test02() int main() { - test01(); test02(); return 0; } diff --git a/libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/base_classes.cc b/libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/base_classes.cc new file mode 100644 index 0000000..c51013e --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/base_classes.cc @@ -0,0 +1,38 @@ +// { dg-do compile } +// 2001-06-25 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2003 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 24.5.1 Template class istream_iterator + +#include <iterator> +#include <sstream> +#include <testsuite_hooks.h> + +void test01() +{ + using namespace std; + + // Check for required base class. + typedef istream_iterator<long> test_iterator; + typedef iterator<input_iterator_tag, long, ptrdiff_t, const long*, + const long&> base_iterator; + test_iterator r_it; + base_iterator* base __attribute__((unused)) = &r_it; +} diff --git a/libstdc++-v3/testsuite/17_intro/header_cstring.cc b/libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/explicit_instantiation.cc index 0f58fc9..04f7bd9 100644 --- a/libstdc++-v3/testsuite/17_intro/header_cstring.cc +++ b/libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/explicit_instantiation.cc @@ -1,4 +1,5 @@ -// 2000-01-01 bkoz +// { dg-do compile } +// 2001-06-25 Benjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2001, 2003 Free Software Foundation, Inc. // @@ -18,14 +19,11 @@ // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, // USA. -// 17.4.1.2 Headers, cstring +// 24.5.1 Template class istream_iterator -#include <cstring> +#include <iterator> +#include <sstream> +#include <testsuite_hooks.h> - -int main(void) -{ - // Make sure size_t is in namespace std - std::size_t i __attribute__((unused)) = std::strlen("tibet shop/san francisco (415) 982-0326"); - return 0; -} +// Instantiate +template class std::istream_iterator<char>; diff --git a/libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/typedefs.cc b/libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/typedefs.cc new file mode 100644 index 0000000..17b540c --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/typedefs.cc @@ -0,0 +1,43 @@ +// { dg-do compile } +// 2001-06-25 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2003 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 24.5.1 Template class istream_iterator + +#include <iterator> +#include <sstream> +#include <testsuite_hooks.h> + +void test01() +{ + using namespace std; + + // Check for required typedefs + typedef istream_iterator<long> test_iterator; + typedef test_iterator::value_type value_type; + typedef test_iterator::difference_type difference_type; + typedef test_iterator::pointer pointer; + typedef test_iterator::reference reference; + typedef test_iterator::iterator_category iteratory_category; + + typedef test_iterator::char_type char_type; + typedef test_iterator::traits_type traits_type; + typedef test_iterator::istream_type istream_type; +} diff --git a/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc b/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc new file mode 100644 index 0000000..c1ee75c --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc @@ -0,0 +1,40 @@ +// { dg-do compile } +// 1999-06-28 bkoz + +// Copyright (C) 1999, 2001, 2003 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 24.5.3 template class istreambuf_iterator + +#include <sstream> +#include <iterator> +#include <testsuite_hooks.h> + +void test01() +{ + using namespace std; + + // Check for required base class. + typedef istreambuf_iterator<char> test_iterator; + typedef char_traits<char>::off_type off_type; + typedef iterator<input_iterator_tag, char, off_type, char*, char&> base_iterator; + + istringstream isstream("this tag"); + test_iterator r_it(isstream); + base_iterator* base __attribute__((unused)) = &r_it; +} diff --git a/libstdc++-v3/testsuite/17_intro/header_sstream.cc b/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/explicit_instantiation.cc index d8689ae..a9560f0 100644 --- a/libstdc++-v3/testsuite/17_intro/header_sstream.cc +++ b/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/explicit_instantiation.cc @@ -1,6 +1,7 @@ -// 1999-07-01 bkoz +// { dg-do compile } +// 1999-06-28 bkoz -// Copyright (C) 1999 Free Software Foundation, Inc. +// Copyright (C) 1999, 2001, 2003 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -18,13 +19,10 @@ // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, // USA. -// 17.4.1.2 Headers, sstream +// 24.5.3 template class istreambuf_iterator #include <sstream> +#include <iterator> #include <testsuite_hooks.h> - -int main(void) -{ - return 0; -} +template class std::istreambuf_iterator<char>; diff --git a/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/1.cc b/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/typedefs.cc index 3d3fec4..810163d 100644 --- a/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/1.cc +++ b/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/typedefs.cc @@ -29,16 +29,8 @@ void test01() { using namespace std; - // Check for required base class. - typedef istreambuf_iterator<char> test_iterator; - typedef char_traits<char>::off_type off_type; - typedef iterator<input_iterator_tag, char, off_type, char*, char&> base_iterator; - - istringstream isstream("this tag"); - test_iterator r_it(isstream); - base_iterator* base __attribute__((unused)) = &r_it; - // Check for required typedefs + typedef istreambuf_iterator<char> test_iterator; typedef test_iterator::value_type value_type; typedef test_iterator::difference_type difference_type; typedef test_iterator::pointer pointer; diff --git a/libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc b/libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc new file mode 100644 index 0000000..f8980f3 --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc @@ -0,0 +1,38 @@ +// { dg-do compile } +// 2001-06-25 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 24.5.4 Template class ostream_iterator + +#include <iterator> +#include <ostream> +#include <sstream> + +void test01() +{ + using namespace std; + + // Check for required base class. + typedef ostream_iterator<long> test_iterator; + typedef iterator<output_iterator_tag, void, void, void, void> base_iterator; + ostringstream osstream("this tag"); + test_iterator r_it(osstream); + base_iterator* base __attribute__((unused)) = &r_it; +} diff --git a/libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/explicit_instantiation.cc new file mode 100644 index 0000000..0c7644c --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/explicit_instantiation.cc @@ -0,0 +1,29 @@ +// { dg-do compile } +// 2001-06-25 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 24.5.4 Template class ostream_iterator + +#include <iterator> +#include <ostream> +#include <sstream> + +// Instantiate +template class std::ostream_iterator<char>; diff --git a/libstdc++-v3/testsuite/24_iterators/ostream_iterator.cc b/libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/typedefs.cc index 6e291f1..d7a0835 100644 --- a/libstdc++-v3/testsuite/24_iterators/ostream_iterator.cc +++ b/libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/typedefs.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 2001-06-25 Benjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2001 Free Software Foundation, Inc. @@ -28,14 +29,8 @@ void test01() { using namespace std; - // Check for required base class. - typedef ostream_iterator<long> test_iterator; - typedef iterator<output_iterator_tag, void, void, void, void> base_iterator; - ostringstream osstream("this tag"); - test_iterator r_it(osstream); - base_iterator* base __attribute__((unused)) = &r_it; - // Check for required typedefs + typedef ostream_iterator<long> test_iterator; typedef test_iterator::value_type value_type; typedef test_iterator::difference_type difference_type; typedef test_iterator::pointer pointer; @@ -46,12 +41,3 @@ void test01() typedef test_iterator::traits_type traits_type; typedef test_iterator::ostream_type ostream_type; } - -// Instantiate -template class std::ostream_iterator<char>; - -int main() -{ - test01(); - return 0; -} diff --git a/libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc b/libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc new file mode 100644 index 0000000..1fe0a8f --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc @@ -0,0 +1,38 @@ +// { dg-do compile } +// 2001-04-30 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2003 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 24.5.4 template class ostreambuf_iterator + +#include <sstream> +#include <iterator> +#include <testsuite_hooks.h> + +void test01() +{ + using namespace std; + + // Check for required base class. + typedef ostreambuf_iterator<char> test_iterator; + typedef iterator<output_iterator_tag, void, void, void, void> base_iterator; + ostringstream osstream("this tag"); + test_iterator r_it(osstream); + base_iterator* base __attribute__((unused)) = &r_it; +} diff --git a/libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/explicit_instantiation.cc new file mode 100644 index 0000000..c46caae --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/explicit_instantiation.cc @@ -0,0 +1,35 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02110-1301, USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// This file tests explicit instantiation of library containers. + +#include <iterator> +#include <sstream> + +template class std::ostreambuf_iterator<char>; diff --git a/libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/1.cc b/libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/typedefs.cc index e624134..bc0266b 100644 --- a/libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/1.cc +++ b/libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/typedefs.cc @@ -29,14 +29,8 @@ void test01() { using namespace std; - // Check for required base class. - typedef ostreambuf_iterator<char> test_iterator; - typedef iterator<output_iterator_tag, void, void, void, void> base_iterator; - ostringstream osstream("this tag"); - test_iterator r_it(osstream); - base_iterator* base __attribute__((unused)) = &r_it; - // Check for required typedefs + typedef ostreambuf_iterator<char> test_iterator; typedef test_iterator::value_type value_type; typedef test_iterator::difference_type difference_type; typedef test_iterator::pointer pointer; diff --git a/libstdc++-v3/testsuite/24_iterators/26020.cc b/libstdc++-v3/testsuite/24_iterators/random_access_iterator/26020.cc index 80c4e71..80c4e71 100644 --- a/libstdc++-v3/testsuite/24_iterators/26020.cc +++ b/libstdc++-v3/testsuite/24_iterators/random_access_iterator/26020.cc diff --git a/libstdc++-v3/testsuite/24_iterators/iterator.cc b/libstdc++-v3/testsuite/24_iterators/random_access_iterator/string_vector_iterators.cc index fb61d80..fb61d80 100644 --- a/libstdc++-v3/testsuite/24_iterators/iterator.cc +++ b/libstdc++-v3/testsuite/24_iterators/random_access_iterator/string_vector_iterators.cc diff --git a/libstdc++-v3/testsuite/24_iterators/reverse_iterator/2.cc b/libstdc++-v3/testsuite/24_iterators/reverse_iterator/2.cc index 225390c..481c209 100644 --- a/libstdc++-v3/testsuite/24_iterators/reverse_iterator/2.cc +++ b/libstdc++-v3/testsuite/24_iterators/reverse_iterator/2.cc @@ -39,14 +39,6 @@ void test02() 5 + it02; } -// Check data member 'current' accessible. -class test_dm : public std::reverse_iterator<int*> -{ - int* p; -public: - test_dm(): p(current) { } -}; - int main() { test02(); diff --git a/libstdc++-v3/testsuite/24_iterators/reverse_iterator/1.cc b/libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc index 70c4e41..9029df0 100644 --- a/libstdc++-v3/testsuite/24_iterators/reverse_iterator/1.cc +++ b/libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc @@ -38,14 +38,4 @@ void test01() base_iterator; test_iterator r_it(&l); base_iterator* base __attribute__((unused)) = &r_it; - - // Check for required typedefs - typedef test_iterator::value_type value_type; - typedef test_iterator::difference_type difference_type; - typedef test_iterator::pointer pointer; - typedef test_iterator::reference reference; - typedef test_iterator::iterator_category iteratory_category; } - -// Make sure iterator can be instantiated. -template class std::reverse_iterator<int*>; diff --git a/libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/current.cc b/libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/current.cc new file mode 100644 index 0000000..0981dbf --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/current.cc @@ -0,0 +1,32 @@ +// { dg-do compile } +// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 24.4.1.2 Reverse iterators + +#include <iterator> + +// Check data member 'current' accessible. +class test_dm : public std::reverse_iterator<int*> +{ + int* p; +public: + test_dm(): p(current) { } +}; diff --git a/libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/explicit_instantiation.cc new file mode 100644 index 0000000..f0e2351 --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/explicit_instantiation.cc @@ -0,0 +1,27 @@ +// { dg-do compile } +// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 24.4.1.2 Reverse iterators + +#include <iterator> + +// Make sure iterator can be instantiated. +template class std::reverse_iterator<int*>; diff --git a/libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/typedefs.cc b/libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/typedefs.cc new file mode 100644 index 0000000..d9870444 --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/typedefs.cc @@ -0,0 +1,37 @@ +// { dg-do compile } +// 2001-06-21 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 24.4.1.2 Reverse iterators + +#include <iterator> + +void test01() +{ + using namespace std; + + // Check for required typedefs + typedef reverse_iterator<long*> test_iterator; + typedef test_iterator::value_type value_type; + typedef test_iterator::difference_type difference_type; + typedef test_iterator::pointer pointer; + typedef test_iterator::reference reference; + typedef test_iterator::iterator_category iteratory_category; +} diff --git a/libstdc++-v3/testsuite/25_algorithms/headers/algorithm/synopsis.cc b/libstdc++-v3/testsuite/25_algorithms/headers/algorithm/synopsis.cc new file mode 100644 index 0000000..032fa31 --- /dev/null +++ b/libstdc++-v3/testsuite/25_algorithms/headers/algorithm/synopsis.cc @@ -0,0 +1,404 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <algorithm> + +namespace std { + // 25.1, non-modifying sequence operations: + template<class InputIterator, class Function> + Function for_each(InputIterator first, InputIterator last, Function f); + template<class InputIterator, class T> + InputIterator find(InputIterator first, InputIterator last, + const T& value); + template<class InputIterator, class Predicate> + InputIterator find_if(InputIterator first, InputIterator last, + Predicate pred); + template<class ForwardIterator1, class ForwardIterator2> + ForwardIterator1 + find_end(ForwardIterator1 first1, ForwardIterator1 last1, + ForwardIterator2 first2, ForwardIterator2 last2); + template<class ForwardIterator1, class ForwardIterator2, + class BinaryPredicate> + ForwardIterator1 + find_end(ForwardIterator1 first1, ForwardIterator1 last1, + ForwardIterator2 first2, ForwardIterator2 last2, + BinaryPredicate pred); + template<class ForwardIterator1, class ForwardIterator2> + ForwardIterator1 + find_first_of(ForwardIterator1 first1, ForwardIterator1 last1, + ForwardIterator2 first2, ForwardIterator2 last2); + template<class ForwardIterator1, class ForwardIterator2, + class BinaryPredicate> + ForwardIterator1 + find_first_of(ForwardIterator1 first1, ForwardIterator1 last1, + ForwardIterator2 first2, ForwardIterator2 last2, + BinaryPredicate pred); + +template<class ForwardIterator> + ForwardIterator adjacent_find(ForwardIterator first, + ForwardIterator last); + +template<class ForwardIterator, class BinaryPredicate> + ForwardIterator adjacent_find(ForwardIterator first, + ForwardIterator last, BinaryPredicate pred); + +template<class InputIterator, class T> + typename iterator_traits<InputIterator>::difference_type + count(InputIterator first, InputIterator last, const T& value); + +template<class InputIterator, class Predicate> + typename iterator_traits<InputIterator>::difference_type + count_if(InputIterator first, InputIterator last, Predicate pred); +template<class InputIterator1, class InputIterator2> + pair<InputIterator1, InputIterator2> + mismatch(InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2); +template + <class InputIterator1, class InputIterator2, class BinaryPredicate> + pair<InputIterator1, InputIterator2> + mismatch(InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, BinaryPredicate pred); +template<class InputIterator1, class InputIterator2> + bool equal(InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2); +template + <class InputIterator1, class InputIterator2, class BinaryPredicate> + bool equal(InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, BinaryPredicate pred); + +template<class ForwardIterator1, class ForwardIterator2> + ForwardIterator1 search + (ForwardIterator1 first1, ForwardIterator1 last1, + ForwardIterator2 first2, ForwardIterator2 last2); + +template<class ForwardIterator1, class ForwardIterator2, + class BinaryPredicate> + ForwardIterator1 search + (ForwardIterator1 first1, ForwardIterator1 last1, + ForwardIterator2 first2, ForwardIterator2 last2, + BinaryPredicate pred); + +template<class ForwardIterator, class Size, class T> + ForwardIterator search_n(ForwardIterator first, ForwardIterator last, + Size count, const T& value); + +template <class ForwardIterator, class Size, class T, class BinaryPredicate> + ForwardIterator search_n(ForwardIterator first, ForwardIterator last, + Size count, const T& value, + BinaryPredicate pred); + +// 25.2, modifying sequence operations: +// 25.2.1, copy: +template<class InputIterator, class OutputIterator> + OutputIterator copy(InputIterator first, InputIterator last, + OutputIterator result); +template<class BidirectionalIterator1, class BidirectionalIterator2> + BidirectionalIterator2 + copy_backward + (BidirectionalIterator1 first, BidirectionalIterator1 last, + BidirectionalIterator2 result); +// 25.2.2, swap: +template<class T> void swap(T& a, T& b); +template<class ForwardIterator1, class ForwardIterator2> + ForwardIterator2 swap_ranges(ForwardIterator1 first1, + ForwardIterator1 last1, ForwardIterator2 first2); +template<class ForwardIterator1, class ForwardIterator2> + void iter_swap(ForwardIterator1 a, ForwardIterator2 b); +template<class InputIterator, class OutputIterator, class UnaryOperation> + OutputIterator transform(InputIterator first, InputIterator last, + OutputIterator result, UnaryOperation op); +template<class InputIterator1, class InputIterator2, class OutputIterator, + class BinaryOperation> + OutputIterator transform(InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, OutputIterator result, + BinaryOperation binary_op); +template<class ForwardIterator, class T> + void replace(ForwardIterator first, ForwardIterator last, + const T& old_value, const T& new_value); +template<class ForwardIterator, class Predicate, class T> + void replace_if(ForwardIterator first, ForwardIterator last, + Predicate pred, const T& new_value); +template<class InputIterator, class OutputIterator, class T> + OutputIterator replace_copy(InputIterator first, InputIterator last, + OutputIterator result, + const T& old_value, const T& new_value); +template<class Iterator, class OutputIterator, class Predicate, class T> + OutputIterator replace_copy_if(Iterator first, Iterator last, + OutputIterator result, + Predicate pred, const T& new_value); +template<class ForwardIterator, class T> + void fill(ForwardIterator first, ForwardIterator last, const T& value); +template<class OutputIterator, class Size, class T> + void fill_n(OutputIterator first, Size n, const T& value); +template<class ForwardIterator, class Generator> + void generate(ForwardIterator first, ForwardIterator last, + Generator gen); +template<class OutputIterator, class Size, class Generator> + void generate_n(OutputIterator first, Size n, Generator gen); + +template<class ForwardIterator, class T> + ForwardIterator remove(ForwardIterator first, ForwardIterator last, + const T& value); +template<class ForwardIterator, class Predicate> + ForwardIterator remove_if(ForwardIterator first, ForwardIterator last, + Predicate pred); +template<class InputIterator, class OutputIterator, class T> + OutputIterator remove_copy(InputIterator first, InputIterator last, + OutputIterator result, const T& value); +template<class InputIterator, class OutputIterator, class Predicate> + OutputIterator remove_copy_if(InputIterator first, InputIterator last, + OutputIterator result, Predicate pred); +template<class ForwardIterator> + ForwardIterator unique(ForwardIterator first, ForwardIterator last); +template<class ForwardIterator, class BinaryPredicate> + ForwardIterator unique(ForwardIterator first, ForwardIterator last, + BinaryPredicate pred); +template<class InputIterator, class OutputIterator> + OutputIterator unique_copy(InputIterator first, InputIterator last, + OutputIterator result); +template<class InputIterator, class OutputIterator, class BinaryPredicate> + OutputIterator unique_copy(InputIterator first, InputIterator last, + OutputIterator result, BinaryPredicate pred); +template<class BidirectionalIterator> + void reverse(BidirectionalIterator first, BidirectionalIterator last); +template<class BidirectionalIterator, class OutputIterator> + OutputIterator reverse_copy(BidirectionalIterator first, + BidirectionalIterator last, + OutputIterator result); +template<class ForwardIterator> + void rotate(ForwardIterator first, ForwardIterator middle, + ForwardIterator last); +template<class ForwardIterator, class OutputIterator> + OutputIterator rotate_copy + (ForwardIterator first, ForwardIterator middle, + ForwardIterator last, OutputIterator result); +template<class RandomAccessIterator> + void random_shuffle(RandomAccessIterator first, + RandomAccessIterator last); +template<class RandomAccessIterator, class RandomNumberGenerator> + void random_shuffle(RandomAccessIterator first, + RandomAccessIterator last, + RandomNumberGenerator& rand); +// 25.2.12, partitions: +template<class BidirectionalIterator, class Predicate> + BidirectionalIterator partition(BidirectionalIterator first, + BidirectionalIterator last, + Predicate pred); +template<class BidirectionalIterator, class Predicate> + BidirectionalIterator stable_partition(BidirectionalIterator first, + BidirectionalIterator last, + Predicate pred); +// 25.3, sorting and related operations: +// 25.3.1, sorting: +template<class RandomAccessIterator> + void sort(RandomAccessIterator first, RandomAccessIterator last); +template<class RandomAccessIterator, class Compare> + void sort(RandomAccessIterator first, RandomAccessIterator last, + Compare comp); +template<class RandomAccessIterator> + void stable_sort(RandomAccessIterator first, RandomAccessIterator last); +template<class RandomAccessIterator, class Compare> + void stable_sort(RandomAccessIterator first, RandomAccessIterator last, + Compare comp); +template<class RandomAccessIterator> + void partial_sort(RandomAccessIterator first, + RandomAccessIterator middle, + RandomAccessIterator last); +template<class RandomAccessIterator, class Compare> + void partial_sort(RandomAccessIterator first, + RandomAccessIterator middle, + RandomAccessIterator last, Compare comp); +template<class InputIterator, class RandomAccessIterator> + RandomAccessIterator + partial_sort_copy(InputIterator first, InputIterator last, + RandomAccessIterator result_first, + RandomAccessIterator result_last); +template<class InputIterator, class RandomAccessIterator, class Compare> + RandomAccessIterator + partial_sort_copy(InputIterator first, InputIterator last, + RandomAccessIterator result_first, + RandomAccessIterator result_last, + Compare comp); +template<class RandomAccessIterator> + void nth_element(RandomAccessIterator first, RandomAccessIterator nth, + RandomAccessIterator last); +template<class RandomAccessIterator, class Compare> + void nth_element(RandomAccessIterator first, RandomAccessIterator nth, + RandomAccessIterator last, Compare comp); +// 25.3.3, binary search: +template<class ForwardIterator, class T> + ForwardIterator lower_bound(ForwardIterator first, ForwardIterator last, + const T& value); +template<class ForwardIterator, class T, class Compare> + ForwardIterator lower_bound(ForwardIterator first, ForwardIterator last, + const T& value, Compare comp); +template<class ForwardIterator, class T> + ForwardIterator upper_bound(ForwardIterator first, ForwardIterator last, + const T& value); +template<class ForwardIterator, class T, class Compare> + ForwardIterator upper_bound(ForwardIterator first, ForwardIterator last, + const T& value, Compare comp); +template<class ForwardIterator, class T> + pair<ForwardIterator, ForwardIterator> + equal_range(ForwardIterator first, ForwardIterator last, + const T& value); +template<class ForwardIterator, class T, class Compare> + pair<ForwardIterator, ForwardIterator> + equal_range(ForwardIterator first, ForwardIterator last, + const T& value, Compare comp); +template<class ForwardIterator, class T> + bool binary_search(ForwardIterator first, ForwardIterator last, + const T& value); +template<class ForwardIterator, class T, class Compare> + bool binary_search(ForwardIterator first, ForwardIterator last, + const T& value, Compare comp); +// 25.3.4, merge: +template<class InputIterator1, class InputIterator2, class OutputIterator> + OutputIterator merge(InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + OutputIterator result); +template<class InputIterator1, class InputIterator2, class OutputIterator, + class Compare> + OutputIterator merge(InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + OutputIterator result, Compare comp); +template<class BidirectionalIterator> + void inplace_merge(BidirectionalIterator first, + BidirectionalIterator middle, + BidirectionalIterator last); +template<class BidirectionalIterator, class Compare> + void inplace_merge(BidirectionalIterator first, + BidirectionalIterator middle, + BidirectionalIterator last, Compare comp); +// 25.3.5, set operations: +template<class InputIterator1, class InputIterator2> + bool includes(InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2); +template<class InputIterator1, class InputIterator2, class Compare> + bool includes + (InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, Compare comp); +template<class InputIterator1, class InputIterator2, class OutputIterator> + OutputIterator set_union(InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + OutputIterator result); +template<class InputIterator1, class InputIterator2, class OutputIterator, + class Compare> + OutputIterator set_union(InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + OutputIterator result, Compare comp); +template<class InputIterator1, class InputIterator2, class OutputIterator> + OutputIterator set_intersection + (InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + OutputIterator result); +template<class InputIterator1, class InputIterator2, class OutputIterator, + class Compare> + OutputIterator set_intersection + (InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + OutputIterator result, Compare comp); +template<class InputIterator1, class InputIterator2, class OutputIterator> + OutputIterator set_difference + (InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + OutputIterator result); +template<class InputIterator1, class InputIterator2, class OutputIterator, + class Compare> + OutputIterator set_difference + (InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + OutputIterator result, Compare comp); +template<class InputIterator1, class InputIterator2, class OutputIterator> + OutputIterator + set_symmetric_difference(InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + OutputIterator result); +template<class InputIterator1, class InputIterator2, class OutputIterator, + class Compare> + OutputIterator + set_symmetric_difference(InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + OutputIterator result, Compare comp); +// 25.3.6, heap operations: +template<class RandomAccessIterator> + void push_heap(RandomAccessIterator first, RandomAccessIterator last); +template<class RandomAccessIterator, class Compare> + void push_heap(RandomAccessIterator first, RandomAccessIterator last, + Compare comp); +template<class RandomAccessIterator> + void pop_heap(RandomAccessIterator first, RandomAccessIterator last); +template<class RandomAccessIterator, class Compare> + void pop_heap(RandomAccessIterator first, RandomAccessIterator last, + Compare comp); +template<class RandomAccessIterator> + void make_heap(RandomAccessIterator first, RandomAccessIterator last); +template<class RandomAccessIterator, class Compare> + void make_heap(RandomAccessIterator first, RandomAccessIterator last, + Compare comp); +template<class RandomAccessIterator> + void sort_heap(RandomAccessIterator first, RandomAccessIterator last); +template<class RandomAccessIterator, class Compare> + void sort_heap(RandomAccessIterator first, RandomAccessIterator last, + Compare comp); + + // 25.3.7, minimum and maximum: + template<class T> const T& min(const T& a, const T& b); + template<class T, class Compare> + const T& min(const T& a, const T& b, Compare comp); + template<class T> const T& max(const T& a, const T& b); + template<class T, class Compare> + const T& max(const T& a, const T& b, Compare comp); + template<class ForwardIterator> + ForwardIterator min_element + (ForwardIterator first, ForwardIterator last); + template<class ForwardIterator, class Compare> + ForwardIterator min_element(ForwardIterator first, ForwardIterator last, + Compare comp); + template<class ForwardIterator> + ForwardIterator max_element + (ForwardIterator first, ForwardIterator last); + template<class ForwardIterator, class Compare> + ForwardIterator max_element(ForwardIterator first, ForwardIterator last, + Compare comp); + template<class InputIterator1, class InputIterator2> + bool lexicographical_compare + (InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2); + template<class InputIterator1, class InputIterator2, class Compare> + bool lexicographical_compare + (InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + Compare comp); + + // 25.3.9, permutations + template<class BidirectionalIterator> + bool next_permutation(BidirectionalIterator first, + BidirectionalIterator last); + template<class BidirectionalIterator, class Compare> + bool next_permutation(BidirectionalIterator first, + BidirectionalIterator last, Compare comp); + template<class BidirectionalIterator> + bool prev_permutation(BidirectionalIterator first, + BidirectionalIterator last); + template<class BidirectionalIterator, class Compare> + bool prev_permutation(BidirectionalIterator first, + BidirectionalIterator last, Compare comp); +} diff --git a/libstdc++-v3/testsuite/25_algorithms/headers/cstdlib/functions_std.cc b/libstdc++-v3/testsuite/25_algorithms/headers/cstdlib/functions_std.cc new file mode 100644 index 0000000..fcbf50b --- /dev/null +++ b/libstdc++-v3/testsuite/25_algorithms/headers/cstdlib/functions_std.cc @@ -0,0 +1,27 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <cstdlib> + +namespace gnu +{ + using std::bsearch; + using std::qsort; +} diff --git a/libstdc++-v3/testsuite/26_numerics/cmath/19322.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/19322.cc index f763b21..f763b21 100644 --- a/libstdc++-v3/testsuite/26_numerics/cmath/19322.cc +++ b/libstdc++-v3/testsuite/26_numerics/headers/cmath/19322.cc diff --git a/libstdc++-v3/testsuite/26_numerics/cmath/c99_classification_macros_c++.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c++.cc index 5455008..5455008 100644 --- a/libstdc++-v3/testsuite/26_numerics/cmath/c99_classification_macros_c++.cc +++ b/libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c++.cc diff --git a/libstdc++-v3/testsuite/26_numerics/cmath/c99_classification_macros_c.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc index a9cd058..a9cd058 100644 --- a/libstdc++-v3/testsuite/26_numerics/cmath/c99_classification_macros_c.cc +++ b/libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc diff --git a/libstdc++-v3/testsuite/26_numerics/cmath/c_math.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/c_math.cc index fd0f7c9..fd0f7c9 100644 --- a/libstdc++-v3/testsuite/26_numerics/cmath/c_math.cc +++ b/libstdc++-v3/testsuite/26_numerics/headers/cmath/c_math.cc diff --git a/libstdc++-v3/testsuite/26_numerics/cmath/c_math_dynamic.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/c_math_dynamic.cc index b8f2f92..b8f2f92 100644 --- a/libstdc++-v3/testsuite/26_numerics/cmath/c_math_dynamic.cc +++ b/libstdc++-v3/testsuite/26_numerics/headers/cmath/c_math_dynamic.cc diff --git a/libstdc++-v3/testsuite/26_numerics/cmath/fabs_inline.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/fabs_inline.cc index 742a3a9..742a3a9 100644 --- a/libstdc++-v3/testsuite/26_numerics/cmath/fabs_inline.cc +++ b/libstdc++-v3/testsuite/26_numerics/headers/cmath/fabs_inline.cc diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std.cc new file mode 100644 index 0000000..046b57f --- /dev/null +++ b/libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std.cc @@ -0,0 +1,47 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <cmath> + +namespace gnu +{ + using std::acos; + using std::asin; + using std::atan; + using std::atan2; + using std::ceil; + using std::cos; + using std::cosh; + using std::exp; + using std::fabs; + using std::floor; + using std::fmod; + using std::frexp; + using std::ldexp; + using std::log; + using std::log10; + using std::modf; + using std::pow; + using std::sin; + using std::sinh; + using std::sqrt; + using std::tan; + using std::tanh; +} diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cmath/macros.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/macros.cc new file mode 100644 index 0000000..5b70b0e --- /dev/null +++ b/libstdc++-v3/testsuite/26_numerics/headers/cmath/macros.cc @@ -0,0 +1,28 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <cmath> + +namespace gnu +{ +#ifndef HUGE_VAL + #error "HUGE_VAL_must_be_a_macro" +#endif +} diff --git a/libstdc++-v3/testsuite/26_numerics/cmath/overloads.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/overloads.cc index 4d41a96..4d41a96 100644 --- a/libstdc++-v3/testsuite/26_numerics/cmath/overloads.cc +++ b/libstdc++-v3/testsuite/26_numerics/headers/cmath/overloads.cc diff --git a/libstdc++-v3/testsuite/26_numerics/cmath/powi.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/powi.cc index 8a56f2f..8a56f2f 100644 --- a/libstdc++-v3/testsuite/26_numerics/cmath/powi.cc +++ b/libstdc++-v3/testsuite/26_numerics/headers/cmath/powi.cc diff --git a/libstdc++-v3/testsuite/26_numerics/headers/complex/synopsis.cc b/libstdc++-v3/testsuite/26_numerics/headers/complex/synopsis.cc new file mode 100644 index 0000000..8fba3a3 --- /dev/null +++ b/libstdc++-v3/testsuite/26_numerics/headers/complex/synopsis.cc @@ -0,0 +1,88 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <complex> + +namespace std { + template<class T> class complex; + template<> class complex<float>; + template<> class complex<double>; + template<> class complex<long double>; + + // 26.2.6 operators: + template<class T> + complex<T> operator+(const complex<T>&, const complex<T>&); + template<class T> complex<T> operator+(const complex<T>&, const T&); + template<class T> complex<T> operator+(const T&, const complex<T>&); + template<class T> complex<T> operator- + (const complex<T>&, const complex<T>&); + template<class T> complex<T> operator-(const complex<T>&, const T&); + template<class T> complex<T> operator-(const T&, const complex<T>&); + template<class T> complex<T> operator* + (const complex<T>&, const complex<T>&); + template<class T> complex<T> operator*(const complex<T>&, const T&); + template<class T> complex<T> operator*(const T&, const complex<T>&); + template<class T> complex<T> operator/ + (const complex<T>&, const complex<T>&); + template<class T> complex<T> operator/(const complex<T>&, const T&); + template<class T> complex<T> operator/(const T&, const complex<T>&); + template<class T> complex<T> operator+(const complex<T>&); + template<class T> complex<T> operator-(const complex<T>&); + template<class T> bool operator== + (const complex<T>&, const complex<T>&); + template<class T> bool operator==(const complex<T>&, const T&); + template<class T> bool operator==(const T&, const complex<T>&); + + + template<class T> bool operator!=(const complex<T>&, const complex<T>&); + template<class T> bool operator!=(const complex<T>&, const T&); + template<class T> bool operator!=(const T&, const complex<T>&); + template<class T, class charT, class traits> + basic_istream<charT, traits>& + operator>>(basic_istream<charT, traits>&, complex<T>&); + template<class T, class charT, class traits> + basic_ostream<charT, traits>& + operator<<(basic_ostream<charT, traits>&, const complex<T>&); + + // 26.2.7 values: + template<class T> T real(const complex<T>&); + template<class T> T imag(const complex<T>&); + template<class T> T abs(const complex<T>&); + template<class T> T arg(const complex<T>&); + template<class T> T norm(const complex<T>&); + template<class T> complex<T> conj(const complex<T>&); + template<class T> complex<T> polar(const T& rho, const T& theta = 0); + + // 26.2.8 transcendentals: + template<class T> complex<T> cos(const complex<T>&); + template<class T> complex<T> cosh(const complex<T>&); + template<class T> complex<T> exp(const complex<T>&); + template<class T> complex<T> log(const complex<T>&); + template<class T> complex<T> log10(const complex<T>&); + template<class T> complex<T> pow(const complex<T>&, int); + template<class T> complex<T> pow(const complex<T>&, const T&); + template<class T> complex<T> pow(const complex<T>&, const complex<T>&); + template<class T> complex<T> pow(const T&, const complex<T>&); + template<class T> complex<T> sin (const complex<T>&); + template<class T> complex<T> sinh(const complex<T>&); + template<class T> complex<T> sqrt(const complex<T>&); + template<class T> complex<T> tan(const complex<T>&); + template<class T> complex<T> tanh(const complex<T>&); +} diff --git a/libstdc++-v3/testsuite/26_numerics/cstdlib/13943.cc b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/13943.cc index 08ab36e..08ab36e 100644 --- a/libstdc++-v3/testsuite/26_numerics/cstdlib/13943.cc +++ b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/13943.cc diff --git a/libstdc++-v3/testsuite/17_intro/header_cstdlib.cc b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/2190.cc index 82e21b6..badcece 100644 --- a/libstdc++-v3/testsuite/17_intro/header_cstdlib.cc +++ b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/2190.cc @@ -30,15 +30,8 @@ void test01() std::ldiv_t b __attribute__((unused)); } -void test02() -{ - // Make sure size_t is in namespace std. - std::size_t i __attribute__((unused)) = 5; -} - int main() { test01(); - test02(); return 0; } diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/functions_std.cc b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/functions_std.cc new file mode 100644 index 0000000..6b5d308 --- /dev/null +++ b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/functions_std.cc @@ -0,0 +1,31 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <cstdlib> + +namespace gnu +{ + using std::abs; + using std::div; + using std::labs; + using std::ldiv; + using std::srand; + using std::rand; +} diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/macros.cc b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/macros.cc new file mode 100644 index 0000000..dc8231a --- /dev/null +++ b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/macros.cc @@ -0,0 +1,28 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <cstdlib> + +namespace gnu +{ +#ifndef RAND_MAX + #error "RAND_MAX_must_be_a_macro" +#endif +} diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/types_std.cc b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/types_std.cc new file mode 100644 index 0000000..6af857d --- /dev/null +++ b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/types_std.cc @@ -0,0 +1,27 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <cstdlib> + +namespace gnu +{ + std::div_t d; + std::ldiv_t ld; +} diff --git a/libstdc++-v3/testsuite/26_numerics/headers/numeric/synopsis.cc b/libstdc++-v3/testsuite/26_numerics/headers/numeric/synopsis.cc new file mode 100644 index 0000000..c322c61 --- /dev/null +++ b/libstdc++-v3/testsuite/26_numerics/headers/numeric/synopsis.cc @@ -0,0 +1,65 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <numeric> + +namespace std { + template <class InputIterator, class T> + T accumulate(InputIterator first, InputIterator last, T init); + + template <class InputIterator, class T, class BinaryOperation> + T accumulate(InputIterator first, InputIterator last, T init, + BinaryOperation binary_op); + + template <class InputIterator1, class InputIterator2, class T> + T inner_product(InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, T init); + + template <class InputIterator1, class InputIterator2, class T, + class BinaryOperation1, class BinaryOperation2> + T inner_product(InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, T init, + BinaryOperation1 binary_op1, + BinaryOperation2 binary_op2); + + template <class InputIterator, class OutputIterator> + OutputIterator partial_sum(InputIterator first, + InputIterator last, + OutputIterator result); + + template <class InputIterator, class OutputIterator, + class BinaryOperation> + OutputIterator partial_sum(InputIterator first, + InputIterator last, + OutputIterator result, + BinaryOperation binary_op); + + template <class InputIterator, class OutputIterator> + OutputIterator adjacent_difference(InputIterator first, + InputIterator last, + OutputIterator result); + + template <class InputIterator, class OutputIterator, + class BinaryOperation> + OutputIterator adjacent_difference(InputIterator first, + InputIterator last, + OutputIterator result, + BinaryOperation binary_op); +} diff --git a/libstdc++-v3/testsuite/26_numerics/headers/valarray/synopsis.cc b/libstdc++-v3/testsuite/26_numerics/headers/valarray/synopsis.cc new file mode 100644 index 0000000..90a542b --- /dev/null +++ b/libstdc++-v3/testsuite/26_numerics/headers/valarray/synopsis.cc @@ -0,0 +1,128 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <valarray> + +namespace std { + template<class T> class valarray; + + class slice; + template<class T> class slice_array; + + class gslice; + template<class T> class gslice_array; + template<class T> class mask_array; + template<class T> class indirect_array; + template<class T> valarray<T> operator* + (const valarray<T>&, const valarray<T>&); + template<class T> valarray<T> operator* (const valarray<T>&, const T&); + template<class T> valarray<T> operator* (const T&, const valarray<T>&); + +template<class T> valarray<T> operator/ + (const valarray<T>&, const valarray<T>&); +template<class T> valarray<T> operator/ (const valarray<T>&, const T&); +template<class T> valarray<T> operator/ (const T&, const valarray<T>&); +template<class T> valarray<T> operator% + (const valarray<T>&, const valarray<T>&); +template<class T> valarray<T> operator% (const valarray<T>&, const T&); +template<class T> valarray<T> operator% (const T&, const valarray<T>&); +template<class T> valarray<T> operator+ + (const valarray<T>&, const valarray<T>&); +template<class T> valarray<T> operator+ (const valarray<T>&, const T&); +template<class T> valarray<T> operator+ (const T&, const valarray<T>&); +template<class T> valarray<T> operator- + (const valarray<T>&, const valarray<T>&); +template<class T> valarray<T> operator- (const valarray<T>&, const T&); +template<class T> valarray<T> operator- (const T&, const valarray<T>&); +template<class T> valarray<T> operator^ + (const valarray<T>&, const valarray<T>&); +template<class T> valarray<T> operator^ (const valarray<T>&, const T&); +template<class T> valarray<T> operator^ (const T&, const valarray<T>&); +template<class T> valarray<T> operator& + (const valarray<T>&, const valarray<T>&); +template<class T> valarray<T> operator& (const valarray<T>&, const T&); +template<class T> valarray<T> operator& (const T&, const valarray<T>&); +template<class T> valarray<T> operator| + (const valarray<T>&, const valarray<T>&); +template<class T> valarray<T> operator| (const valarray<T>&, const T&); +template<class T> valarray<T> operator| (const T&, const valarray<T>&); +template<class T> valarray<T> operator<< + (const valarray<T>&, const valarray<T>&); +template<class T> valarray<T> operator<<(const valarray<T>&, const T&); +template<class T> valarray<T> operator<<(const T&, const valarray<T>&); +template<class T> valarray<T> operator>> + (const valarray<T>&, const valarray<T>&); +template<class T> valarray<T> operator>>(const valarray<T>&, const T&); +template<class T> valarray<T> operator>>(const T&, const valarray<T>&); +template<class T> valarray<bool> operator&& + (const valarray<T>&, const valarray<T>&); +template<class T> valarray<bool> operator&&(const valarray<T>&, const T&); +template<class T> valarray<bool> operator&&(const T&, const valarray<T>&); +template<class T> valarray<bool> operator|| + (const valarray<T>&, const valarray<T>&); +template<class T> valarray<bool> operator||(const valarray<T>&, const T&); +template<class T> valarray<bool> operator||(const T&, const valarray<T>&); + + template<class T> + valarray<bool> operator==(const valarray<T>&, const valarray<T>&); + template<class T> valarray<bool> operator==(const valarray<T>&, const T&); + template<class T> valarray<bool> operator==(const T&, const valarray<T>&); + template<class T> + valarray<bool> operator!=(const valarray<T>&, const valarray<T>&); + template<class T> valarray<bool> operator!=(const valarray<T>&, const T&); + template<class T> valarray<bool> operator!=(const T&, const valarray<T>&); + template<class T> + valarray<bool> operator< (const valarray<T>&, const valarray<T>&); + template<class T> valarray<bool> operator< (const valarray<T>&, const T&); + template<class T> valarray<bool> operator< (const T&, const valarray<T>&); + template<class T> + valarray<bool> operator> (const valarray<T>&, const valarray<T>&); + template<class T> valarray<bool> operator> (const valarray<T>&, const T&); + template<class T> valarray<bool> operator> (const T&, const valarray<T>&); + template<class T> + valarray<bool> operator<=(const valarray<T>&, const valarray<T>&); + template<class T> valarray<bool> operator<=(const valarray<T>&, const T&); + template<class T> valarray<bool> operator<=(const T&, const valarray<T>&); + template<class T> + valarray<bool> operator>=(const valarray<T>&, const valarray<T>&); + template<class T> valarray<bool> operator>=(const valarray<T>&, const T&); + template<class T> valarray<bool> operator>=(const T&, const valarray<T>&); + template<class T> valarray<T> abs (const valarray<T>&); + template<class T> valarray<T> acos (const valarray<T>&); + template<class T> valarray<T> asin (const valarray<T>&); + template<class T> valarray<T> atan (const valarray<T>&); + template<class T> valarray<T> atan2 + (const valarray<T>&, const valarray<T>&); + template<class T> valarray<T> atan2(const valarray<T>&, const T&); + template<class T> valarray<T> atan2(const T&, const valarray<T>&); + template<class T> valarray<T> cos (const valarray<T>&); + template<class T> valarray<T> cosh (const valarray<T>&); + template<class T> valarray<T> exp (const valarray<T>&); + template<class T> valarray<T> log (const valarray<T>&); + template<class T> valarray<T> log10(const valarray<T>&); + template<class T> valarray<T> pow(const valarray<T>&, const valarray<T>&); + template<class T> valarray<T> pow(const valarray<T>&, const T&); + template<class T> valarray<T> pow(const T&, const valarray<T>&); + template<class T> valarray<T> sin (const valarray<T>&); + template<class T> valarray<T> sinh (const valarray<T>&); + template<class T> valarray<T> sqrt (const valarray<T>&); + template<class T> valarray<T> tan (const valarray<T>&); + template<class T> valarray<T> tanh (const valarray<T>&); +} diff --git a/libstdc++-v3/testsuite/26_numerics/headers/valarray/types_std.cc b/libstdc++-v3/testsuite/26_numerics/headers/valarray/types_std.cc new file mode 100644 index 0000000..38824dc --- /dev/null +++ b/libstdc++-v3/testsuite/26_numerics/headers/valarray/types_std.cc @@ -0,0 +1,27 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <valarray> + +namespace gnu +{ + typedef std::slice t1; + typedef std::gslice t2; +} diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/27867.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/27867.cc index 7c208f4..7c208f4 100644 --- a/libstdc++-v3/testsuite/26_numerics/valarray/27867.cc +++ b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/27867.cc diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/28277.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/28277.cc index 52f4c71..52f4c71 100644 --- a/libstdc++-v3/testsuite/26_numerics/valarray/28277.cc +++ b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/28277.cc diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/30416.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/30416.cc index c513292..c513292 100644 --- a/libstdc++-v3/testsuite/26_numerics/valarray/30416.cc +++ b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/30416.cc diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/binary_closure.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/binary_closure.cc index 7dbcfbd..7dbcfbd 100644 --- a/libstdc++-v3/testsuite/26_numerics/valarray/binary_closure.cc +++ b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/binary_closure.cc diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/dr543.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/dr543.cc index 9afa93a..9afa93a 100644 --- a/libstdc++-v3/testsuite/26_numerics/valarray/dr543.cc +++ b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/dr543.cc diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/slice.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/slice.cc index d7ad877..d7ad877 100644 --- a/libstdc++-v3/testsuite/26_numerics/valarray/slice.cc +++ b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/slice.cc diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/slice_array_assignment.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/slice_array_assignment.cc index 34888be..34888be 100644 --- a/libstdc++-v3/testsuite/26_numerics/valarray/slice_array_assignment.cc +++ b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/slice_array_assignment.cc diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/valarray.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray.cc index 3c206e3..3c206e3 100644 --- a/libstdc++-v3/testsuite/26_numerics/valarray/valarray.cc +++ b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray.cc diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/valarray_const_bracket.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray_const_bracket.cc index 512cbaf..512cbaf 100644 --- a/libstdc++-v3/testsuite/26_numerics/valarray/valarray_const_bracket.cc +++ b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray_const_bracket.cc diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/valarray_name_lookup.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray_name_lookup.cc index 735f65f..735f65f 100644 --- a/libstdc++-v3/testsuite/26_numerics/valarray/valarray_name_lookup.cc +++ b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray_name_lookup.cc diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/valarray_operators.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray_operators.cc index 70ad0b0..70ad0b0 100644 --- a/libstdc++-v3/testsuite/26_numerics/valarray/valarray_operators.cc +++ b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray_operators.cc diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/valarray_subset_assignment.cc b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray_subset_assignment.cc index 4ce22af..4ce22af 100644 --- a/libstdc++-v3/testsuite/26_numerics/valarray/valarray_subset_assignment.cc +++ b/libstdc++-v3/testsuite/26_numerics/numeric_arrays/valarray_subset_assignment.cc diff --git a/libstdc++-v3/testsuite/26_numerics/numeric/sum_diff.cc b/libstdc++-v3/testsuite/26_numerics/numeric_operations/sum_diff.cc index e5af462..e5af462 100644 --- a/libstdc++-v3/testsuite/26_numerics/numeric/sum_diff.cc +++ b/libstdc++-v3/testsuite/26_numerics/numeric_operations/sum_diff.cc diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/3.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/cons/2020.cc index 8ead347..8ead347 100644 --- a/libstdc++-v3/testsuite/27_io/basic_filebuf/3.cc +++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/cons/2020.cc diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/4.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/base_classes.cc index cef8732..9166a1a 100644 --- a/libstdc++-v3/testsuite/27_io/basic_filebuf/4.cc +++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/base_classes.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 2003-03-26 B enjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2003 Free Software Foundation, Inc. @@ -31,12 +32,6 @@ void test01() const base_type* base __attribute__((unused)) = &obj; } -int main() -{ - test01(); - return 0; -} - // more surf!!! diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/2.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/explicit_instantiation.cc index 17c5429..f6d3a1c 100644 --- a/libstdc++-v3/testsuite/27_io/basic_filebuf/2.cc +++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/explicit_instantiation.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 @@ -26,8 +27,6 @@ #include <testsuite_hooks.h> #include <testsuite_character.h> -// { dg-do compile } - // test05 // libstdc++/1886 // should be able to instantiate basic_filebuf for non-standard types. diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/1.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/typedefs.cc index baa349e..45dcf59 100644 --- a/libstdc++-v3/testsuite/27_io/basic_filebuf/1.cc +++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/typedefs.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 @@ -24,8 +25,6 @@ #include <fstream> -// { dg-do compile } - // libstdc++/7216 void test01() { diff --git a/libstdc++-v3/testsuite/27_io/basic_fstream/3.cc b/libstdc++-v3/testsuite/27_io/basic_fstream/cons/3.cc index 4b01bd10..4b01bd10 100644 --- a/libstdc++-v3/testsuite/27_io/basic_fstream/3.cc +++ b/libstdc++-v3/testsuite/27_io/basic_fstream/cons/3.cc diff --git a/libstdc++-v3/testsuite/27_io/basic_fstream/4.cc b/libstdc++-v3/testsuite/27_io/basic_fstream/requirements/base_classes.cc index be994f2..71089a3 100644 --- a/libstdc++-v3/testsuite/27_io/basic_fstream/4.cc +++ b/libstdc++-v3/testsuite/27_io/basic_fstream/requirements/base_classes.cc @@ -1,4 +1,5 @@ -// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com> +// { dg-do compile } +// 2003-03-26 Benjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2003 Free Software Foundation, Inc. // @@ -32,12 +33,6 @@ void test01() const base_type* base __attribute__((unused)) = &obj; } -int main() -{ - test01(); - return 0; -} - // more surf!!! diff --git a/libstdc++-v3/testsuite/27_io/basic_fstream/2.cc b/libstdc++-v3/testsuite/27_io/basic_fstream/requirements/explicit_instantiation.cc index 66e40c8..d3ddedc 100644 --- a/libstdc++-v3/testsuite/27_io/basic_fstream/2.cc +++ b/libstdc++-v3/testsuite/27_io/basic_fstream/requirements/explicit_instantiation.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 2002-07-25 Benjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @@ -34,8 +35,6 @@ #include <testsuite_hooks.h> #include <testsuite_character.h> -// { dg-do compile } - namespace std { using __gnu_test::pod_char; diff --git a/libstdc++-v3/testsuite/27_io/basic_fstream/1.cc b/libstdc++-v3/testsuite/27_io/basic_fstream/requirements/typedefs.cc index 6c294f2..a858ae8 100644 --- a/libstdc++-v3/testsuite/27_io/basic_fstream/1.cc +++ b/libstdc++-v3/testsuite/27_io/basic_fstream/requirements/typedefs.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 2002-07-25 Benjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2002, 2003 Free Software Foundation, Inc. @@ -33,8 +34,6 @@ #include <fstream> #include <testsuite_hooks.h> -// { dg-do compile } - // libstdc++/7216 void test01() { diff --git a/libstdc++-v3/testsuite/27_io/basic_ifstream/3.cc b/libstdc++-v3/testsuite/27_io/basic_ifstream/cons/2020.cc index 896e702..896e702 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ifstream/3.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ifstream/cons/2020.cc diff --git a/libstdc++-v3/testsuite/27_io/basic_ifstream/4.cc b/libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/base_classes.cc index 626da50..444c85b 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ifstream/4.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/base_classes.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 2003-03-26 B enjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2003 Free Software Foundation, Inc. @@ -32,12 +33,6 @@ void test01() const base_type* base __attribute__((unused)) = &obj; } -int main() -{ - test01(); - return 0; -} - // more surf!!! diff --git a/libstdc++-v3/testsuite/27_io/basic_ifstream/2.cc b/libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/explicit_instantiation.cc index 191ef1f..630f426 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ifstream/2.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/explicit_instantiation.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 2002-07-25 Benjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2002, 2004 Free Software Foundation, Inc. @@ -32,8 +33,6 @@ #include <fstream> -// { dg-do compile } - namespace std { typedef short type_t; diff --git a/libstdc++-v3/testsuite/27_io/basic_ifstream/1.cc b/libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/typedefs.cc index 2a6482a..e0e32c3e 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ifstream/1.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/typedefs.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 2002-07-25 Benjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2002 Free Software Foundation, Inc. @@ -32,8 +33,6 @@ #include <fstream> -// { dg-do compile } - // libstdc++/7216 void test01() { diff --git a/libstdc++-v3/testsuite/27_io/basic_ios/3.cc b/libstdc++-v3/testsuite/27_io/basic_ios/cons/2020.cc index 6b3f700..6b3f700 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ios/3.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ios/cons/2020.cc diff --git a/libstdc++-v3/testsuite/27_io/basic_ios/4.cc b/libstdc++-v3/testsuite/27_io/basic_ios/requirements/base_classes.cc index de7b549..f748ece 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ios/4.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ios/requirements/base_classes.cc @@ -1,4 +1,5 @@ -// 2003-03-26 B enjamin Kosnik <bkoz@redhat.com> +// { dg-do compile } +// 2003-03-26 Benjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2003 Free Software Foundation, Inc. // @@ -34,12 +35,6 @@ void test01() const base_type* base __attribute__((unused)) = &obj; } -int main() -{ - test01(); - return 0; -} - // more surf!!! diff --git a/libstdc++-v3/testsuite/27_io/basic_ios/2.cc b/libstdc++-v3/testsuite/27_io/basic_ios/requirements/explicit_instantiation.cc index 89c71e6..581bff6 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ios/2.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ios/requirements/explicit_instantiation.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 2002-07-25 Benjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2002, 2004 Free Software Foundation, Inc. @@ -32,8 +33,6 @@ #include <ios> -// { dg-do compile } - namespace std { typedef short type_t; diff --git a/libstdc++-v3/testsuite/27_io/basic_ios/1.cc b/libstdc++-v3/testsuite/27_io/basic_ios/requirements/typedefs.cc index 6481c71..818a159 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ios/1.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ios/requirements/typedefs.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 2002-07-25 Benjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2002 Free Software Foundation, Inc. @@ -32,8 +33,6 @@ #include <ios> -// { dg-do compile } - // libstdc++/7216 void test01() { diff --git a/libstdc++-v3/testsuite/27_io/basic_iostream/3.cc b/libstdc++-v3/testsuite/27_io/basic_iostream/cons/2020.cc index e0af3eb..e0af3eb 100644 --- a/libstdc++-v3/testsuite/27_io/basic_iostream/3.cc +++ b/libstdc++-v3/testsuite/27_io/basic_iostream/cons/2020.cc diff --git a/libstdc++-v3/testsuite/27_io/basic_iostream/4.cc b/libstdc++-v3/testsuite/27_io/basic_iostream/requirements/base_classes.cc index 26b5fa1..63fffa5 100644 --- a/libstdc++-v3/testsuite/27_io/basic_iostream/4.cc +++ b/libstdc++-v3/testsuite/27_io/basic_iostream/requirements/base_classes.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 2003-03-26 B enjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2003 Free Software Foundation, Inc. @@ -36,12 +37,6 @@ void test01() const base_type2* base2 __attribute__((unused)) = &obj; } -int main() -{ - test01(); - return 0; -} - // more surf!!! diff --git a/libstdc++-v3/testsuite/27_io/basic_iostream/2.cc b/libstdc++-v3/testsuite/27_io/basic_iostream/requirements/explicit_instantiation.cc index e5c7236..6b8e0e0 100644 --- a/libstdc++-v3/testsuite/27_io/basic_iostream/2.cc +++ b/libstdc++-v3/testsuite/27_io/basic_iostream/requirements/explicit_instantiation.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 2002-01-08 bkoz // Copyright (C) 2002, 2004 Free Software Foundation, Inc. @@ -30,8 +31,6 @@ // 27.6.1.5 - Template class basic_iostream // NB: This file is for testing iostream with NO OTHER INCLUDES. -// { dg-do compile } - #include <istream> namespace std diff --git a/libstdc++-v3/testsuite/27_io/basic_iostream/1.cc b/libstdc++-v3/testsuite/27_io/basic_iostream/requirements/typedefs.cc index e860d4f..6ff836a 100644 --- a/libstdc++-v3/testsuite/27_io/basic_iostream/1.cc +++ b/libstdc++-v3/testsuite/27_io/basic_iostream/requirements/typedefs.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 2002-01-08 bkoz // Copyright (C) 2002 Free Software Foundation, Inc. @@ -30,8 +31,6 @@ // 27.6.1.5 - Template class basic_iostream // NB: This file is for testing iostream with NO OTHER INCLUDES. -// { dg-do compile } - #include <istream> // libstdc++/7216 diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/3.cc b/libstdc++-v3/testsuite/27_io/basic_istream/cons/3.cc index a2cadef..a2cadef 100644 --- a/libstdc++-v3/testsuite/27_io/basic_istream/3.cc +++ b/libstdc++-v3/testsuite/27_io/basic_istream/cons/3.cc diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/4.cc b/libstdc++-v3/testsuite/27_io/basic_istream/requirements/base_classes.cc index 3c796f5..b6372d7 100644 --- a/libstdc++-v3/testsuite/27_io/basic_istream/4.cc +++ b/libstdc++-v3/testsuite/27_io/basic_istream/requirements/base_classes.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 2003-03-26 B enjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2003 Free Software Foundation, Inc. @@ -34,12 +35,6 @@ void test01() const base_type* base __attribute__((unused)) = &obj; } -int main() -{ - test01(); - return 0; -} - // more surf!!! diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/2.cc b/libstdc++-v3/testsuite/27_io/basic_istream/requirements/explicit_instantiation.cc index f0cb801..9fb06d0 100644 --- a/libstdc++-v3/testsuite/27_io/basic_istream/2.cc +++ b/libstdc++-v3/testsuite/27_io/basic_istream/requirements/explicit_instantiation.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 1999-09-20 bkoz // Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 @@ -35,8 +36,6 @@ #include <testsuite_hooks.h> #include <testsuite_character.h> -// { dg-do compile } - namespace std { using __gnu_test::pod_char; diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/1.cc b/libstdc++-v3/testsuite/27_io/basic_istream/requirements/typedefs.cc index 0250f12..932c68e 100644 --- a/libstdc++-v3/testsuite/27_io/basic_istream/1.cc +++ b/libstdc++-v3/testsuite/27_io/basic_istream/requirements/typedefs.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 1999-09-20 bkoz // Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. @@ -33,8 +34,6 @@ #include <istream> #include <testsuite_hooks.h> -// { dg-do compile } - // libstdc++/7216 void test01() { diff --git a/libstdc++-v3/testsuite/27_io/basic_istringstream/3.cc b/libstdc++-v3/testsuite/27_io/basic_istringstream/cons/2020.cc index 9f5285a..9f5285a 100644 --- a/libstdc++-v3/testsuite/27_io/basic_istringstream/3.cc +++ b/libstdc++-v3/testsuite/27_io/basic_istringstream/cons/2020.cc diff --git a/libstdc++-v3/testsuite/27_io/basic_istringstream/4.cc b/libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/base_classes.cc index da0845f..38e50e4 100644 --- a/libstdc++-v3/testsuite/27_io/basic_istringstream/4.cc +++ b/libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/base_classes.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 2003-03-26 B enjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2003 Free Software Foundation, Inc. @@ -32,12 +33,6 @@ void test01() const base_type* base __attribute__((unused)) = &obj; } -int main() -{ - test01(); - return 0; -} - // more surf!!! diff --git a/libstdc++-v3/testsuite/27_io/basic_istringstream/2.cc b/libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/explicit_instantiation.cc index 7f7f9f9..9ad96d9 100644 --- a/libstdc++-v3/testsuite/27_io/basic_istringstream/2.cc +++ b/libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/explicit_instantiation.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 2002-07-25 Benjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2002, 2004 Free Software Foundation, Inc. @@ -32,8 +33,6 @@ #include <sstream> -// { dg-do compile } - namespace std { typedef short type_t; diff --git a/libstdc++-v3/testsuite/27_io/basic_istringstream/1.cc b/libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/typedefs.cc index b87fb24..5999c59 100644 --- a/libstdc++-v3/testsuite/27_io/basic_istringstream/1.cc +++ b/libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/typedefs.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 2002-07-25 Benjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2002 Free Software Foundation, Inc. @@ -32,8 +33,6 @@ #include <sstream> -// { dg-do compile } - // libstdc++/7216 void test01() { diff --git a/libstdc++-v3/testsuite/27_io/basic_ofstream/3.cc b/libstdc++-v3/testsuite/27_io/basic_ofstream/cons/2020.cc index 8ef6508..8ef6508 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ofstream/3.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ofstream/cons/2020.cc diff --git a/libstdc++-v3/testsuite/27_io/basic_ofstream/4.cc b/libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/base_classes.cc index ae5b727..fe22829 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ofstream/4.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/base_classes.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 2003-03-26 B enjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2003 Free Software Foundation, Inc. @@ -32,12 +33,6 @@ void test01() const base_type* base __attribute__((unused)) = &obj; } -int main() -{ - test01(); - return 0; -} - // more surf!!! diff --git a/libstdc++-v3/testsuite/27_io/basic_ofstream/2.cc b/libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/explicit_instantiations.cc index 4f1dfc0..f1395e9 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ofstream/2.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/explicit_instantiations.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 2002-07-25 Benjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2002, 2004 Free Software Foundation, Inc. @@ -32,8 +33,6 @@ #include <fstream> -// { dg-do compile } - namespace std { typedef short type_t; diff --git a/libstdc++-v3/testsuite/27_io/basic_ofstream/1.cc b/libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/typedefs.cc index 83a9cd1..3c8df7f 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ofstream/1.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/typedefs.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 2002-07-25 Benjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2002 Free Software Foundation, Inc. @@ -32,8 +33,6 @@ #include <fstream> -// { dg-do compile } - // libstdc++/7216 void test01() { diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/3.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/cons/2020.cc index 5171766..5171766 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/3.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/cons/2020.cc diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/4.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/requirements/base_classes.cc index a365762..a366997 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/4.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/requirements/base_classes.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 2003-03-26 B enjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2003 Free Software Foundation, Inc. @@ -34,12 +35,6 @@ void test01() const base_type* base __attribute__((unused)) = &obj; } -int main() -{ - test01(); - return 0; -} - // more surf!!! diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/2.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/requirements/explicit_instantiation.cc index 6b1f712..27e72a6 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/2.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/requirements/explicit_instantiation.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 1999-09-20 bkoz // Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 @@ -35,8 +36,6 @@ #include <testsuite_hooks.h> #include <testsuite_character.h> -// { dg-do compile } - namespace std { using __gnu_test::pod_char; diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/requirements/typedefs.cc index f72ab12..5cac045 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/1.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/requirements/typedefs.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 1999-09-20 bkoz // Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. @@ -33,8 +34,6 @@ #include <ostream> #include <testsuite_hooks.h> -// { dg-do compile } - // libstdc++/7216 void test01() { diff --git a/libstdc++-v3/testsuite/27_io/basic_ostringstream/3.cc b/libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/2020.cc index e68ea0e..e68ea0e 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostringstream/3.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/2020.cc diff --git a/libstdc++-v3/testsuite/27_io/basic_ostringstream/4.cc b/libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/base_classes.cc index 5a3c403..b4fbe04 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostringstream/4.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/base_classes.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 2003-03-26 B enjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2003 Free Software Foundation, Inc. @@ -32,12 +33,6 @@ void test01() const base_type* base __attribute__((unused)) = &obj; } -int main() -{ - test01(); - return 0; -} - // more surf!!! diff --git a/libstdc++-v3/testsuite/27_io/basic_ostringstream/2.cc b/libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/explicit_instantiation.cc index 1053189..dc509b8 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostringstream/2.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/explicit_instantiation.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 2002-07-25 Benjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2002, 2004 Free Software Foundation, Inc. @@ -32,8 +33,6 @@ #include <sstream> -// { dg-do compile } - namespace std { typedef short type_t; diff --git a/libstdc++-v3/testsuite/27_io/basic_ostringstream/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/typedefs.cc index fa4ae5e..3fbaa4f 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostringstream/1.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/typedefs.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 2002-07-25 Benjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2002 Free Software Foundation, Inc. @@ -32,8 +33,6 @@ #include <sstream> -// { dg-do compile } - // libstdc++/7216 void test01() { diff --git a/libstdc++-v3/testsuite/27_io/basic_streambuf/3.cc b/libstdc++-v3/testsuite/27_io/basic_streambuf/cons/2020.cc index 765ca16..765ca16 100644 --- a/libstdc++-v3/testsuite/27_io/basic_streambuf/3.cc +++ b/libstdc++-v3/testsuite/27_io/basic_streambuf/cons/2020.cc diff --git a/libstdc++-v3/testsuite/27_io/basic_streambuf/2.cc b/libstdc++-v3/testsuite/27_io/basic_streambuf/requirements/base_classes.cc index da7866c..da7866c 100644 --- a/libstdc++-v3/testsuite/27_io/basic_streambuf/2.cc +++ b/libstdc++-v3/testsuite/27_io/basic_streambuf/requirements/base_classes.cc diff --git a/libstdc++-v3/testsuite/27_io/basic_streambuf/1.cc b/libstdc++-v3/testsuite/27_io/basic_streambuf/requirements/typedefs.cc index cf16738..cf16738 100644 --- a/libstdc++-v3/testsuite/27_io/basic_streambuf/1.cc +++ b/libstdc++-v3/testsuite/27_io/basic_streambuf/requirements/typedefs.cc diff --git a/libstdc++-v3/testsuite/27_io/basic_stringbuf/3.cc b/libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/2020.cc index ced07b5..ced07b5 100644 --- a/libstdc++-v3/testsuite/27_io/basic_stringbuf/3.cc +++ b/libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/2020.cc diff --git a/libstdc++-v3/testsuite/27_io/basic_stringbuf/5.cc b/libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/base_classes.cc index b341b09..b1ab8f1 100644 --- a/libstdc++-v3/testsuite/27_io/basic_stringbuf/5.cc +++ b/libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/base_classes.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 2003-03-26 B enjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2003 Free Software Foundation, Inc. @@ -31,12 +32,6 @@ void test01() const base_type* base __attribute__((unused)) = &obj; } -int main() -{ - test01(); - return 0; -} - // more surf!!! diff --git a/libstdc++-v3/testsuite/27_io/basic_stringbuf/2.cc b/libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/explicit_instantiation/2.cc index 354e227..696a493 100644 --- a/libstdc++-v3/testsuite/27_io/basic_stringbuf/2.cc +++ b/libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/explicit_instantiation/2.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 @@ -26,8 +27,6 @@ #include <testsuite_hooks.h> #include <testsuite_character.h> -// { dg-do compile } - // test05 // libstdc++/1886 // should be able to instantiate basic_stringbuf for non-standard types. diff --git a/libstdc++-v3/testsuite/27_io/basic_stringbuf/4.cc b/libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/explicit_instantiation/4.cc index d4412cd..0a2c031 100644 --- a/libstdc++-v3/testsuite/27_io/basic_stringbuf/4.cc +++ b/libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/explicit_instantiation/4.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 2003-04-07 bkoz // Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. @@ -26,8 +27,6 @@ #include <testsuite_allocator.h> #include <testsuite_character.h> -// { dg-do compile } - namespace std { using __gnu_test::pod_char; diff --git a/libstdc++-v3/testsuite/27_io/basic_stringbuf/1.cc b/libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/typedefs.cc index a2da405..34999e4 100644 --- a/libstdc++-v3/testsuite/27_io/basic_stringbuf/1.cc +++ b/libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/typedefs.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 2002-07-25 Benjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2002, 2003 Free Software Foundation, Inc. @@ -33,8 +34,6 @@ #include <sstream> #include <testsuite_hooks.h> -// { dg-do compile } - // libstdc++/7216 void test01() { @@ -46,9 +45,3 @@ void test01() typedef test_type::pos_type pos_type; typedef test_type::off_type off_type; } - -int main() -{ - test01(); - return 0; -} diff --git a/libstdc++-v3/testsuite/27_io/basic_stringstream/3.cc b/libstdc++-v3/testsuite/27_io/basic_stringstream/cons/2020.cc index d47a67a..d47a67a 100644 --- a/libstdc++-v3/testsuite/27_io/basic_stringstream/3.cc +++ b/libstdc++-v3/testsuite/27_io/basic_stringstream/cons/2020.cc diff --git a/libstdc++-v3/testsuite/27_io/basic_stringstream/4.cc b/libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/base_classes.cc index 43eecf9..a6c0371 100644 --- a/libstdc++-v3/testsuite/27_io/basic_stringstream/4.cc +++ b/libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/base_classes.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 2003-03-26 B enjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2003 Free Software Foundation, Inc. @@ -32,12 +33,6 @@ void test01() const base_type* base __attribute__((unused)) = &obj; } -int main() -{ - test01(); - return 0; -} - // more surf!!! diff --git a/libstdc++-v3/testsuite/27_io/basic_stringstream/2.cc b/libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/explicit_instantiation.cc index 97a1ea8..6279e42 100644 --- a/libstdc++-v3/testsuite/27_io/basic_stringstream/2.cc +++ b/libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/explicit_instantiation.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 2002-07-25 Benjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @@ -34,8 +35,6 @@ #include <testsuite_hooks.h> #include <testsuite_character.h> -// { dg-do compile } - namespace std { using __gnu_test::pod_char; diff --git a/libstdc++-v3/testsuite/27_io/basic_stringstream/1.cc b/libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/typedefs.cc index 294e7a2..6b44601 100644 --- a/libstdc++-v3/testsuite/27_io/basic_stringstream/1.cc +++ b/libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/typedefs.cc @@ -1,3 +1,4 @@ +// { dg-do compile } // 2002-07-25 Benjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2002, 2003 Free Software Foundation, Inc. @@ -33,8 +34,6 @@ #include <sstream> #include <testsuite_hooks.h> -// { dg-do compile } - // libstdc++/7216 void test01() { diff --git a/libstdc++-v3/testsuite/27_io/fpos/1.cc b/libstdc++-v3/testsuite/27_io/fpos/requirements/explicit_instantiation.cc index 588ac19..588ac19 100644 --- a/libstdc++-v3/testsuite/27_io/fpos/1.cc +++ b/libstdc++-v3/testsuite/27_io/fpos/requirements/explicit_instantiation.cc diff --git a/libstdc++-v3/testsuite/27_io/headers/cstdio/functions_std.cc b/libstdc++-v3/testsuite/27_io/headers/cstdio/functions_std.cc new file mode 100644 index 0000000..c3da4ca --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/headers/cstdio/functions_std.cc @@ -0,0 +1,66 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <cstdio> + +namespace gnu +{ + using std::clearerr; + using std::tmpfile; + using std::fgets; + using std::fscanf; + using std::gets; + using std::rename; + using std::fclose; + using std::fopen; + using std::fseek; + using std::perror; + using std::rewind; + using std::tmpnam; + using std::feof; + using std::fprintf; + using std::fsetpos; + using std::printf; + using std::scanf; + using std::ungetc; + using std::ferror; + using std::vfprintf; + using std::fputc; + using std::ftell; + using std::putc; + using std::setbuf; + using std::fflush; + using std::vprintf; + using std::fputs; + using std::fwrite; + using std::putchar; + using std::setvbuf; + using std::fgetc; + using std::vsprintf; + using std::fread; + using std::getc; + using std::puts; + using std::sprintf; + using std::fgetpos; + using std::freopen; + using std::getchar; + using std::remove; + using std::sscanf; +} diff --git a/libstdc++-v3/testsuite/27_io/headers/cstdio/macros.cc b/libstdc++-v3/testsuite/27_io/headers/cstdio/macros.cc new file mode 100644 index 0000000..4c15f4f --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/headers/cstdio/macros.cc @@ -0,0 +1,88 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <cstdio> + +namespace gnu +{ +#ifndef NULL + #error "NULL_must_be_a_macro" +#endif + +#ifndef BUFSIZ + #error "BUFSIZ_must_be_a_macro" +#endif + +#ifndef EOF + #error "EOF_must_be_a_macro" +#endif + +#ifndef FILENAME_MAX + #error "FILENAME_MAX_must_be_a_macro" +#endif + +#ifndef L_tmpnam + #error "L_tmpnam_must_be_a_macro" +#endif + +#ifndef FOPEN_MAX + #error "FOPEN_MAX_must_be_a_macro" +#endif + +#ifndef SEEK_CUR + #error "SEEK_CUR_must_be_a_macro" +#endif + +#ifndef SEEK_END + #error "SEEK_END_must_be_a_macro" +#endif + +#ifndef SEEK_SET + #error "SEEK_SET_must_be_a_macro" +#endif + +#ifndef TMP_MAX + #error "TMP_MAX_must_be_a_macro" +#endif + +#ifndef _IOFBF + #error "_IOFBF_must_be_a_macro" +#endif + +#ifndef _IOLBF + #error "_IOLBF_must_be_a_macro" +#endif + +#ifndef _IONBF + #error "_IONBF_must_be_a_macro" +#endif + +#ifndef stderr + #error "stderr_must_be_a_macro" +#endif + +#ifndef stdin + #error "stdin_must_be_a_macro" +#endif + +#ifndef stdout + #error "stdout_must_be_a_macro" +#endif +} diff --git a/libstdc++-v3/testsuite/27_io/headers/cstdio/types_std.cc b/libstdc++-v3/testsuite/27_io/headers/cstdio/types_std.cc new file mode 100644 index 0000000..0ad9807 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/headers/cstdio/types_std.cc @@ -0,0 +1,28 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <cstdio> + +namespace gnu +{ + std::size_t s; + std::FILE f; + std::FILE fpos_t; +} diff --git a/libstdc++-v3/testsuite/27_io/headers/fstream/synopsis.cc b/libstdc++-v3/testsuite/27_io/headers/fstream/synopsis.cc new file mode 100644 index 0000000..9b8dae6 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/headers/fstream/synopsis.cc @@ -0,0 +1,43 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <fstream> + +namespace std { + template <class charT, class traits> + class basic_filebuf; + typedef basic_filebuf<char> filebuf; + typedef basic_filebuf<wchar_t> wfilebuf; + + template <class charT, class traits> + class basic_ifstream; + typedef basic_ifstream<char> ifstream; + typedef basic_ifstream<wchar_t> wifstream; + + template <class charT, class traits> + class basic_ofstream; + typedef basic_ofstream<char> ofstream; + typedef basic_ofstream<wchar_t> wofstream; + + template <class charT, class traits> + class basic_fstream; + typedef basic_fstream<char> fstream; + typedef basic_fstream<wchar_t> wfstream; +} diff --git a/libstdc++-v3/testsuite/27_io/headers/fstream/types_std.cc b/libstdc++-v3/testsuite/27_io/headers/fstream/types_std.cc new file mode 100644 index 0000000..9707680 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/headers/fstream/types_std.cc @@ -0,0 +1,36 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <fstream> + +namespace gnu +{ + typedef std::filebuf t1; + typedef std::wfilebuf t2; + + typedef std::ifstream t3; + typedef std::wifstream t4; + + typedef std::ofstream t5; + typedef std::wofstream t6; + + typedef std::fstream t7; + typedef std::wfstream t8; +} diff --git a/libstdc++-v3/testsuite/27_io/headers/iomanip/synopsis.cc b/libstdc++-v3/testsuite/27_io/headers/iomanip/synopsis.cc new file mode 100644 index 0000000..79d0550 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/headers/iomanip/synopsis.cc @@ -0,0 +1,33 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <iomanip> + +namespace std { +#if 0 + // Types T1, T2, ... are unspecified implementation types + T1 resetiosflags(ios_base::fmtflags mask); + T2 setiosflags (ios_base::fmtflags mask); + T3 setbase(int base); + template<charT> T4 setfill(charT c); + T5 setprecision(int n); + T6 setw(int n); +#endif +} diff --git a/libstdc++-v3/testsuite/27_io/headers/ios/synopsis.cc b/libstdc++-v3/testsuite/27_io/headers/ios/synopsis.cc new file mode 100644 index 0000000..a8f27d9 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/headers/ios/synopsis.cc @@ -0,0 +1,60 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <ios> + +namespace std { +#if 0 + typedef OFF_T streamoff; + typedef SZ_T streamsize; +#endif + + template <class stateT> class fpos; + class ios_base; + template <class charT, class traits> + class basic_ios; + + // 27.4.5, manipulators: + ios_base& boolalpha (ios_base& str); + ios_base& noboolalpha(ios_base& str); + ios_base& showbase (ios_base& str); + ios_base& noshowbase (ios_base& str); + ios_base& showpoint (ios_base& str); + ios_base& noshowpoint(ios_base& str); + ios_base& showpos (ios_base& str); + ios_base& noshowpos (ios_base& str); + ios_base& skipws (ios_base& str); + ios_base& noskipws (ios_base& str); + ios_base& uppercase (ios_base& str); + ios_base& nouppercase(ios_base& str); + ios_base& unitbuf (ios_base& str); + ios_base& nounitbuf (ios_base& str); + // 27.4.5.2 adjustfield: + ios_base& internal (ios_base& str); + ios_base& left (ios_base& str); + ios_base& right (ios_base& str); + // 27.4.5.3 basefield: + ios_base& dec (ios_base& str); + ios_base& hex (ios_base& str); + ios_base& oct (ios_base& str); + // 27.4.5.4 floatfield: + ios_base& fixed (ios_base& str); + ios_base& scientific (ios_base& str); +} diff --git a/libstdc++-v3/testsuite/27_io/headers/ios/types_std.cc b/libstdc++-v3/testsuite/27_io/headers/ios/types_std.cc new file mode 100644 index 0000000..b96720a --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/headers/ios/types_std.cc @@ -0,0 +1,28 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <ios> + +namespace gnu +{ + typedef std::streamoff t1; + typedef std::streamsize t2; + typedef std::ios_base t3; +} diff --git a/libstdc++-v3/testsuite/27_io/headers/iostream/synopsis.cc b/libstdc++-v3/testsuite/27_io/headers/iostream/synopsis.cc new file mode 100644 index 0000000..b2f0e2f --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/headers/iostream/synopsis.cc @@ -0,0 +1,32 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <iostream> + +namespace std { + extern istream cin; + extern ostream cout; + extern ostream cerr; + extern ostream clog; + extern wistream wcin; + extern wostream wcout; + extern wostream wcerr; + extern wostream wclog; +} diff --git a/libstdc++-v3/testsuite/17_intro/header_iostream.cc b/libstdc++-v3/testsuite/27_io/headers/iostream/types_std.cc index 2a6202d..881b52b 100644 --- a/libstdc++-v3/testsuite/17_intro/header_iostream.cc +++ b/libstdc++-v3/testsuite/27_io/headers/iostream/types_std.cc @@ -1,6 +1,6 @@ -// 1999-07-01 bkoz +// { dg-do compile } -// Copyright (C) 1999 Free Software Foundation, Inc. +// Copyright (C) 2007 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -18,13 +18,17 @@ // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, // USA. -// 17.4.1.2 Headers, iostream - #include <iostream> -#include <testsuite_hooks.h> - -int main(void) +namespace gnu { - return 0; + using std::cout; + using std::cerr; + using std::cin; + using std::clog; + + using std::wcout; + using std::wcerr; + using std::wcin; + using std::wclog; } diff --git a/libstdc++-v3/testsuite/27_io/headers/istream/synopsis.cc b/libstdc++-v3/testsuite/27_io/headers/istream/synopsis.cc new file mode 100644 index 0000000..22ef87e --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/headers/istream/synopsis.cc @@ -0,0 +1,34 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <istream> + +namespace std { + template <class charT, class traits > + class basic_istream; + typedef basic_istream<char> istream; + typedef basic_istream<wchar_t> wistream; + template <class charT, class traits > + class basic_iostream; + typedef basic_iostream<char> iostream; + typedef basic_iostream<wchar_t> wiostream; + template <class charT, class traits> + basic_istream<charT,traits>& ws(basic_istream<charT,traits>& is); +} diff --git a/libstdc++-v3/testsuite/17_intro/header_istream.cc b/libstdc++-v3/testsuite/27_io/headers/istream/types_std.cc index 90326d6..16f9680 100644 --- a/libstdc++-v3/testsuite/17_intro/header_istream.cc +++ b/libstdc++-v3/testsuite/27_io/headers/istream/types_std.cc @@ -1,6 +1,6 @@ -// 1999-07-01 bkoz +// { dg-do compile } -// Copyright (C) 1999 Free Software Foundation, Inc. +// Copyright (C) 2007 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -18,13 +18,13 @@ // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, // USA. -// 17.4.1.2 Headers, istream - #include <istream> -#include <testsuite_hooks.h> - -int main(void) +namespace gnu { - return 0; + typedef std::istream t1; + typedef std::wistream t2; + + typedef std::iostream t3; + typedef std::wiostream t4; } diff --git a/libstdc++-v3/testsuite/27_io/headers/ostream/synopsis.cc b/libstdc++-v3/testsuite/27_io/headers/ostream/synopsis.cc new file mode 100644 index 0000000..cfb75fe --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/headers/ostream/synopsis.cc @@ -0,0 +1,34 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <ostream> + +namespace std { + template <class charT, class traits> + class basic_ostream; + typedef basic_ostream<char> ostream; + typedef basic_ostream<wchar_t> wostream; + template <class charT, class traits> + basic_ostream<charT,traits>& endl(basic_ostream<charT,traits>& os); + template <class charT, class traits> + basic_ostream<charT,traits>& ends(basic_ostream<charT,traits>& os); + template <class charT, class traits> + basic_ostream<charT,traits>& flush(basic_ostream<charT,traits>& os); +} diff --git a/libstdc++-v3/testsuite/17_intro/header_ostream.cc b/libstdc++-v3/testsuite/27_io/headers/ostream/types_std.cc index 901bfec..973b2a0 100644 --- a/libstdc++-v3/testsuite/17_intro/header_ostream.cc +++ b/libstdc++-v3/testsuite/27_io/headers/ostream/types_std.cc @@ -1,6 +1,6 @@ -// 1999-07-01 bkoz +// { dg-do compile } -// Copyright (C) 1999 Free Software Foundation, Inc. +// Copyright (C) 2007 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -18,13 +18,10 @@ // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, // USA. -// 17.4.1.2 Headers, ostream - #include <ostream> -#include <testsuite_hooks.h> - -int main(void) +namespace gnu { - return 0; + typedef std::ostream t1; + typedef std::wostream t2; } diff --git a/libstdc++-v3/testsuite/27_io/headers/sstream/synopsis.cc b/libstdc++-v3/testsuite/27_io/headers/sstream/synopsis.cc new file mode 100644 index 0000000..5fd2186 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/headers/sstream/synopsis.cc @@ -0,0 +1,43 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <sstream> + +namespace std { + template <class charT, class traits, class Allocator> + class basic_stringbuf; + typedef basic_stringbuf<char> stringbuf; + typedef basic_stringbuf<wchar_t> wstringbuf; + + template <class charT, class traits, class Allocator> + class basic_istringstream; + typedef basic_istringstream<char> istringstream; + typedef basic_istringstream<wchar_t> wistringstream; + + template <class charT, class traits, class Allocator> + class basic_ostringstream; + typedef basic_ostringstream<char> ostringstream; + typedef basic_ostringstream<wchar_t> wostringstream; + + template <class charT, class traits, class Allocator> + class basic_stringstream; + typedef basic_stringstream<char> stringstream; + typedef basic_stringstream<wchar_t> wstringstream; +} diff --git a/libstdc++-v3/testsuite/27_io/headers/sstream/types_std.cc b/libstdc++-v3/testsuite/27_io/headers/sstream/types_std.cc new file mode 100644 index 0000000..c6ebcbb --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/headers/sstream/types_std.cc @@ -0,0 +1,36 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <sstream> + +namespace gnu +{ + typedef std::stringbuf t1; + typedef std::wstringbuf t2; + + typedef std::istringstream t3; + typedef std::wistringstream t4; + + typedef std::ostringstream t5; + typedef std::wostringstream t6; + + typedef std::stringstream t7; + typedef std::wstringstream t8; +} diff --git a/libstdc++-v3/testsuite/17_intro/header_cstdio.cc b/libstdc++-v3/testsuite/27_io/headers/streambuf/synopsis.cc index 688df8d..a8a0730 100644 --- a/libstdc++-v3/testsuite/17_intro/header_cstdio.cc +++ b/libstdc++-v3/testsuite/27_io/headers/streambuf/synopsis.cc @@ -1,6 +1,6 @@ -// 2000-01-01 bkoz +// { dg-do compile } -// Copyright (C) 2001, 2003 Free Software Foundation, Inc. +// Copyright (C) 2007 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -18,13 +18,11 @@ // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, // USA. -// 17.4.1.2 Headers, cstdio +#include <streambuf> -#include <cstdio> - -int main(void) -{ - // Make sure size_t is in namespace std - std::size_t i __attribute__((unused)) = 5; - return 0; +namespace std { + template <class charT, class traits> + class basic_streambuf; + typedef basic_streambuf<char> streambuf; + typedef basic_streambuf<wchar_t> wstreambuf; } diff --git a/libstdc++-v3/testsuite/17_intro/header_streambuf.cc b/libstdc++-v3/testsuite/27_io/headers/streambuf/types_std.cc index ac67481..ca11254 100644 --- a/libstdc++-v3/testsuite/17_intro/header_streambuf.cc +++ b/libstdc++-v3/testsuite/27_io/headers/streambuf/types_std.cc @@ -1,6 +1,6 @@ -// 1999-07-01 bkoz +// { dg-do compile } -// Copyright (C) 1999 Free Software Foundation, Inc. +// Copyright (C) 2007 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -18,13 +18,10 @@ // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, // USA. -// 17.4.1.2 Headers, streambuf - #include <streambuf> -#include <testsuite_hooks.h> - -int main(void) +namespace gnu { - return 0; + typedef std::streambuf t1; + typedef std::wstreambuf t2; } diff --git a/libstdc++-v3/testsuite/ext/debug_allocator/instantiate.cc b/libstdc++-v3/testsuite/ext/debug_allocator/explicit_instantiation.cc index 74731df..74731df 100644 --- a/libstdc++-v3/testsuite/ext/debug_allocator/instantiate.cc +++ b/libstdc++-v3/testsuite/ext/debug_allocator/explicit_instantiation.cc diff --git a/libstdc++-v3/testsuite/ext/hash_map/instantiate.cc b/libstdc++-v3/testsuite/ext/hash_map/requirements/explicit_instantiation.cc index 85f1ba2..85f1ba2 100644 --- a/libstdc++-v3/testsuite/ext/hash_map/instantiate.cc +++ b/libstdc++-v3/testsuite/ext/hash_map/requirements/explicit_instantiation.cc diff --git a/libstdc++-v3/testsuite/ext/hash_set/instantiate.cc b/libstdc++-v3/testsuite/ext/hash_set/requirements/explicit_instantiation.cc index 9d6f398..9d6f398 100644 --- a/libstdc++-v3/testsuite/ext/hash_set/instantiate.cc +++ b/libstdc++-v3/testsuite/ext/hash_set/requirements/explicit_instantiation.cc diff --git a/libstdc++-v3/testsuite/ext/headers.cc b/libstdc++-v3/testsuite/ext/headers.cc index ec95fb9..af66604 100644 --- a/libstdc++-v3/testsuite/ext/headers.cc +++ b/libstdc++-v3/testsuite/ext/headers.cc @@ -25,21 +25,37 @@ // subdirectory that are meant to be directly included. #include <ext/algorithm> +#include <ext/array_allocator.h> +#include <ext/atomicity.h> +#include <ext/bitmap_allocator.h> +#include <ext/codecvt_specializations.h> +#include <ext/concurrence.h> +#include <ext/debug_allocator.h> +#include <ext/enc_filebuf.h> #include <ext/functional> #include <ext/hash_map> #include <ext/hash_set> #include <ext/iterator> +#include <ext/malloc_allocator.h> #include <ext/memory> +#include <ext/mt_allocator.h> +#include <ext/new_allocator.h> #include <ext/numeric> +#include <ext/pod_char_traits.h> +#include <ext/pool_allocator.h> #include <ext/rb_tree> #include <ext/rope> #include <ext/slist> -#include <ext/debug_allocator.h> -#include <ext/malloc_allocator.h> -#include <ext/new_allocator.h> -#include <ext/array_allocator.h> -#include <ext/mt_allocator.h> -#include <ext/pool_allocator.h> #include <ext/stdio_filebuf.h> #include <ext/stdio_sync_filebuf.h> - +#include <ext/throw_allocator.h> +#include <ext/typelist.h> +#include <ext/type_traits.h> +#include <ext/vstring.h> +#include <ext/pb_ds/assoc_container.hpp> +#include <ext/pb_ds/priority_queue.hpp> +#include <ext/pb_ds/exception.hpp> +#include <ext/pb_ds/hash_policy.hpp> +#include <ext/pb_ds/list_update_policy.hpp> +#include <ext/pb_ds/tree_policy.hpp> +#include <ext/pb_ds/trie_policy.hpp> diff --git a/libstdc++-v3/testsuite/ext/malloc_allocator/instantiate.cc b/libstdc++-v3/testsuite/ext/malloc_allocator/explicit_instantiation.cc index ec48840..ec48840 100644 --- a/libstdc++-v3/testsuite/ext/malloc_allocator/instantiate.cc +++ b/libstdc++-v3/testsuite/ext/malloc_allocator/explicit_instantiation.cc diff --git a/libstdc++-v3/testsuite/ext/mt_allocator/instantiate.cc b/libstdc++-v3/testsuite/ext/mt_allocator/explicit_instantiation.cc index 4855226..4855226 100644 --- a/libstdc++-v3/testsuite/ext/mt_allocator/instantiate.cc +++ b/libstdc++-v3/testsuite/ext/mt_allocator/explicit_instantiation.cc diff --git a/libstdc++-v3/testsuite/ext/pool_allocator/instantiate.cc b/libstdc++-v3/testsuite/ext/pool_allocator/explicit_instantiation.cc index a52ca38..a52ca38 100644 --- a/libstdc++-v3/testsuite/ext/pool_allocator/instantiate.cc +++ b/libstdc++-v3/testsuite/ext/pool_allocator/explicit_instantiation.cc diff --git a/libstdc++-v3/testsuite/ext/slist/instantiate.cc b/libstdc++-v3/testsuite/ext/slist/requirements/explicit_instantiation.cc index a4dff11..a4dff11 100644 --- a/libstdc++-v3/testsuite/ext/slist/instantiate.cc +++ b/libstdc++-v3/testsuite/ext/slist/requirements/explicit_instantiation.cc diff --git a/libstdc++-v3/testsuite/ext/stdio_filebuf/char/1.cc b/libstdc++-v3/testsuite/ext/stdio_filebuf/requirements/explicit_instantiation.cc index 8ec2a13..8ec2a13 100644 --- a/libstdc++-v3/testsuite/ext/stdio_filebuf/char/1.cc +++ b/libstdc++-v3/testsuite/ext/stdio_filebuf/requirements/explicit_instantiation.cc diff --git a/libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/1.cc index 0bb95ad..0bb95ad 100644 --- a/libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/1.cc +++ b/libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/1.cc diff --git a/libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/2.cc index ee22b8b..ee22b8b 100644 --- a/libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/2.cc diff --git a/libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/char/1.cc b/libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/char/1.cc index 5d840e5..5d840e5 100644 --- a/libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/char/1.cc +++ b/libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/char/1.cc diff --git a/libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/wchar_t/1.cc b/libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/wchar_t/1.cc index 7893c33..7893c33 100644 --- a/libstdc++-v3/testsuite/ext/vstring/explicit_instantiation/wchar_t/1.cc +++ b/libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/wchar_t/1.cc diff --git a/libstdc++-v3/testsuite/tr1/2_general_utilities/headers/functional/synopsis.cc b/libstdc++-v3/testsuite/tr1/2_general_utilities/headers/functional/synopsis.cc new file mode 100644 index 0000000..cd6e2b0 --- /dev/null +++ b/libstdc++-v3/testsuite/tr1/2_general_utilities/headers/functional/synopsis.cc @@ -0,0 +1,35 @@ +// { dg-do compile } + +// 2007-02-04 Benjamin Kosnik <bkoz@redhat.com> +// +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02110-1301, USA. + +#include <tr1/functional> + +namespace std { +namespace tr1 { + + template <class T> class reference_wrapper; + template <class T> reference_wrapper<T> ref(T&); + template <class T> reference_wrapper<const T> cref(const T&); + template <class T> reference_wrapper<T> ref(reference_wrapper<T>); + template <class T> reference_wrapper<const T> cref(reference_wrapper<T>); + +} // namespace tr1 +} // namespace std diff --git a/libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/synopsis.cc b/libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/synopsis.cc new file mode 100644 index 0000000..d3f1520 --- /dev/null +++ b/libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/synopsis.cc @@ -0,0 +1,66 @@ +// { dg-do compile } + +// 2007-02-04 Benjamin Kosnik <bkoz@redhat.com> +// +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02110-1301, USA. + +#include <tr1/memory> + +namespace std { +namespace tr1 { + + // [2.2.2] Class bad_weak_ptr + class bad_weak_ptr; + + // [2.2.3] Class template shared_ptr + template<class T> class shared_ptr; + + // [2.2.3.6] shared_ptr comparisons + template<class T, class U> bool operator==(shared_ptr<T> const& a, shared_ptr<U> const& b); + template<class T, class U> bool operator!=(shared_ptr<T> const& a, shared_ptr<U> const& b); + template<class T, class U> bool operator<(shared_ptr<T> const& a, shared_ptr<U> const& b); + + // [2.2.3.8] shared_ptr specialized algorithms + template<class T> void swap(shared_ptr<T>& a, shared_ptr<T>& b); + + // [2.2.3.9] shared_ptr casts + template<class T, class U> shared_ptr<T> static_pointer_cast(shared_ptr<U> const& r); + template<class T, class U> shared_ptr<T> dynamic_pointer_cast(shared_ptr<U> const& r); + template<class T, class U> shared_ptr<T> const_pointer_cast(shared_ptr<U> const& r); + + // [2.2.3.7] shared_ptr I/O + template<class E, class T, class Y> + basic_ostream<E, T>& operator<< (basic_ostream<E, T>& os, shared_ptr<Y> const& p); + + // [2.2.3.10] shared_ptr get_deleter + template<class D, class T> D* get_deleter(shared_ptr<T> const& p); + + // [2.2.4] Class template weak_ptr + template<class T> class weak_ptr; + + // [2.2.4.6] weak_ptr comparison + template<class T, class U> bool operator<(weak_ptr<T> const& a, weak_ptr<U> const& b); + + // [2.2.4.7] weak_ptr specialized algorithms + template<class T> void swap(weak_ptr<T>& a, weak_ptr<T>& b); + + // [2.2.5] Class enable_shared_from_this + template<class T> class enable_shared_from_this; +} // namespace tr1 +} // namespace std diff --git a/libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/types_std_tr1.cc b/libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/types_std_tr1.cc new file mode 100644 index 0000000..3a3717a --- /dev/null +++ b/libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/types_std_tr1.cc @@ -0,0 +1,26 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <tr1/memory> + +namespace gnu +{ + using std::tr1::bad_weak_ptr; +} diff --git a/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/enable_shared_from_this/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/enable_shared_from_this/requirements/explicit_instantiation/1.cc index b497ebb..b497ebb 100644 --- a/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/enable_shared_from_this/explicit_instantiation/1.cc +++ b/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/enable_shared_from_this/requirements/explicit_instantiation/1.cc diff --git a/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/shared_ptr/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/shared_ptr/requirements/explicit_instantiation/1.cc index 015e22e..015e22e 100644 --- a/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/shared_ptr/explicit_instantiation/1.cc +++ b/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/shared_ptr/requirements/explicit_instantiation/1.cc diff --git a/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/weak_ptr/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/weak_ptr/requirements/explicit_instantiation/1.cc index 6c22459..6c22459 100644 --- a/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/weak_ptr/explicit_instantiation/1.cc +++ b/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/weak_ptr/requirements/explicit_instantiation/1.cc diff --git a/libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/synopsis.cc b/libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/synopsis.cc new file mode 100644 index 0000000..836c670 --- /dev/null +++ b/libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/synopsis.cc @@ -0,0 +1,80 @@ +// { dg-do compile } + +// 2007-02-04 Benjamin Kosnik <bkoz@redhat.com> +// +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02110-1301, USA. + +#include <tr1/functional> + +namespace std { +namespace tr1 { + + // [3.4] class template result_of + template <class FunctionCallType> class result_of; + +#if 0 + // [3.5] function template mem_fn + template<class R, class T> unspecified mem_fn(R T::* pm); +#endif + + // [3.6] function object binders + template<class T> struct is_bind_expression; + template<class T> struct is_placeholder; + +#if 0 + template<class F, class T1, ..., class TN> + unspecified bind(F f, T1 t1, ..., TN tN); + + template<class R, class F, class T1, ..., class Tn > + unspecified bind(F f, T1 t1, ..., TN tN); + + namespace placeholders { + // M is the implementation-defined number of placeholders + extern unspecified _1; + extern unspecified _2; + . + . + . + extern unspecified _M; + } +#endif + + // [3.7] polymorphic function wrappers + class bad_function_call; + template<class Function> class function; + template<class Function> + void swap(function<Function>&, function<Function>&); + template<class Function1, class Function2> + void operator==(const function<Function1>&, const function<Function2>&); + template<class Function1, class Function2> + void operator!=(const function<Function1>&, const function<Function2>&); + +#if 0 + template <class Function> + bool operator==(const function<Function>&, unspecified-null-pointer-type); + template <class Function> + bool operator==(unspecified-null-pointer-type, const function<Function>&); + template <class Function> + bool operator!=(const function<Function>&, unspecified-null-pointer-type); + template <class Function> + bool operator!=(unspecified-null-pointer-type, const function<Function>&); +#endif + +} // namespace tr1 +} // namespace std diff --git a/libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/types_std_tr1.cc b/libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/types_std_tr1.cc new file mode 100644 index 0000000..b61e5f2 --- /dev/null +++ b/libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/types_std_tr1.cc @@ -0,0 +1,26 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <tr1/functional> + +namespace gnu +{ + using std::tr1::bad_function_call; +} diff --git a/libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/using_namespace_std_tr1_placeholders.cc b/libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/using_namespace_std_tr1_placeholders.cc new file mode 100644 index 0000000..faddc0dc --- /dev/null +++ b/libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/using_namespace_std_tr1_placeholders.cc @@ -0,0 +1,26 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <tr1/tuple> + +namespace gnu +{ + using namespace std::tr1::placeholders; +} diff --git a/libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/synopsis.cc b/libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/synopsis.cc new file mode 100644 index 0000000..83ea1ac --- /dev/null +++ b/libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/synopsis.cc @@ -0,0 +1,104 @@ +// { dg-do compile } + +// 2007-02-04 Benjamin Kosnik <bkoz@redhat.com> +// +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02110-1301, USA. + +#include <tr1/type_traits> + +namespace std { +namespace tr1 { + + // [4.3] helper class: + template <class T, T v> struct integral_constant; + typedef integral_constant<bool, true> true_type; + typedef integral_constant<bool, false> false_type; + + // [4.5.1] primary type categories: + template <class T> struct is_void; + template <class T> struct is_integral; + template <class T> struct is_floating_point; + template <class T> struct is_array; + template <class T> struct is_pointer; + template <class T> struct is_reference; + template <class T> struct is_member_object_pointer; + template <class T> struct is_member_function_pointer; + template <class T> struct is_enum; + template <class T> struct is_union; + template <class T> struct is_class; + template <class T> struct is_function; + + // [4.5.2] composite type categories: + template <class T> struct is_arithmetic; + template <class T> struct is_fundamental; + template <class T> struct is_object; + template <class T> struct is_scalar; + template <class T> struct is_compound; + template <class T> struct is_member_pointer; + + // [4.5.3] type properties: + template <class T> struct is_const; + template <class T> struct is_volatile; + template <class T> struct is_pod; + template <class T> struct is_empty; + template <class T> struct is_polymorphic; + template <class T> struct is_abstract; + template <class T> struct has_trivial_constructor; + template <class T> struct has_trivial_copy; + template <class T> struct has_trivial_assign; + template <class T> struct has_trivial_destructor; + template <class T> struct has_nothrow_constructor; + template <class T> struct has_nothrow_copy; + template <class T> struct has_nothrow_assign; + template <class T> struct has_virtual_destructor; + template <class T> struct is_signed; + template <class T> struct is_unsigned; + template <class T> struct alignment_of; + template <class T> struct rank; + template <class T, unsigned I> struct extent; + + // [4.6] type relations: + template <class T, class U> struct is_same; + template <class Base, class Derived> struct is_base_of; + template <class From, class To> struct is_convertible; + + // [4.7.1] const-volatile modifications: + template <class T> struct remove_const; + template <class T> struct remove_volatile; + template <class T> struct remove_cv; + template <class T> struct add_const; + template <class T> struct add_volatile; + template <class T> struct add_cv; + + // [4.7.2] reference modifications: + template <class T> struct remove_reference; + template <class T> struct add_reference; + + // [4.7.3] array modifications: + template <class T> struct remove_extent; + template <class T> struct remove_all_extents; + + // [4.7.4] pointer modifications: + template <class T> struct remove_pointer; + template <class T> struct add_pointer; + + // [4.8] other transformations: + template <std::size_t Len, std::size_t Align> struct aligned_storage; +} // namespace tr1 +} // namespace std diff --git a/libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/types_std_tr1.cc b/libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/types_std_tr1.cc new file mode 100644 index 0000000..bdb3a6e --- /dev/null +++ b/libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/types_std_tr1.cc @@ -0,0 +1,27 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <tr1/type_traits> + +namespace gnu +{ + using std::tr1::true_type; + using std::tr1::false_type; +} diff --git a/libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/synopsis.cc b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/synopsis.cc new file mode 100644 index 0000000..fe0c2df --- /dev/null +++ b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/synopsis.cc @@ -0,0 +1,97 @@ +// { dg-do compile } + +// 2007-02-04 Benjamin Kosnik <bkoz@redhat.com> +// +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02110-1301, USA. + +#include <tr1/random> + +namespace std { +namespace tr1 { + + // [5.1.3] Class template variate_generator + template<class UniformRandomNumberGenerator, class Distribution> + class variate_generator; + + // [5.1.4.1] Class template linear_congruential + template<class IntType, IntType a, IntType c, IntType m> + class linear_congruential; + + // [5.1.4.2] Class template mersenne_twister + template<class UIntType, int w, int n, int m, int r, + UIntType a, int u, int s, UIntType b, int t, UIntType c, int l> + class mersenne_twister; + + // [5.1.4.3] Class template subtract_with_carry + template<class IntType, IntType m, int s, int r> + class subtract_with_carry; + + // [5.1.4.4] Class template subtract_with_carry_01 + template<class RealType, int w, int s, int r> + class subtract_with_carry_01; + + // [5.1.4.5] Class template discard_block + template<class UniformRandomNumberGenerator, int p, int r> + class discard_block; + + // [5.1.4.6] Class template xor_combine + template<class UniformRandomNumberGenerator1, int s1, + class UniformRandomNumberGenerator2, int s2> + class xor_combine; + + // [5.1.6] Class random_device + class random_device; + + // [5.1.7.1] Class template uniform_int + template<class IntType> + class uniform_int; + + // [5.1.7.2] Class bernoulli_distribution + class bernoulli_distribution; + + // [5.1.7.3] Class template geometric_distribution + template<class IntType, class RealType> + class geometric_distribution; + + // [5.1.7.4] Class template poisson_distribution + template<class IntType, class RealType> + class poisson_distribution; + + // [5.1.7.5] Class template binomial_distribution + template<class IntType, class RealType> + class binomial_distribution; + + // [5.1.7.6] Class template uniform_real + template<class RealType> + class uniform_real; + + // [5.1.7.7] Class template exponential_distribution + template<class RealType> + class exponential_distribution; + + // [5.1.7.8] Class template normal_distribution + template<class RealType> + class normal_distribution; + + // [5.1.7.9] Class template gamma_distribution + template<class RealType> + class gamma_distribution; + +} // namespace tr1 +} // namespace std diff --git a/libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/types_std_tr1.cc b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/types_std_tr1.cc new file mode 100644 index 0000000..2fd2149 --- /dev/null +++ b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/types_std_tr1.cc @@ -0,0 +1,27 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <tr1/random> + +namespace gnu +{ + using std::tr1::random_device; + using std::tr1::bernoulli_distribution; +} diff --git a/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/requirements/requirements.cc b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/requirements/typedefs.cc index ced6ba1..ced6ba1 100644 --- a/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/requirements/requirements.cc +++ b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/requirements/typedefs.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/array/requirements/instantiate.cc b/libstdc++-v3/testsuite/tr1/6_containers/array/requirements/explicit_instantiation.cc index 7ab5c2a..7ab5c2a 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/array/requirements/instantiate.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/array/requirements/explicit_instantiation.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hash/24799.cc b/libstdc++-v3/testsuite/tr1/6_containers/hash/24799.cc index 90a336b..90a336b 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hash/24799.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/hash/24799.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/base_classes.cc b/libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/base_classes.cc new file mode 100644 index 0000000..4a4916c --- /dev/null +++ b/libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/base_classes.cc @@ -0,0 +1,33 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <tr1/functional> + +void test01() +{ + // Check for required base class. + typedef long value_type; + typedef std::tr1::hash<value_type> test_type; + typedef std::unary_function<value_type, std::size_t> base_type; + + test_type b; + const test_type& obj = b; + const base_type* base __attribute__((unused)) = &obj; +} diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/hash.cc b/libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/explicit_instantiation.cc index 382d69f..382d69f 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/hash.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/explicit_instantiation.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/headers/array/synopsis.cc b/libstdc++-v3/testsuite/tr1/6_containers/headers/array/synopsis.cc new file mode 100644 index 0000000..463f3ac --- /dev/null +++ b/libstdc++-v3/testsuite/tr1/6_containers/headers/array/synopsis.cc @@ -0,0 +1,52 @@ +// { dg-do compile } + +// 2007-02-04 Benjamin Kosnik <bkoz@redhat.com> +// +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02110-1301, USA. + +#include <tr1/array> + +namespace std { +namespace tr1 { + + // [6.2.2] Class template array + template <class T, size_t N > struct array; + + // Array comparisons + template <class T, size_t N> bool operator==(const array<T,N>& x, const array<T,N>& y); + template <class T, size_t N> bool operator!=(const array<T,N>& x, const array<T,N>& y); + template <class T, size_t N> bool operator<(const array<T,N>& x, const array<T,N>& y); + template <class T, size_t N> bool operator>(const array<T,N>& x, const array<T,N>& y); + template <class T, size_t N> bool operator<=(const array<T,N>& x, const array<T,N>& y); + template <class T, size_t N> bool operator>=(const array<T,N>& x, const array<T,N>& y); + + // [6.2.2.2] Specialized algorithms + template <class T, size_t N > void swap(array<T,N>& x, array<T,N>& y); + + // [6.2.2.5] Tuple interface to class template array + template <class T> class tuple_size; // forward declaration + template <int I, class T> class tuple_element; // forward declaration + template <class T, size_t N> struct tuple_size<array<T, N> >; + template <int I, class T, size_t N> struct tuple_element<I, array<T, N> >; + template <int I, class T, size_t N> T& get(array<T, N>&); + template <int I, class T, size_t N> const T& get(const array<T, N>&); + +} // namespace tr1 +} // namespace std + diff --git a/libstdc++-v3/testsuite/tr1/6_containers/headers/functional/synopsis.cc b/libstdc++-v3/testsuite/tr1/6_containers/headers/functional/synopsis.cc new file mode 100644 index 0000000..682593c --- /dev/null +++ b/libstdc++-v3/testsuite/tr1/6_containers/headers/functional/synopsis.cc @@ -0,0 +1,51 @@ +// { dg-do compile } + +// 2007-02-04 Benjamin Kosnik <bkoz@redhat.com> +// +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02110-1301, USA. + +#include <tr1/functional> + +namespace std { +namespace tr1 { + + // [6.3.3] Hash function base template + template <class T> struct hash; + + // Hash function specializations + template <> struct hash<bool>; + template <> struct hash<char>; + template <> struct hash<signed char>; + template <> struct hash<unsigned char>; + template <> struct hash<wchar_t>; + template <> struct hash<short>; + template <> struct hash<unsigned short>; + template <> struct hash<int>; + template <> struct hash<unsigned int>; + template <> struct hash<long>; + template <> struct hash<unsigned long>; + template <> struct hash<float>; + template <> struct hash<double>; + template <> struct hash<long double>; + template<class T> struct hash<T*>; + template <> struct hash<std::string>; + template <> struct hash<std::wstring>; + +} // namespace tr1 +} // namespace std diff --git a/libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/synopsis.cc b/libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/synopsis.cc new file mode 100644 index 0000000..72fb929 --- /dev/null +++ b/libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/synopsis.cc @@ -0,0 +1,71 @@ +// { dg-do compile } + +// 2007-02-04 Benjamin Kosnik <bkoz@redhat.com> +// +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02110-1301, USA. + +#include <tr1/tuple> + +namespace std { +namespace tr1 { + +#if 0 + // [6.1.3] Class template tuple + template <class T1 = unspecified , + class T2 = unspecified , + ..., + class TM = unspecified > class tuple; + + // [6.1.3.2] Tuple creation functions + const unspecified ignore; + template<class T1, class T2, ..., class TN> + tuple<V1, V2, ..., VN> make_tuple(const T1&, const T2& , ..., const TN&); + + template<class T1, class T2, ..., class TN> + tuple<T1&, T2&, ..., TN&> tie(T1&, T2& , ..., TN&); +#endif + + // [6.1.3.3] Tuple helper classes + template <class T> class tuple_size; + template <int I, class T> class tuple_element; + +#if 0 + // [6.1.3.4] Element access + template <int I, class T1, class T2, ..., class TN> + RJ get(tuple<T1, T2, ..., TN>&); + template <int I, class T1, class T2, ..., class TN> + PJ get(const tuple<T1, T2, ..., TN>&); + + // [6.1.3.5] relational operators + template<class T1, class T2, ..., class TM, class U1, class U2, ..., class UM> + bool operator==(const tuple<T1, T2, ..., TM>&, const tuple<U1, U2, ..., UM>&); + template<class T1, class T2, ..., class TM, class U1, class U2, ..., class UM> + bool operator<(const tuple<T1, T2, ..., TM>&, const tuple<U1, U2, ..., UM>&); + template<class T1, class T2, ..., class TM, class U1, class U2, ..., class UM> + bool operator!=(const tuple<T1, T2, ..., TM>&, const tuple<U1, U2, ..., UM>&); + template<class T1, class T2, ..., class TM, class U1, class U2, ..., class UM> + bool operator>(const tuple<T1, T2, ..., TM>&, const tuple<U1, U2, ..., UM>&); + template<class T1, class T2, ..., class TM, class U1, class U2, ..., class UM> + bool operator<=(const tuple<T1, T2, ..., TM>&, const tuple<U1, U2, ..., UM>&); + template<class T1, class T2, ..., class TM, class U1, class U2, ..., class UM> + bool operator>=(const tuple<T1, T2, ..., TM>&, const tuple<U1, U2, ..., UM>&); +#endif + +} // namespace tr1 +} // namespace std diff --git a/libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/types_std_tr1.cc b/libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/types_std_tr1.cc new file mode 100644 index 0000000..2c543f0 --- /dev/null +++ b/libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/types_std_tr1.cc @@ -0,0 +1,26 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <tr1/tuple> + +namespace gnu +{ + using std::tr1::ignore; +} diff --git a/libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_map/synopsis.cc b/libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_map/synopsis.cc new file mode 100644 index 0000000..45080fc --- /dev/null +++ b/libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_map/synopsis.cc @@ -0,0 +1,54 @@ +// { dg-do compile { xfail *-*-* } } +// { dg-excess-errors "" } + +// 2007-02-04 Benjamin Kosnik <bkoz@redhat.com> +// +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02110-1301, USA. + +#include <tr1/unordered_map> + +namespace std { +namespace tr1 { + + // [6.3.4.4] Class template unordered_map + template <class Key, + class T, + class Hash, + class Pred, + class Alloc> + class unordered_map; + + // [6.3.4.6] Class template unordered_multimap + template <class Key, + class T, + class Hash, + class Pred, + class Alloc> + class unordered_multimap; + +template <class Key, class T, class Hash, class Pred, class Alloc> + void swap(unordered_map<Key, T, Hash, Pred, Alloc>& x, + unordered_map<Key, T, Hash, Pred, Alloc>& y); +template <class Key, class T, class Hash, class Pred, class Alloc> + void swap(unordered_multimap<Key, T, Hash, Pred, Alloc>& x, + unordered_multimap<Key, T, Hash, Pred, Alloc>& y); + +} // namespace tr1 +} // namespace std + diff --git a/libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_set/synopsis.cc b/libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_set/synopsis.cc new file mode 100644 index 0000000..29cced0 --- /dev/null +++ b/libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_set/synopsis.cc @@ -0,0 +1,53 @@ +// { dg-do compile { xfail *-*-* } } +// { dg-excess-errors "" } + +// 2007-02-04 Benjamin Kosnik <bkoz@redhat.com> +// +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02110-1301, USA. + +#include <tr1/unordered_set> + +namespace std { +namespace tr1 { + + // [6.3.4.3] Class template unordered_set + template <class Value, + class Hash, + class Pred, + class Alloc> + class unordered_set; + + // [6.3.4.5] Class template unordered_multiset + template <class Value, + class Hash, + class Pred, + class Alloc> + class unordered_multiset; + + template <class Value, class Hash, class Pred, class Alloc> + void swap(unordered_set<Value, Hash, Pred, Alloc>& x, + unordered_set<Value, Hash, Pred, Alloc>& y); + + template <class Value, class Hash, class Pred, class Alloc> + void swap(unordered_multiset<Value, Hash, Pred, Alloc>& x, + unordered_multiset<Value, Hash, Pred, Alloc>& y); + +} // namespace tr1 +} // namespace std + diff --git a/libstdc++-v3/testsuite/tr1/6_containers/tuple/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/tr1/6_containers/tuple/requirements/explicit_instantiation.cc new file mode 100644 index 0000000..c2a2321 --- /dev/null +++ b/libstdc++-v3/testsuite/tr1/6_containers/tuple/requirements/explicit_instantiation.cc @@ -0,0 +1,34 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02110-1301, USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// This file tests explicit instantiation of library containers. + +#include <tr1/tuple> + +template class std::tr1::tuple<short, int, double>; diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/23781.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/23781.cc deleted file mode 100644 index a547993..0000000 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/23781.cc +++ /dev/null @@ -1,43 +0,0 @@ -// 2005-09-10 Paolo Carlini <pcarlini@suse.de> -// -// Copyright (C) 2005 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 2, or (at your option) -// any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING. If not, write to the Free -// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -// USA. -// -// As a special exception, you may use this file as part of a free software -// library without restriction. Specifically, if other files instantiate -// templates or use macros or inline functions from this file, or you compile -// this file and link it with other files to produce an executable, this -// file does not by itself cause the resulting executable to be covered by -// the GNU General Public License. This exception does not however -// invalidate any other reasons why the executable file might be covered by -// the GNU General Public License. - -// { dg-do compile } - -// libstdc++/23781 -#include <tr1/unordered_map> -#include <tr1/unordered_set> - -std::tr1::unordered_map<int, int>::iterator it1 = NULL; // { dg-error "conversion" } -std::tr1::unordered_map<int, int>::const_iterator cit1 = NULL; // { dg-error "conversion" } -std::tr1::unordered_multimap<int, int>::iterator it2 = NULL; // { dg-error "conversion" } -std::tr1::unordered_multimap<int, int>::const_iterator cit2 = NULL; // { dg-error "conversion" } -std::tr1::unordered_multiset<int>::iterator it3 = NULL; // { dg-error "conversion" } -std::tr1::unordered_multiset<int>::const_iterator cit3 = NULL; // { dg-error "conversion" } -std::tr1::unordered_set<int>::iterator it4 = NULL; // { dg-error "conversion" } -std::tr1::unordered_set<int>::const_iterator cit4 = NULL; // { dg-error "conversion" } diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/24064.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/24064.cc index 74eabbf..74eabbf 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/24064.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/24064.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-map.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/capacity/29134-map.cc index 459ace4..459ace4 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-map.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/capacity/29134-map.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-map.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/erase/24061-map.cc index 9289b65..9289b65 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-map.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/erase/24061-map.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/map1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/find/map1.cc index 8ff05d2..8ff05d2 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/map1.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/find/map1.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-map.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/24061-map.cc index 8e290af..8e290af 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-map.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/24061-map.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/array_syntax.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/array_syntax.cc index 2664d76..2664d76 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/array_syntax.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/array_syntax.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/map_range.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/map_range.cc index 424cfb3..424cfb3 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/map_range.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/map_range.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/map_single.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/map_single.cc index a4b02e8..a4b02e8 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/map_single.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/map_single.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/map.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/explicit_instantiation.cc index 41ce95d..41ce95d 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/map.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/explicit_instantiation.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/types/map_iterator.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_neg.cc index da64404..da64404 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/types/map_iterator.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_neg.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_null_neg.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_null_neg.cc new file mode 100644 index 0000000..8031c6d --- /dev/null +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_null_neg.cc @@ -0,0 +1,36 @@ +// 2005-09-10 Paolo Carlini <pcarlini@suse.de> +// +// Copyright (C) 2005 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. +// +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// { dg-do compile } + +// libstdc++/23781 +#include <tr1/unordered_map> + +std::tr1::unordered_map<int, int>::iterator it1 = NULL; // { dg-error "conversion" } +std::tr1::unordered_map<int, int>::const_iterator cit1 = NULL; // { dg-error "conversion" } diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_map/1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/swap/1.cc index d379774..d379774 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_map/1.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/swap/1.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_map/2.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/swap/2.cc index 8d70829..8d70829 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_map/2.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/swap/2.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-multimap.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/capacity/29134-multimap.cc index af41fa1..af41fa1 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-multimap.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/capacity/29134-multimap.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-multimap.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/erase/24061-multimap.cc index b9980b7..b9980b7 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-multimap.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/erase/24061-multimap.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/multimap1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/find/multimap1.cc index 1fc3e18..1fc3e18 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/multimap1.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/find/multimap1.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-multimap.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/24061-multimap.cc index a744c8b..a744c8b 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-multimap.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/24061-multimap.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multimap_range.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/multimap_range.cc index 6296c4f..6296c4f 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multimap_range.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/multimap_range.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multimap_single.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/multimap_single.cc index 815b864..815b864 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multimap_single.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/multimap_single.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/multimap.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/explicit_instantiation.cc index d48aef8..d48aef8 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/multimap.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/explicit_instantiation.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/types/multimap_iterator.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_neg.cc index a3d705a..a3d705a 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/types/multimap_iterator.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_neg.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_null_neg.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_null_neg.cc new file mode 100644 index 0000000..72b9505 --- /dev/null +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_null_neg.cc @@ -0,0 +1,36 @@ +// 2005-09-10 Paolo Carlini <pcarlini@suse.de> +// +// Copyright (C) 2005 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. +// +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// { dg-do compile } + +// libstdc++/23781 +#include <tr1/unordered_map> + +std::tr1::unordered_multimap<int, int>::iterator it2 = NULL; // { dg-error "conversion" } +std::tr1::unordered_multimap<int, int>::const_iterator cit2 = NULL; // { dg-error "conversion" } diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multimap/1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/swap/1.cc index 7648e08..7648e08 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multimap/1.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/swap/1.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multimap/2.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/swap/2.cc index f7744eb..f7744eb 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multimap/2.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/swap/2.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/24054.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/24054.cc index 073d240..073d240 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/24054.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/24054.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-multiset.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/capacity/29134-multiset.cc index 923af9b..923af9b 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-multiset.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/capacity/29134-multiset.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-multiset.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/erase/24061-multiset.cc index a00beab..a00beab 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-multiset.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/erase/24061-multiset.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/multiset1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/find/multiset1.cc index b06d511..b06d511 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/multiset1.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/find/multiset1.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-multiset.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/24061-multiset.cc index 9467f41..9467f41 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-multiset.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/24061-multiset.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multiset_range.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/multiset_range.cc index a83fce3..a83fce3 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multiset_range.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/multiset_range.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multiset_single.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/multiset_single.cc index 48fd1d4..48fd1d4 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multiset_single.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/multiset_single.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/multiset.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/explicit_instantiation.cc index 5d1e871..5d1e871 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/multiset.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/explicit_instantiation.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/types/multiset_iterator.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_neg.cc index 3b3161a..3b3161a 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/types/multiset_iterator.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_neg.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_null_neg.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_null_neg.cc new file mode 100644 index 0000000..46d79ad --- /dev/null +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_null_neg.cc @@ -0,0 +1,36 @@ +// 2005-09-10 Paolo Carlini <pcarlini@suse.de> +// +// Copyright (C) 2005 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. +// +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// { dg-do compile } + +// libstdc++/23781 +#include <tr1/unordered_set> + +std::tr1::unordered_multiset<int>::iterator it3 = NULL; // { dg-error "conversion" } +std::tr1::unordered_multiset<int>::const_iterator cit3 = NULL; // { dg-error "conversion" } diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multiset/1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/swap/1.cc index ca0194e..ca0194e 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multiset/1.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/swap/1.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multiset/2.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/swap/2.cc index a95ddd5..a95ddd5 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multiset/2.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/swap/2.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/23053.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/23053.cc index 8d93c4f..8d93c4f 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/23053.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/23053.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/23465.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/23465.cc index 35e52c2..35e52c2 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/23465.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/23465.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/26127.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/26127.cc index d14a625..d14a625 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/26127.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/26127.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/26132.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/26132.cc index 9d0076e..9d0076e 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/26132.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/26132.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-set.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/capacity/29134-set.cc index 5822341..5822341 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-set.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/capacity/29134-set.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-set.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/erase/24061-set.cc index 202a21d..202a21d 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-set.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/erase/24061-set.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/set1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/find/set1.cc index a39612a..a39612a 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/set1.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/find/set1.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-set.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/24061-set.cc index c7d670c..c7d670c 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-set.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/24061-set.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/set_range.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/set_range.cc index bfa4f73..bfa4f73 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/set_range.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/set_range.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/set_single.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/set_single.cc index ab3d68a..ab3d68a 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/set_single.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/set_single.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/set.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/explicit_instantiation.cc index ae3214f..ae3214f 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/set.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/explicit_instantiation.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/types/set_iterator.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_neg.cc index 40dc9c8..40dc9c8 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/types/set_iterator.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_neg.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_null_neg.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_null_neg.cc new file mode 100644 index 0000000..aca08c9 --- /dev/null +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_null_neg.cc @@ -0,0 +1,36 @@ +// 2005-09-10 Paolo Carlini <pcarlini@suse.de> +// +// Copyright (C) 2005 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. +// +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// { dg-do compile } + +// libstdc++/23781 +#include <tr1/unordered_set> + +std::tr1::unordered_set<int>::iterator it4 = NULL; // { dg-error "conversion" } +std::tr1::unordered_set<int>::const_iterator cit4 = NULL; // { dg-error "conversion" } diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/iterators_default_constructor.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterators_default_constructor.cc index 17705ae..17705ae 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/iterators_default_constructor.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterators_default_constructor.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_set/1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/swap/1.cc index 1928c9e..1928c9e 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_set/1.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/swap/1.cc diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_set/2.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/swap/2.cc index 46e859c..46e859c 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_set/2.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/swap/2.cc diff --git a/libstdc++-v3/testsuite/tr1/using_namespace_std_tr1.cc b/libstdc++-v3/testsuite/tr1/using_namespace_std_tr1.cc new file mode 100644 index 0000000..21fc682 --- /dev/null +++ b/libstdc++-v3/testsuite/tr1/using_namespace_std_tr1.cc @@ -0,0 +1,26 @@ +// { dg-do compile } + +// Copyright (C) 2007 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +#include <tr1/tuple> + +namespace gnu +{ + using namespace std::tr1; +} |