Commit Graph

284 Commits

Author SHA1 Message Date
Paolo Carlini
b714a4192e gslice.h: Trivial formatting fixes.
2004-07-08  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/gslice.h: Trivial formatting fixes.
	* include/bits/gslice_array.h: Likewise.
	* include/bits/indirect_array.h: Likewise.
	* include/bits/mask_array.h: Likewise.
	* include/bits/slice_array.h: Likewise.
	* include/bits/valarray_after.h: Likewise.
	* include/bits/valarray_array.h: Likewise.
	* include/bits/valarray_before.h: Likewise.
	* include/std/std_valarray.h: Likewise.

From-SVN: r84312
2004-07-08 20:48:04 +00:00
Paolo Carlini
80dddedcaf std_istream.h (ignore(streamsize __n = 1, int_type __delim = traits_type::eof())): Split into...
2004-06-22  Paolo Carlini  <pcarlini@suse.de>

	* include/std/std_istream.h (ignore(streamsize __n = 1,
	int_type __delim = traits_type::eof())): Split into...
	(ignore(), ignore(streamsize __n), ignore(streamsize __n,
	int_type __delim)): The first two can be much more simpler
	and efficient than the fully general case; also, the last
	two can take advantage of the same mechanism already used
	for getline.
	* include/bits/istream.tcc (ignore(streamsize __n = 1,
	int_type __delim = traits_type::eof()): Remove.
	(ignore(), ignore(streamsize __n), ignore(streamsize __n,
	int_type __delim)): New.

From-SVN: r83486
2004-06-22 10:06:39 +00:00
Jan van Dijk
9ef313e31c std_complex.h (sin(const complex<_Tp>& __z)): Make this function return a value.
2004-06-10  Jan van Dijk  <jan@etpmod.phys.tue.nl>

	* include/std/std_complex.h (sin(const complex<_Tp>& __z)): Make
	this function return a value.

From-SVN: r82928
2004-06-10 16:54:49 +00:00
Gabriel Dos Reis
b53dcf3e5c * include/std/std_complex.h (log): Tidy.
From-SVN: r82584
2004-06-02 21:04:07 +00:00
Gabriel Dos Reis
a4ddde0dee std_complex.h (complex<_Tp>): Properly indent to follow C++STYLE.
* include/std/std_complex.h (complex<_Tp>): Properly indent
	to follow C++STYLE.
	(complex<>::__rep): New.
	(__complex_abs): New.  Dispatch to built-ins.
	(abs): Use them.
	(__complex_arg): New. Dispatch to built-ins.
	(arg): Use it.
	(__complex_cos): New. Dispatch to built-ins.
	(cos): Use it.
	(__complex_cosh): New. Dispatch to built-ins.
	(cosh): Use it.
	(__complex_exp): New. Dispatch to built-ins.
	(exp): Use it.
	(__complex_log): New. Dispatch to built-ins.
	(log): Use it.
	(__complex_sin): New. Dispatch to built-ins.
	(sin): Use it.
	(__complex_sinh): New. Dispatch to built-ins.
	(sinh): Use it.
	(__complex_sqrt): New. Dispatch to built-ins.
	(sqrt): Use it.
	(__complex_tan): New. Dispatch to built-ins.
	(tan): Use it.
	(__complex_tanh): New. Dispatch to built-ins.
	(tanh): Use it.
	(__complex_pow): New. Dispatch to built-ins.
	(pow): Use it.

From-SVN: r82453
2004-05-30 14:41:39 +00:00
Benjamin Kosnik
26c691a88b re PR libstdc++/12854 (libstdc++ vs. -Weffc++)
2004-05-22  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/12854
	Fixups for -Weffc++.
	* include/bits/basic_string.h (basic_string::operator=): Return
	pointer to this instead of result of assign. Although redundant,
	this doesn't impact resultant codegen.

	* include/bits/locale_facets.h (__numpunct_cache): Declare
	assignment opxserator and copy constructor private.
	(__timepunct_cache): Same.
	(__moneypunct_cache): Same.
	(collate): Use member initialization list for _M_c_locale_collate.
	* config/locale/gnu/messages_members.h: Same.
	* config/locale/gnu/time_members.h (__timepunct): Same.
	* src/codecvt.cc: Use member initialization list to initialize
	_M_c_locale_codecvt.
	* src/ctype.cc: Same, with _M_c_locale_ctype and _M_narrow_ok.
	* config/os/gnu-linux/ctype_noninline.h: Same.
	* src/locale.cc (_Impl): Same.
	* src/locale_init.cc: Same.
	* src/localename.cc: Same.

	* include/bits/basic_ios.h (basic_ios): Complete member
	initialization list.
	* include/bits/istream.tcc (basic_istream::sentry): Same.
	* include/bits/ostream.tcc (basic_ostream::sentry): Same.
	* include/bits/fstream.tcc (basic_filebuf): Add _M_lock and
	_M_pback to member initialization list.
	* include/std/std_streambuf.h: Same.
	* include/std/std_sstream.h: Same, for _M_mode.
	* src/ios.cc (ios_base): Same.

	* include/ext/rope: Make derived classes match exception

	 specifications. Add copy constructors and assignment operators.

	* include/debug/safe_base.h (_Safe_sequence_base): Declare copy
	constructor and assignment operator protected.
	(_Safe_iterator_base): Same.
	* include/debug/formatter.h (_Error_formatter): Define copy
	constructor and assignment operator.

	* include/backward/strstream: Declare assignment operator and copy
	constructor private.

From-SVN: r82153
2004-05-22 23:46:34 +00:00
Paolo Carlini
5a4db26d01 std_bitset.h: Minor formatting fixes.
2004-05-16  Paolo Carlini  <pcarlini@suse.de>

	* include/std/std_bitset.h: Minor formatting fixes.

From-SVN: r81917
2004-05-16 17:45:29 +00:00
Paolo Carlini
5c33bb6218 std_bitset.h: Trivial formatting fixes.
2004-05-15  Paolo Carlini  <pcarlini@suse.de>

	* include/std/std_bitset.h: Trivial formatting fixes.

From-SVN: r81878
2004-05-15 11:43:03 +00:00
Paolo Carlini
394ef95eaf re PR libstdc++/15361 (bitset<>::_Find_next fails)
2004-05-14  Paolo Carlini  <pcarlini@suse.de>
	    Ivan Godard  <igodard@pacbell.net>

	PR libstdc++/15361
	* include/std/std_bitset.h (_Base_bitset<_Nw>::_M_do_find_next): Fix.
	* testsuite/23_containers/bitset/ext/15361.cc: New.

Co-Authored-By: Ivan Godard <igodard@pacbell.net>

From-SVN: r81852
2004-05-14 17:01:49 +00:00
Benjamin Kosnik
390e4c0dbe c++config (_GLIBCXX_STD): New.
2004-04-16  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/c++config (_GLIBCXX_STD): New.
	* src/list.cc: Use it.
	* include/std/std_bitset.h: Same.
	* include/bits/vector.tcc: Same.
	* include/bits/stl_set.h: Same.
	* include/bits/stl_multiset.h: Same.
	* include/bits/stl_multimap.h: Same.
	* include/bits/stl_map.h: Same.
	* include/bits/stl_list.h: Same.
	* include/bits/stl_vector.h: Same.
	* include/bits/stl_bvector.h: Same.
	* include/bits/stl_deque.h: Same.
	* include/bits/deque.tcc: Same.
	* include/bits/list.tcc: Same.
	* include/debug/vector: Same.
	* include/debug/set.h: Same.
	* include/debug/multiset.h: Same.
	* include/debug/multimap.h: Same.
	* include/debug/map.h: Same.
	* include/debug/list: Same.
	* include/debug/deque: Same.
	* include/debug/bitset: Same.
	* include/debug/formatter.h (__gnu_debug): Remove using directive.
	Add using declaration for std::type_info.
	* include/debug/safe_iterator.h: Add using declaration for
	std::iterator_traits and std::pair.
	* src/debug_list.cc: New.
	* src/Makefile.am: Add debug_list.cc.
	* src/Makefile.in: Regenerate.
	* config/linker-map.gnu: Add _List_node_base exports for std and
	__gnu_norm.

	* include/bits/stl_bvector.h (_Bvector_base): Use _Bvector_impl
	idiom that other containers use.
	* testsuite/23_containers/vector/bool/clear_allocator.cc: New.

From-SVN: r80763
2004-04-16 19:04:07 +00:00
Paolo Carlini
2787b59a7f std_valarray.h: Document DR389 [Ready].
2004-03-20  Paolo Carlini  <pcarlini@suse.de>

	* include/std/std_valarray.h: Document DR389 [Ready].
	* docs/html/ext/howto.html: Add an entry for DR389.

From-SVN: r79733
2004-03-20 10:05:48 +00:00
Paolo Carlini
c6feb69790 std_complex.h (pow(const complex&, const _Tp&), [...]): Fully qualify with std:: a few calls.
2004-03-11  Paolo Carlini  <pcarlini@suse.de>

	* include/std/std_complex.h (pow(const complex&, const _Tp&),
	pow(const _Tp&, const complex&), pow(const complex&,
	const complex&)): Fully qualify with std:: a few calls.
	* testsuite/26_numerics/complex/13450.cc: Minor tweak.

From-SVN: r79338
2004-03-11 19:05:19 +00:00
Paul Kienzle
52ddaf41bf re PR libstdc++/13450 (std::pow(std::complex<double>(-1.,0.),0.5) yields (NaN,0))
2004-03-10  Paul Kienzle  <pkienzle@nist.gov>
	    Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/13450
	* include/std/std_complex.h (pow(const complex&, const _Tp&),
	pow(const _Tp&, const complex&)): Use cmath pow only when safe.
	* testsuite/26_numerics/complex/13450.cc: New.

	* testsuite/26_numerics/cmath/overloads.C: Rename to overloads.cc.
	* testsuite/26_numerics/complex/pow.C: Rename to pow.cc and fix.

From-SVN: r79227
2004-03-10 09:16:12 +00:00
Paolo Carlini
a2af66c186 re PR libstdc++/14078 (Manipulators are slow)
2004-02-10  Paolo Carlini  <pcarlini@suse.de>
	    Petur Runolfsson  <peturr02@ru.is>

	PR libstdc++/14078
	* include/std/std_istream.h (operator>>(__istream_type& (*)
	(__istream_type&)), operator>>(__ios_type& (*)(__ios_type&)),
	operator>>(ios_base& (*)(ios_base&))): Declare inline.
	* include/std/std_ostream.h (operator<<(__ostream_type& (*)
	(__ostream_type&)), operator<<(__ios_type& (*)(__ios_type&)),
	operator<<(ios_base& (*) (ios_base&))): Likewise.
	* testsuite/performance/27_io/fmtflags_manipulators.cc: New.

Co-Authored-By: Petur Runolfsson <peturr02@ru.is>

From-SVN: r77650
2004-02-11 12:08:23 +00:00
Jerry Quinn
06a81b60c2 gslice.h, [...]: Update copyright years.
2004-02-02  Jerry Quinn  <jlquinn@optonline.net>

	* include/bits/gslice.h, include/bits/gslice_array.h,
	include/bits/indirect_array.h, include/bits/mask_array.h,
	include/bits/slice_array.h, include/bits/stl_numeric.h,
	include/std/std_valarray.h:  Update copyright years.

From-SVN: r77156
2004-02-03 04:01:15 +00:00
Jerry Quinn
7fb397a4b8 gslice.h (gslice): Document.
2004-02-02  Jerry Quinn  <jlquinn@optonline.net>

	* include/bits/gslice.h (gslice):  Document.
	* include/bits/gslice_array.h (gslice_array):  Document.
	* include/bits/indirect_array (indirect_array):  Document.
	* include/bits/mask_array (mask_array):  Document.
	* include/bits/slice_array.h (slice,slice_array):  Document.
	* include/bits/stl_numeric.h (accumulate, inner_product, partial_sum,
	adjacent_difference):  Document
	* include/std/std_valarray.h (valarray):  Document.

From-SVN: r77153
2004-02-03 03:33:24 +00:00
Stephen M. Webb
917a9fd4d5 c_locale.h: Change ::malloc() to new char[].
2004-01-29  Stephen M. Webb  <stephen.webb@bregmasoft.com>

	* config/local/generic/c_locale.h: Change ::malloc() to new char[].
  	* config/local/gnu/c_locale.h: Change ::malloc() to new char[].
  	* include/bits/stl_tempbuf.h: Convert _Temporary_buffer to use
	std::get_temporary_buffer() instead of duplicating its code.
	Update to C++STYLE conventions.
  	* include/std/std_memory.h (get_temporary_buffer): Use ::operator
	new() instead of std::malloc().
	(return_temporary_buffer): Use ::operator delete() instead of
	std::free().

From-SVN: r76922
2004-01-30 03:43:00 +00:00
Jerry Quinn
ffcec5c832 codecvt.h, [...]: Document.
2003-01-26  Jerry Quinn  <jlquinn@optonline.net>

	* include/bits/codecvt.h, include/bits/locale_facets.h,
	include/bits/postypes.h, include/bits/stl_bvector.h,
	include/bits/stl_multiset.h, include/bits/stl_set.h,
	include/bits/stream_iterator.h, include/bits/streambuf_iterator.h,
	include/std/std_complex.h:  Document.

From-SVN: r76688
2004-01-27 02:58:06 +00:00
Paolo Carlini
ba9119ec89 c_locale.cc: Fix throw messages to use the __N marker.
2004-01-26  Paolo Carlini  <pcarlini@suse.de>

	* config/locale/generic/c_locale.cc: Fix throw messages
	to use the __N marker.
	* config/locale/gnu/c_locale.cc: Likewise.
	* config/locale/ieee_1003.1-2001/codecvt_specializations.h:
	Likewise.
	* docs/html/17_intro/C++STYLE: Likewise.
	* include/bits/basic_ios.tcc: Likewise.
	* include/bits/fstream.tcc: Likewise.
	* include/bits/vector.tcc: Likewise.
	* include/ext/ropeimpl.h: Likewise.
	* include/std/std_bitset.h: Likewise.
	* src/ios.cc: Likewise.
	* src/locale.cc: Likewise.
	* src/localename.cc: Likewise.

From-SVN: r76684
2004-01-27 00:49:03 +00:00
Gabriel Dos Reis
3b3bfc0eeb std_complex.h (std::complex<>::real): Return a reference.
* include/std/std_complex.h (std::complex<>::real): Return a
        reference. Add non-const overload.
        (std::complex<>::real): Likewise.
        (std::real): Likewise.
        (std::imag): Likewise.
        (std::operator+): Tidy.
        (std::operator-): Likewise.
        (std::operator*): Likewise.
        (std::operator/): Likewise.
        (std::operator>>): Likewise.

From-SVN: r75680
2004-01-11 16:15:42 +00:00
Paolo Carlini
7f1156ed35 re PR libstdc++/12653 (Resolution of DR 303 (WP) still unimplemented)
2003-12-04  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/12653
	* include/std/std_bitset.h (operator>>): Implement resolution
	of DR 303 [WP]: use widen('0') and widen('1').
	* docs/html/ext/howto.html: Add an entry for DR 303.

	* include/std/std_bitset.h (operator>>): Implement the common
	requirements of formatted input functions (27.6.1.2.1).

	* include/std/std_bitset.h (operator>>): Set the failbit when
	nothing was extracted and _Nb != 0.
	* testsuite/23_containers/bitset/input/1.cc: New.

From-SVN: r74276
2003-12-04 09:45:29 +00:00
Paolo Carlini
fb8d463851 std_streambuf.h (__copy_streambufs): Remove the first, unused, basic_ios<> parameter.
2003-11-27  Paolo Carlini  <pcarlini@suse.de>

	* include/std/std_streambuf.h (__copy_streambufs): Remove
	the first, unused, basic_ios<> parameter.
	* src/streambuf-inst.cc: Likewise.
	* include/bits/streambuf.tcc: Likewise.
	* include/bits/istream.tcc (operator>>(__streambuf_type*)):
	Tweak accordingly the call.
	* include/bits/ostream.tcc (operator<<(__streambuf_type*)):
	Likewise.

	* include/bits/streambuf.tcc (__copy_streambufs): Remove
	redundant try/catch.

From-SVN: r73992
2003-11-27 13:13:19 +00:00
Paolo Carlini
781a529886 std_fstream.h: Tweak a comment.
2003-11-15  Paolo Carlini  <pcarlini@suse.de>

	* include/std/std_fstream.h: Tweak a comment.

From-SVN: r73640
2003-11-16 00:55:51 +00:00
Paolo Carlini
a2dcfada8a re PR libstdc++/13007 (basic_streambuf::pubimbue, imbue wrong)
2003-11-13  Paolo Carlini  <pcarlini@suse.de>
	    Petur Runolfsson  <peturr02@ru.is>

	PR libstdc++/13007
	* include/bits/fstream.tcc (imbue): Don't touch the stored
	locale.
	* include/std/std_streambuf.h (imbue): According to the
	standard, base class version does nothing.
	(pubimbue): Store the locale.
	* testsuite/27_io/basic_filebuf/imbue/char/13007.cc: New.
	* testsuite/27_io/basic_filebuf/imbue/wchar_t/13007.cc: New.
	* testsuite/27_io/basic_filebuf/imbue/char/2.cc: Tweak.
	* testsuite/27_io/basic_filebuf/imbue/wchar_t/2.cc: Likewise.
	* testsuite/27_io/basic_streambuf/imbue/char/13007-1.cc: New.
	* testsuite/27_io/basic_streambuf/imbue/char/13007-2.cc: New.
	* testsuite/27_io/basic_streambuf/imbue/wchar_t/13007-1.cc: New.
	* testsuite/27_io/basic_streambuf/imbue/wchar_t/13007-2.cc: New.

Co-Authored-By: Petur Runolfsson <peturr02@ru.is>

From-SVN: r73563
2003-11-13 23:13:22 +00:00
Benjamin Kosnik
285b36d6a5 [multiple changes]
2003-11-11  Doug Gregor  <gregod@cs.rpi.edu>

	* docs/html/debug.html: Document libstdc++ debug mode.
	* docs/html/debug_mode.html: Document libstdc++ debug mode design.
	* docs/html/test.html: Document how to test under debug mode.
	* docs/html/17_intro/howto.html: Document debug-mode macros.
	* include/Makefile.am: Install debug-mode headers.
	* src/Makefile.am: Include debug.cc.
	* include/bits/basic_string.tcc:
	  (basic_string::_S_construct): Fix NULL pointer check.
	  (__is_null_pointer): New.
	  Add precondition annotations.
	* include/bits/stream_iterator.h (istream_iterator,
	ostream_iterator): Added precondition annotations.
	* include/bits/streambuf_iterator.h (istreambuf_iterator): Ditto.
	* include/bits/stl_queue.h (queue, priority_queue): Ditto.
	* include/bits/stl_stack.h (stack): Ditto.
	* include/bits/basic_string.h (basic_string): Ditto.
	* include/bits/basic_string.tcc (basic_string): Ditto.
	* include/std/std_memory.h (auto_ptr): Ditto.
	* include/std/std_valarray.h (valarray): Ditto.
	* include/bits/stl_algo.h: Added algorithm precondition
	annotations.
	* include/bits/stl_algobase.h: Added algorithm precondition
	annotations.
	* include/bits/stl_numeric.h: Ditto.
	* include/ext/algorithm: Added algorithm precondition
	annotations.
	(__is_heap): Moved away from here.
	* include/bits/stl_heap.h: Added algorithm precondition
	annotations.
	(__is_heap): Moved to the top of this file.
	(__is_heap): Added iterator range overloads.
	* testsuite/20_util/auto_ptr_neg.cc: Fix line numbers to match up
	with changes in std_memory.h.
	* testsuite/23_containers/list/operators/4.cc: Don't verify
	performance guarantees when in debug mode.
	* testsuite/23_containers/bitset/invalidation/1.cc: New.
	* testsuite/23_containers/deque/invalidation/1.cc: New.
	* testsuite/23_containers/deque/invalidation/2.cc: New.
	* testsuite/23_containers/deque/invalidation/3.cc: New.
	* testsuite/23_containers/deque/invalidation/4.cc: New.
	* testsuite/23_containers/list/invalidation/1.cc: New.
	* testsuite/23_containers/list/invalidation/2.cc: New.
	* testsuite/23_containers/list/invalidation/3.cc: New.
	* testsuite/23_containers/list/invalidation/4.cc: New.
	* testsuite/23_containers/map/invalidation/1.cc: New.
	* testsuite/23_containers/map/invalidation/2.cc: New.
	* testsuite/23_containers/multimap/invalidation/1.cc: New.
	* testsuite/23_containers/multimap/invalidation/2.cc: New.
	* testsuite/23_containers/multiset/invalidation/1.cc: New.
	* testsuite/23_containers/multiset/invalidation/2.cc: New.
	* testsuite/23_containers/set/invalidation/1.cc: New.
	* testsuite/23_containers/set/invalidation/2.cc: New.
	* testsuite/23_containers/vector/invalidation/1.cc: New.
	* testsuite/23_containers/vector/invalidation/2.cc: New.
	* testsuite/23_containers/vector/invalidation/3.cc: New.
	* testsuite/23_containers/vector/invalidation/4.cc: New.
	* testsuite/25_algorithms/heap.cc: Don't verify
	performance guarantees when in debug mode.
	* include/debug/bitset: New.
	* include/debug/debug.h: New.
	* include/debug/deque: New.
	* include/debug/formatter.h: New.
	* include/debug/hash_map: New.
	* include/debug/hash_map.h: New.
	* include/debug/hash_multimap.h: New.
	* include/debug/hash_set: New.
	* include/debug/hash_set.h: New.
	* include/debug/hash_multiset.h: New.
	* include/debug/list: New.
	* include/debug/map: New.
	* include/debug/map.h: New.
	* include/debug/multimap.h: New.
	* include/debug/multiset.h: New.
	* include/debug/safe_base.h: New.
	* include/debug/safe_iterator.h: New.
	* include/debug/safe_iterator.tcc: New.
	* include/debug/safe_sequence.h: New.
	* include/debug/set: New.
	* include/debug/set.h: New.
	* include/debug/string: New.
	* include/debug/vector: New.
	* src/debug.cc: New.
	* config/linker-map.gnu: Add debug mode symbols.

2003-11-11  Benjamin Kosnik  <bkoz@redhat.com>

	* src/string-inst.cc: Tweak namespaces.
	* src/misc-inst.cc: Same.
	* docs/html/debug.html: Edits.
	* config/link-map.gnu: Remove cruft.

	* include/bits/c++config: Add in namespace associations.
	* include/std/std_bitset.h: Adjust namespace to __gnu_norm,
	comment tweaks.
	* include/bits/deque.tcc: Same.
	* include/bits/list.tcc: Same.
	* include/bits/stl_bvector.h: Same.
	* include/bits/stl_deque.h: Same.
	* include/bits/stl_list.h: Same.
	* include/bits/stl_map.h: Same.
	* include/bits/stl_multimap.h: Same.
	* include/bits/stl_multiset.h: Same.
	* include/bits/stl_set.h: Same.
	* include/bits/stl_vector.h: Same.
	* include/bits/vector.tcc: Same.

	* include/std/std_algorithm.h: Remove markup comments.
	* include/std/std_functional.h: Same.
	* include/std/std_iterator.h: Same.
	* include/std/std_numeric.h: Same.
	* include/std/std_utility.h: Same.
	* include/bits/stl_queue.h: Formatting tweaks.
	* include/bits/stl_stack.h: Same.
	* include/std/std_deque.h: Include debugging version in debug mode.
	* include/std/std_list.h: Same.
	* include/std/std_map.h: Same.
	* include/std/std_set.h: Same.
	* include/std/std_vector.h: Same.
	* include/std/std_queue.h: Use deque, vector.
	* include/std/std_stack.h: Same.

From-SVN: r73459
2003-11-11 20:09:16 +00:00
Petur Runolfsson
5e93f39f64 re PR libstdc++/12790 (basic_filebuf doesn't handle stateful encodings)
2003-11-03  Petur Runolfsson  <peturr02@ru.is>

	PR libstdc++/12790
	* include/bits/fstream.tcc: Delete _M_last_overflowed.
	(basic_filebuf::basic_filebuf): Initialize _M_state_last.
	(basic_filebuf::open, basic_filebuf::close): Assign
	_M_state_beg to _M_state_cur and _M_state_last.
	(basic_filebuf::close): Call _M_terminate_output to handle
	unshift and flushing.
	(basic_filebuf::underflow): Assign _M_state_last, throw
	exception instead of calling abort when codecvt::max_length()
	is bad.
	(basic_filebuf::seekoff): Use _M_state_last when calling
	codecvt::length(), pass correct state to _M_seek.
	(basic_filebuf::seekpos): Pass __pos.state() to _M_seek.
	(basic_filebuf::_M_seek): Add __state_type parameter,
	set _M_state_cur correctly, store the resulting state in
	the return value and use _M_terminate_output to handle
	flushing and unshift.
	(basic_filebuf::_M_terminate_output): Flush contents of
	output buffer, if any, then call codecvt::unshift as
	needed and output the result.
	(basic_filebuf::sync): Move here, don't modify _M_writing
	or _M_reading.

	* include/std/std_fstream.h
	(basic_filebuf::_M_state_last): Declare it.
	(basic_filebuf::_M_last_overflowed): Delete.
	(basic_filebuf::_M_seek): Add __state_type parameter.
	(basic_filebuf::sync): Declare only.
	(basic_filebuf::_M_output_unshift): Delete.
	(basic_filebuf::_M_terminate_output): Declare it.

	* testsuite/testsuite_character.h:
	Define character class and state class plus char_traits and
	codecvt specializations for same for testing support for
	stateful encodings.

	* testsuite/27_io/basic_filebuf/close/12790-1.cc,
	* testsuite/27_io/basic_filebuf/close/char/12790-1.cc,
	* testsuite/27_io/basic_filebuf/close/char/12790-2.cc,
	* testsuite/27_io/basic_filebuf/close/char/12790-3.cc,
	* testsuite/27_io/basic_filebuf/close/char/12790-4.cc,
	* testsuite/27_io/basic_filebuf/close/wchar_t/12790-1.cc,
	* testsuite/27_io/basic_filebuf/close/wchar_t/12790-2.cc,
	* testsuite/27_io/basic_filebuf/close/wchar_t/12790-3.cc,
	* testsuite/27_io/basic_filebuf/close/wchar_t/12790-4.cc,
	* testsuite/27_io/basic_filebuf/open/12790-1.cc,
	* testsuite/27_io/basic_filebuf/seekoff/12790-1.cc,
	* testsuite/27_io/basic_filebuf/seekoff/12790-2.cc,
	* testsuite/27_io/basic_filebuf/seekoff/12790-3.cc,
	* testsuite/27_io/basic_filebuf/seekoff/12790-4.cc,
	* testsuite/27_io/basic_filebuf/seekoff/char/12790-1.cc,
	* testsuite/27_io/basic_filebuf/seekoff/char/12790-2.cc,
	* testsuite/27_io/basic_filebuf/seekoff/char/12790-3.cc,
	* testsuite/27_io/basic_filebuf/seekoff/char/12790-4.cc,
	* testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-1.cc,
	* testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-2.cc,
	* testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-3.cc,
	* testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-4.cc,
	* testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc,
	* testsuite/27_io/basic_filebuf/seekpos/12790-1.cc,
	* testsuite/27_io/basic_filebuf/seekpos/12790-2.cc,
	* testsuite/27_io/basic_filebuf/seekpos/12790-3.cc,
	* testsuite/27_io/basic_filebuf/seekpos/char/12790-1.cc,
	* testsuite/27_io/basic_filebuf/seekpos/char/12790-2.cc,
	* testsuite/27_io/basic_filebuf/seekpos/char/12790-3.cc,
	* testsuite/27_io/basic_filebuf/seekpos/char/12790-4.cc,
	* testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc,
	* testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-1.cc,
	* testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-2.cc,
	* testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-3.cc,
	* testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-4.cc,
	* testsuite/27_io/basic_filebuf/sync/char/1.cc,
	* testsuite/27_io/basic_filebuf/sync/wchar_t/1.cc:
	New tests.

	* testsuite/27_io/basic_filebuf/3.cc,
	* testsuite/27_io/basic_filebuf/seekoff/10132-2.cc,
	* testsuite/27_io/basic_filebuf/seekpos/10132-3.cc,
	* testsuite/27_io/basic_fstream/3.cc,
	* testsuite/27_io/basic_ifstream/3.cc,
	* testsuite/27_io/basic_ofstream/3.cc:
	Use streamoff as off_type and fpos<state_type> as pos_type.

	* testsuite/27_io/basic_filebuf/seekpos/char/1-io.cc,
	* testsuite/27_io/basic_filebuf/seekpos/char/1-out.cc:
	Check that sync does *not* set _M_writing to false.

From-SVN: r73245
2003-11-04 05:27:41 +00:00
Benjamin Kosnik
4c4809c175 [multiple changes]
2003-10-16  Petur Runolfsson  <peturr02@ru.is>

	PR libstdc++/8610
	PR libstdc++/11450
	PR libstdc++/11543
	PR libstdc++/12065
	* config/io/basic_file_stdio.cc (__basic_file::seekoff):
	Change return value from streampos to streamoff.
	(__basic_file::seekpos): Delete.
	* config/io/basic_file_stdio.h: Same.
	* config/io/c_io_stdio.h: Remove streamoff and wstreamsize typedefs.
	* include/Makefile.am (bits_headers): Add bits/postypes.h.
	* include/bits/char_traits.h: Include bits/postypes.h instead of
	bits/fpos.h.
	* include/bits/fstream.tcc (basic_filebuf::open,
	basic_filebuf::pbackfail): Don't use < or >= to compare pos_type
	values, use == and != instead.
	(basic_filebuf::_M_seek): Use explicit conversion from streamoff
	to pos_type.
	(basic_filebuf::imbue):  Don't use ! on pos_type values, use
	== instead. Don't use __check_facet(_M_codecvt) unless is_open().
	* include/bits/postypes.h: New file.
	Add __streamoff_base_type typedef, streamsize.
	(streamoff, streampos, wstreampos): Define typedefs, with
	streamoff defined as...
	(streamoff): New class. Document implementation defined
	aspects.
	(fpos): New implementation. Document implementation defined
	aspects.
	* include/bits/sstream.tcc (basic_stringbuf::seekpos): Use
	explicit conversion from pos_type to off_type.
	* include/std/std_iosfwd.h: Include bits/postypes.h instead
	of bits/fpos.h.
	* testsuite/27_io/basic_filebuf/seekoff/char/11543.cc: New test.
	* testsuite/27_io/basic_filebuf/seekoff/wchar_t/11543.cc: New test.
	* testsuite/27_io/fpos/11450.cc: New test.
	* testsuite/27_io/fpos/mbstate_t/12065.cc: New test.
	* testsuite/27_io/fpos/mbstate_t/4_neg.cc: New test.
	* testsuite/27_io/types/3.cc: New test.

2003-10-16  Benjamin Kosnik  <bkoz@redhat.com>

        * configure.host: Remove fpos_include_dir.
        * configure.ac: Remove FPOS_INC_SRCDIR.
        * configure: Regenerate.
        * acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Remove FPOS_H.
        * aclocal.m4: Regenerate.
        * include/Makefile.am (host_headers): Remove fpos.h.
        (bits_headers): Add postypes.h.
        * include/Makefile.in: Regenerate.
        * config/os/gnu-linux/fposh: Remove.
        * config/os/generic/fpos.h: Remove.

        * testsuite/27_io/basic_filebuf/seekoff/char/1-in.cc: Fixup.
        * testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc: Same.
        * testsuite/27_io/basic_filebuf/seekoff/char/1-out.cc: Same.
        * testsuite/27_io/basic_filebuf/seekoff/char/2-in.cc: Same.
        * testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc: Same.
        * testsuite/27_io/basic_filebuf/seekoff/char/2-out.cc: Same.
        * testsuite/27_io/basic_filebuf/seekpos/char/1-in.cc: Same.
        * testsuite/27_io/basic_filebuf/seekpos/char/1-io.cc: Same.
        * testsuite/27_io/basic_filebuf/seekpos/char/1-out.cc: Same.
        * testsuite/27_io/basic_filebuf/seekpos/char/2-in.cc: Same.
        * testsuite/27_io/basic_filebuf/seekpos/char/2-io.cc: Same.
        * testsuite/27_io/basic_filebuf/seekpos/char/2-out.cc: Same.
        * testsuite/27_io/basic_istream/seekg/char/2.cc: Same.
        * testsuite/27_io/basic_stringbuf/seekoff/char/1.cc: Same.
        * testsuite/27_io/basic_stringbuf/seekpos/char/1.cc: Same.
        * testsuite/27_io/fpos/mbstate_t/3.cc: Same.
        * testsuite/27_io/objects/char/10.cc: Same.

From-SVN: r72582
2003-10-16 22:37:53 +00:00
Paolo Carlini
f5677b1560 codecvt_specializations.h: Change #ifdef _GLIBCXX_RESOLVE_LIB_DEFECTS to a comment.
2003-10-12  Paolo Carlini  <pcarlini@unitus.it>

	* config/locale/ieee_1003.1-2001/codecvt_specializations.h:
	Change #ifdef _GLIBCXX_RESOLVE_LIB_DEFECTS to a comment.
	* include/bits/basic_string.tcc: Likewise.
	* include/bits/ios_base.h: Likewise.
	* include/bits/istream.tcc: Likewise.
	* include/bits/locale_facets.tcc: Likewise.
	* include/bits/ostream.tcc: Likewise.
	* include/bits/stl_function.h: Likewise.
	* include/bits/stl_multiset.h: Likewise.
	* include/bits/stl_pair.h: Likewise.
	* include/bits/stl_set.h: Likewise.
	* include/bits/streambuf_iterator.h
	* include/std/std_iosfwd.h: Likewise.
	* include/std/std_istream.h: Likewise.
	* include/std/std_sstream.h: Likewise.
	* include/std/std_streambuf.h: Likewise.
	* src/ios.cc: Likewise.
	* include/bits/c++config:
	Comment out #define _GLIBCXX_RESOLVE_LIB_DEFECTS 1.
	* testsuite/27_io/ios_base/cons/assign_neg.cc: Tweak a
	dg-error directive due to removal of a blank line.
	* testsuite/27_io/ios_base/cons/copy_neg.cc: Likewise.

From-SVN: r72392
2003-10-12 10:12:09 +00:00
Petur Runolfsson
1a139c5924 re PR libstdc++/9874 (filebuf::seekpos fails if codecvt::encoding() <= 0)
2003-10-09  Petur Runolfsson  <peturr02@ru.is>

        PR libstdc++/9874
        * include/bits/fstream.tcc (basic_filebuf::seekoff):
        Move code needed for both seekoff and seekpos...
        (basic_filebuf::_M_seek): ...here. New function.
        (basic_filebuf::seekpos): Don't call seekoff, call _M_seek.
        * include/std/std_fstream.h (basic_filebuf::_M_seek): Declare it.
        * testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc: New test.

        * testsuite/22_locale/locale/cons/12438.cc: Increase memory limit.

From-SVN: r72268
2003-10-09 16:11:40 +00:00
Petur Runolfsson
0b5ce4f15c basic_file_stdio.cc (sys_getc, sys_ungetc): Delete.
2003-09-18  Petur Runolfsson  <peturr02@ru.is>

	* config/io/basic_file_stdio.cc (sys_getc, sys_ungetc): Delete.
	* config/io/basic_file_stdio.h: Same.
	* include/std/std_fstream.h (__ctype_type): Delete.
	* include/std/std_streambuf.h (__ctype_type, __state_type): Delete.

From-SVN: r71520
2003-09-18 14:02:46 +00:00
Petur Runolfsson
f1813b6972 re PR libstdc++/9028 (codecvt<wchar_t, char, mbstate_t> doesn't work on Red Hat Linux 8.0.)
2003-09-04  Petur Runolfsson  <peturr02@ru.is>

	PR libstdc++/9028
	* include/bits/fstream.tcc
	(basic_filebuf::_M_destroy_internal_buffer): Destroy _M_ext_buf.
	(basic_filebuf::basic_filebuf): Initialize _M_ext_buf,
	_M_ext_buf_size, _M_ext_next and _M_ext_end.
	(basic_filebuf::underflow): Handle variable-width stateless
	encodings (codecvt::encoding() == 0), including UTF-8.
	* include/std/std_fstream.h (basic_filebuf):
	Declare _M_ext_buf, _M_ext_buf_size, _M_ext_next, _M_ext_end.
	* testsuite/27_io/basic_filebuf/underflow/wchar_t/1.cc: New test.
	* testsuite/27_io/basic_filebuf/underflow/wchar_t/2.cc: New test.
	* testsuite/27_io/basic_filebuf/underflow/wchar_t/3.cc: New test.
	* testsuite/27_io/basic_filebuf/underflow/wchar_t/4.cc: New test.
	* testsuite/27_io/basic_filebuf/underflow/wchar_t/5.cc: New test.
	* testsuite/27_io/objects/wchar_t/12.cc: New test.
	* testsuite/27_io/objects/wchar_t/13.cc: New test.

From-SVN: r71111
2003-09-05 12:55:33 +00:00
Benjamin Kosnik
2803847d40 basic_ios.h: Remove *_iter typedefs, change num* typedefs to num_*.
2003-08-11  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/basic_ios.h: Remove *_iter typedefs, change num*
	typedefs to num_*.
	* include/bits/basic_ios.tcc: Same.
	* include/bits/istream.tcc: Same.
	* include/bits/locale_facets.h: Same.
	* include/bits/ostream.tcc: Same.
	* include/std/std_istream.h: Same.
	* include/std/std_ostream.h: Same.
	* testsuite/26_numerics/complex_inserters_extractors.cc: Fix.

	* include/ext/rope: Remove build warning.

From-SVN: r70357
2003-08-12 03:46:18 +00:00
Benjamin Kosnik
5f697f7aae c++config (_GLIBCXX_FULLY_COMPLIANT_HEADERS): Remove.
2003-07-30  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/c++config (_GLIBCXX_FULLY_COMPLIANT_HEADERS): Remove.
	(_GLIBCXX_NO_TEMPLATE_EXPORT): To _GLIBCXX_EXPORT_TEMPLATE.
	(_GLIBCXX_AT_AT): Remove.
	(__USE_MALLOC): Remove.
	* include/std/std_fstream.h: Modify.
	* include/bits/basic_ios.h: Same.
	* include/bits/valarray_array.h: Same.
	* include/c_std/std_cmath.h: Same.
	* include/c_std/cmath.tcc: Same.
	* include/std/std_vector.h: Same.
	* include/std/std_string.h: Same.
	* include/std/std_stack.h: Same.
	* include/std/std_queue.h: Same.
	* include/std/std_list.h: Same.
	* include/std/std_deque.h: Same.
	* include/std/std_streambuf.h: Same.
	* include/std/std_sstream.h: Same.
	* include/std/std_ostream.h: Same.
	* include/std/std_istream.h: Same.
	* include/bits/valarray_array.tcc: Same, format.

	* include/c/std_cctype.h: Fix include guards.
	* include/c/std_cerrno.h: Same.
	* include/c/std_cfloat.h: Same.
	* include/c/std_climits.h: Same.
	* include/c/std_clocale.h: Same.
	* include/c/std_cmath.h: Same.
	* include/c/std_csetjmp.h: Same.
	* include/c/std_csignal.h: Same.
	* include/c/std_cstdarg.h: Same.
	* include/c/std_cstddef.h: Same.
	* include/c/std_cstdio.h: Same.
	* include/c/std_cstdlib.h: Same.
	* include/c/std_cstring.h: Same.
	* include/c/std_ctime.h: Same.
	* include/c/std_cwchar.h: Same.
	* include/c/std_cwctype.h: Same.
	* include/c_std/cmath.tcc: Same.
	* include/c_std/std_cmath.h: Same.

From-SVN: r69961
2003-07-30 16:51:51 +00:00
Steve Ellcey
1143680eca cmath.tcc: Use _GLIBCXX_ prefix on file guard.
* include/c_std/cmath.tcc: Use _GLIBCXX_ prefix on file guard.
	* include/c_std/std_cctype.h: Ditto.
	* include/c_std/std_cerrno.h: Ditto.
	* include/c_std/std_cfloat.h: Ditto.
	* include/c_std/std_climits.h: Ditto.
	* include/c_std/std_clocale.h: Ditto.
	* include/c_std/std_cmath.h: Ditto.
	* include/c_std/std_csetjmp.h: Ditto.
	* include/c_std/std_csignal.h: Ditto.
	* include/c_std/std_cstdarg.h: Ditto.
	* include/c_std/std_cstddef.h: Ditto.
	* include/c_std/std_cstdio.h: Ditto.
	* include/c_std/std_cstdlib.h: Ditto.
	* include/c_std/std_cstring.h: Ditto.
	* include/c_std/std_ctime.h: Ditto.
	* include/c_std/std_cwchar.h: Ditto.
	* include/c_std/std_cwctype.h: Ditto.
	* include/std/std_algorithm.h: Ditto.
	* include/std/std_bitset.h: Ditto.
	* include/std/std_complex.h: Ditto.
	* include/std/std_deque.h: Ditto.
	* include/std/std_fstream.h: Ditto.
	* include/std/std_functional.h: Ditto.
	* include/std/std_iomanip.h: Ditto.
	* include/std/std_ios.h: Ditto.
	* include/std/std_iosfwd.h: Ditto.
	* include/std/std_iostream.h: Ditto.
	* include/std/std_istream.h: Ditto.
	* include/std/std_iterator.h: Ditto.
	* include/std/std_limits.h: Ditto.
	* include/std/std_list.h: Ditto.
	* include/std/std_locale.h: Ditto.
	* include/std/std_map.h: Ditto.
	* include/std/std_memory.h: Ditto.
	* include/std/std_numeric.h: Ditto.
	* include/std/std_ostream.h: Ditto.
	* include/std/std_queue.h: Ditto.
	* include/std/std_set.h: Ditto.
	* include/std/std_sstream.h: Ditto.
	* include/std/std_stack.h: Ditto.
	* include/std/std_stdexcept.h: Ditto.
	* include/std/std_streambuf.h: Ditto.
	* include/std/std_string.h: Ditto.
	* include/std/std_utility.h: Ditto.
	* include/std/std_valarray.h: Ditto.
	* include/std/std_vector.h: Ditto.

From-SVN: r69705
2003-07-23 15:28:44 +00:00
Paolo Carlini
bda243ec50 Nathan C.
2003-07-14  Paolo Carlini  <pcarlini@unitus.it>
	    Nathan C. Myers  <ncm-nospam@cantrip.org>

	PR libstdc++/11378
	* include/std/std_fstream.h (xsputn): Declare only.
	* include/bits/fstream.tcc (xsputn): Define, optimize for the
	always_noconv() case: when __n is sufficiently large flush
	the buffer and issue a direct write, if possible combining the
	two with writev in __basic_file<>::xsputn_2.
	* config/io/basic_file_stdio.h (__basic_file<>::xsputn_2):
	New, declare.
	* config/io/basic_file_stdio.cc (__basic_file<>::xsputn_2):
	Define.
	* acinclude.m4 (GLIBCXX_CHECK_WRITE): New macro, checking for
	the availability of writev in <sys/uio.h>.
	* configure.in: Call here.
	* acconfig.h: Add undef for the corresponding symbol.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* config.h.in: Regenerate.
	* testsuite/27_io/basic_filebuf/setbuf/char/3.cc: Tweak.

	* include/std/std_fstream.h (sync): Constify a variable.

Co-Authored-By: Nathan C. Myers <ncm-nospam@cantrip.org>

From-SVN: r69341
2003-07-14 18:23:12 +00:00
Paolo Carlini
a8784c4c8f std_complex.h: Partially revert last changes: cmath functions must not be qualified.
2003-07-07  Paolo Carlini  <pcarlini@unitus.it>

	* include/std/std_complex.h: Partially revert last
	changes: cmath functions must not be qualified.

From-SVN: r69040
2003-07-07 12:15:00 +00:00
Paolo Carlini
6623b2f26d std_fstream.h (xsputn): Don't call _M_destroy_pback...
2003-07-06  Paolo Carlini  <pcarlini@unitus.it>

	* include/std/std_fstream.h (xsputn): Don't call _M_destroy_pback:
	if output is at all possible (!_M_reading), cannot be active.

	* include/std/std_fstream.h: Tweak comments to doxygen style.

From-SVN: r69001
2003-07-06 11:24:43 +00:00
Paolo Carlini
eb9a423153 std_complex.h: Fully qualify standard functions with std::, thus avoiding Koenig lookup.
2003-07-05  Paolo Carlini  <pcarlini@unitus.it>

	* include/std/std_complex.h: Fully qualify standard
	functions with std::, thus avoiding Koenig lookup.
	* include/std/std_memory.h: Likewise.
	* include/std/std_valarray.h: Likewise.

From-SVN: r68982
2003-07-05 20:44:17 +00:00
Paolo Carlini
a8cad3e1dd std_bitset.h: Fully qualify standard functions with std::, thus avoiding Koenig lookup.
2003-07-05  Paolo Carlini  <pcarlini@unitus.it>

	* include/std/std_bitset.h: Fully qualify standard
	functions with std::, thus avoiding Koenig lookup.

	* include/std/std_fstream.h: Change comment to doxygen style.

From-SVN: r68964
2003-07-05 08:18:58 +00:00
Phil Edwards
2778669a8f std_limits.h: More CPP->CXX changes.
2003-07-05  Phil Edwards  <pme@gcc.gnu.org>

	* include/std/std_limits.h:  More CPP->CXX changes.
	* scripts/check_survey.in:  Likewise.

From-SVN: r68960
2003-07-05 06:00:05 +00:00
Benjamin Kosnik
3d7c150e3f Move from CPP to CXX.
2003-07-04  Benjamin Kosnik  <bkoz@redhat.com>

	Move from CPP to CXX.
	* include/bits/c++config: Move to GLIBCXX from GLIBCPP.
	* testsuite/Makefile.am: Same.
	* testsuite/Makefile.in: Regenerate.
	* po/Makefile.am: Same.
	* po/Makefile.in: Regenerate.
	* libsupc++/Makefile.am: Same.
	* libsupc++/Makefile.in: Regenerate.
	* libmath/Makefile.am: Same.
	* libmath/Makefile.in: Regenerate.
	* include/Makefile.am: Same.
	* include/Makefile.in: Regenerate.
	* src/Makefile.am: Same.
	* src/Makefile.in: Regenerate.
	* acconfig.h: Same.
	* configure.host: Same.
	* configure.in: Same.
	* configure: Regenerate.
	* acinclude.m4: Same.
	* aclocal.m4: Same.
	* src: Change all files in this directory.
	* testsuite: Same.
	* include: Same, standardize include guards.
	* config: Same.
	* libsupc++: Same.

From-SVN: r68958
2003-07-05 04:05:45 +00:00
Paolo Carlini
10ef4e2e3f 2003-07-04 Paolo Carlini <pcarlini@unitus.it>
Revert the fix for libstdc++/11378.

From-SVN: r68922
2003-07-04 16:36:26 +00:00
Paolo Carlini
ac2c48d70f re PR libstdc++/11378 (Unbuffered sputn is slow)
2003-07-04  Paolo Carlini  <pcarlini@unitus.it>

	PR libstdc++/11378
	* include/std/std_fstream.h (xsputn): In the unbuffered case,
	provided always_noconv(), issue directly _M_file.xsputn.
	* testsuite/performance/filebuf_unbuf_sputn.cc: New.

From-SVN: r68921
2003-07-04 16:15:15 +00:00
Benjamin Kosnik
cc5112c92d Makefile.am (target_headers): Add fpos.h
2003-07-03  Benjamin Kosnik  <bkoz@redhat.com>

	* include/Makefile.am (target_headers): Add fpos.h
	(bits_headers): Remove.
	* include/Makefile.in: Regenerate.
	* configure.in: Add FPOS_INC_SRCDIR, substitute it.
	* configure: Regenerate.
	* configure.host: Add fpos_include_dir.
	* config/os/gnu-linux/fpos.h: New.
	* config/os/generic/fpos.h: Add.
	* include/bits/fpos.h: Remove.

	* config/io/c_io_stdio.h: Remove fpos_t typedef.

	* include/bits/fstream.tcc: Tweaks.
	* include/std/std_fstream.h: Same.

	* testsuite/27_io/fpos/1.cc (test01): Uncomment. Move to...
	* testsuite/27_io/fpos/mbstate_t/1.cc: ...here.
	* testsuite/27_io/fpos/mbstate_t/2.cc: Same.
	* testsuite/27_io/fpos/mbstate_t/3.cc: Same.
	* testsuite/27_io/fpos/1.cc: New.

2003-07-03  Benjamin Kosnik  <bkoz@redhat.com>
	    Petur Runolfsson  <peturr02@ru.is>

	* include/std/std_streambuf.h: Remove _M_pos.
	* config/io/basic_file_stdio.h: Use seekpos instead of seekoff.
	* config/io/basic_file_stdio.cc: Same, use fseek instead of lseek,
	use fread/fwrite instead of read/write.
	* testsuite/27_io/basic_filebuf/showmanyc/char/9533-2.cc: Fix.
	* testsuite/27_io/basic_filebuf/sputn/char/9339.cc: Close filebufs
	before reading again.
	* testsuite/27_io/objects/char/6.cc: Tweak.

Co-Authored-By: Petur Runolfsson <peturr02@ru.is>

From-SVN: r68913
2003-07-04 07:14:54 +00:00
Paolo Carlini
cd16e04b18 std_streambuf.h (_M_mode): Move from here to filebuf and stringbuf.
2003-06-30  Paolo Carlini  <pcarlini@unitus.it>

	* include/std/std_streambuf.h (_M_mode): Move from here to
	filebuf and stringbuf.
	(~basic_streambuf()): Don't set _M_mode.
	(basic_streambuf()): Don't set _M_mode.
	* include/std/std_fstream.h (_M_mode): Move here, from streambuf.
	(~basic_filebuf()): Clean up.
	* include/bits/fstream.tcc (basic_filebuf()): Set _M_mode.
	* include/std/std_sstream.h (_M_mode): Move here, from streambuf.
	* testsuite/27_io/basic_streambuf/cons/char/1.cc: Don't set _M_mode.
	* testsuite/27_io/basic_streambuf/overflow/char/1.cc: Likewise.
	* testsuite/27_io/basic_streambuf/sgetc/char/1.cc: Likewise.
	* testsuite/27_io/basic_streambuf/sgetn/char/1.cc: Likewise.
	* testsuite/27_io/basic_streambuf/sputn/char/1.cc: Likewise.

2003-06-30  Paolo Carlini  <pcarlini@unitus.it>

	* include/std/std_fstream.h (_M_underflow): Remove.
	(uflow): Remove, inherited from streambuf.
	(underflow): Only declare.
	* include/bits/fstream.tcc (_M_underflow): Rename to
	underflow, to which is equivalent for __bump == false,
	simplify.
	* include/std/std_sstream.h (_M_underflow): Remove.
	(uflow): Remove, inherited from streambuf.
	(underflow): Only declare.
	* include/bits/sstream.tcc (_M_underflow): Rename to
	underflow, to which is equivalent for __bump == false,
	simplify.

From-SVN: r68695
2003-06-30 11:17:23 +00:00
Paolo Carlini
90319d1698 std_streambuf.h (uflow): According to 27.5.2.4.3,p16, don't check gptr() < egptr().
2003-06-29  Paolo Carlini  <pcarlini@unitus.it>

	* include/std/std_streambuf.h (uflow): According to
	27.5.2.4.3,p16, don't check gptr() < egptr().

From-SVN: r68664
2003-06-29 10:31:06 +00:00
Nathan C. Myers
29d9ed9799 streambuf.tcc (sbumpc, [...]): Move inline, from here...
2003-06-25  Nathan C. Myers  <ncm-nospam@cantrip.org>

	* include/bits/streambuf.tcc (sbumpc, sputbackc, sungetc,
	sputc): Move inline, from here...
	* include/std/std_streambuf.h: ... to here.

	* include/std/std_streambuf.h (snextc, sbumpc, sgetc,
	sputbackc, sungetc, sputc): Use __builtin_expect.

From-SVN: r68486
2003-06-25 18:27:53 +00:00
Paolo Carlini
71b460210a Nathan C.
2003-06-24  Paolo Carlini  <pcarlini@unitus.it>
            Nathan C. Myers  <ncm-nospam@cantrip.org>

	* include/std/std_fstream.h (_M_filepos): Remove.
	(_M_reading, _M_writing): New, encode the various I/O modes:
	'read', 'write' and 'uncommitted'.
	(sync): If there is something to flush, do it, then go to
	'uncommitted' mode.
	* include/bits/fstream.tcc (_M_set_buffer): Overhaul to deal
	with three different cases: __off > 0 (upon underflow),
	__off == 0 (upon overflow), __off == -1 (upon open, setbuf,
	seekoff/pos).
	(_M_underflow): Don't call overflow, set _M_reading to true
	on success, tweak.
	(pbackfail): Set _M_reading to true on pback creation, tweak.
	(overflow): Don't seek, deal with overflow in 'uncommitted' mode,
	set _M_writing to true on success, tweak.
	(seekoff): Simplify, set _M_reading, _M_writing to false, call
	_M_set_buffer(-1) ('uncommitted').
	(open, close, setbuf): Set _M_reading, _M_writing to false and
	call _M_set_buffer(-1), tweak.
	(basic_filebuf): Don't set _M_buf_unified.
	(_M_destroy_internal_buffer): Don't call setg and setp.
	* include/ext/stdio_filebuf.h (stdio_filebuf): Use _M_reading,
	_M_writing and _M_set_buffer(-1).
	* include/std/std_streambuf.h (_M_move_out_cur, _M_move_in_cur,
	_M_out_lim, _M_buf_unified): Remove.
	(basic_streambuf): Don't set _M_out_lim and _M_buf_unified.
	(setp): Don't set _M_out_lim.
	* testsuite/27_io/basic_filebuf/sbumpc/char/1-io.cc: Fix for
	the new logic ('read', 'write' and 'uncommitted' modes): e.g.,
	upon open the mode is 'uncommitted' and therefore the put area
	pointers are null.
	* testsuite/27_io/basic_filebuf/sbumpc/char/1-out.cc: Ditto.
	* testsuite/27_io/basic_filebuf/seekoff/char/3-io.cc: Ditto.
	* testsuite/27_io/basic_filebuf/seekpos/char/3-io.cc: Ditto.
	* testsuite/27_io/basic_filebuf/setbuf/char/1.cc: Ditto.
	* testsuite/27_io/basic_filebuf/sgetc/char/1-io.cc: Ditto.
	* testsuite/27_io/basic_filebuf/sgetc/char/1-out.cc: Ditto.
	* testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc: Ditto.
	* testsuite/27_io/basic_filebuf/sgetn/char/1-out.cc: Ditto.
	* testsuite/27_io/basic_filebuf/snextc/char/1-io.cc: Ditto.
	* testsuite/27_io/basic_filebuf/snextc/char/1-out.cc: Ditto.
	* testsuite/27_io/basic_filebuf/sputbackc/char/1-io.cc: Ditto.
	* testsuite/27_io/basic_filebuf/sputbackc/char/1-out.cc: Ditto.
	* testsuite/27_io/basic_filebuf/sputc/char/1-io.cc: Ditto.
	* testsuite/27_io/basic_filebuf/sputc/char/1-out.cc: Ditto.
	* testsuite/27_io/basic_filebuf/sputc/char/9701-2.cc: Ditto.
	* testsuite/27_io/basic_filebuf/sputn/char/1-io.cc: Ditto.
	* testsuite/27_io/basic_filebuf/sputn/char/1-out.cc: Ditto.
	* testsuite/27_io/basic_filebuf/sputn/char/9701-1.cc: Ditto.
	* testsuite/27_io/basic_filebuf/sungetc/char/1-io.cc: Ditto.
	* testsuite/27_io/basic_filebuf/sungetc/char/1-out.cc: Ditto.

	* include/bits/fstream.tcc (showmanyc): Use only the
	documented derivation interface to basic_streambuf (gptr(),
	setg(), etc.) to work right with user specializations.
	* include/bits/streambuf.tcc (sbumpc, sputbackc, sungetc,
	sputc, xsgetn, xsputn, __copy_streambufs): Likewise.
	* include/std/std_streambuf.h (in_avail, sgetc, uflow, stossc):
	Likewise.
	* include/std/std_fstream.h (_M_create_pback, _M_destroy_pback,
	xsgetn): Likewise.

Co-Authored-By: Nathan C. Myers <ncm-nospam@cantrip.org>

From-SVN: r68420
2003-06-24 13:48:11 +00:00
Paolo Carlini
1b170b5562 Nathan C.
2003-06-22  Paolo Carlini  <pcarlini@unitus.it>
	    Nathan C. Myers  <ncm-nospam@cantrip.org>

	* include/std/std_streambuf.h (_M_move_out_cur): _M_out_lim
	is now used only for filebuf, when _M_buf_unified is true.
	epgtr() plays the role of _M_out_lim but it's only updated
	upon overflow, underflow, uflow, seekoff/pos.
	* include/bits/sstream.tcc (_M_underflow): New, implements
	stringbuf::underflow and uflow.
	(seekoff, seekpos): Tweak, use  _M_update_egptr.
	* include/std/std_sstream.h (str): Rewrote, deal correctly
	with the new logic, in particular, when pptr() > egptr().
	(_M_sync): When __testout && !__testin set all the get area
	pointers to the current string end.
	(_M_update_egptr): New, internal function updating egptr()
	to the actual string end.
	(_M_underflow): New, declare.
	(underflow): Dispatch to _M_underflow(false).
	(uflow): Dispatch to _M_underflow(true).

	* include/bits/sstream.tcc (pbackfail, overflow, seekoff,
	seekpos): Use only the documented derivation interface to
	basic_streambuf (gptr(), setg(), etc.) to work right with
	user specializations.
	* include/std/std_sstream.h (str, _M_sync): Likewise.

From-SVN: r68347
2003-06-22 18:37:10 +00:00
Paolo Carlini
50af15ec61 std_sstream.h (_M_sync): Make non virtual.
2003-06-19  Paolo Carlini  <pcarlini@unitus.it>

	* include/std/std_sstream.h (_M_sync): Make non virtual.

From-SVN: r68200
2003-06-19 15:39:33 +00:00
Paolo Carlini
b82a33d2a9 std_sstream.h (setbuf): Check __n >= 0.
2003-06-18  Paolo Carlini  <pcarlini@unitus.it>
	    Benjamin Kosnik  <bkoz@redhat.com>

	* include/std/std_sstream.h (setbuf): Check __n >= 0.
	* include/bits/fstream.tcc (setbuf): Tweak.

Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com>

From-SVN: r68163
2003-06-18 19:13:18 +00:00
Benjamin Kosnik
1ff9402d8f [multiple changes]
2003-06-11  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/stl_alloc.h (__debug_alloc): Move out.
	(__malloc_alloc): Same.
	(__pool_alloc): Same.
	(__new_alloc): Same.
	Rename to..
	* include/bits/allocator.h: ...this.
	* include/bits/stl_deque.h: Modify comment.
	* include/bits/stl_tree.h: Modify include.
	* include/std/std_memory.h: Same.
	* include/ext/rope: Same.
	* include/ext/slist: Same.
	* include/std/std_vector.h: Same.
	* include/std/std_stack.h: Same.
	* include/std/std_queue.h: Same.
	* include/std/std_list.h: Same.
	* include/std/std_deque.h: Same.
	* include/backward/alloc.h: Same.
	* include/ext/debug_allocator.h: New.
	* include/ext/malloc_allocator.h: New.
	* include/ext/pool_allocator.h: New.
	* include/ext/new_allocator.h: New.
	* include/bits/pthread_allocimpl.h: Remove.
	* include/bits/stl_pthread_alloc.h: Remove.
	* include/Makefile.am (ext_headers): Add.
	* include/Makefile.in: Regenerate.
	* src/stl-inst.cc: Use __gnu_cxx namespace.
	* src/stl-inst.cc: Move to...
	* src/allocator-inst.cc: Here.
	* src/Makefile.am (sources): Update.
	* src/Makefile.in: Regenerate.
	* config/linker-map.gnu: Remove __pool_alloc bits.
	* testsuite/ext/headers.cc: Add.
	* testsuite/ext/allocators.cc: Fixup.

2003-06-11  Stefan Olsson  <stefan@snon.net>
            Ola R�nnerup  <fnolis@home.se>

	* include/Makefile.am (ext_headers): Add.
	* include/Makefile.in: Regenerate.
	* include/ext/mt_allocator.h: New file.

From-SVN: r67777
2003-06-11 15:52:11 +00:00
Paolo Carlini
1f0ef65117 fstream.tcc (close): Clean up a bit.
2003-06-10  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/fstream.tcc (close): Clean up a bit.

	* include/bits/streambuf.tcc (sbumpc): Clean up a bit.

	* include/std/std_fstream.h (_M_destroy_pback): _M_pback_cur_save
	- the saved _M_in_cur, that is - cannot be null.
	(sync): Constify a variable.

	* include/std/std_streambuf.h: Tweak a comment.
	(in_avail): Constify a variable.

From-SVN: r67738
2003-06-10 22:00:43 +00:00
Phil Edwards
08addde65f BUGS: Update from 2.90.8 snapshot.
2003-06-10  Phil Edwards  <pme@gcc.gnu.org>

	* docs/html/17_intro/BUGS:  Update from 2.90.8 snapshot.
	* docs/html/17_intro/CHECKLIST:  Bring up to date with respect to
	correctness of container::iterator typedefs.  Fix whitespace.
	* docs/html/20_util/howto.html, docs/html/ext/howto.html:  Add links
	to allocator docs.
	* docs/html/documentation.html:  Regenerate.

	* include/bits/basic_string.h, include/bits/basic_string.tcc,
	include/bits/deque.tcc, include/bits/list.tcc, include/bits/stl_algo.h,
	include/bits/stl_algobase.h, include/bits/stl_bvector.h,
	include/bits/stl_deque.h, include/bits/stl_iterator_base_funcs.h,
	include/bits/stl_list.h, include/bits/stl_uninitialized.h,
	include/bits/stl_vector.h, include/bits/vector.tcc,
	include/ext/algorithm, include/ext/slist, include/std/std_bitset.h:
	Change _Iter names to _Iterator, and __pos to __position.

	* include/bits/stl_relops.h, include/bits/stl_numeric.h,
	include/bits/stl_multiset.h, include/bits/stl_set.h:
	Remove emacs markers.

	* include/bits/stl_threads.h (_STL_auto_lock):  Add __unused__.

From-SVN: r67736
2003-06-10 21:52:25 +00:00
Paolo Carlini
f10eea7bae fstream.tcc (_M_underflow): Do not special case the unbuffered case...
2003-06-09  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/fstream.tcc (_M_underflow): Do not special
	case the unbuffered case, which really means simply a one char
	get area.
	(basic_filebuf): Initialize _M_buf_size.
	(setbuf): Unbuffered means _M_buf_size == 1, since only
	_M_buf_size - 1 == 0 chars are going to be used for the
	put area and 1 for the get area.
	* include/std/std_streambuf.h (_M_buf_size): Move to basic_filebuf.
	(~basic_streambuf): Tweak.
	(basic_streambuf): Do not initialize _M_buf_size.
	* include/std/std_fstream.h (_M_buf_size): Add from basic_streambuf.
	(~basic_filebuf): Tweak.
	(_M_set_buffer): Tweak, considering that _M_buf_size == 1 is the
	unbuffered situation (i.e., put area pointers NULL).
	* include/bits/streambuf.tcc (sbumpc): Clean up.
	* testsuite/27_io/basic_filebuf/sputbackc/char/1.cc: Split into...
	* testsuite/27_io/basic_filebuf/sputbackc/char/1-in.cc: New.
	* testsuite/27_io/basic_filebuf/sputbackc/char/1-io.cc: New.
	* testsuite/27_io/basic_filebuf/sputbackc/char/1-out.cc: New.
	* testsuite/27_io/basic_filebuf/sputbackc/char/2-in.cc: New.
	* testsuite/27_io/basic_filebuf/sputbackc/char/2-io.cc: New.
	* testsuite/27_io/basic_filebuf/sputbackc/char/2-out.cc: New.

From-SVN: r67686
2003-06-10 00:05:49 +00:00
Benjamin Kosnik
46c4e5d6e9 re PR libstdc++/9024 (Input fails after call to basic_filebuf<>::pubsetbuf(0, 0))
2003-06-05  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/9024
	* include/bits/fstream.tcc (_M_underflow): Fix for unbuffered.
	* include/bits/stl_algobase.h: Tweak.
	* include/std/std_fstream.h: Move _M_buf_size to...
	* include/std/std_streambuf.h: ...here. Modify.
	* include/bits/streambuf.tcc: Same.
	* testsuite/testsuite_hooks.h: Tweak.
	* testsuite/testsuite_io.h (constraint_filebuf): New.
	* testsuite/27_io/basic_filebuf/sbumpc/char/1.cc: Split into...
	* testsuite/27_io/basic_filebuf/sbumpc/char/1-in.cc: New.
	* testsuite/27_io/basic_filebuf/sbumpc/char/1-io.cc: New.
	* testsuite/27_io/basic_filebuf/sbumpc/char/1-out.cc: New.
	* testsuite/27_io/basic_filebuf/sbumpc/char/2-in.cc: New.
	* testsuite/27_io/basic_filebuf/sbumpc/char/2-io.cc: New.
	* testsuite/27_io/basic_filebuf/sbumpc/char/2-out.cc: New.
	* testsuite/27_io/basic_filebuf/sgetc/char/1.cc: Split into...
	* testsuite/27_io/basic_filebuf/sgetc/char/1-in.cc: New.
	* testsuite/27_io/basic_filebuf/sgetc/char/1-io.cc: New.
	* testsuite/27_io/basic_filebuf/sgetc/char/1-out.cc: New.
	* testsuite/27_io/basic_filebuf/sgetc/char/2-in.cc: New.
	* testsuite/27_io/basic_filebuf/sgetc/char/2-io.cc: New.
	* testsuite/27_io/basic_filebuf/sgetc/char/2-out.cc: New.
	* testsuite/27_io/basic_filebuf/sgetn/char/1.cc: Split into...
	* testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc: New.
	* testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc: New.
	* testsuite/27_io/basic_filebuf/sgetn/char/1-out.cc: New.
	* testsuite/27_io/basic_filebuf/sgetn/char/2.cc: Split into...
	* testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc: New.
	* testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc: New.
	* testsuite/27_io/basic_filebuf/sgetn/char/2-out.cc: New.
	* testsuite/27_io/basic_filebuf/sgetn/char/3.cc: New.
	* testsuite/27_io/basic_filebuf/snextc/char/1.cc: Split into...
	* testsuite/27_io/basic_filebuf/snextc/char/1-in.cc: New.
	* testsuite/27_io/basic_filebuf/snextc/char/1-io.cc: New.
	* testsuite/27_io/basic_filebuf/snextc/char/1-out.cc: New.
	* testsuite/27_io/basic_filebuf/snextc/char/2-in.cc: New.
	* testsuite/27_io/basic_filebuf/snextc/char/2-io.cc: New.
	* testsuite/27_io/basic_filebuf/snextc/char/2-out.cc: New.
	* testsuite/27_io/basic_filebuf/sputc/char/1.cc: Split into...
	* testsuite/27_io/basic_filebuf/sputc/char/1-in.cc: New.
	* testsuite/27_io/basic_filebuf/sputc/char/1-io.cc: New.
	* testsuite/27_io/basic_filebuf/sputc/char/1-out.cc: New.
	* testsuite/27_io/basic_filebuf/sputc/char/2.cc: Split into...
	* testsuite/27_io/basic_filebuf/sputc/char/2-in.cc: New.
	* testsuite/27_io/basic_filebuf/sputc/char/2-io.cc: New.
	* testsuite/27_io/basic_filebuf/sputc/char/2-out.cc: New.
	* testsuite/27_io/basic_filebuf/sputn/char/1.cc: Split into...
	* testsuite/27_io/basic_filebuf/sputn/char/1-in.cc: New.
	* testsuite/27_io/basic_filebuf/sputn/char/1-io.cc: New.
	* testsuite/27_io/basic_filebuf/sputn/char/1-out.cc: New.
	* testsuite/27_io/basic_filebuf/sputn/char/2-in.cc: New.
	* testsuite/27_io/basic_filebuf/sputn/char/2-io.cc: New.
	* testsuite/27_io/basic_filebuf/sputn/char/2-out.cc: New.
	* testsuite/data/sgetc.txt: New.
	* testsuite/data/sgetn.txt: New.

From-SVN: r67524
2003-06-06 00:19:17 +00:00
Paolo Carlini
ccb50b8111 std_fstream.h (_M_destroy_pback): Use _M_in_beg instead of unnecessarily taking the address of _M_pback.
2003-06-02  Paolo Carlini  <pcarlini@unitus.it>

	* include/std/std_fstream.h (_M_destroy_pback): Use _M_in_beg
	instead of unnecessarily taking the address of _M_pback.
	(xsgetn): Simplify slightly for a single char pback buffer.

2003-06-02  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/sstream.tcc (seekoff): Remove four unnecessary
	variables and two 'if', clean up.

2003-06-02  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/sstream.tcc (seekpos): Test against _M_out_lim
	not _M_out_end, since the former actually points to the string
	end (vs buffer end).
	* testsuite/27_io/basic_stringbuf/seekpos/char/3.cc: New.

From-SVN: r67334
2003-06-02 15:36:24 +00:00
Jonathan Wakely
0f35d19264 std_istream.h, [...]: Typo in comment.
2003-05-27  Jonathan Wakely  <redi@gcc.gnu.org>

	* include/std/std_istream.h, include/std/std_ostream.h: Typo in comment.

From-SVN: r67187
2003-05-27 14:29:39 +01:00
Benjamin Kosnik
002bd6069c re PR libstdc++/9339 (filebuf::pubsetbuf(0, 0) doesn't turn off buffering)
2003-05-26  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/9339
	* include/std/std_fstream.h (basic_filebuf::_M_overflow): Remove.
	(_M_pback): No array necessary.
	* include/bits/fstream.tcc (basic_filebuf::_M_overflow): Add
	unbuffered case, coalesec into ...
	(basic_filebuf::overflow): ...this.
	* testsuite/27_io/basic_filebuf/sputn/char/9339.cc: New.
	* testsuite/27_io/basic_filebuf/sputc/char/2.cc: Unbuffered.

From-SVN: r67175
2003-05-26 14:54:42 +00:00
Paolo Carlini
d7ccc91760 std_fstream.h (_S_pback_size): Remove definition.
2003-05-22  Paolo Carlini  <pcarlini@unitus.it>

	* include/std/std_fstream.h (_S_pback_size): Remove definition.
	(_M_create_pback(), _M_destroy_pback()): Simplify for a single-char
	pback buffer.
	* include/bits/fstream.tcc (_S_pback_size): Remove declaration.
	* testsuite/27_io/basic_filebuf/3.cc: Remove explicit instantiation
	of _S_pback_size for systems with no COMDAT or weak support.
	* testsuite/27_io/basic_filebuf/seekoff/10132-2.cc: Likewise.
	* testsuite/27_io/basic_filebuf/seekpos/10132-3.cc: Likewise.
	* testsuite/27_io/basic_filebuf/underflow/10096.cc: Likewise.
	* testsuite/27_io/basic_fstream/3.cc: Likewise.
	* testsuite/27_io/basic_ifstream/3.cc: Likewise.
	* testsuite/27_io/basic_istream/sentry/char/3983-fstream.cc: Likewise.
	* testsuite/27_io/basic_ofstream/3.cc: Likewise.
	* testsuite/27_io/basic_ostream/sentry/char/3983-fstream.cc: Likewise.
	* testsuite/27_io/basic_streambuf/3.cc: Likewise.

From-SVN: r67102
2003-05-22 22:16:41 +00:00
Paolo Carlini
98ce9d068e std_fstream.h (_M_set_buffer): Fix indentation.
2003-05-21  Paolo Carlini  <pcarlini@unitus.it>

	* include/std/std_fstream.h (_M_set_buffer): Fix indentation.

From-SVN: r67065
2003-05-21 20:22:25 +00:00
Gabriel Dos Reis
1db0418ae5 re PR libstdc++/10689 (pow(std::complex(0),1/3) returns (nan, nan) instead of 0.)
PR libstdc++/10689
	* include/std/std_complex.h (pow): Tidy

From-SVN: r66989
2003-05-20 06:52:11 +00:00
Paolo Carlini
e3033a2240 fstream.tcc (_M_overflow): Rewrote to call _M_convert_to_external only once (_M_buf_size is now the size...
2003-05-15  Paolo Carlini  <pcarlini@unitus.it>
	    Nathan Myers  <ncm@cantrip.org>

	* include/bits/fstream.tcc (_M_overflow): Rewrote to call
	_M_convert_to_external only once (_M_buf_size is now the size of
	the put area + 1 for the overflow char of a full area); call
	_M_set_buffer instead of _M_set_indeterminate.
	(setbuf): Don't accept a buffer smaller than 2 chars.
	(_M_underflow): Refill _M_buf_size - 1 chars; call _M_set_buffer,
	instead of _M_set_determinate.
	(open): Call _M_set_buffer, instead of _M_set_indeterminate.
	(seekoff): Likewise.
	* include/ext/stdio_filebuf.h (stdio_filebuf(int,
	std::ios_base::openmode, bool, size_t),
	stdio_filebuf(std::__c_file*, std::ios_base::openmode, size_t):
	Likewise.
	* include/std/std_fstream.h (_M_set_indeterminate): Remove.
	(_M_set_determinate): Rename as _M_set_buffer, _M_buf_size ->
	_M_buf_size - 1.
	* include/std/std_streambuf.h: Tweak _M_out_lim comment.
	* testsuite/27_io/basic_filebuf/sgetn/char/1.cc: Tweak, taking
	into account that, for _M_buf_size == BUFSIZ == 8192, the size of
	the put area is now BUFSIZ - 1.
	* testsuite/ext/stdio_filebuf_2.cc: Tweak, taking into account
	that now the smallest _M_buf_size is 2 (still fails, for the same
	reason, with 3.2.3)

Co-Authored-By: Nathan Myers <ncm@cantrip.org>

From-SVN: r66848
2003-05-15 23:43:15 +00:00
Benjamin Kosnik
0cd1de6fc9 std_fstream.h (basic_filebuf::_M_codecvt): Add cached member.
2003-05-12  Benjamin Kosnik  <bkoz@redhat.com>

	* include/std/std_fstream.h (basic_filebuf::_M_codecvt): Add
	cached member.
	* include/bits/fstream.tcc (basic_filebuf::basic_filebuf):
	Initialize _M_codecvt.
	(basic_filebuf::imbue): Same.
	(basic_filebuf::showmanyc): Use it.
	(basic_filebuf::underflow): Use it.
	(basic_filebuf::_M_convert_to_external): Use it.
	(basic_filebuf::seekoff): Use it.
	(basic_filebuf::imbue): Use it, tweaks.
	* include/bits/localefwd.h (__check_facet): New.
	* include/bits/locale_classes.h: Tweaks.
	* include/bits/locale_facets.tcc: Tweaks.
	* include/bits/basic_ios.h (basic_ios::_M_check_facet): Remove.
	_M_fctype to _M_ctype, _M_fnumput to _M_num_put, _M_fnumget to
	_M_num_get. Change _M_check_facet to __check_facet. Tweaks.
	* include/bits/basic_ios.tcc: Same.
	* include/bits/istream.tcc: Same.
	* include/bits/ostream.tcc: Same.
	* include/std/std_streambuf.h: Same.
	* testsuite/27_io/basic_filebuf/imbue/char/2.cc: New.
	* testsuite/27_io/basic_filebuf/imbue/char/3.cc: New.
	* testsuite/27_io/basic_filebuf/imbue/wchar_t/1.cc: New.
	* testsuite/27_io/basic_filebuf/imbue/wchar_t/2.cc: New.
	* testsuite/27_io/basic_filebuf/imbue/wchar_t/3.cc: New.
	* testsuite/27_io/basic_filebuf/imbue/wchar_t/9322.cc: New.

From-SVN: r66781
2003-05-13 20:13:15 +00:00
Benjamin Kosnik
6e81c6f49c From-SVN: r66726 2003-05-12 18:12:27 +00:00
Benjamin Kosnik
51ff814940 [multiple changes]
2003-05-10  Petur Runolfsson  <peturr02@ru.is>

	PR libstdc++/9027
	PR libstdc++/9520
	PR libstdc++/10096
	* include/bits/fstream.tcc (basic_file::_M_underflow):  Add generic
	implementation, based on old wchar_t specialization, add support
	for codecvt::in() return value of codecvt_base::noconv, remove
	_M_file.sys_ungetc() call.
	* include/std/std_fstream.h (basic_file::underflow,
	basic_file::uflow, basic_file::_M_underflow):  Remove
	specialization declarations, call _M_underflow from generic versions
	of underflow and uflow.
	* src/fstream.cc (basic_file::underflow, basic_file::uflow,
	basic_file::_M_underflow):  Remove specializations.
	* src/Makefile.am (sources):  Remove fstream.cc.
	* src/Makefile.in:  Regenerated.
	* testsuite/27_io/basic_filebuf/underflow/10096.cc:  New test.
	* testsuite/27_io/basic_filebuf/underflow/char/1.cc:  New test.
	* testsuite/27_io/basic_filebuf/underflow/char/9027.cc:  New test.
	* testsuite/27_io/basic_filebuf/underflow/wchar_t/9520.cc:  New test.

2003-05-10  Benjamin Kosnik  <bkoz@redhat.com>

	* include/ext/stdio_filebuf.h (__stdio_filebuf): Remove stack
	buffer.
	* config/io/basic_file_stdio.h (__basic_file::xsgetn): Remove
	unbuffered bits.
	(__basic_file::xsputn): Same.
	(__basic_file::seekoff): Same.
	(__basic_file::seekpos): Same.
	(__basic_file::showmanyc): Same.
	* config/io/basic_file_stdio.cc: Same.
	* include/std/std_fstream.h: Same.
	* include/bits/fstream.tcc: Same.
	* src/fstream.cc: Same.
	* testsuite/27_io/basic_filebuf/sgetn/char/1.cc (test05): Tidy.

2003-05-10  Petur Runolfsson  <peturr02@ru.is>

	PR libstdc++/9520
	PR libstdc++/9661
	PR libstdc++/9662
	* include/ext/stdio_sync_filebuf.h:  New file.
	(basic_stdiobuf):  New.
	* include/Makefile.am (ext_headers): Add ext/stdio_sync_filebuf.h
	* include/Makefile.in: Regenerate.
	* include/bits/ios_base.h (Init::_S_create_buffers,
	Init::_S_destroy_buffers):  Remove declarations.
	* src/globals.cc (buf_cout_sync, buf_cin_sync, buf_cerr_sync,
	buf_wcout_sync, buf_wcin_sync, buf_wcerr_sync):  Define.
	* src/ios.cc (Init::_S_create_buffers,
	Init::_S_destroy_buffers):  Remove.
	(Init::Init):  Create and use syncronized buffers.
	(ios_base::sync_with_stdio):  Destroy syncronized buffers,
	create and install unsyncronized buffers.
	* testsuite/27_io/objects/char/10.cc:  New test.
	* testsuite/27_io/objects/char/9.cc:  New test.
	* testsuite/27_io/objects/char/9661-1.cc:  New test.
	* testsuite/27_io/objects/char/9661-2_xin.cc:  New test.
	* testsuite/27_io/objects/char/9661-2_xin.in:  New.
	* testsuite/27_io/objects/wchar_t/1.cc:  New test.
	* testsuite/27_io/objects/wchar_t/10.cc:  New test.
	* testsuite/27_io/objects/wchar_t/2.cc:  New test.
	* testsuite/27_io/objects/wchar_t/2523-1_xin.cc:  New test.
	* testsuite/27_io/objects/wchar_t/2523-1_xin.in:  New.
	* testsuite/27_io/objects/wchar_t/2523-2_xin.cc:  New test.
	* testsuite/27_io/objects/wchar_t/2523-2_xin.in:  New.
	* testsuite/27_io/objects/wchar_t/3045.cc:  New test.
	* testsuite/27_io/objects/wchar_t/3647.cc:  New test.
	* testsuite/27_io/objects/wchar_t/3_xin.cc:  New test.
	* testsuite/27_io/objects/wchar_t/3_xin.in:  New.
	* testsuite/27_io/objects/wchar_t/4_xin.cc:  New test.
	* testsuite/27_io/objects/wchar_t/4_xin.in:  New.
	* testsuite/27_io/objects/wchar_t/5.cc:  New test.
	* testsuite/27_io/objects/wchar_t/5268.cc:  New test.
	* testsuite/27_io/objects/wchar_t/5280_xin.cc:  New test.
	* testsuite/27_io/objects/wchar_t/5280_xin.in:  New.
	* testsuite/27_io/objects/wchar_t/6.cc:  New test.
	* testsuite/27_io/objects/wchar_t/6548_xin.cc:  New test.
	* testsuite/27_io/objects/wchar_t/6548_xin.in:  New.
	* testsuite/27_io/objects/wchar_t/6648-1_xin.cc:  New test.
	* testsuite/27_io/objects/wchar_t/6648-1_xin.in:  New.
	* testsuite/27_io/objects/wchar_t/6648-2_xin.cc:  New test.
	* testsuite/27_io/objects/wchar_t/6648-2_xin.in:  New.
	* testsuite/27_io/objects/wchar_t/7.cc:  New test.
	* testsuite/27_io/objects/wchar_t/7744_xin.cc:  New test.
	* testsuite/27_io/objects/wchar_t/7744_xin.in:  New.
	* testsuite/27_io/objects/wchar_t/8.cc:  New test.
	* testsuite/27_io/objects/wchar_t/9_xin.cc:  New test.
	* testsuite/27_io/objects/wchar_t/9_xin.in:  New.
	* testsuite/27_io/objects/wchar_t/9520.cc:  New test.
	* testsuite/27_io/objects/wchar_t/9661-1.cc:  New test.
	* testsuite/27_io/objects/wchar_t/9661-2_xin.cc:  New test.
	* testsuite/27_io/objects/wchar_t/9661-2_xin.in:  New.
	* testsuite/27_io/objects/wchar_t/9662.cc:  New test.
	* testsuite/ext/stdiobuf_char.cc:  New test.
	* testsuite/ext/stdiobuf_wchar_t.cc:  New test.

From-SVN: r66678
2003-05-11 04:20:57 +00:00
Paolo Carlini
db7948c2d8 std_streambuf.h (setg, setp): Don't touch _M_mode.
2003-05-08  Paolo Carlini  <pcarlini@unitus.it>

	* include/std/std_streambuf.h (setg, setp): Don't touch _M_mode.

From-SVN: r66595
2003-05-08 11:47:45 +00:00
Paolo Carlini
cd96b185c5 std_fstream.h (_M_is_indeterminate): Remove.
2003-05-07  Paolo Carlini  <pcarlini@unitus.it>

	* include/std/std_fstream.h (_M_is_indeterminate): Remove.
	* src/fstream.cc
	(basic_filebuf<char/wchar_t>::_M_underflow): Simplify: either
	there is no buffer or __testget == !__testinit.

	* src/fstream.cc
	(basic_filebuf<char/wchar_t>::_M_underflow): _M_set_determinate()
	automatically sets, if appropriate, _M_out_cur == _M_in_cur.

	* include/std/std_fstream.h (_M_destroy_pback): Don't set
	unnecessarily _M_pback_cur_save and _M_pback_end_save.

	* include/std/std_fstream.h (_M_set_determinate): Minor tweak.

	* include/std/std_sstream.h (_M_sync): Minor tweak.

	* include/bits/fstream.tcc (close): No need to call
	_M_destroy_pback, setting _M_pback_init to false suffices
	to clean up.

From-SVN: r66557
2003-05-07 12:48:58 +00:00
Benjamin Kosnik
655d78212b stl_algo.h: Enums as _S_.
2003-05-06  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/stl_algo.h: Enums as _S_.
	* include/bits/stl_tree.h: Same.
	* include/bits/stl_bvector.h: Same.
	* include/bits/ios_base.h: Same.
	* include/bits/stl_alloc.h: Same.
	* include/ext/stl_hashtable.h: Same.
	* src/ios.cc: And here.

	* include/std/std_sstream.h: Replace _M_really_sync to _M_sync.
	* include/bits/sstream.tcc: Same.

        * include/bits/basic_ios.h: Correct spacing for '< ctype'.

	* include/bits/locale_facets.tcc: Replace __temp to __tmp.

	* include/bits/locale_facets.h (__num_base): Remove protected.
	Use _S_[io]* names for enumerations.
	(_S_format_int): Remove.
	* include/bits/locale_facets.tcc: Same.
	* src/locale.cc: Same.

	* include/std/std_sstream.h (stringbuf::str): Tweak formatting.

From-SVN: r66552
2003-05-07 05:01:59 +00:00
Paolo Carlini
4571fbb1ec std_sstream.h (str()): Tidy.
2003-05-02  Paolo Carlini  <pcarlini@unitus.it>

	* include/std/std_sstream.h (str()): Tidy.

From-SVN: r66402
2003-05-02 23:02:03 +00:00
Paolo Carlini
e70b1b7788 std_sstream.h (str()): Revert the best of the previous 'improvement'...
2003-05-01  Paolo Carlini  <pcarlini@unitus.it>

	* include/std/std_sstream.h (str()): Revert the best of the
	previous 'improvement', incorrect due to the COW nature of
	v3 basic_string; simplify.

From-SVN: r66357
2003-05-01 23:20:33 +00:00
Paolo Carlini
397751aef0 streambuf.tcc (basic_streambuf::xsgetn): Const-ify some variables.
2003-05-01  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/streambuf.tcc (basic_streambuf::xsgetn):
	Const-ify some variables.
	(basic_streambuf::xsputn): Likewise; change the type of some
	variables to size_t.
	(__copy_streambufs): Change some variables to size_t.

2003-05-01  Paolo Carlini  <pcarlini@unitus.it>

	* include/std/std_sstream.h (str()): Avoid constructing
	a basic_string temporary not only when it would turn out
	to be zero-sized but also when identical to the current
	_M_string buffer.

From-SVN: r66334
2003-05-01 16:45:50 +00:00
Paolo Carlini
d4be2966f3 std_sstream.h (underflow): Change to single return.
2003-04-29  Paolo Carlini  <pcarlini@unitus.it>

	* include/std/std_sstream.h (underflow): Change to single return.

From-SVN: r66234
2003-04-29 17:47:38 +00:00
Paolo Carlini
479a181108 std_streambuf.h (_M_buf): is currently used only for basic_filebuf, therefore move it there.
2003-04-28  Paolo Carlini  <pcarlini@unitus.it>

	* include/std/std_streambuf.h (_M_buf): is currently
	used only for basic_filebuf, therefore move it there.
	(basic_streambuf(), ~basic_streambuf()): Adjust.
	* include/std/std_fstream.h (_M_buf): Moved here.
	* include/std/std_sstream.h (setbuf): Don't set _M_buf,
	is actually redundant for basic_stringbuf.
	(_M_really_sync): Likewise.
	* include/bits/fstream.tcc (basic_filebuf()): Adjust.
	* include/bits/sstream.tcc (seekoff): Adjust.

From-SVN: r66193
2003-04-28 23:51:37 +00:00
Benjamin Kosnik
988ad90d00 localename.cc: Standardize exception strings.
2003-04-28  Benjamin Kosnik  <bkoz@redhat.com>

	* src/localename.cc: Standardize exception strings.
	* src/locale.cc: Same.
	* src/ios.cc: Same.
	* include/bits/basic_string.tcc: Same.
	* include/bits/basic_ios.tcc: Same.
	* include/std/std_bitset.h: Same.
	* include/ext/ropeimpl.h: Same.
	* include/bits/stl_vector.h: Same.
	* include/bits/stl_deque.h: Same.
	* include/bits/stl_bvector.h: Same.
	* config/locale/generic/c_locale.cc: Same.
	* config/locale/gnu/c_locale.cc: Same.
	* config/locale/ieee_1003.1-2001/codecvt_specializations.h: Same.

	* testsuite/testsuite_hooks.cc (__gnu_cxx_test): Modify.

From-SVN: r66192
2003-04-28 23:05:57 +00:00
Paolo Carlini
6ef4b79c95 std_streambuf.h (_M_buf_size): is currently used only for basic_filebuf, therefore move it there.
2003-04-28  Paolo Carlini  <pcarlini@unitus.it>

	* include/std/std_streambuf.h (_M_buf_size): is currently
	used only for basic_filebuf, therefore move it there.
	(basic_streambuf(), ~basic_streambuf()): Adjust.
	* include/std/std_fstream.h (_M_buf_size): Moved here.
	* include/bits/fstream.tcc (basic_filebuf()): Adjust.

From-SVN: r66191
2003-04-28 23:02:46 +00:00
Phil Edwards
ad41429085 configure.in: Test for libintl.h.
2003-04-28  Phil Edwards  <pme@gcc.gnu.org>

	* configure.in:  Test for libintl.h.
	* include/bits/c++config:  Define __N for everybody.
	* include/bits/basic_string.h, include/bits/stl_bvector.h,
	include/bits/stl_deque.h, include/bits/stl_vector.h,
	include/std/std_bitset.h:  Wrap all __throw* text with __N.
	* po/Makefile.am (pot):  New rule, mostly working.
	* src/functexcept.cc:  Call gettext on all __throw* arguments when
	-fexceptions is in effect.
	* po/Makefile.in, config.h.in, configure:  Regenerate.

From-SVN: r66185
2003-04-28 21:03:19 +00:00
Benjamin Kosnik
aa438e8f2b std_fstream.h (basic_filebuf): _M_pback_destroy to _M_destroy_pback.
2003-04-27  Benjamin Kosnik  <bkoz@redhat.com>

	* include/std/std_fstream.h (basic_filebuf): _M_pback_destroy to
	_M_destroy_pback. _M_pback_create to
	_M_create_pback. _M_underflow_common to
	_M_underflow. _M_really_overflow to _M_overflow.
	* include/bits/fstream.tcc: Same.
	* src/fstream.cc: Same.
	* include/std/std_streambuf.h (basic_streambuf): _M_in_cur_move to
	_M_move_in_cur.  _M_out_cur_move to _M_move_out_cur.
	* include/bits/streambuf.tcc: Same.
	* include/bits/fstream.tcc: Same.
	* include/bits/sstream.tcc: Same.

From-SVN: r66149
2003-04-28 04:54:54 +00:00
Paolo Carlini
ac5b7972ab streambuf.tcc (__copy_streambufs): Don't use in_avail(), simplify.
2003-04-26  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/streambuf.tcc (__copy_streambufs): Don't
	use in_avail(), simplify.

2003-04-26  Paolo Carlini  <pcarlini@unitus.it>

	* include/std/std_sstream.h (setbuf): don't set _M_buf_size,
	in basic_stringbuf it's unused.

	* include/std/std_sstream.h (underflow): consistently use
	_M_in_cur, not gptr().

From-SVN: r66100
2003-04-26 08:13:35 +00:00
Benjamin Kosnik
a1796d12ff re PR libstdc++/10132 (filebuf destructor throws exceptions)
2003-04-25  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/10132
	* include/std/std_fstream.h (basic_filebuf::is_open): Add throw()
	exception specifications.
	(basic_filebuf::close): Same.
	(basic_filebuf::_M_pback_destroy): Same.
	(basic_filebuf::_M_destroy_internal_buffer): Same.
	(basic_filebuf): Remove __res_type typedef.
	* src/fstream.cc: Same.
	* include/bits/fstream.tcc
	(basic_filebuf::_M_convert_to_external): Simplify.
	(basic_filebuf::seekoff): Use has_facet	before use_facet.
	(basic_filebuf::close): Add exception specification of throw().
	* testsuite/27_io/basic_filebuf/cons: New.
	* testsuite/27_io/basic_filebuf/cons/wchar_t: New.
	* testsuite/27_io/basic_filebuf/cons/wchar_t/10132-1.cc: New.
	* testsuite/27_io/basic_filebuf/seekoff/10132-2.cc: New.
	* testsuite/27_io/basic_filebuf/seekpos/10132-3.cc: New.

From-SVN: r66091
2003-04-26 00:23:18 +00:00
Phil Edwards
6894ddcf3d howto.html ('LWG Issues'): Add issue 60, partial implementation only.
2003-04-23  Phil Edwards  <pme@gcc.gnu.org>

	* docs/html/ext/howto.html ('LWG Issues'):  Add issue 60, partial
	implementation only.
	* include/bits/istream.tcc (putback, unget, sync, tellg, seekg):
	Comment and change to comply with DR 60 and the effect on gcount().
	* include/std/std_istream.h:  Update comments.
	* testsuite/27_io/basic_istream/putback/char/1.cc (test01):  Add
	comments about reasons for tests.  Test sync() against gcount().
	* testsuite/27_io/basic_istream/seekg/char/2.cc:  New file, test
	for effect on gcount().
	* testsuite/27_io/basic_istream/tellg/char/2.cc:  New file, test
	for effect on gcount().

From-SVN: r65983
2003-04-23 07:05:18 +00:00
Paolo Carlini
45aca21f40 std_streambuf.h (_S_pback_size, [...]): Move to basic_filebuf.
2003-04-22  Paolo Carlini  <pcarlini@unitus.it>

	* include/std/std_streambuf.h (_S_pback_size, _M_pback,
	_M_pback_cur_save, _M_pback_end_save, _M_pback_init,
	_M_pback_create(), _M_pback_destroy()): Move to basic_filebuf.
	(basic_streambuf::basic_streambuf()): Adjust.
	* include/std/std_fstream.h (_S_pback_size, _M_pback,
	_M_pback_cur_save, _M_pback_end_save, _M_pback_init,
	_M_pback_create(), _M_pback_destroy()): Moved here
	from basic_streambuf.
	* include/bits/fstream.tcc (basic_filebuf::basic_filebuf()):
	Adjust.
	(basic_filebuf::_S_pback_size): Add declaration.
	* include/bits/streambuf.tcc (basic_streambuf::_S_pback_size):
	Remove declaration.

From-SVN: r65950
2003-04-22 17:32:25 +00:00
Paolo Carlini
07c2b60df9 Consistently use _M_in_beg instead of eback(), _M_in_cur instead of gptr(), and so on.
2003-04-21  Paolo Carlini  <pcarlini@unitus.it>

	Consistently use _M_in_beg instead of eback(), _M_in_cur
	instead of gptr(), and so on.
	* include/bits/fstream.tcc (pbackfail, imbue): Here.
	* include/bits/sstream.tcc (pbackfail, seekoff, seekpos): Ditto.
	* include/bits/streambuf.tcc (sbumpc, sputbackc,
	__copy_streambufs): Ditto.
	* include/std/std_streambuf.h (sgetc): Ditto.

From-SVN: r65909
2003-04-21 21:44:44 +00:00
Paolo Carlini
9d3e38ec59 std_streambuf.h (uflow()): It's used only by basic_stringbuf (i.e....
2003-04-21  Paolo Carlini  <pcarlini@unitus.it>

	* include/std/std_streambuf.h (uflow()): It's used only by
	basic_stringbuf (i.e., basic_filebuf provide its own uflow()),
	therefore do not consider the _M_buf_unified == true case.

	* include/std/std_streambuf.h (sgetc()): Restore __ret variable.

From-SVN: r65891
2003-04-21 18:11:51 +00:00
Paolo Carlini
5e77a35767 sstream.tcc (pbackfail): Remove redundant NULL pointer check from test involving _M_in_*.
2003-04-20  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/sstream.tcc (pbackfail): Remove redundant
	NULL pointer check from test involving _M_in_*.
	(overflow, seekoff, seekpos): Const qualify bool variables.
	* include/std/std_sstream.h (underflow): Remove redundant
	NULL pointer check from test involving _M_in_*.
	(_M_really_sync): Const qualify bool variables.
	* src/fstream.cc (_M_underflow_common): Remove redundant
	NULL pointer check from test involving _M_in_*, const qualify
	bool variables.

	* include/std/std_streambuf.h (sgetc): Remove redundant
	variable.

From-SVN: r65853
2003-04-20 13:54:45 +00:00
Paolo Carlini
0b176c1af2 According to 5.9 para 2 (second bullet) for pointers p...
2003-04-18  Paolo Carlini  <pcarlini@unitus.it>

	According to 5.9 para 2 (second bullet) for pointers p, q
	pointing to the same type, with  p == 0 and q == 0, (p < q)
	is false.
	* include/bits/fstream.tcc (close, overflow, _M_really_overflow,
	seekoff): Remove redundant NULL pointer checks from tests
	involving _M_out_* and _M_in_*, const qualify bool variables.
	(showmanyc, pbackfail, _M_convert_to_external, imbue): Const
	qualify bool variables.
	* include/bits/streambuf.tcc (sbumpc, sputbackc, sungetc, sputc):
	Remove redundant NULL pointer checks from tests involving
	_M_out_* and _M_in_*, const qualify bool variables.
	* include/std/std_fstream.h (sync): Likewise.
	(_M_is_indeterminate): Const qualify bool variables.
	* include/std/std_streambuf.h (sgetc, uflow): Remove redundant
	NULL pointer checks from tests involving _M_out_* and _M_in_*,
	const qualify bool variables.
	(_M_in_cur_move, _M_out_cur_move, uflow): Const qualify bool
	variables.

From-SVN: r65783
2003-04-18 13:55:22 +00:00
Paolo Carlini
b5bc3efb4b std_streambuf.h (setp): _M_out_lim, being the end limit of used put area, is set equal to _M_out_beg.
2003-04-17  Paolo Carlini  <pcarlini@unitus.it>

	* include/std/std_streambuf.h (setp): _M_out_lim, being
	the end limit of used put area, is set equal to _M_out_beg.

From-SVN: r65740
2003-04-17 11:29:15 +00:00
Loren J. Rittle
4ea34005e6 std_bitset.h (_M_do_find_next): Fix -Wall nit.
* include/std/std_bitset.h (_M_do_find_next): Fix -Wall nit.
	* include/bits/concept_check.h: Fix multi-line comment.
	* testsuite/17_intro/headers.cc (dg-options): Add -Wall -Wsystem-header
	when target is *-*-freebsd*.

From-SVN: r65620
2003-04-15 06:11:10 +00:00
Nathan Myers
21a1d2c493 PR libstdc++/9701 (in_avail())
2003-04-14  Nathan Myers  <ncm@cantrip.org>
	    Paolo Carlini  <pcarlini@unitus.it>

	PR libstdc++/9701 (in_avail())
	* include/std/std_streambuf.h (in_avail): Simplify, in_avail
	doesn't care if there is anything in some putback cell.
	* testsuite/27_io/basic_streambuf/in_avail/char/9701-3.cc: Add.

	* testsuite/27_io/basic_filebuf/in_avail/char/1.cc: Remove some
	unused string literals.

Co-Authored-By: Paolo Carlini <pcarlini@unitus.it>

From-SVN: r65603
2003-04-14 22:43:32 +00:00
Paolo Carlini
7ef9fd85ef Remove _M_buf_size_opt, use directly _M_buf_size instead.
2003-04-12  Paolo Carlini  <pcarlini@unitus.it>

	Remove _M_buf_size_opt, use directly _M_buf_size instead.
	* include/bits/fstream.tcc
	(basic_filebuf::_M_allocate_internal_buffer, setbuf): Remove
	references to _M_buf_size_opt.
	* include/bits/sstream.tcc (basic_stringbuf::overflow): Likewise.
	* include/bits/streambuf.tcc (__copy_streambufs): Likewise, rename
	__bufsize to __in_avail and __size_opt to __buf_size.
	* include/ext/stdio_filebuf.h (stdio_filebuf::stdio_filebuf): Likewise.
	* include/std/std_sstream.h (_M_stringbuf_init, setbuf): Likewise.
	* include/std/std_streambuf.h (~basic_streambuf(),
	basic_streambuf()): Likewise, remove _M_buf_size_opt member.
	* testsuite/27_io/basic_filebuf/close/char/3.cc: Set _M_buf_size.
	* testsuite/27_io/basic_filebuf/in_avail/char/1.cc: Likewise.
	* testsuite/27_io/basic_filebuf/sbumpc/char/1.cc: Likewise.
	* testsuite/27_io/basic_filebuf/seekoff/char/1.cc: Likewise.
	* testsuite/27_io/basic_filebuf/seekpos/char/1.cc: Likewise.
	* testsuite/27_io/basic_filebuf/sgetc/char/1.cc: Likewise.
	* testsuite/27_io/basic_filebuf/sgetn/char/1.cc: Likewise.
	* testsuite/27_io/basic_filebuf/snextc/char/1.cc: Likewise.
	* testsuite/27_io/basic_filebuf/sputbackc/char/1.cc: Likewise.
	* testsuite/27_io/basic_filebuf/sputc/char/1.cc: Likewise.
	* testsuite/27_io/basic_filebuf/sputn/char/1.cc: Likewise.
	* testsuite/27_io/basic_filebuf/sungetc/char/1.cc: Likewise.

From-SVN: r65518
2003-04-12 19:21:35 +00:00
Benjamin Kosnik
23cac88566 Reshuffle 27_io testsuite.
2003-04-09  Benjamin Kosnik  <bkoz@redhat.com>

	Reshuffle 27_io testsuite.  * testsuite/27_io/filebuf.cc,
	filebuf_members-1.tst, filebuf_members-1.txt, filebuf_members.cc,
	filebuf_virtuals-1.tst, filebuf_virtuals-1.txt,
	filebuf_virtuals-2.tst, filebuf_virtuals-3.tst,
	filebuf_virtuals.cc, fpos.cc, fstream.cc, fstream_members.cc,
	ifstream.cc, ifstream_members-1.tst, ifstream_members-1.txt,
	ifstream_members.cc, instantiations.cc, ios.cc,
	ios_base_callbacks.cc, ios_base_members_static-1.tst,
	ios_base_members_static.cc, ios_base_storage.cc,
	ios_base_types.cc, ios_ctor.cc, ios_init.cc,
	ios_manip_basefield.cc, ios_manip_fmtflags.cc, ios_members.cc,
	iostream.cc, iostream_members.cc, istream.cc,
	istream_exception.cc, istream_extractor_char.cc,
	istream_extractor_other-1.tst, istream_extractor_other-1.txt,
	istream_extractor_other-2.tst, istream_extractor_other.cc,
	istream_manip.cc, istream_seeks-1.tst, istream_seeks-1.txt,
	istream_seeks-2.tst, istream_seeks-3.tst, istream_seeks.cc,
	istream_sentry.cc, istream_unformatted-1.tst,
	istream_unformatted-1.txt, istream_unformatted.cc,
	istringstream.cc, istringstream_members.cc,
	narrow_stream_objects.cc, ofstream.cc, ofstream_members-1.tst,
	ofstream_members.cc, ostream.cc, ostream_exception.cc,
	ostream_fail.cc, ostream_inserter_arith.cc,
	ostream_inserter_char-1.tst, ostream_inserter_char-1.txt,
	ostream_inserter_char.cc, ostream_inserter_other-1.tst,
	ostream_inserter_other-2.tst, ostream_inserter_other.cc,
	ostream_manip.cc, ostream_seeks-1.tst, ostream_seeks.cc,
	ostream_sentry.cc, ostream_unformatted.cc, ostringstream.cc,
	ostringstream_members.cc, standard_manipulators.cc, streambuf.cc,
	streambuf_members.cc, stringbuf.cc, stringbuf_members.cc,
	stringbuf_virtuals.cc, stringstream.cc, stringstream_members.cc,
	wide_stream_objects.cc, istream_extractor_arith/01.cc,
	istream_extractor_arith/02.cc, istream_extractor_arith/03.cc,
	istream_extractor_arith/06.cc, istream_extractor_arith/07.cc,
	istream_extractor_arith/08.cc, istream_extractor_arith/09.cc,
	istream_extractor_arith/10.cc, istream_extractor_arith/11.cc,
	istream_extractor_arith/12.cc, istream_extractor_arith/13.cc:
	Split into...
	* 27_io/basic_filebuf/1.cc: New.
	* 27_io/basic_filebuf/2.cc: New.
	* 27_io/basic_filebuf/3.cc: New.
	* 27_io/basic_filebuf/4.cc: New.
	* 27_io/basic_filebuf/close/char/1.cc: New.
	* 27_io/basic_filebuf/close/char/2.cc: New.
	* 27_io/basic_filebuf/close/char/3.cc: New.
	* 27_io/basic_filebuf/close/char/4879.cc: New.
	* 27_io/basic_filebuf/close/char/9964.cc: New.
	* 27_io/basic_filebuf/imbue/char/1.cc: New.
	* 27_io/basic_filebuf/imbue/char/9322.cc: New.
	* 27_io/basic_filebuf/in_avail/char/1.cc: New.
	* 27_io/basic_filebuf/is_open/char/1.cc: New.
	* 27_io/basic_filebuf/open/char/1.cc: New.
	* 27_io/basic_filebuf/open/char/2.cc: New.
	* 27_io/basic_filebuf/open/char/3.cc: New.
	* 27_io/basic_filebuf/open/char/9507.cc: New.
	* 27_io/basic_filebuf/overflow/char/1.cc: New.
	* 27_io/basic_filebuf/overflow/char/3599.cc: New.
	* 27_io/basic_filebuf/overflow/char/9169.cc: New.
	* 27_io/basic_filebuf/overflow/char/9182-2.cc: New.
	* 27_io/basic_filebuf/overflow/char/9988.cc: New.
	* 27_io/basic_filebuf/sbumpc/char/1.cc: New.
	* 27_io/basic_filebuf/sbumpc/char/9825.cc: New.
	* 27_io/basic_filebuf/seekoff/char/1.cc: New.
	* 27_io/basic_filebuf/seekoff/char/2.cc: New.
	* 27_io/basic_filebuf/seekpos/char/1.cc: New.
	* 27_io/basic_filebuf/seekpos/char/2.cc: New.
	* 27_io/basic_filebuf/setbuf/char/1.cc: New.
	* 27_io/basic_filebuf/setbuf/char/2.cc: New.
	* 27_io/basic_filebuf/setbuf/char/3.cc: New.
	* 27_io/basic_filebuf/sgetc/char/1.cc: New.
	* 27_io/basic_filebuf/sgetn/char/1.cc: New.
	* 27_io/basic_filebuf/sgetn/char/2.cc: New.
	* 27_io/basic_filebuf/snextc/char/1.cc: New.
	* 27_io/basic_filebuf/sputbackc/char/1.cc: New.
	* 27_io/basic_filebuf/sputbackc/char/9425.cc: New.
	* 27_io/basic_filebuf/sputc/char/1.cc: New.
	* 27_io/basic_filebuf/sputc/char/1057.cc: New.
	* 27_io/basic_filebuf/sputc/char/9701-2.cc: New.
	* 27_io/basic_filebuf/sputn/char/1.cc: New.
	* 27_io/basic_filebuf/sputn/char/1057.cc: New.
	* 27_io/basic_filebuf/sputn/char/9701-1.cc: New.
	* 27_io/basic_filebuf/sungetc/char/1.cc: New.
	* 27_io/basic_filebuf/sync/char/1057.cc: New.
	* 27_io/basic_filebuf/sync/char/9182-1.cc: New.
	* 27_io/basic_filebuf/underflow/char/10097.cc: New.
	* 27_io/basic_fstream/1.cc: New.
	* 27_io/basic_fstream/2.cc: New.
	* 27_io/basic_fstream/3.cc: New.
	* 27_io/basic_fstream/4.cc: New.
	* 27_io/basic_fstream/rdbuf/char/2832.cc: New.
	* 27_io/basic_ifstream/1.cc: New.
	* 27_io/basic_ifstream/2.cc: New.
	* 27_io/basic_ifstream/3.cc: New.
	* 27_io/basic_ifstream/4.cc: New.
	* 27_io/basic_ifstream/cons/char/1.cc: New.
	* 27_io/basic_ifstream/open/char/1.cc: New.
	* 27_io/basic_ifstream/rdbuf/char/2832.cc: New.
	* 27_io/basic_ios/1.cc: New.
	* 27_io/basic_ios/2.cc: New.
	* 27_io/basic_ios/3.cc: New.
	* 27_io/basic_ios/4.cc: New.
	* 27_io/basic_ios/clear/char/1.cc: New.
	* 27_io/basic_ios/cons/char/1.cc: New.
	* 27_io/basic_ios/cons/char/2.cc: New.
	* 27_io/basic_ios/cons/char/3.cc: New.
	* 27_io/basic_ios/copyfmt/char/1.cc: New.
	* 27_io/basic_ios/copyfmt/char/2.cc: New.
	* 27_io/basic_ios/exceptions/char/1.cc: New.
	* 27_io/basic_ios/locales/char/1.cc: New.
	* 27_io/basic_iostream/1.cc: New.
	* 27_io/basic_iostream/2.cc: New.
	* 27_io/basic_iostream/3.cc: New.
	* 27_io/basic_iostream/4.cc: New.
	* 27_io/basic_istream/1.cc: New.
	* 27_io/basic_istream/2.cc: New.
	* 27_io/basic_istream/3.cc: New.
	* 27_io/basic_istream/4.cc: New.
	* 27_io/basic_istream/exceptions/char/9561.cc: New.
	* 27_io/basic_istream/extractors_arithmetic/char/01.cc: New.
	* 27_io/basic_istream/extractors_arithmetic/char/02.cc: New.
	* 27_io/basic_istream/extractors_arithmetic/char/03.cc: New.
	* 27_io/basic_istream/extractors_arithmetic/char/06.cc: New.
	* 27_io/basic_istream/extractors_arithmetic/char/07.cc: New.
	* 27_io/basic_istream/extractors_arithmetic/char/08.cc: New.
	* 27_io/basic_istream/extractors_arithmetic/char/09.cc: New.
	* 27_io/basic_istream/extractors_arithmetic/char/10.cc: New.
	* 27_io/basic_istream/extractors_arithmetic/char/11.cc: New.
	* 27_io/basic_istream/extractors_arithmetic/char/12.cc: New.
	* 27_io/basic_istream/extractors_arithmetic/char/13.cc: New.
	* 27_io/basic_istream/extractors_character/char/1.cc: New.
	* 27_io/basic_istream/extractors_character/char/2.cc: New.
	* 27_io/basic_istream/extractors_character/char/3.cc: New.
	* 27_io/basic_istream/extractors_character/char/9826.cc: New.
	* 27_io/basic_istream/extractors_other/char/1.cc: New.
	* 27_io/basic_istream/extractors_other/char/2.cc: New.
	* 27_io/basic_istream/extractors_other/char/3.cc: New.
	* 27_io/basic_istream/extractors_other/char/9318-in.cc: New.
	* 27_io/basic_istream/extractors_other/char/9424-in.cc: New.
	* 27_io/basic_istream/get/char/1.cc: New.
	* 27_io/basic_istream/get/char/2.cc: New.
	* 27_io/basic_istream/getline/char/1.cc: New.
	* 27_io/basic_istream/getline/char/2.cc: New.
	* 27_io/basic_istream/getline/char/3.cc: New.
	* 27_io/basic_istream/ignore/char/1.cc: New.
	* 27_io/basic_istream/ignore/char/6360.cc: New.
	* 27_io/basic_istream/ignore/char/7220.cc: New.
	* 27_io/basic_istream/peek/char/1.cc: New.
	* 27_io/basic_istream/peek/char/6414.cc: New.
	* 27_io/basic_istream/putback/char/1.cc: New.
	* 27_io/basic_istream/read/char/1.cc: New.
	* 27_io/basic_istream/read/char/2.cc: New.
	* 27_io/basic_istream/read/char/3.cc: New.
	* 27_io/basic_istream/readsome/char/6746-1.cc: New.
	* 27_io/basic_istream/readsome/char/6746-2.cc: New.
	* 27_io/basic_istream/readsome/char/8258.cc: New.
	* 27_io/basic_istream/seekg/char/2346-fstream.cc: New.
	* 27_io/basic_istream/seekg/char/2346-sstream.cc: New.
	* 27_io/basic_istream/seekg/char/8348-1.cc: New.
	* 27_io/basic_istream/seekg/char/8348-2.cc: New.
	* 27_io/basic_istream/seekg/char/fstream.cc: New.
	* 27_io/basic_istream/seekg/char/sstream.cc: New.
	* 27_io/basic_istream/sentry/char/1.cc: New.
	* 27_io/basic_istream/sentry/char/2.cc: New.
	* 27_io/basic_istream/sentry/char/3.cc: New.
	* 27_io/basic_istream/sentry/char/3983-fstream.cc: New.
	* 27_io/basic_istream/sentry/char/3983-sstream.cc: New.
	* 27_io/basic_istream/tellg/char/1.cc: New.
	* 27_io/basic_istream/tellg/char/8348.cc: New.
	* 27_io/basic_istream/tellg/char/fstream.cc: New.
	* 27_io/basic_istream/tellg/char/sstream.cc: New.
	* 27_io/basic_istream/ws/char/1.cc: New.
	* 27_io/basic_istringstream/1.cc: New.
	* 27_io/basic_istringstream/2.cc: New.
	* 27_io/basic_istringstream/3.cc: New.
	* 27_io/basic_istringstream/4.cc: New.
	* 27_io/basic_istringstream/rdbuf/char/2832.cc: New.
	* 27_io/basic_istringstream/str/char/1.cc: New.
	* 27_io/basic_ofstream/1.cc: New.
	* 27_io/basic_ofstream/2.cc: New.
	* 27_io/basic_ofstream/3.cc: New.
	* 27_io/basic_ofstream/4.cc: New.
	* 27_io/basic_ofstream/cons/char/2.cc: New.
	* 27_io/basic_ofstream/open/char/1.cc: New.
	* 27_io/basic_ofstream/rdbuf/char/2832.cc: New.
	* 27_io/basic_ostream/1.cc: New.
	* 27_io/basic_ostream/2.cc: New.
	* 27_io/basic_ostream/3.cc: New.
	* 27_io/basic_ostream/4.cc: New.
	* 27_io/basic_ostream/cons/char/9827.cc: New.
	* 27_io/basic_ostream/endl/char/1.cc: New.
	* 27_io/basic_ostream/ends/char/1.cc: New.
	* 27_io/basic_ostream/ends/char/2.cc: New.
	* 27_io/basic_ostream/exceptions/char/9561.cc: New.
	* 27_io/basic_ostream/flush/char/1.cc: New.
	* 27_io/basic_ostream/inserters_arithmetic/char/1.cc: New.
	* 27_io/basic_ostream/inserters_arithmetic/char/2.cc: New.
	* 27_io/basic_ostream/inserters_arithmetic/char/3.cc: New.
	* 27_io/basic_ostream/inserters_arithmetic/char/4.cc: New.
	* 27_io/basic_ostream/inserters_arithmetic/char/4402.cc: New.
	* 27_io/basic_ostream/inserters_arithmetic/char/5.cc: New.
	* 27_io/basic_ostream/inserters_arithmetic/char/6.cc: New.
	* 27_io/basic_ostream/inserters_arithmetic/wchar_t/1.cc: New.
	* 27_io/basic_ostream/inserters_character/char/1.cc: New.
	* 27_io/basic_ostream/inserters_character/char/2.cc: New.
	* 27_io/basic_ostream/inserters_character/char/3.cc: New.
	* 27_io/basic_ostream/inserters_character/char/4.cc: New.
	* 27_io/basic_ostream/inserters_character/char/5.cc: New.
	* 27_io/basic_ostream/inserters_character/char/6.cc: New.
	* 27_io/basic_ostream/inserters_character/char/8.cc: New.
	* 27_io/basic_ostream/inserters_character/wchar_t/7.cc: New.
	* 27_io/basic_ostream/inserters_character/wchar_t/8.cc: New.
	* 27_io/basic_ostream/inserters_other/char/1.cc: New.
	* 27_io/basic_ostream/inserters_other/char/2.cc: New.
	* 27_io/basic_ostream/inserters_other/char/3.cc: New.
	* 27_io/basic_ostream/inserters_other/char/4.cc: New.
	* 27_io/basic_ostream/inserters_other/char/9318-out.cc: New.
	* 27_io/basic_ostream/inserters_other/char/9424-out.cc: New.
	* 27_io/basic_ostream/sentry/char/1.cc: New.
	* 27_io/basic_ostream/sentry/char/2.cc: New.
	* 27_io/basic_ostream/sentry/char/3983-fstream.cc: New.
	* 27_io/basic_ostream/sentry/char/3983-sstream.cc: New.
	* 27_io/basic_ostream/tellp/char/1.cc: New.
	* 27_io/basic_ostream/tellp/char/2.cc: New.
	* 27_io/basic_ostringstream/1.cc: New.
	* 27_io/basic_ostringstream/2.cc: New.
	* 27_io/basic_ostringstream/3.cc: New.
	* 27_io/basic_ostringstream/4.cc: New.
	* 27_io/basic_ostringstream/cons/char/3.cc: New.
	* 27_io/basic_ostringstream/rdbuf/char/2832.cc: New.
	* 27_io/basic_ostringstream/str/char/1.cc: New.
	* 27_io/basic_ostringstream/str/char/2.cc: New.
	* 27_io/basic_streambuf/1.cc: New.
	* 27_io/basic_streambuf/2.cc: New.
	* 27_io/basic_streambuf/3.cc: New.
	* 27_io/basic_streambuf/cons/char/1.cc: New.
	* 27_io/basic_streambuf/imbue/char/1.cc: New.
	* 27_io/basic_streambuf/imbue/char/9322.cc: New.
	* 27_io/basic_streambuf/overflow/char/1.cc: New.
	* 27_io/basic_streambuf/overflow/char/2.cc: New.
	* 27_io/basic_streambuf/overflow/char/3599.cc: New.
	* 27_io/basic_streambuf/sgetc/char/1.cc: New.
	* 27_io/basic_streambuf/sgetn/char/1.cc: New.
	* 27_io/basic_streambuf/sputbackc/char/9538.cc: New.
	* 27_io/basic_streambuf/sputc/char/1057.cc: New.
	* 27_io/basic_streambuf/sputn/char/1.cc: New.
	* 27_io/basic_streambuf/sputn/char/1057.cc: New.
	* 27_io/basic_streambuf/sync/char/1057.cc: New.
	* 27_io/basic_stringbuf/1.cc: New.
	* 27_io/basic_stringbuf/2.cc: New.
	* 27_io/basic_stringbuf/3.cc: New.
	* 27_io/basic_stringbuf/4.cc: New.
	* 27_io/basic_stringbuf/5.cc: New.
	* 27_io/basic_stringbuf/imbue/char/1.cc: New.
	* 27_io/basic_stringbuf/imbue/char/9322.cc: New.
	* 27_io/basic_stringbuf/in_avail/char/1.cc: New.
	* 27_io/basic_stringbuf/overflow/char/2.cc: New.
	* 27_io/basic_stringbuf/overflow/char/3599.cc: New.
	* 27_io/basic_stringbuf/overflow/char/9988.cc: New.
	* 27_io/basic_stringbuf/sbumpc/char/1.cc: New.
	* 27_io/basic_stringbuf/sbumpc/char/9825.cc: New.
	* 27_io/basic_stringbuf/seekoff/char/1.cc: New.
	* 27_io/basic_stringbuf/seekoff/char/2.cc: New.
	* 27_io/basic_stringbuf/seekpos/char/1.cc: New.
	* 27_io/basic_stringbuf/seekpos/char/2.cc: New.
	* 27_io/basic_stringbuf/setbuf/char/1.cc: New.
	* 27_io/basic_stringbuf/setbuf/char/2.cc: New.
	* 27_io/basic_stringbuf/setbuf/char/3.cc: New.
	* 27_io/basic_stringbuf/sgetc/char/1.cc: New.
	* 27_io/basic_stringbuf/sgetn/char/1.cc: New.
	* 27_io/basic_stringbuf/snextc/char/1.cc: New.
	* 27_io/basic_stringbuf/sputbackc/char/1.cc: New.
	* 27_io/basic_stringbuf/sputbackc/char/9425.cc: New.
	* 27_io/basic_stringbuf/sputc/char/1.cc: New.
	* 27_io/basic_stringbuf/sputc/char/1057.cc: New.
	* 27_io/basic_stringbuf/sputc/char/9404-1.cc: New.
	* 27_io/basic_stringbuf/sputn/char/1.cc: New.
	* 27_io/basic_stringbuf/sputn/char/1057.cc: New.
	* 27_io/basic_stringbuf/sputn/char/9404-2.cc: New.
	* 27_io/basic_stringbuf/str/char/1.cc: New.
	* 27_io/basic_stringbuf/str/char/2.cc: New.
	* 27_io/basic_stringbuf/str/char/3.cc: New.
	* 27_io/basic_stringbuf/str/char/3955.cc: New.
	* 27_io/basic_stringbuf/sungetc/char/1.cc: New.
	* 27_io/basic_stringbuf/sync/char/1057.cc: New.
	* 27_io/basic_stringstream/1.cc: New.
	* 27_io/basic_stringstream/2.cc: New.
	* 27_io/basic_stringstream/3.cc: New.
	* 27_io/basic_stringstream/4.cc: New.
	* 27_io/basic_stringstream/rdbuf/char/2832.cc: New.
	* 27_io/basic_stringstream/str/char/1.cc: New.
	* 27_io/basic_stringstream/str/char/2.cc: New.
	* 27_io/basic_stringstream/str/char/3.cc: New.
	* 27_io/basic_stringstream/str/char/4.cc: New.
	* 27_io/fpos/1.cc: New.
	* 27_io/fpos/2.cc: New.
	* 27_io/fpos/3.cc: New.
	* 27_io/ios_base/callbacks/1.cc: New.
	* 27_io/ios_base/state/1.cc: New.
	* 27_io/ios_base/storage/1.cc: New.
	* 27_io/ios_base/storage/2.cc: New.
	* 27_io/ios_base/storage/3.cc: New.
	* 27_io/ios_base/sync_with_stdio/1.cc: New.
	* 27_io/ios_base/sync_with_stdio/2.cc: New.
	* 27_io/manipulators/adjustfield/char/1.cc: New.
	* 27_io/manipulators/adjustfield/char/2.cc: New.
	* 27_io/manipulators/basefield/char/1.cc: New.
	* 27_io/manipulators/standard/char/1.cc: New.
	* 27_io/manipulators/standard/char/2.cc: New.
	* 27_io/objects/char/1.cc: New.
	* 27_io/objects/char/2.cc: New.
	* 27_io/objects/char/2523-1_xin.cc: New.
	* 27_io/objects/char/2523-1_xin.in: New.
	* 27_io/objects/char/2523-2_xin.cc: New.
	* 27_io/objects/char/2523-2_xin.in: New.
	* 27_io/objects/char/3045.cc: New.
	* 27_io/objects/char/3647.cc: New.
	* 27_io/objects/char/3_xin.cc: New.
	* 27_io/objects/char/3_xin.in: New.
	* 27_io/objects/char/4_xin.cc: New.
	* 27_io/objects/char/4_xin.in: New.
	* 27_io/objects/char/5268.cc: New.
	* 27_io/objects/char/5280_xin.cc: New.
	* 27_io/objects/char/5280_xin.in: New.
	* 27_io/objects/char/6548_xin.cc: New.
	* 27_io/objects/char/6548_xin.in: New.
	* 27_io/objects/char/6648-1_xin.cc: New.
	* 27_io/objects/char/6648-1_xin.in: New.
	* 27_io/objects/char/6648-2_xin.cc: New.
	* 27_io/objects/char/6648-2_xin.in: New.
	* 27_io/objects/char/7744_xin.cc: New.
	* 27_io/objects/char/7744_xin.in: New.
	* 27_io/objects/wchar_t/1.cc: New.
	* 27_io/types/1.cc: New.
	* 27_io/types/2.cc: New.
	* data/filebuf_members-1.tst: New.
	* data/filebuf_members-1.txt: New.
	* data/filebuf_virtuals-1.tst: New.
	* data/filebuf_virtuals-1.txt: New.
	* data/filebuf_virtuals-2.tst: New.
	* data/filebuf_virtuals-3.tst: New.
	* data/ifstream_members-1.tst: New.
	* data/ifstream_members-1.txt: New.
	* data/ios_base_members_static-1.tst: New.
	* data/istream_extractor_other-1.tst: New.
	* data/istream_extractor_other-1.txt: New.
	* data/istream_extractor_other-2.tst: New.
	* data/istream_seeks-1.tst: New.
	* data/istream_seeks-1.txt: New.
	* data/istream_seeks-2.tst: New.
	* data/istream_seeks-3.tst: New.
	* data/istream_unformatted-1.tst: New.
	* data/istream_unformatted-1.txt: New.
	* data/ofstream_members-1.tst: New.
	* data/ostream_inserter_char-1.tst: New.
	* data/ostream_inserter_char-1.txt: New.
	* data/ostream_inserter_other-1.tst: New.
	* data/ostream_inserter_other-2.tst: New.
	* data/ostream_seeks-1.tst: New.

2003-04-09  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/sstream.tcc (basic_stringbuf::seekpos): Remove
	requirement that __mode must be strict input or output.

	* include/std/std_streambuf.h (basic_streambuf::setp): Set
	_M_out_lim.

	* include/std/std_sstream.h (basic_strinbuf::str): Zero length
	output string shouldn't core.
	(basic_stringbuf::_M_really_sync): Add base argument. Remove rturn
	type.
	* include/bits/sstream.tcc: Adjust _M_really_sync bits here.

	* include/bits/istream.tcc (basic_istream::putback): Set gcount to
	zero.

2003-04-09  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/data: New directory.
	* testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3-init): Modify
	to copy files from the testsuite data directory.
	(libstdc++-v3-list-sourcefiles): Add another test list filter, for
	testfiles containing _xin, which now means this is an interactive
	test and should be run with the interactive dejagnu hooks.
	* testsuite/Makefile.am: Remove testsuite_* files.
	* testsuite/Makefile.in: Regenerate.

From-SVN: r65421
2003-04-10 07:15:40 +00:00
Paolo Carlini
eb98bd16ce std_streambuf.h (_M_out_buf_size()): Remove.
2003-03-31  Paolo Carlini  <pcarlini@unitus.it>

	* include/std/std_streambuf.h (_M_out_buf_size()): Remove.
	* include/bits/fstream.tcc (_M_allocate_internal_buffer):
	Don't set _M_out_end.
	(basic_filebuf::overflow): Replace _M_out_buf_size() with
	this->_M_out_cur && this->_M_out_cur < this->_M_out_end.
	* include/bits/sstream.tcc (basic_stringbuf::overflow):
	Replace _M_out_buf_size() with this->_M_out_cur < this->_M_out_end;
	* include/bits/streambuf.tcc (basic_streambuf::sputc):
	Replace _M_out_buf_size() with _M_out_cur && _M_out_cur < _M_out_end.
	(basic_streambuf::xsputn): Replace _M_out_buf_size() with
	_M_out_end - _M_out_cur.
	(__copy_streambufs): Likewise.
	* include/std/std_fstream.h (_M_set_determinate): Set
	_M_out_end here.

From-SVN: r65093
2003-03-31 18:24:13 +00:00
Paolo Carlini
631693d58d fstream.tcc (basic_filebuf::showmanyc, [...]): Fix test for synced buffer.
2003-03-30  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/fstream.tcc (basic_filebuf::showmanyc,
	_M_convert_to_external, _M_really_overflow, seekoff): Fix
	test for synced buffer.
	* include/std/std_fstream.h (sync): Likewise.
	* src/fstream.cc (basic_filebuf<char>::_M_underflow_common,
	basic_filebuf<wchar_t>::_M_underflow_common): Likewise.

From-SVN: r65038
2003-03-30 08:32:11 +00:00
Benjamin Kosnik
d29cc32f9d std_sstream.h (basic_istringstream): Adjust initialization.
2003-03-28  Benjamin Kosnik  <bkoz@redhat.com>

	* include/std/std_sstream.h (basic_istringstream): Adjust
	initialization.
	(basic_ostringstream): Same.
	(basic_stringstream): Same.
	* include/std/std_fstream.h (basic_ifstream): Adjust initialization.
	(basic_ofstream): Same.
	(basic_fstream): Same.
	* include/std/std_ostream.h (basic_ostrem): Add protected ctor
	that does not call init.
	* include/std/std_istream.h (basic_istream): Same.
	(basic_iostream): Construct istream, ostream uninitialized, use
	init to initialize just once. Add protected ctor that does not
	call init.

From-SVN: r64980
2003-03-28 19:45:44 +00:00
Jerry Quinn
442c0874ea re PR libstdc++/5730 (complex<double>::norm() -- huge slowdown from egcs-2.91.66)
2003-03-21  Jerry Quinn  <jlquinn@optonline.net>

	PR libstdc++/5730
	* include/bits/c++config (_GLIBCPP_FAST_MATH): Define.
        * include/std/std_complex.h (norm):  Use faster,
        less accurate computation for builtin float types under --fast-math.

From-SVN: r64701
2003-03-22 04:57:46 +00:00
Paolo Carlini
95dca20c9c re PR libstdc++/7744 (streambuf::in_avail() always returns 0 (zero) for cin input stream)
2003-03-09  Paolo Carlini  <pcarlini@unitus.it>
	    Nathan Myers  <ncm@cantrip.org>

	PR libstdc++/7744
	* config/io/basic_file_stdio.h (__basic_file<>::xsgetn, xsputn,
	seekoff, seekpos): Add a boolean parameter __stdio.
	* config/io/basic_file_stdio.cc (__basic_file<>::xsgetn, xsputn,
	seekoff, seekpos): If __stdio == true, use fread (fwrite, fseek/ftell,
	fseek/ftell, respectively), otherwise read (write, lseek, lseek,
	respectively).
	* include/bits/fstream.tcc (basic_filebuf<>::_M_convert_to_external,
	_M_really_overflow, seekoff): Use the boolean parameter in the calls.
	* include/std/std_fstream.h (sync): Likewise.
	* src/fstream.cc (basic_filebuf<>::_M_underflow_common): Likewise.
	* src/ios.cc (ios_base::Init::_S_ios_create(bool)): Revert libstdc++/8399
	commit involving isatty(0).
	* acinclude.m4 (GLIBCPP_CHECK_UNISTD_DECL_AND_LINKAGE_1): Remove.
        (GLIBCPP_CHECK_UNISTD_SUPPORT): Remove
  	* configure.in: Remove call.
	* aclocal.m4: Regenerate.
       	* config.h.in: Regenerate.
        * configure: Regenerate.
	* testsuite/27_io/narrow_stream_objects.cc (test11): Add.

Co-Authored-By: Nathan Myers <ncm@cantrip.org>

From-SVN: r64051
2003-03-09 22:31:45 +00:00
Jerry Quinn
6f62fbd81a re PR libstdc++/9561 (ostream inserters rethrow exception of wrong type)
2003-03-08  Jerry Quinn  <jlquinn@optonline.net>

	PR libstdc++/9561
	* include/bits/basic_ios.h (_M_setstate): New.
	* include/bits/ostream.tcc (operator<<): Use it.
	* include/bits/istream.tcc (operator>>): Use it.
	* include/std/std_ostream.h (operator<<): Make friends.
	* include/std/std_istream.h (operator>>): Make friends.
	* testsuite/27_io/ostream_exception.cc,
	testsuite/27_io/istream_exception.cc: New tests.

From-SVN: r64021
2003-03-09 04:19:52 +00:00
Paolo Carlini
1deba98bd2 re PR libstdc++/9182 (basic_filebuf<> does not report errors in codecvt<>::out)
2003-03-07  Paolo Carlini  <pcarlini@unitus.it>

	PR libstdc++/9182
	* include/bits/fstream.tcc (_M_really_overflow): Check
	for _M_convert_to_external possible failures.
	* include/std/std_fstream.h (sync): Check _M_really_overflow
	return value and return -1 in case of failure.
	* testsuite/27_io/filebuf_virtuals.cc (test13, test14): Add.

2003-03-07  Paolo Carlini  <pcarlini@unitus.it>

	PR libstdc++/9826
	* include/bits/istream.tcc (operator>>(_CharT*),
	operator>>(basic_string&), ws): Pass a char_type to __ctype.is.
	* testsuite/27_io/stringstream.cc (test02): Add.

	* include/bits/istream.tcc (operator>>(_CharT*)):
	Assign a char_type to *__s.

From-SVN: r63953
2003-03-07 22:06:28 +00:00
Phil Edwards
bd2726e0ca Intro.3: Update with new (proper) names.
2003-02-25  Phil Edwards  <pme@gcc.gnu.org>

	* docs/doxygen/Intro.3:  Update with new (proper) names.
	* docs/doxygen/TODO:  Update.
	* docs/doxygen/run_doxygen:  More comments, fix up man pages.
	Fake entries for standard typedefs.
	* docs/doxygen/user.cfg.in:  Turn INLINE_INHERITED_MEMB back on.
	* docs/html/documentation.html:  Top-level man page is now called
	C++Intro.
	* include/std/std_limits.h:  Doxygenate.

From-SVN: r63433
2003-02-26 00:02:16 +00:00
Paolo Carlini
391cd0955e PR libstdc++/9404, PR libstdc++/9701 (partial)
2003-02-24  Paolo Carlini <pcarlini@unitus.it>
	    Nathan Myers <ncm@cantrip.org>

	PR libstdc++/9404, PR libstdc++/9701 (partial)
	(aka pptr == epptr implies overflow)
	* include/bits/fstream.tcc (_M_allocate_internal_buffer):
	Consistently, _M_out_end points to the end of the buffer just
	created.
	(overflow): Tweak to use _M_out_buf_size().
	(_M_convert_to_external): The role of the old _M_out_end is
	now played by _M_out_lim.
	(_M_really_overflow): Likewise.
	(seekoff): Likewise.
	(setbuf): _M_out_end points to the end of the external buffer.
	* include/bits/sstream.tcc (overflow): Rewrote, taking into
	account the resolution of DR 169 (TC).
	(seekoff): Use _M_string.capacity(); ios_base::end is now _M_out_lim.
	(seekpos): Use _M_string.capacity(); tweak.
	* include/bits/streambuf.tcc (sputc, xsputn): Remove comments.
	* include/std/std_fstream.h (sync): The role of the old
	_M_out_end is now played by _M_out_lim.
	(_M_set_indeterminate): Use _M_set_determinate.
	(_M_set_determinate): _M_out_end is now _M_out_lim.
	(_M_is_indeterminate): Likewise.
	* include/std/std_sstream.h (str()): _M_out_end is now _M_out_lim.
	(_M_stringbuf_init): Don't set _M_buf_size, unused for sstreams,
	which have the information readily available as _M_string.capacity();
	for ate and app modes, pass the string size to _M_really_sync.
	(_M_really_sync): Consistently set _M_out_end and _M_out_lim, to
	point to the end of the buffer (i.e., epptr) and to the string end,
	respectively.
	* include/std/std_streambuf.h: tweak comments, add _M_out_lim,
	which points to the right limit of the used put area.
	(_M_out_cur_move): The role of the old _M_out_end is now played
	by _M_out_lim.
	(_M_out_buf_size): Simplify: now (when _M_out_cur) return simply
	_M_out_end  - _M_out_cur (i.e., pptr), _very_ close to the letter
	of the standard.
	(basic_streambuf()): Initialize _M_out_lim too.
	* testsuite/27_io/filebuf_virtuals.cc (test10): Trivial tweak.
	* testsuite/27_io/filebuf_virtuals.cc (test11): Add.
 	* testsuite/27_io/stringbuf_virtuals.cc (test09): Add.

Co-Authored-By: Nathan Myers <ncm@cantrip.org>

From-SVN: r63367
2003-02-24 18:22:58 +00:00
Paolo Carlini
de59bd27dc std_sstream.h (str()): the size of the current string may be different from the initial one whenever...
2003-02-18  Paolo Carlini  <pcarlini@unitus.it>

	* include/std/std_sstream.h (str()): the size of the
	current string may be different from the initial one
	whenever _M_out_end > _M_out_beg.
	* testsuite/27_io/stringbuf_members.cc (test07): Add.

From-SVN: r63066
2003-02-18 23:26:32 +00:00
Paolo Carlini
1a1aed2466 re PR libstdc++/9580 (basic_filebuf<> with custom traits_type fails to link)
2003-02-17  Paolo Carlini  <pcarlini@unitus.it>

	PR libstdc++/9580
	* include/std/std_fstream.h: Declare underflow and uflow
	specializations, change generic definitions to do nothing.
	* src/fstream.cc: Add underflow and uflow specializations.

From-SVN: r63008
2003-02-17 20:07:48 +00:00
Benjamin Kosnik
1bc8b0ad4e c++config (_GLIBCPP_EXTERN_TEMPLATE): Define.
2003-02-13  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/c++config (_GLIBCPP_EXTERN_TEMPLATE): Define.
	* include/bits/basic_ios.tcc: Guard use of extern template.
	* include/std/std_iomanip.h: Same.
	* include/bits/streambuf.tcc: Same.
	* include/bits/stl_alloc.h: Same.
	* include/bits/locale_facets.tcc: Same.
	* include/bits/ostream.tcc: Same.
	* include/bits/istream.tcc: Same.
	* include/bits/fstream.tcc: Same.
	* include/bits/basic_string.tcc: Same.

From-SVN: r62865
2003-02-13 21:39:03 +00:00
Paolo Carlini
afb6c265b7 re PR libstdc++/9562 (ostream::sentry::operator bool () should be const)
2003-02-06  Paolo Carlini  <pcarlini@unitus.it>

	PR libstdc++/9562
	* include/std/std_istream.h
	(basic_istream::sentry::operator bool()): Make const.
	* include/std/std_ostream.h
	(basic_ostream::sentry::operator bool()): Likewise.
	* testsuite/27_io/istream_sentry.cc (test03): Add.
	* testsuite/27_io/ostream_sentry.cc: Add.

From-SVN: r62508
2003-02-07 00:26:44 +00:00
Jerry Quinn
8d0a564bba std_ostream.h (ostream::_M_write): Declare.
2003-02-04  Jerry Quinn  <jlquinn@optonline.net>

	* include/std/std_ostream.h (ostream::_M_write): Declare.
        * ostream.tcc (ostream::_M_write): Define.
	(basic_ostream::write): Use it.
	(operator<<(basic_ostream, _CharT)): Ditto.
	(operator<<(basic_ostream, char)): Ditto.
	(operator<<(basic_ostream, _CharT*)): Ditto.
	(operator<<(basic_ostream, char*)): Ditto.
	(operator<<(basic_ostream, basic_string)): Ditto.

From-SVN: r62399
2003-02-04 20:56:50 +00:00
Falk Hueffner
348b0c3105 std_bitset.h: Replace CHAR_BIT with __CHAR_BIT__, use numeric_limits for bits-per-word values.
2003-02-03  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
            Phil Edwards  <pme@gcc.gnu.org>

	* include/std/std_bitset.h:  Replace CHAR_BIT with __CHAR_BIT__, use
	numeric_limits for bits-per-word values.
	(_Base_bitset::_M_do_count, _Base_bitset<1>::_M_do_count):
	Use __builtin_popcountl instead.
	(_Base_bitset::_M_do_find_first, _Base_bitset::_M_do_find_next,
	_Base_bitset<1>::_M_do_find_first, _Base_bitset<1>::_M_do_find_next):
	Use __builtin_ctzl instead.
	(_S_bit_count, _S_first_one):  Remove.
	* config/linker-map.gnu (GLIBCPP_3.4):  Remove std::_S_bit_count.
	* src/Makefile.am (sources):  Remove bitset.cc.
	* src/bitset.cc:  Delete file.
	* src/Makefile.in:  Regenerate.

Co-Authored-By: Phil Edwards <pme@gcc.gnu.org>

From-SVN: r62335
2003-02-03 19:37:53 +00:00
Mark Mitchell
14d22dd667 c-common.c (builtin_define_float_constants): Define __<TYPE>_HAS_INFINITY__ and __<TYPE>_HAS_QUIET_NAN__.
* c-common.c (builtin_define_float_constants): Define
	__<TYPE>_HAS_INFINITY__ and __<TYPE>_HAS_QUIET_NAN__.

	* call.c (build_field_call): Use build_new_op, not build_opfncall.
	(prep_operand): New function.
	(build_new_op): Use it.  Remove dead code.
	* class.c (pushclass): Change "modify" parameter type from int to
	bool.
	(currently_open_class): Use same_type_p, not pointer equality.
	(push_nested_class): Adjust calls to pushclass, remove modify
	parameter.
	* cp-tree.h (INTEGRAL_OR_ENUMERATION_TYPE_P): New macro.
	(pushclass): Change prototype.
	(push_nested_class): Likewise.
	(grokoptypename): Remove.
	(build_opfncall): Remove.
	(value_dependent_expression_p): Declare.
	(resolve_typename_type): Likewise.
	(resolve_typename_type_in_current_instantiation): Likewise.
	(enter_scope_of): Remove.
	(tsubst): Remove.
	(tsubst_expr): Likewise.
	(tsubst_copy): Likewise.
	(tsubst_copy_and_build): Likewise.
	* decl.c (warn_about_implicit_typename_lookup): Remove.
	(finish_case_label): Return error_mark_node for erroneous labels.
	(start_decl): Adjust calls to push_nested_class.
	(grokfndecl): Call push_scope/pop_scope around call to
	duplicate_decls.
	(grokdeclarator): Do not call tsubst.
	(start_function): Adjust calls to push_nested_class.
	* decl2.c (grok_array_decl): Use build_new_op, not build_opfncall.
	(check_classfn): Use push_scope/pop_scope around type comparisions.
	(grokoptypename): Remove.
	(push_sscope): Adjust call to push_nested_class.
	* error.c (dump_type): Show cv-qualification of typename types.
	* init.c (build_member_call): Use build_new_op, not
	build_opfncall.
	* method.c (build_opfncall): Remove.
	* parser.c (cp_parser): Add allow_non_constant_expression_p and
	non_constant_expression_p.
	(cp_parser_constant_expression): Adjust prototype.
	(cp_parser_resolve_typename_type): Remove.
	(cp_parser_non_constant_expression): New function.
	(cp_parser_non_constant_id_expression): Likewise.
	(cp_parser_new): Set allow_non_constant_expression_p and
	non_constant_expression_p.
	(cp_parser_primary_expression): Reject `this' and `va_arg' in
	constant-expressions.  Note that dependent names aren't really
	constant.
	(cp_parser_postfix_expression): Reject conversions to non-integral
	types in constant-expressions.  Neither are increments or
	decrements.
	(cp_parser_unary_expression): Reject increments and decrements in
	constant-expressions.
	(cp_parser_direct_new_declarator): Adjust call to
	cp_parser_constant_expression.
	(cp_parser_cast_expression): Reject conversions to non-integral
	types in constant-expressions.
	(cp_parser_assignment_expression): Rejects assignments in
	constant-expressions.
	(cp_parser_expression): Reject commas in constant-expressions.
	(cp_parser_labeled_statement): Adjust call to
	cp_parser_constant_expression.
	(cp_parser_direct_declarator): Simplify array bounds, even in
	templates, when they are non-dependent.  Use
	resolve_typename_type, not cp_parser_resolve_typename_type.
	(cp_parser_class_head): Use resolve_typename_type, not
	cp_parser_resolve_typename_type.
	(cp_parser_member_declaration): Adjust call to
	cp_parser_constant_expression.
	(cp_parser_constant_initializer): Likewise.
	(cp_parser_constructor_declarator): Use resolve_typename_type, not
	cp_parser_resolve_typename_type.
	(cp_parser_late_parsing_default_args): Adjust call to
	push_nested_class.
	* pt.c (tsubst): Give it internal linkage.
	(tsubst_expr): Likewise.
	(tsubst_copy): Likewise.
	(tsubst_copy_and_build): Likewise.
	(push_access_scope_real): Likewise.
	(tsubst_friend_class): Likewise.
	(instantiate_class_template): Adjust call to pushclass.
	(value_dependent_expression_p): Give it external linkage.
	Robustify.
	(resolve_typename_type): New function.
	* semantics.c (finish_call_expr): Use build_new_op, not
	build_opfncall.
	(begin_constructor_declarator): Remove.
	(begin_class_definition): Adjust call to pushclass.
	(enter_scope_of): Remove.
	* typeck.c (comptypes): Resolve typename types as appropriate.
	(build_x_indirect_ref): Use build_new_op, not build_opfncall.
	(build_x_compound_expr): Likewise.
	(build_modify_expr): Likewise.
	(build_x_modify_expr): Likewise.
	* typeck2.c (build_x_arrow): Likewise.

	* g++.dg/parser/constant1.C: New test.

	* include/std/std_limits.h (numeric_limits<float>::has_infinity):
	Use __FLT_HAS_INIFINITY__ to initialize.
	(numeric_limits<float>::has_quiet_NaN): Likewise.
	(numeric_limits<double>::has_infinity): Use __DBL_HAS_INIFINITY__
	to initialize.
	(numeric_limits<double>::has_quiet_NaN): Likewise.
	(numeric_limits<long double>::has_infinity): Use
	__LDBL_HAS_INIFINITY__ to initialize.
	(numeric_limits<long_double>::has_quiet_NaN): Likewise.

From-SVN: r62130
2003-01-30 07:24:02 +00:00
Nathan Sidwell
c13bea50d1 valarray_meta.h: Remove, split into ...
* include/bits/valarray_meta.h: Remove, split into ...
	* include/bits/valarray_before.h: ... this, and ...
	* include/bits/valarray_after.h: ... this.
	* include/std/std_valarray.h: Adjust.
	* include/Makefile.am (bits_headers): Adjust.
	* include/Makefile.in: Regenerate.

From-SVN: r61706
2003-01-24 16:32:11 +00:00
Petur Runolfsson
1ceb90cfa1 re PR libstdc++/9322 (return value of basic_streambuf<>::getloc affected by locale::global)
2003-01-23  Petur Runolfsson  <peturr02@ru.is>

	PR libstdc++/9322
	* include/std/std_streambuf.h
	(basic_streambuf::basic_streambuf,
	basic_streambuf::~basic_streambuf,
	basic_streambuf::getloc, basic_streambuf::imbue):
	Remove _M_buf_locale_init use.
	* include/bits/fstream.tcc (basic_filebuf::imbue):  Likewise
	* testsuite/27_io/filebuf_virtuals.cc (test08):  Add.
	* testsuite/27_io/streambuf_members.cc (test08):  Add.
	* testsuite/27_io/stringbuf_virtuals.cc (test08):  Add.

From-SVN: r61678
2003-01-23 22:53:35 +00:00
Benjamin Kosnik
1a1e79bbfe Revert include ordering.
2003-01-23  Benjamin Kosnik  <bkoz@redhat.com>

	Revert include ordering.
	* config/locale/generic/c_locale.h: Add include guards.
	* config/locale/gnu/c_locale.h: Same.
	* include/bits/locale_classes.h: Remove cctype include.
	* include/std/std_iosfwd.h: Add c++locale.h, cctype includes.
	* include/std/std_fstream.h: Remove streambuf include.
	* include/std/std_sstream.h: Remove streambuf include.

From-SVN: r61664
2003-01-23 18:56:00 +00:00
Benjamin Kosnik
b4ec7fc7f0 re PR libstdc++/9269 (libstdc++ headers: explicit specialization of function must precede its first use)
2003-01-22  Benjamin Kosnik  <bkoz@redhat.com>
	    Sysoltsev Slawa  <Vyatcheslav.Sysoltsev@intel.com>
	    Mark Mitchell  <mark@codesourcery.com>

	PR libstdc++/9269
	* include/std/std_fstream.h (basic_filebuf::uflow): Declare.
	(basic_filebuf::underflow): Declare.
	Move definitions.

Co-Authored-By: Mark Mitchell <mark@codesourcery.com>
Co-Authored-By: Sysoltsev Slawa <Vyatcheslav.Sysoltsev@intel.com>

From-SVN: r61616
2003-01-22 21:18:00 +00:00
Benjamin Kosnik
e66868131b locale_facets.h: Move non-facet classes requiring <string> to...
2003-01-22  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.h: Move non-facet classes requiring
	<string> to...
	* include/bits/locale_classes.h: New.
	* include/bits/Makefile.am (bits_headers_src): Add locale_classes.h.
	* include/bits/Makefile.in: Regenerate.

	* include/bits/locale_facets.tcc (__convert_from_v): Move to...
	* config/locale/gnu/c_locale.h: ...here.
	* config/locale/generic/c_locale.h: Same.

	* include/bits/locale_facets.tcc: Move declarations to...
	* include/bits/locale_facets.h: ...here.
	* include/bits/basic_ios.h: Tweak includes accordingly.
	* include/std/std_sstream.h: Add streambuf include.
	* include/std/std_fstream.h: Ditto.
	* include/std/std_locale.h: Add locale_classes.h include.
	* include/std/std_iosfwd.h: Tweak.
	* src/concept-inst.cc: Add iterator include.

	* config/linker-map.gnu: Specify __cxa functions, mark __cxa_dyn_*
	bits as unexported in the future.

From-SVN: r61593
2003-01-22 16:51:52 +00:00
Mark Mitchell
8fbc5ae723 cp-tree.h (lang_type_class): Remove is_partial_instantiation.
* cp-tree.h (lang_type_class): Remove is_partial_instantiation.
	(PARTIAL_INSTANTIATION_P): Remove.
	(IMPLICIT_TYPENAME_P): Likewise.
	(IMPLICIT_TYPENAME_TYPE_DECL_P): Likewise.
	(build_typename_type): Remove declaration.
	(parmlist_is_exprlist): Likewise.
	* decl.c (build_typename_type): Make it static, remove third
	parameter.
	(push_class_binding): Don't do implicit typename stuff.
	(make_typename_type): Likewise.
	(lookup_name_real): Likewise.
	(grokdeclarator): Don't try to convert declarations into
	initializations.  Don't do implicit typename stuff.
	(parmlist_is_exprlist): Remove.
	(xref_basetypes): Simplify.
	* decl2.c (grokfield): Don't try to convert declarations into
	initializations.
	(build_anon_union_vars): Do this while processing templates, too.
	(finish_anon_union): Likewise.
	* error.c (dump_type): Remove implicit typename handling.
	* parser.c (cp_parser_diagnose_invalid_type_name): New method.
	(cp_parser_primary_expression): Correct handling of names not
	found by unqualified name lookup in templates.
	(cp_parser_nested_name_specifier_opt): Avoid checking dependency
	of types when possible.
	(cp_parser_simple_declaration): Complain intelligently about some
	invalid declarations.
	(cp_parser_member_declaration): Likewise.
	(cp_parser_constructor_declarator_p): Don't check when we're in a
	function scope.
	* pt.c (instantiate_class_template): Remove
	PARTIAL_INSTANTIATION_P gunk.
	* search.c (lookup_field_r): Don't build implicit typenames.
	(marked_pushdecls_p): Don't enter dependent base types.
	(unmarked_pushdecls_p): Likewise.
	* semantics.c (begin_class_definition): Remove implicit typename
	stuff.

	* config/locale/gnu/messages_members.h: Use this-> to refer to
	unqualified members of base clasess.
	* config/locale/ieee_1003.1-2001/codecvt_specializations.h: Likewise.
	* include/bits/codecvt.h: Likewise.
	* include/bits/deque.tcc: Likewise.
	* include/bits/fstream.tcc: Likewise.
	* include/bits/istream.tcc: Likewise.
	* include/bits/list.tcc: Likewise.
	* include/bits/locale_facets.h: Likewise.
	* include/bits/ostream.tcc: Likewise.
	* include/bits/sstream.tcc: Likewise.
	* include/bits/stl_bvector.h: Likewise.
	* include/bits/stl_deque.h: Likewise.
	* include/bits/stl_list.h: Likewise.
	* include/bits/stl_tree.h: Likewise.
	* include/bits/stl_vector.h: Likewise.
	* include/bits/vector.tcc: Likewise.
	* include/ext/ropeimpl.h: Likewise.
	* include/ext/stdio_filebuf.h: Likewise.
	* include/ext/stl_rope.h: Likewise.
	* include/std/std_fstream.h: Likewise.
	* include/std/std_sstream.h: Likewise.

Co-Authored-By: Jeffrey Oldham <oldham@codesourcery.com>

From-SVN: r61403
2003-01-16 20:30:50 +00:00
Phil Edwards
70e12fb914 std_bitset.h: Better comments.
2002-12-29  Phil Edwards  <pme@gcc.gnu.org>

	* include/std/std_bitset.h:  Better comments.

From-SVN: r60614
2002-12-30 03:58:46 +00:00
Mark Mitchell
43be7fe7d7 * config/locale/gnu/ctype_members.cc
(ctype<wchar_t>::_M_convert_to_wmask): Remove stray semicolon.
	* config/locale/gnu/monetary_members.cc
	(moneypunct<wchar_t, true>::_M_initialize_moneypunct): Avoid
	defining classes in static_cast.
	(moneypunct<wchar_t, false>::_M_initialize_moneypunct): Likewise.
	* config/locale/gnu/numeric_members.cc
	(numpunct<wchar_t, false>::_M_initialize_numpunct): Likewise.
	* include/bits/stl_deque.h (operator-): Insert typename where
	required.
	* include/bits/stl_multiset.h (multiset): Remove stray semicolon.
	* include/bits/stl_set.h (set): Likewise.
	* include/bits/valarray_meta.h (bits/slice_array.h): Include it.
	* include/std/std_fstream.h (basic_fstream::open): Use this-> to
	avoid Koenig lookup.
	(basic_fstream::close): Likewise.
	* libsupc++/new (operator delete): Remove stray semicolon.
	* libsupc++/new (operator delete[]): Likewise.
	* libsupc++/tinfo.cc: Likewise.
	* src/stdexcept.c (logic_error::~logic_error): Likewise.
	(runtime_error::~runtime_error): Likewise.

From-SVN: r60547
2002-12-27 23:03:03 +00:00
Phil Edwards
3bbfb3d91d std_bitset.h (_Base_bitset::_M_do_left_shift, [...]): Expect a non-zero shift.
2002-12-26  Phil Edwards  <pme@gcc.gnu.org>

	* include/std/std_bitset.h (_Base_bitset::_M_do_left_shift,
	_Base_bitset::_M_do_right_shift): Expect a non-zero shift.
	(bitset::operator<<=, bitset::operator>>=):  When shifting more bits
	than are in the bitset, zero memory rather than segfault.
	(operator>>(basic_istream,bitset):  Only call setstate once, after
	all work has been done.

	* testsuite/23_containers/bitset_members.cc (test03):  New test.
	* testsuite/23_containers/bitset_shift.cc (test02):  New test.

From-SVN: r60533
2002-12-27 00:03:17 +00:00
Paolo Carlini
77bd447bb4 re PR libstdc++/8949 (numeric_limits<>::denorm_min() and is_iec559 problems.)
2002-12-16  Paolo Carlini  <pcarlini@unitus.it>

	PR libstdc++/8949
	* include/std/std_limits.h
	(struct numeric_limits<short>,
	struct numeric_limits<unsigned short>,
	struct numeric_limits<int>,
	struct numeric_limits<unsigned int>,
	struct numeric_limits<long>,
	struct numeric_limits<unsigned long>,
	struct numeric_limits<long long>,
	struct numeric_limits<unsigned long long>): According
	to 18.2.1.2,53 and 18.2.1.5,1 is_iec559 shall be false.
	* testsuite/18_support/numeric_limits.cc: Add test04.

From-SVN: r60181
2002-12-16 19:52:37 +00:00
Zack Weinberg
4977bab6ed Merge basic-improvements-branch to trunk
From-SVN: r60174
2002-12-16 18:23:00 +00:00
Wolfgang Bangerth
f815521c75 std_complex.h (operator<<(basic_ostream&, const complex&)): Prefer 'x' to "x" for efficiency sake.
2002-11-25  Wolfgang Bangerth  <bangerth@ticam.utexas.edu>

	* include/std/std_complex.h
	(operator<<(basic_ostream&, const complex&)): Prefer 'x'
	to "x" for efficiency sake.
	* src/locale.cc (locale::locale(const char*)): Ditto.

From-SVN: r59465
2002-11-25 19:01:55 +00:00
Phil Edwards
840ceb345b TODO: Note change in clause 27 docs.
2002-11-21  Phil Edwards  <pme@gcc.gnu.org>

	* docs/doxygen/TODO:  Note change in clause 27 docs.
	* include/bits/basic_ios.h, include/bits/fpos.h,
	include/bits/ios_base.h, include/bits/stl_deque.h,
	include/bits/stl_iterator_base_types.h, include/std/std_fstream.h,
	include/std/std_iomanip.h, include/std/std_iosfwd.h,
	include/std/std_iostream.h, include/std/std_istream.h,
	include/std/std_ostream.h, include/std/std_sstream.h,
	include/std/std_streambuf.h:  Doxygenate all I/O entities.

From-SVN: r59325
2002-11-21 07:06:41 +00:00
Jonathan Wakely
93d87ec6f8 std_sstream.h (basic_stringbuf::str(const __string_type&)): Prefer data() to c_str() thus avoiding assigning the unnecessary NULL-terminator.
2002-11-05  Jonathan Wakely  <cow@compsoc.man.ac.uk>

	* include/std/std_sstream.h
	(basic_stringbuf::str(const __string_type&)):
	Prefer data() to c_str() thus avoiding assigning the
	unnecessary NULL-terminator.

From-SVN: r58844
2002-11-06 00:05:35 +00:00
Paolo Carlini
81646a3157 re PR libstdc++/8466 (basic_stringbuf::str(basic_string const&) modifies its argument)
2002-11-05  Paolo Carlini  <pcarlini@unitus.it>

	PR libstdc++/8466
	* include/std/std_sstream.h
	(basic_stringbuf::str(const __string_type&)):
	Cannot use simple assignment since the COW-nature of v3
	basic_string is not taken into account in basic_stringbuf.
	* testsuite/27_io/stringstream_members.cc: Add test04 from PR.

From-SVN: r58838
2002-11-05 23:28:15 +00:00
Benjamin Kosnik
5112ae3a8f re PR libstdc++/8318 (Not all wide character based prototypes are included within #ifdef _GLIBCPP_USE_WCHAR_T)
2002-11-01  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/8318
	* include/std/std_iostream.h: Tweak.
	* include/std/std_iosfwd.h: Add _GLIBCPP_USE_WCHAR_T.
	* include/std/std_iomanip.h: Same.
	* include/bits/stringfwd.h: Same.
	* include/bits/basic_string.tcc: Same.
	* include/bits/sstream.tcc: Same.
	* include/bits/fstream.tcc: Same.
	* include/bits/basic_ios.tcc: Same.
	* include/bits/streambuf.tcc: Same.
	* include/bits/locale_facets.tcc: Same.

From-SVN: r58720
2002-11-01 17:30:36 +00:00
Richard Henderson
d3d09886b3 std_limits.h (numeric_limits<T>::is_iec559): False if denormals are not supported.
* include/std/std_limits.h (numeric_limits<T>::is_iec559): False
        if denormals are not supported.

From-SVN: r57595
2002-09-27 15:39:28 -07:00
Benjamin Kosnik
ca017eef3a Makefile.am (target_headers): Remove cpu_limits.h.
2002-09-25  Benjamin Kosnik  <bkoz@redhat.com>

	* include/Makefile.am (target_headers): Remove cpu_limits.h.
	* include/Makefile.in: Regenerate.
	* configure.in (CPU_LIMITS_INC_SRCDIR): Remove
	* configure: Regenerate.
	* configure.target (CPULIMITS): Remove.

	* include/std/std_limits.h: Remove cpu_limits.h include.

	* config/os/solaris/solaris2.7/os_defines.h (__glibcpp_long_bits):
	Remove.
	* config/os/irix/irix6.5/os_defines.h
	(__glibcpp_long_double_bits): Remove.
	(__glibcpp_wchar_t_bits): Remove.
	(__glibcpp_long_bits): Remove.
	* config/os/irix/irix5.2/os_defines.h
	(__glibcpp_long_double_bits): Remove.
	(__glibcpp_long_bits): Remove.
	* config/os/hpux/os_defines.h (__glibcpp_wchar_t_is_signed): Remove.
	* config/os/bsd/freebsd/os_defines.h:
	(__glibcpp_long_double_bits): Remove.
	* config/os/aix/os_defines.h (__glibcpp_wchar_t_bits): Remove.
	(__glibcpp_wchar_t_is_signed): Remove.
	(__glibcpp_long_bits): Remove.
	* config/os/gnu-linux/os_defines.h (__glibcpp_long_bits): Remove.
	(__glibcpp_long_double_bits): Remove.

	* config/os/osf/osf5.0/cpu_limits.h: Remove.
	* config/cpu/alpha/cpu_limits.h: Remove.
	* config/cpu/arm/cpu_limits.h: Remove.
	* config/cpu/cris/cpu_limits.h: Remove.
	* config/cpu/generic/cpu_limits.h: Remove.
	* config/cpu/generic/limits.h: Remove.
	* config/cpu/ia64/cpu_limits.h: Remove.
	* config/cpu/m68k/cpu_limits.h: Remove.
	* config/cpu/mmix/cpu_limits.h: Remove.
	* config/cpu/powerpc/cpu_limits.h: Remove.
	* config/cpu/S390/cpu_limits.h: Remove.

From-SVN: r57524
2002-09-26 05:25:14 +00:00
Mark Mitchell
0b4c7d8042 std_limits.h (numeric_limits<unsigned char>::digits): Fix typo.
* include/std/std_limits.h (numeric_limits<unsigned char>::digits):
	Fix typo.

From-SVN: r57507
2002-09-25 18:32:14 +00:00
Richard Henderson
6ad8f94953 std_limits.h (__glibcpp_plain_char_is_signed, [...]): Remove.
* include/std/std_limits.h (__glibcpp_plain_char_is_signed,
	__glibcpp_wchar_t_is_signed, __glibcpp_s8_max, __glibcpp_s8_min,
	__glibcpp_s8_digits, __glibcpp_s8_digits10, __glibcpp_u8_min,
	__glibcpp_u8_max, __glibcpp_u8_digits, __glibcpp_u8_digits10,
	__glibcpp_s16_max, __glibcpp_s16_min, __glibcpp_s16_digits,
	__glibcpp_s16_digits10, __glibcpp_u16_min, __glibcpp_u16_max,
	__glibcpp_u16_digits, __glibcpp_u16_digits10, __glibcpp_s32_max,
	__glibcpp_s32_min, __glibcpp_s32_digits, __glibcpp_s32_digits10,
	__glibcpp_u32_min, __glibcpp_u32_max, __glibcpp_u32_digits,
	__glibcpp_u32_digits10, __glibcpp_s64_max, __glibcpp_s64_min,
	__glibcpp_s64_digits, __glibcpp_s64_digits10, __glibcpp_u64_min,
	__glibcpp_u64_max, __glibcpp_u64_digits, __glibcpp_u64_digits10,
	__glibcpp_bool_digits, __glibcpp_signed_char_min,
	__glibcpp_signed_char_max, __glibcpp_signed_char_digits,
	__glibcpp_signed_char_digits10, __glibcpp_unsigned_char_min,
	__glibcpp_unsigned_char_max, __glibcpp_unsigned_char_digits,
	__glibcpp_unsigned_char_digits10, __glibcpp_char_min,
	__glibcpp_char_max, __glibcpp_char_digits, __glibcpp_char_digits10,
	__glibcpp_signed_short_min, __glibcpp_signed_short_max,
	__glibcpp_signed_short_digits, __glibcpp_signed_short_digits10,
	__glibcpp_unsigned_short_min, __glibcpp_unsigned_short_max,
	__glibcpp_unsigned_short_digits, __glibcpp_unsigned_short_digits10,
	__glibcpp_signed_int_min, __glibcpp_signed_int_max,
	__glibcpp_signed_int_digits, __glibcpp_signed_int_digits10,
	__glibcpp_unsigned_int_min, __glibcpp_unsigned_int_max,
	__glibcpp_unsigned_int_digits, __glibcpp_unsigned_int_digits10,
	__glibcpp_signed_long_min, __glibcpp_signed_long_max,
	__glibcpp_unsigned_long_digits, __glibcpp_unsigned_long_digits10,
	__glibcpp_signed_long_long_min, __glibcpp_signed_long_long_max,
	__glibcpp_signed_long_long_digits, __glibcpp_signed_long_long_digits10,
	__glibcpp_wchar_t_min, __glibcpp_wchar_t_max, __glibcpp_wchar_t_digits,
	__glibcpp_wchar_t_digits10): Remove.
	(__glibcpp_byte, __glibcpp_word_bits, __glibcpp_word): Remove.
	(__float_storage, __double_storage, __long_double_storage): Remove.
	(__glibcpp_signed, __glibcpp_min, __glibcpp_max): New.
	(__glibcpp_digits, __glibcpp_digits10): New.
	(numeric_limits<T>::min): Use __glibcpp_min or limits.h builtins.
	(numeric_limits<T>::max): Use __glibcpp_max or limits.h builtins.
	(numeric_limits<T>::is_signed, T=char,wchar_t): Use __glibcpp_signed.
	(numeric_limits<T>::digits): Use __glibcpp_digits.
	(numeric_limits<T>::digits10): Use __glibcpp_digits10.
	* testsuite/18_support/numeric_limits.cc (test03): Don't use
	__glibcpp_s8_digits10 et al; check vs the installed versions
	of digits10 for particular sizes.

        * include/std/std_limits.h (__glibcpp_float_is_modulo,
        __glibcpp_double_is_modulo, __glibcpp_long_double_is_modulo): Kill.
        (numeric_limits<T>::is_modulo, T floating): Use false.

From-SVN: r57434
2002-09-23 04:24:57 -07:00
Richard Henderson
da28539cd6 std_limits.h (__glibcpp_integral_traps): New.
* include/std/std_limits.h (__glibcpp_integral_traps): New.
        (__glibcpp_char_traps, __glibcpp_short_traps, __glibcpp_int_traps,
        __glibcpp_long_traps, __glibcpp_wchar_t_traps,
        __glibcpp_long_long_traps, __glibcpp_plain_char_traps,
        __glibcpp_signed_char_traps, __glibcpp_unsigned_char_traps,
        __glibcpp_signed_short_traps, __glibcpp_unsigned_short_traps,
        __glibcpp_signed_int_traps, __glibcpp_unsigned_int_traps,
        __glibcpp_signed_long_traps, __glibcpp_unsigned_long_traps,
        __glibcpp_signed_long_long_traps, __glibcpp_unsigned_long_long_traps,
        __glibcpp_char_is_modulo, __glibcpp_signed_char_is_modulo,
        __glibcpp_signed_short_is_modulo, __glibcpp_signed_int_is_modulo,
        __glibcpp_signed_long_is_modulo, __glibcpp_signed_long_long_is_modulo,
        __glibcpp_wchar_t_is_modulo, __glibcpp_float_is_bounded,
        __glibcpp_double_is_bounded, __glibcpp_long_double_is_bounded): Kill.
        (numeric_limits<T>::traps, T integral): Use __glibcpp_integral_traps.
        (numeric_limits<T>::is_modulo, T integral): Use true.
        (numeric_limits<T>::is_bounded, T floating): Use true.

From-SVN: r57414
2002-09-22 11:37:51 -07:00
Richard Henderson
cf2214db0c std_limits.h (__glibcpp_f32_is_iec559, [...]): Remove.
* include/std/std_limits.h (__glibcpp_f32_is_iec559,
        __glibcpp_f64_is_iec559, __glibcpp_f80_is_iec559,
        __glibcpp_f96_is_iec559, __glibcpp_f128_is_iec559,
        __glibcpp_float_is_iec559, __glibcpp_double_is_iec559,
        __glibcpp_long_double_is_iec559): Remove.
        (numeric_limits<float>::is_iec559): Use has_infinity & has_quiet_NaN.
        (numeric_limits<double>, numeric_limits<long double>): Similarly.

From-SVN: r57413
2002-09-22 11:36:38 -07:00
Richard Henderson
be71ea9dae std_limits.h (__glibcpp_f32_round_error, [...]): Kill.
* include/std/std_limits.h (__glibcpp_f32_round_error,
	__glibcpp_f64_round_error, __glibcpp_f80_round_error,
	__glibcpp_f96_round_error, __glibcpp_f128_round_error,
	__glibcpp_float_round_error, __glibcpp_double_round_error,
	__glibcpp_long_double_round_error, __glibcpp_float_round_style,
	__glibcpp_double_round_style, __glibcpp_long_double_round_style): Kill.
	(numeric_limits<char>::epsilon, round_error): Use constant 0.
	(numeric_limits<float>::round_error): Use constant 0.5.
	(numeric_limits<float>::round_style): Use round_to_nearest.
	(numeric_limits<double>, numeric_limits<long double>): Similarly.

From-SVN: r57412
2002-09-22 11:35:24 -07:00
Richard Henderson
1472e41cb3 builtin-types.def (BT_FN_FLOAT_CONST_STRING): New.
gcc/
        * builtin-types.def (BT_FN_FLOAT_CONST_STRING): New.
        (BT_FN_DOUBLE_CONST_STRING, BT_FN_LONG_DOUBLE_CONST_STRING): New.
        * builtins.def (__builtin_nan, __builtin_nanf, __builtin_nanl): New.
        (__builtin_nans, __builtin_nansf, __builtin_nansl): New.
        * builtins.c (fold_builtin_nan): New.
        (fold_builtin): Call it.
        * real.c (real_nan): Parse a non-empty string.
        (round_for_format): Fix NaN significand truncation.
        * real.h (real_nan): Return bool.
        * doc/extend.texi: Document new builtins.

libstdc++/
        * include/std/std_limits.h (__glibcpp_f32_QNaN_bytes,
        __glibcpp_f32_has_QNaN, __glibcpp_f32_SNaN_bytes,
        __glibcpp_f32_has_SNaN, __glibcpp_f64_QNaN_bytes,
        __glibcpp_f64_has_QNaN, __glibcpp_f64_SNaN_bytes,
        __glibcpp_f64_has_SNaN, __glibcpp_f80_QNaN_bytes,
        __glibcpp_f80_has_QNaN, __glibcpp_f80_SNaN_bytes,
        __glibcpp_f80_has_SNaN, __glibcpp_f96_QNaN_bytes,
        __glibcpp_f96_has_QNaN, __glibcpp_f96_SNaN_bytes,
        __glibcpp_f96_has_SNaN, __glibcpp_f128_QNaN_bytes,
        __glibcpp_f128_has_QNaN, __glibcpp_f128_SNaN_bytes,
        __glibcpp_f128_has_SNaN, __glibcpp_float_QNaN_bytes,
        __glibcpp_float_has_QNaN, __glibcpp_float_SNaN_bytes,
        __glibcpp_float_has_SNaN, __glibcpp_double_QNaN_bytes,
        __glibcpp_double_has_QNaN, __glibcpp_double_SNaN_bytes,
        __glibcpp_double_has_SNaN, __glibcpp_long_double_QNaN_bytes,
        __glibcpp_long_double_has_QNaN, __glibcpp_long_double_SNaN_bytes,
        __glibcpp_long_double_has_SNaN): Remove.
        (__glibcpp_f128_is_iec559): True if IEEE.
        (__glibcpp_float_QNaN, __glibcpp_float_SNaN): Remove.
        (__glibcpp_double_QNaN, __glibcpp_double_SNaN): Remove.
        (__glibcpp_long_double_QNaN, __glibcpp_long_double_SNaN): Remove.
        (std::numeric_limits<float>::has_quiet_NaN): Use __builtin_nanf.
        (std::numeric_limits<float>::has_signaling_NaN): Mirror has_quiet_NaN.
        (std::numeric_limits<float>::quiet_NaN): Use __builtin_nanf.
        (std::numeric_limits<float>::signaling_NaN): Use __builtin_nansf.
        (std::numeric_limits<double>): Similarly.
        (std::numeric_limits<long double>): Similarly.
        * src/limits.cc (__glibcpp_float_QNaN, __glibcpp_float_SNaN): Remove.
        (__glibcpp_double_QNaN, __glibcpp_double_SNaN): Remove.
        (__glibcpp_long_double_QNaN, __glibcpp_long_double_SNaN): Remove.

        * testsuite/18_support/numeric_limits.cc (test_infinity): New.
        (test_denorm_min, test_qnan, test_is_iec559): New.

From-SVN: r57221
2002-09-16 18:28:50 -07:00
Richard Henderson
ac520ec919 c-common.c (builtin_define_float_constants): Emit __FOO_DENORM_MIN__.
gcc/
        * c-common.c (builtin_define_float_constants): Emit __FOO_DENORM_MIN__.

libstdc++/
        * include/std/std_limits.h (__glibcpp_f32_denorm_min_bytes,
        __glibcpp_f32_has_denorm, __glibcpp_f64_denorm_min_bytes,
        __glibcpp_f64_has_denorm, __glibcpp_f80_denorm_min_bytes,
        __glibcpp_f80_has_denorm, __glibcpp_f96_denorm_min_bytes,
        __glibcpp_f96_has_denorm, __glibcpp_f128_denorm_min_bytes,
        __glibcpp_f128_has_denorm, __glibcpp_float_denorm_min_bytes,
        __glibcpp_float_has_denorm, __glibcpp_double_denorm_min_bytes,
        __glibcpp_double_has_denorm, __glibcpp_long_double_denorm_min_bytes,
        __glibcpp_long_double_has_denorm): Remove.
        (__glibcpp_float_denorm_min, __glibcpp_double_denorm_min,
        __glibcpp_long_double_denorm_min): Remove.
        (std::numeric_limits<float>::has_denorm): Use __FLT_DENORM_MIN__.
        (std::numeric_limits<float>::denorm_min): Likewise.
        (std::numeric_limits<double>): Similarly.
        (std::numeric_limits<long double>): Similarly.
        * src/limits.cc (__glibcpp_float_denorm_min,
        __glibcpp_double_denorm_min, __glibcpp_long_double_denorm_min): Remove.

From-SVN: r57200
2002-09-16 09:58:42 -07:00
Richard Henderson
65e32b88a6 std_limits.h (__glibcpp_f32_infinity_bytes, [...]): Remove.
* include/std/std_limits.h (__glibcpp_f32_infinity_bytes,
        __glibcpp_f32_has_infinity, __glibcpp_f64_infinity_bytes,
        __glibcpp_f64_has_infinity, __glibcpp_f80_infinity_bytes,
        __glibcpp_f80_has_infinity, __glibcpp_f96_infinity_bytes,
        __glibcpp_f96_has_infinity, __glibcpp_f128_infinity_bytes,
        __glibcpp_f128_has_infinity, __glibcpp_float_infinity_bytes,
        __glibcpp_float_has_infinity, __glibcpp_double_infinity_bytes,
        __glibcpp_double_has_infinity, __glibcpp_long_double_infinity_bytes,
        __glibcpp_long_double_has_infinity): Remove.
        (std::numeric_limits<float>, std::numeric_limits<double>,
        std::numeric_limits<long double>): Use __builtin_huge_val
        to implement has_infinity and infinity().
        * src/limits.cc (__glibcpp_float_infinity, __glibcpp_double_infinity,
        __glibcpp_long_double_infinity): Remove.

From-SVN: r56821
2002-09-04 16:22:18 -07:00
Richard Henderson
5e25fa2263 std_limits.h (__glibcpp_f32_min, [...]): Remove macros.
* include/std/std_limits.h (__glibcpp_f32_min, __glibcpp_f32_max,
	__glibcpp_f32_digits, __glibcpp_f32_digits10, __glibcpp_f32_radix,
	__glibcpp_f32_epsilon, __glibcpp_f32_min_exponent,
	__glibcpp_f32_min_exponent10, __glibcpp_f32_max_exponent,
	__glibcpp_f32_max_exponent10, __glibcpp_f64_min, __glibcpp_f64_max,
	__glibcpp_f64_digits, __glibcpp_f64_digits10, __glibcpp_f64_radix,
	__glibcpp_f64_min_exponent, __glibcpp_f64_min_exponent10,
	__glibcpp_f64_max_exponent, __glibcpp_f64_max_exponent10,
	__glibcpp_f80_min, __glibcpp_f80_max, __glibcpp_f80_digits,
	__glibcpp_f80_digits10, __glibcpp_f80_radix, __glibcpp_f80_epsilon,
	__glibcpp_f80_min_exponent, __glibcpp_f80_min_exponent10,
	__glibcpp_f80_max_exponent, __glibcpp_f80_max_exponent10,
	__glibcpp_f96_min, __glibcpp_f96_max, __glibcpp_f96_digits,
	__glibcpp_f96_digits10, __glibcpp_f96_radix, __glibcpp_f96_epsilon,
	__glibcpp_f96_min_exponent, __glibcpp_f96_min_exponent10,
	__glibcpp_f96_max_exponent, __glibcpp_f96_max_exponent10,
	__glibcpp_f128_min, __glibcpp_f128_max, __glibcpp_f128_digits,
	__glibcpp_f128_digits10, __glibcpp_f128_radix, __glibcpp_f128_epsilon,
	__glibcpp_f128_min_exponent, __glibcpp_f128_min_exponent10,
	__glibcpp_f128_max_exponent, __glibcpp_f128_max_exponent10,
	__glibcpp_float_min, __glibcpp_float_max, __glibcpp_float_digits,
	__glibcpp_float_digits10, __glibcpp_float_radix,
	__glibcpp_float_epsilon, __glibcpp_float_min_exponent,
	__glibcpp_float_min_exponent10, __glibcpp_float_max_exponent,
	__glibcpp_float_max_exponent10, __glibcpp_double_min,
	__glibcpp_double_max, __glibcpp_double_digits,
	__glibcpp_double_digits10, __glibcpp_double_radix,
	__glibcpp_double_epsilon, __glibcpp_double_min_exponent,
	__glibcpp_double_min_exponent10, __glibcpp_double_max_exponent,
	__glibcpp_double_max_exponent10, __glibcpp_long_double_min,
	__glibcpp_long_double_max, __glibcpp_long_double_digits,
	__glibcpp_long_double_digits10, __glibcpp_long_double_radix,
	__glibcpp_long_double_epsilon, __glibcpp_long_double_min_exponent,
	__glibcpp_long_double_min_exponent10,
	__glibcpp_long_double_max_exponent,
	__glibcpp_long_double_max_exponent10): Remove macros.
	(std::numeric_limits<float>, std::numeric_limits<double>,
	std::numeric_limits<long double>): Use protected float.h macros.

From-SVN: r56770
2002-09-03 13:22:06 -07:00
Gabriel Dos Reis
585e661a79 c-common.c (builtin_define_type_precision): New function.
gcc/
 2002-08-28  Gabriel Dos Reis  <gdr@integrable-solutions.net>

 * c-common.c (builtin_define_type_precision): New function.
 (cb_register_builtins): Use it.  Define __WCHAR_UNSIGNED__ is
 wchar_t is unsigned in C++.
 * doc/cpp.texi (Common Predefined Macros): Document
 __WCHAR_UNSIGNED__, __CHAR_BIT__, __WCHAR_BIT__, __SHRT_BIT__,
 __INT_BIT__, __LONG_BIT__, __LONG_LONG_BIT__, __FLOAT_BIT__,
 __DOUBLE_BIT__, __LONG_DOUBLE_BIT__.

libstdc++-v3/

2002-08-28  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	    * include/std/std_limits.h (__glibcpp_char_bits,
	    __glibcpp_short_bits, __glibcpp_int_bits,
	    __glibcpp_long_bits,
	    __glibcpp_long_long_bits, __glibcpp_float_bits,
	    __glibcpp_double_bits, __glibcpp_long_double_bits):
	    Remove.  Use
	    compiler predifined macros.
	    (__glibcpp_wchar_t_is_signed): Define based on compiler
	    predefined
	    __WCHAR_UNSIGNED__.

From-SVN: r56646
2002-08-28 21:41:55 +00:00
Gabriel Dos Reis
2559486f3e std_limits.h (__glibcpp_f32_infinity_bytes, [...]): New macros.
* include/std/std_limits.h (__glibcpp_f32_infinity_bytes,
 	__glibcpp_f32_has_infinity, __glibcpp_f32_QNaN_bytes,
	__glibcpp_f32_has_QNaN, __glibcpp_f32_SNaN_bytes,
	__glibcpp_f32_has_SNaN, __glibcpp_f32_denorm_min_bytes,
	__glibcpp_f32_has_denorm, __glibcpp_f32_is_iec559,
	__glibcpp_f64_infinity_bytes,
	__glibcpp_f64_has_infinity, __glibcpp_f64_QNaN_bytes,
	__glibcpp_f64_has_QNaN, __glibcpp_f64_SNaN_bytes,
	__glibcpp_f64_has_SNaN, __glibcpp_f64_denorm_min_bytes,
	__glibcpp_f64_has_denorm, __glibcpp_f64_is_iec559,
	__glibcpp_f80_infinity_bytes,
	__glibcpp_f80_has_infinity, __glibcpp_f80_QNaN_bytes,
	__glibcpp_f80_has_QNaN, __glibcpp_f80_SNaN_bytes,
	__glibcpp_f80_has_SNaN, __glibcpp_f80_denorm_min_bytes,
	__glibcpp_f80_has_denorm, __glibcpp_f80_is_iec559,
	__glibcpp_f96_infinity_bytes,
	__glibcpp_f96_has_infinity, __glibcpp_f96_QNaN_bytes,
	__glibcpp_f96_has_QNaN, __glibcpp_f96_SNaN_bytes,
	__glibcpp_f96_has_SNaN, __glibcpp_f96_denorm_min_bytes,
	__glibcpp_f96_has_denorm, __glibcpp_f96_is_iec559,
 	__glibcpp_f128_infinity_bytes,
 	__glibcpp_f128_has_infinity, __glibcpp_f128_QNaN_bytes,
	__glibcpp_f128_has_QNaN, __glibcpp_f128_SNaN_bytes,
	__glibcpp_f128_has_SNaN, __glibcpp_f128_denorm_min_bytes,
	__glibcpp_f128_has_denorm, __glibcpp_f128_is_iec559,
	__glibcpp_float_infinity_bytes,
	__glibcpp_float_has_infinity, __glibcpp_float_QNaN_bytes,
	__glibcpp_float_has_QNaN, __glibcpp_float_SNaN_bytes,
	__glibcpp_float_has_SNaN, __glibcpp_float_denorm_min_bytes,
	__glibcpp_float_has_denorm, __glibcpp_float_is_iec559,
	__glibcpp_double_infinity_bytes,
	__glibcpp_double_has_infinity, __glibcpp_double_QNaN_bytes,
	__glibcpp_double_has_QNaN, __glibcpp_double_SNaN_bytes,
	__glibcpp_double_has_SNaN, __glibcpp_double_denorm_min_bytes,
	__glibcpp_double_has_denorm, __glibcpp_double_is_iec559,
	__glibcpp_long_double_infinity_bytes,
	__glibcpp_long_double_has_infinity, __glibcpp_long_double_QNaN_bytes,
	__glibcpp_long_double_has_QNaN, __glibcpp_long_double_SNaN_bytes,
	__glibcpp_long_double_has_SNaN, __glibcpp_long_double_denorm_min_bytes,
	__glibcpp_long_double_has_denorm, __glibcpp_long_double_is_iec559:
	New macros.
	(__glibcpp_word_bits, __glibcpp_word): Likewise.
	(__glibcpp_byte): New typedef.
	(__float_storage, __double_storage, __long_double_storage): New types.
	(__glibcpp_float_infinity, __glibcpp_float_QNaN,
	__glibcpp_float_SNaN, __glibcpp_float_denorm_min): Now
	objects. Declare.
	(__glibcpp_double_infinity, __glibcpp_double_QNaN,
	__glibcpp_double_SNaN, __glibcpp_double_denorm_min): Likewise.
	(__glibcpp_long_double_infinity, __glibcpp_long_double_QNaN,
	__glibcpp_long_double_SNaN, __glibcpp_long_double_denorm_min):
	Likewise.

	* src/limits.cc (__glibcpp_float_infinity, __glibcpp_float_QNaN,
	__glibcpp_float_SNaN, __glibcpp_float_denorm_min): Define.
	(__glibcpp_double_infinity, __glibcpp_double_QNaN,
	__glibcpp_double_SNaN, __glibcpp_double_denorm_min): Likewise.
	(__glibcpp_long_double_infinity, __glibcpp_long_double_QNaN,
	__glibcpp_long_double_SNaN, __glibcpp_long_double_denorm_min):
	Likewise.

From-SVN: r56613
2002-08-27 20:30:26 +00:00
Gabriel Dos Reis
f3cd98c4d6 std_limits.h: Indent conditional macro definitions.
* include/std/std_limits.h: Indent conditional macro
          definitions.

From-SVN: r56570
2002-08-25 20:17:01 +00:00
Gabriel Dos Reis
971cfc6f10 valarray_array.h (_DEFINE_ARRAY_FUNCTION): Use our object function surrogates.
* include/bits/valarray_array.h (_DEFINE_ARRAY_FUNCTION): Use our
	object function surrogates.
	* include/bits/valarray_meta.h (__shift_left): Fix typo.
	(_BinFunClos<>): Remove.
	(_BinFunBase<>): Likewise.
	(_BinFunBase1<>):Likewise.
	(_BinFunBase2<>): Likewise.
	(_DEFINE_EXPR_RELATIONAL_OPERATOR): Likewise.
	(_DEFINE_EXPR_UNARY_OPERATOR): Adjust definition.
	(_DEFINE_EXPR_BINARY_OPERATOR): Likewise.
	(_DEFINE_EXPR_BINARY_FUNCTION): Likewise.
	* include/std/std_valarray.h: Dont #include <functional> anymore.
	(_Bitwise_or<>, _Bitwise_and<>, _Bitwise_xor<>, _Shift_left<>,
	_Shift_right<>): Remove.
	(_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT): Adjust instantiation.
	(_DEFINE_BINARY_OPERATOR): Tweak definition.
	(_DEFINE_LOGICAL_OPERATOR): Remove.
	* testsuite/26_numerics/valarray_name_lookup.C (main): Add more tests.

From-SVN: r56001
2002-08-02 23:08:40 +00:00
Gabriel Dos Reis
74d6b8ca63 valarray_meta.h (_UnFunBase<>): Remove.
* include/bits/valarray_meta.h (_UnFunBase<>): Remove.
	(_UnFunClos<>): Same.
	(_UnBase<>): Reformat.  Make first template-parameter non
	template.
	(_UnClos<>): Likewise.
	(_Expr<>): Reformate.  Adjust unary member operator return types.
	(_DEFINE_EXPR_UNARY_OPERATOR): Adjust definition.
	(_DEFINE_EXPR_UNARY_FUNCTION): Likewise.
	* include/std/std_valarray.h (_UnClos<>): Adjust declaration.
	(valarray<>::_UnaryOp<>):  New nested traits. Adjust unary member
	operator return types.  Reformat.
	(_Bitwise_not): Remove.
	(_DEFINE_VALARRAY_UNARY_OPERATOR): Adjust definition.
	* testsuite/26_numerics/valarray_name_lookup.C: New test.

From-SVN: r55993
2002-08-02 18:10:38 +00:00
Benjamin Kosnik
f13a69eccf char_traits.h: Remove generic definitions.
2002-07-30  Benjamin Kosnik  <bkoz@redhat.com>
            Gabriel Dos Reis  <gdr@nerim.net>

	* include/bits/char_traits.h: Remove generic definitions.
	* include/bits/streambuf_iterator.h (istreambuf_iterator): Use
	eof, not -2.
	* include/bits/istream.tcc (istream::readsome): Don't check
	against eof, instead use constants.
	(istream::sync): Same.
	(istream::sentry::sentry): Use eq_int_type.
	(istream::get): Same.
	* include/bits/ostream.tcc: Change __pad to
	__pad<_CharT, _Traits>::_S_pad.
	* include/bits/locale_facets.h: Add __pad_traits generic and
	ostreambuf_iterator specialization.
	* include/bits/locale_facets.tcc: Change __pad into struct __pad
	with a _CharT and _Traits template parameter and _S_pad static
	member function.
	* src/locale-inst.cc: Update __pad instantiations.

	* include/std/std_fstream.h: Declare _M_underflow_common
	specializations.
	* src/fstream.cc: New. Add _M_underflow_common specializations.
	* include/bits/fstream.tcc (filebuf::close): Use traits_type.
	(filebuf::_M_underflow_common(bool)): Remove generic version, as
	sys_ungetc and custom int_types don't get along.
	* include/std/std_streambuf.h: Add _M_pos.
	* src/Makefile.am (sources): Add fstream.cc.
	* src/Makefile.in: Regenerate.

	* testsuite/21_strings/capacity.cc: Add char_traits specializations.
	* testsuite/22_locale/codecvt_members_unicode_char.cc: Same.
	* testsuite/22_locale/codecvt_members_unicode_wchar_t.cc: Same.
	* testsuite/22_locale/ctor_copy_dtor.cc: Same.
	* testsuite/27_io/filebuf_virtuals.cc (test07): Move to...
	* testsuite/27_io/filebuf.cc: ...here.
	* testsuite/testsuite_hooks.h: Add gnu_char, gnu_int, char_traits
	specialization for both.
	* testsuite/27_io/streambuf.cc: Add instantiation test,
	testsuite_hooks include.
	* testsuite/27_io/istream.cc: Same.
	* testsuite/27_io/ostream.cc: Same.
	* testsuite/27_io/fstream.cc: Same.
	* testsuite/27_io/stringstream.cc: Same.
	* testsuite/27_io/filebuf.cc: Same.
	* testsuite/27_io/stringbuf.cc: Same.

Co-Authored-By: Gabriel Dos Reis <gdr@nerim.net>

From-SVN: r55893
2002-07-31 02:47:36 +00:00
Benjamin Kosnik
bcc6a03a0a re PR libstdc++/7216 (basic_iostream::traits_type is ambiguous issue)
2002-07-25  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/7216
	* include/std/std_istream.h (basic_iostream): Add typedefs for
	char_type, int_type, pos_type, off_type, and traits_type.
	* testsuite/27_io/iostream.cc (test01): Add typedef tests.
	* testsuite/27_io/istream.cc: Same.
	* testsuite/27_io/ostream.cc: Same.
	* testsuite/27_io/filebuf.cc: Same.
	* testsuite/27_io/stringbuf.cc: Replace content, move to...
	* testsuite/27_io/stringbuf_members.cc: ...here.
	* testsuite/27_io/streambuf.cc: Replace content, move to...
	* testsuite/27_io/streambuf_members.cc: ...here.
	* testsuite/27_io/stringstream.cc: Replace content, move to...
	* testsuite/27_io/stringstream_members.cc: ...here.
	* testsuite/27_io/ios.cc: New file.
	* testsuite/27_io/fstream.cc: New file.
	* testsuite/27_io/ifstream.cc: New file.
	* testsuite/27_io/ofstream.cc: New file.
	* testsuite/27_io/istringstream.cc: New file.
	* testsuite/27_io/ostringstream.cc: New file.

From-SVN: r55767
2002-07-26 01:49:36 +00:00
Gabriel Dos Reis
5068f54685 Makefile.am (bits_headers): Remove slice.h
* include/Makefile.am (bits_headers): Remove slice.h
	* include/Makefile.in: Regenerate.
	* include/bits/slice.h (slice): move to include/bits/slice_array.h
	* include/bits/slice.h Remove.
	* include/std/std_valarray.h: Don't #include bits/slice.h anymore.
	* include/bits/slice_array.h: Comply to official coding styles.
	* testsuite/26_numerics/slice.cc: New test.
:w
:q

From-SVN: r55470
2002-07-16 00:19:18 +00:00
Benjamin Kosnik
49433044e4 std_streambuf.h (basic_streambuf::_M_buf): Change to size_t, from int_type.
2002-07-04  Benjamin Kosnik  <bkoz@redhat.com>
            Jack Reeves  <jackw_reeves@hotmail.com>

	* include/std/std_streambuf.h (basic_streambuf::_M_buf): Change to
	size_t, from int_type.
 	(basic_streambuf::_M_buf_size_opt): Same.
 	(basic_streambuf::_S_pback_sizex): Same.
	* include/bits/streambuf.tcc: Same.
	* include/std/std_streambuf.h (basic_streambuf::snextc): Use
	eq_int_type.
	(basic_streambuf::uflow): Same.
	* include/bits/sstream.tcc (basic_stringbuf::overflow): Use
	to_char_type.
	* include/bits/basic_ios.tcc (basic_ios::init): Use _CharT().
	* include/bits/streambuf.tcc (basic_streambuf::xsgetn): Use
	eq_int_type.
	(basic_streambuf::xsputn): Same.
	(__copy_streambufs): Same.

Co-Authored-By: Jack Reeves <jackw_reeves@hotmail.com>

From-SVN: r55242
2002-07-04 09:20:01 +00:00
Benjamin Kosnik
5acf59f8e1 std_memory.h: Fix formatting.
2002-07-03  Benjamin Kosnik  <bkoz@redhat.com>

	* include/std/std_memory.h: Fix formatting.
	* testsuite/20_util/auto_ptr_neg.cc: New.
	* testsuite/20_util/auto_ptr.cc: Tweaks.
	* testsuite/23_containers/map_operators.cc (test01): Split into..
	* testsuite/23_containers/map_operators_neg.cc (test01): ...this. New.
	* testsuite/23_containers/set_operators.cc: Move to...
	* testsuite/23_containers/set_operators_neg.cc: ...here.
	* testsuite/README: Add some more naming rules.

From-SVN: r55241
2002-07-04 07:25:19 +00:00
Jack Reeves
16ad69a19d re PR libstdc++/3946 (auto_ptr_ref constructor allows dangerous conversion)
2002-07-03  Jack Reeves  <jackw_reeves@hotmail.com>
            Kenny Simpson  <theonetruekenny@yahoo.com>
            Phil Edwards  <pme@gcc.gnu.org>

	PR libstdc++/3946
	* testsuite/20_util/auto_ptr.cc (test08):  New test.
	* include/std/std_memory.h (auto_ref_ptr):  Make constructor explicit.
	(auto_ptr::operator auto_ptr_ref):  Fix typo.
	General reformatting and doxygenating of the whole file.

Co-Authored-By: Kenny Simpson <theonetruekenny@yahoo.com>
Co-Authored-By: Phil Edwards <pme@gcc.gnu.org>

From-SVN: r55223
2002-07-03 22:25:06 +00:00
Phil Edwards
446c5b11aa PR libstdc++/7157, PR libstdc++/7158, PR libstdc++/7161
2002-06-28  Phil Edwards  <pme@gcc.gnu.org>

	PR libstdc++/7157, PR libstdc++/7158, PR libstdc++/7161
	* include/std/std_queue.h:  Include deque.tcc, vector.tcc.
	* include/std/std_stack.h:  Include deque.tcc.
	* testsuite/23_containers/adaptors.cc:  New file.

From-SVN: r55090
2002-06-29 01:10:51 +00:00
Phil Edwards
4df6abc6b3 TODO: Update.
2002-06-16  Phil Edwards  <pme@gcc.gnu.org>

	* docs/doxygen/TODO:  Update.
	* docs/doxygen/tables.html:  Uncomment magical middle column.
	* docs/doxygen/user.cfg.in:  Kludge to ignore function-like macros.
	* include/bits/stl_queue.h:  Doxygenate and reformat.
	* include/bits/ios_base.h, include/std/std_streambuf.h:  Add comment
	for deprecated names required by the standard.

From-SVN: r54666
2002-06-16 11:29:53 +00:00
Phil Edwards
83144cfcfa Makefile.am: Add new files.
2002-06-12  Phil Edwards  <pme@gcc.gnu.org>

	* include/Makefile.am:  Add new files.
	* include/Makefile.in:  Regenerate.

	* include/bits/stl_deque.h, include/bits/stl_list.h,
	include/bits/stl_vector.h:  Clean up, reformat.  Move definitions...
	* include/bits/deque.tcc, include/bits/list.tcc,
	include/bits/vector.tcc:  ...to here.  New files.

	* include/ext/stl_hashtable.h:  Inclide correct full headers.
	* include/std/std_deque.h:  Include .tcc files for now.
	* include/std/std_list.h:  Likewise.
	* include/std/std_vector.h:  Likewise.

From-SVN: r54562
2002-06-12 22:07:53 +00:00
Phil Edwards
7f2e0dffc6 TODO: Update.
2002-06-03  Phil Edwards  <pme@gcc.gnu.org>

	* docs/doxygen/TODO:  Update.
	* docs/doxygen/user.cfg.in (SORT_MEMBER_DOCS):  Set to off, now that
	some class members are in 14882 order.
	* docs/html/ext/howto.html:  3.1 is in the past now, not the future.

	* include/std/std_bitset.h:  Update comment.
	* src/bitset.cc:  Update comments, clean up spacing.

	* src/Makefile.am (sources):  Alphabetize for convenience.
	* src/Makefile.in:  Regenerate.

From-SVN: r54200
2002-06-03 04:45:03 +00:00
Phil Edwards
bb12c8093d std_bitset.h (_Base_biteset<0>): New specialization.
2002-05-24  Phil Edwards  <pme@gcc.gnu.org>

	libstdc++/6282
	* include/std/std_bitset.h (_Base_biteset<0>):  New specialization.
	(operator>>):  If nothing was extracted, don't fail in the
	zero-length case.
	* testsuite/23_containers/bitset_ctor.cc (test02):  New test.

From-SVN: r53844
2002-05-24 18:16:00 +00:00