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-11 Carlo Wood <carlo@alinoe.com>
* include/bits/demangle.h: Prepend accessors of
class qualifier with 'get_' in order to fix warnings
when compiling with -Wshadow.
From-SVN: r64172
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-08 Jerry Quinn <jlquinn@optonline.net>
* include/bits/locale_facets.tcc (num_put::do_put(bool)): Use
locale cache for truename and falsename.
From-SVN: r63970
2003-03-07 Paolo Carlini <pcarlini@unitus.it>
* include/bits/fstream.tcc (_M_convert_to_external):
Set __elen to zero if codecvt::out eventually fails.
From-SVN: r63954
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 Jerry Quinn <jlquinn@optonline.net>
* include/bits/streambuf_iterator.h (_M_put): Set _M_failed if
sputn fails.
* testsuite/27_io/ostream_fail.cc: New test.
From-SVN: r63944
2003-03-05 Carlo Wood <carlo@alinoe.com>
* include/bits/ios_base.h(ios_base::Init::_S_initialized()): Added
_S_initialized() in order to allow debugging libraries to detect
when the std streams are initialized from an overloaded operator
new.
From-SVN: r63852
* src/strstream.cc (strstreambuf::overflow): Make sure operands of
min and max have the same type.
* include/bits/basic_string.tcc (append, rfind, compare): Likewise.
From-SVN: r63802
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-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-21 Jerry Quinn <jlquinn@optonline.net>
* include/bits/locale_facets.tcc (_M_convert_float): Replace
numpunct facet accesses with data from __locale_cache.
From-SVN: r63213
2003-02-19 Paolo Carlini <pcarlini@unitus.it>
* include/bits/sstream.tcc (overflow): According to
27.7.1.3, p5, actual output is performed by sputc(c).
From-SVN: r63147
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-13 Paolo Carlini <pcarlini@unitus.it>
* include/bits/ostream.tcc (sentry::sentry): Improve
performance-wise the fix for libstdc++/9563.
From-SVN: r62855
2003-02-12 Paolo Carlini <pcarlini@unitus.it>
PR libstdc++/9563
* include/bits/ostream.tcc (sentry::sentry): Check
the state of the stream after the preparation.
* testsuite/27_io/ostream_sentry.cc (test02): Add.
From-SVN: r62779
2003-02-11 Jerry Quinn <jlquinn@optonline.net>
Benjamin Kosnik <benjamin@redhat.com>
* include/bits/locale_facets.h (__num_base): Add _S_atoms_out.
Add indexes into this array.
(__num_base::_S_atoms): To _S_atoms_in.
(num_put::_M_insert): Rename to _M_pad.
(num_put::_M_convert_int): Adjust remove __mod, __modl arguments.
(num_put::_M_widen_int): Rename to _M_group_int.
(num_put::_M_widen_float): Rename to _M_group_float.
* include/bits/locale_facets.tcc (__int_to_char): New inline
function and adapter functions.
(num_put::_M_group_int): Streamline.
(num_put::_M_group_float): Streamline.
(num_put::_M_convert_int): Remove unused parameter names. Choose
large enough buffer for text. Use __int_to_char instead of
__convert_from_v. Formatted text is now at the end of the buffer.
(num_put::_M_convert_float): Preliminary fixups.
* src/locale-inst.cc (__convert_from_v<long long>): Add ifdef.
(__int_to_char<unsigned long long>): Same.
(__int_to_char<char, unsigned long>): New.
(__int_to_char<char, unsigned long long>): New.
(__int_to_char<wchar_t, unsigned long>): New.
(__int_to_char<wchar_t, unsigned long long>): New.
Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com>
From-SVN: r62731
2003-02-11 Paolo Carlini <pcarlini@unitus.it>
PR libstdc++/9320
* include/ext/stdio_filebuf.h
(stdio_filebuf(int, std::ios_base::openmode, bool, int_type),
stdio_filebuf(std::__c_file*, std::ios_base::openmode, int_type)):
Change to take a __size parameter of type size_t, not
of type (template parameter dependent) int_type.
* src/ios.cc (ios_base::Init::_S_ios_create): Change type of
size vars to size_t.
* testsuite/ext/stdio_filebuf.cc: Add.
From-SVN: r62691
2003-02-06 Benjamin Kosnik <bkoz@redhat.com>
* testsuite/22_locale/codecvt/encoding/wchar_t/1.cc (test01):
Explicitly use the "C" locale.
* testsuite/22_locale/codecvt/max_length/wchar_t/1.cc (test01): Same.
2003-02-06 Petur Runolfsson <peturr02@ru.is>
DR 75
DR 305
PR libstdc++/9028 (partial)
PR libstdc++/9224
PR libstdc++/9246
PR libstdc++/9247
* src/codecvt.cc
(codecvt<wchar_t, char, mbstate_t>::do_encoding,
codecvt<wchar_t, char, mbstate_t>::do_length,
codecvt<wchar_t, char, mbstate_t>::do_max_length):
Move...
* config/locale/generic/codecvt_members.cc: ...here.
* config/locale/gnu/codecvt_members.cc: ...and here.
* config/locale/generic/codecvt_members.cc,
* config/locale/gnu/codecvt_members.cc
(codecvt<wchar_t, char, mbstate_t>::do_encoding
codecvt<wchar_t, char, mbstate_t>::do_in,
codecvt<wchar_t, char, mbstate_t>::do_length,
codecvt<wchar_t, char, mbstate_t>::do_max_length,
codecvt<wchar_t, char, mbstate_t>::do_out):
New implementation that handles stateless encodings,
including UTF-8.
* config/locale/generic/codecvt_members.cc,
* config/locale/gnu/codecvt_members.cc,
* config/locale/ieee_1003.1-2001/codecvt_specializations.h,
* include/bits/codecvt.h,
* src/codecvt.cc
(codecvt::length, codecvt::do_length):
Change type of first argument of length and do_length from
'const state_type&' to 'state_type&' according to DR 75.
* testsuite/22_locale/codecvt/always_noconv/wchar_t/1.cc: Cleanup.
* testsuite/22_locale/codecvt/always_noconv/wchar_t/2.cc: New test.
* testsuite/22_locale/codecvt/always_noconv/wchar_t/3.cc: New test.
* testsuite/22_locale/codecvt/always_noconv/wchar_t/4.cc: New test.
* testsuite/22_locale/codecvt/encoding/wchar_t/1.cc:
Cleanup and check for correct return value from encoding
for "C" locale.
* testsuite/22_locale/codecvt/encoding/wchar_t/2.cc: New test.
* testsuite/22_locale/codecvt/encoding/wchar_t/3.cc: New test.
* testsuite/22_locale/codecvt/encoding/wchar_t/4.cc: New test.
* testsuite/22_locale/codecvt/in/wchar_t/1.cc: Cleanup.
* testsuite/22_locale/codecvt/in/wchar_t/2.cc: New test.
* testsuite/22_locale/codecvt/in/wchar_t/3.cc: New test.
* testsuite/22_locale/codecvt/in/wchar_t/4.cc: New test.
* testsuite/22_locale/codecvt/in/wchar_t/5.cc: New test.
* testsuite/22_locale/codecvt/in/wchar_t/6.cc: New test.
* testsuite/22_locale/codecvt/in/wchar_t/7.cc: New test.
* testsuite/22_locale/codecvt/in/wchar_t/8.cc: New test.
* testsuite/22_locale/codecvt/in/wchar_t/9.cc: New test.
* testsuite/22_locale/codecvt/length/char/1.cc: Cleanup.
* testsuite/22_locale/codecvt/length/char/2.cc: New test.
* testsuite/22_locale/codecvt/length/wchar_t/1.cc: Cleanup.
* testsuite/22_locale/codecvt/length/wchar_t/2.cc: New test.
* testsuite/22_locale/codecvt/length/wchar_t/3.cc: New test.
* testsuite/22_locale/codecvt/length/wchar_t/4.cc: New test.
* testsuite/22_locale/codecvt/length/wchar_t/5.cc: New test.
* testsuite/22_locale/codecvt/length/wchar_t/6.cc: New test.
* testsuite/22_locale/codecvt/length/wchar_t/7.cc: New test.
* testsuite/22_locale/codecvt/max_length/wchar_t/1.cc: Cleanup.
* testsuite/22_locale/codecvt/max_length/wchar_t/2.cc: New test.
* testsuite/22_locale/codecvt/max_length/wchar_t/3.cc: New test.
* testsuite/22_locale/codecvt/max_length/wchar_t/4.cc: New test.
* testsuite/22_locale/codecvt/out/wchar_t/1.cc: Cleanup.
* testsuite/22_locale/codecvt/out/wchar_t/2.cc: New test.
* testsuite/22_locale/codecvt/out/wchar_t/3.cc: New test.
* testsuite/22_locale/codecvt/out/wchar_t/4.cc: New test.
* testsuite/22_locale/codecvt/out/wchar_t/5.cc: New test.
* testsuite/22_locale/codecvt/out/wchar_t/6.cc: New test.
* testsuite/22_locale/codecvt/out/wchar_t/7.cc: New test.
* testsuite/22_locale/codecvt/unicode/1.cc: New test.
* testsuite/22_locale/codecvt/unshift/wchar_t/1.cc: Cleanup.
* testsuite/22_locale/codecvt/unshift/wchar_t/2.cc: New test.
* testsuite/22_locale/codecvt/unshift/wchar_t/3.cc: New test.
* testsuite/22_locale/codecvt/unshfit/wchar_t/4.cc: New test.
From-SVN: r62474
2003-02-04 Paolo Carlini <pcarlini@unitus.it>
PR libstdc++/9439, PR libstdc++/9425
* config/io/basic_file_stdio.cc
(__basic_file<char>::seekoff, seekpos): Return -1L if
fseek fails.
* include/bits/fstream.tcc (basic_filebuf::seekoff):
Check _M_file.seekoff return value; always return
pos_type(off_type(-1)) in case of failure.
(basic_filebuf::pbackfail): Check this->seekoff return
value and return traits_type::eof() in case of failure.
* testsuite/27_io/filebuf_virtuals.cc (test09): Add.
From-SVN: r62408