* gcc.dg/const-elim-1.c: xfail for xtensa.
[official-gcc.git] / libstdc++-v3 / ChangeLog
blobad452c78667eb25e209d48a3646ec7d39018180f
1 2004-03-03  Paolo Carlini  <pcarlini@suse.de>
3         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
4         Fix warning regression.
6 2004-03-03  Paolo Carlini  <pcarlini@suse.de>
8         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
9         Deal properly with empty __digits and negative frac_digits,
10         clean-up a bit.
12 2004-03-03  Jonathan Wakely  <redi@gcc.gnu.org>
14         * docs/html/documentation.html: Regenerate.
16 2004-03-02  Paolo Carlini  <pcarlini@suse.de>
18         PR libstdc++/14320
19         * include/bits/postypes.h (class streamoff): Remove, now
20         streamoff is just typedef a 64 bit signed integer type.
21         (class fpos): Tweak consistently.
22         * testsuite/27_io/fpos/14320-1.cc: New.
23         * testsuite/27_io/fpos/14320-2.cc: New.
24         * testsuite/27_io/fpos/14320-3.cc: New.
25         * testsuite/27_io/fpos/14320-4.cc: New.
26         * testsuite/27_io/fpos/14320-5.cc: New.
27         * testsuite/27_io/fpos/mbstate_t/4_neg.cc: xfail for now.
29 2004-03-02  Paolo Carlini  <pcarlini@suse.de>
31         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
32         Reorganize a bit the main parsing loop, thus early detecting
33         an empty value component.
34         * testsuite/22_locale/money_get/get/char/16.cc: New.
35         * testsuite/22_locale/money_get/get/wchar_t/16.cc: New.
37 2004-03-02  Benjamin Kosnik  <bkoz@redhat.com>
39         Support automake 1.8.2
40         * configure.ac (AM_INIT_AUTOMAKE): Add -Wno-override.
41         * po/Makefile.am (EXTRA_DIST): New.
42         * po/Makefile.in: Regenerate.
43         * Makefile.in: Same.
44         * include/Makefile.in: Same.
45         * libmath/Makefile.in: Same.
46         * libsupc++/Makefile.in: Same.
47         * src/Makefile.in: Same.
48         * testsuite/Makefile.in: Same.
50         * include/Makefile.am (${host_builddir}/gthr-posix.h): Use
51         __GXX_WEAK__ instead of SUPPORTS_WEAK.
52         (${host_builddir}/gthr-default.h): Same.
53         (${host_builddir}/gthr.h): Same.
54         * acinclude.m4 (GLIBCXX_ENABLE_THREAD): Remove
55         _GLIBCXX_SUPPORTS_WEAK, as this behavior can be modified via
56         -fno-weak.
57         * aclocal.m4: Regenerate.
58         * acconfig.h: Remove _GLIBCXX_SUPPORTS_WEAK.
59         * config.h.in: Regenerate.
60         * configure: Same.
61         
62 2004-03-01  Benjamin Kosnik  <bkoz@redhat.com>
64         Support autoconf 2.59
65         * acinclude.m4: Quote correctly.
66         * aclocal.m4: Regenerate.
67         * linkage.m4: Same.
69 2004-03-01  Benjamin Kosnik  <bkoz@redhat.com>
71         * docs/html/test.html: Add multilib RUNTESTFLAGS example.
73         * docs/html/18_support/howto.html: Add bit about writing to
74         stderr, mostly by Zack.
75         
76 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
78         * include/bits/locale_facets.tcc (money_get<>::_M_extract,
79         money_get<>::do_get(string_type&)): ... and two more.
81 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
83         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
84         Fix thinkos in the switch from string_type& to string& as last
85         argument.
87 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
89         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float):
90         Also when parsing exponent sign, first look for thousands_sep
91         and decimal_point; tweak a bit.
92         * testsuite/22_locale/num_get/get/char/15.cc: New.
93         * testsuite/22_locale/num_get/get/wchar_t/15.cc: New.
94         
95         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
96         num_get<>::_M_extract_int): Reorder some conditionals.
98 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
100         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
101         Consistently with numpunct, enforce the requirements in
102         22.2.6.3, p3 for the thousands separators; tweak a bit.
103         * testsuite/22_locale/money_get/get/char/15.cc: New.
104         * testsuite/22_locale/money_get/get/wchar_t/15.cc: New.
105         
106 2004-03-01  David Billinghurst <David.Billinghurst@riotinto.com>
108         * testsuite/lib/libstdc++.exp (v3-list-tests): Use 
109         testsuite_files from correct multilib blddir when running
110         testsuite.
112 2004-02-29  Phil Edwards  <phil@codesourcery.com>
114         * testsuite/Makefile.am (check-abi, check-abi-verbose):  Copy
115         the summary file to the logfile.
116         * testsuite/Makefile.in:  Regenerate.
118 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
120         * config/cpu/hppa/atomicity.h (__atomic_add): Make first argument
121         volatile.
122         * config/os/hpux/os_defines.h (_GLIBCXX_INST_ATOMICITY_LOCK): Use
123         __GXX_WEAK__ instead of _GLIBCXX_SUPPORTS_WEAK.
125 2004-02-28  Paolo Carlini  <pcarlini@suse.de>
127         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float):
128         According to 22.2.3.1, p2, 'units' may be followed by 'e' with
129         no 'decimal-point' in the middle: in this case too we must fix
130         up __found_grouping; slightly tweak.
131         * testsuite/22_locale/num_get/get/char/14.cc: New.
132         * testsuite/22_locale/num_get/get/wchar_t/14.cc: New.
134 2004-02-27  Eric Christopher  <echristo@redhat.com>
135             Phil Edwards  <phil@codesourcery.com>
137         * testsuite/22_locale/collate/compare/wchar_t/2.cc,
138         testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc,
139         testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc,
140         testsuite/22_locale/collate/hash/wchar_t/2.cc,
141         testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc,
142         testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc,
143         testsuite/22_locale/collate/transform/wchar_t/2.cc,
144         testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc,
145         testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc:
146         Use dg-require-iconv.
147         * testsuite/lib/libstdc++.exp:  Load target-supports.exp.
149 2004-02-27  Phil Edwards  <phil@codesourcery.com>
150             Eric Christopher  <echristo@redhat.com>
152         * testsuite/config/default.exp:  Update with comments.
153         (${tool}_target_compile):  New wrapper routine.
154         * testsuite/lib/dg-options.exp:  New file, with dg-require-iconv.
155         * testsuite/lib/libstdc++.exp:  Update with comments and cosmetic
156         fixes.
157         (load_gcc_lib, v3track):  New routines.
158         (v3-init):  Rename to libstdc++_init.
159         * testsuite/libstdc++-dg/normal.exp:  No longer call v3-init.
160         Move DEFAULT_CXXFLAGS handling into libstdc++_init.
162 2004-02-27  Benjamin Kosnik  <bkoz@redhat.com>
164         * config/cpu/hppa/atomicity.h: Include c++config.h to get defines.
166         * src/misc-inst.cc (_S_atomicity_lock): Move to __gnu_cxx.
168         * config/os/irix/irix5.2/atomicity.h: Merge..
169         * config/os/irix/irix6.5/atomicity.h: Merge..
170         * config/os/irix/atomicity.h: ...into this.
171         * config/os/irix/atomic_word.h: New.
172         * configure.host: Set atomic_word_dir for irix.
174         * hppa/atomicity.h: Change __Atomicity_lock to _Atomicity_lock.
175         * i386/atomicity.h: Same.
176         * m68k/atomicity.h: Same.
177         * sparc/atomicity.h: Same.
179 2004-02-27  David Edelsohn  <edelsohn@gnu.org>
181         * config/os/aix/atomicity.h: Use __gnu_cxx namespace. Remove
182         static, and inline keywords.
184 2004-02-27  Paolo Carlini  <pcarlini@suse.de>
186         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
187         num_get<>::_M_extract_int, money_get<>::_M_extract): If appropriate,
188         call reserve on the __tmp_gruping string.
189         (num_get<>::_M_extract_float): Don't append unnecessarily a
190         char() to the returned string.
191         * include/bits/locale_facets.tcc: Trivial reformattings.
193 2004-02-27  Paolo Carlini  <pcarlini@suse.de>
195         * include/bits/locale_facets.h (money_get<>::_M_extract):
196         Change signature: now takes a plain string&.
197         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
198         Update consistently the definition; use the moneypunct cache
199         to parse the value; use swap to change __units.
200         (money_get<>::do_get(long double&)): Update call of _M_extract,
201         avoid ctype::narrow, not correct wrt the standard.
202         (money_get<>::do_get(string_type&)): Likewise, update call
203         of _M_extract, use ctype::widen.
204         * src/locale-inst.cc: Tweak instantiations of _M_extract.
206 2004-02-26  Ian Lance Taylor  <ian@wasabisystems.com>
208         * testsuite/demangle/abi_examples/01.cc: Expect error -2.
209         * testsuite/demangle/abi_examples/02.cc: Likewise.
210         * testsuite/demangle/regression/cw-11.cc: Likewise.
211         * testsuite/demangle/regression/cw-16.cc: Change two expected
212         results to match libiberty demangler output.
214 2004-02-26  Benjamin Kosnik  <bkoz@redhat.com>
216         PR libstdc++/10246
217         * libsupc++/Makefile.am: Use libiberty demangler.
218         (c_sources): Add cp-demangle.c.
219         * libsupc++/Makefile.in: Regenerate.
220         * src/Makefile.am (sources): Remove demangle.cc.
221         * src/Makefile.in: Regenerate.
222         * include/Makefile.am (bits_headers): Move demangle.h.
223         (ext_headers): ...here.
224         * include/Makefile.in: Regenerate.
225         * include/bits/demangle.h: Move...
226         * include/ext/demangle.h: ...here.
227         * src/demangle.cc: Remove.
229 2004-02-26  Benjamin Kosnik  <bkoz@redhat.com>
231         * include/bits/demangle.h: Add type template parameter to all
232         templates with just an Allocator template parameter.
234 2004-02-25  Benjamin Kosnik  <bkoz@redhat.com>
236         * include/bits/atomicity.h: New, forward declarations for __atomic_add
237         and __exchange_and_add.
238         * config/cpu/generic/atomic_word.h: New, typdef for atomic word.
239         * config/cpu/cris/atomic_word.h: Same.
240         * config/cpu/sparc/atomic_word.h: Same.
241         * include/bits/ios_base.h (_Callback_list::_M_remove_reference):
242         Qualifiy with __gnu_cxx.
243         (_Callback_list::_M_add_reference): Same.
244         * include/bits/locale_classes.h (locale::facet::_M_add_reference): Add.
245         (locale::facet::_M_remove_reference): Same.
246         (locale::_Impl::_M_add_reference): Add.
247         (locale::_Impl::_M_remove_reference): Same.
248         * include/bits/basic_string.h (basic_string::_Rep::_M_refcopy): Same.
249         (basic_string::_Rep::_M_dispose): Same.
250         * src/ios.cc (ios_base::xalloc): Same.
251         * src/ios_init.cc (ios_base::Init::Init): Same.
252         (ios_base::Init::~Init): Same.
253         * src/locale.cc (locale::id::_M_id): Same.
254         * config/cpu/i486/atomicity.h: Use __gnu_cxx namespace. Remove
255         static, and inline keywords.
256         * config/cpu/alpha/atomicity.h: Same.
257         * config/cpu/cris/atomicity.h: Same.
258         * config/cpu/generic/atomicity.h: Same.
259         * config/cpu/hppa/atomicity.h: Same.
260         * config/cpu/i386/atomicity.h: Same.
261         * config/cpu/ia64/atomicity.h: Same.
262         * config/cpu/m68k/atomicity.h: Same.
263         * config/cpu/mips/atomicity.h: Same.
264         * config/cpu/powerpc/atomicity.h: Same.
265         * config/cpu/s390/atomicity.h: Same.
266         * config/cpu/sparc/atomicity.h: Same.
267         
268         * src/Makefile.am (host_sources): Add atomicity.cc.
269         (atomicity.cc): New rule.
270         * src/Makefile.in: Regenerate.
271         * include/Makefile.am (host_headers): Remove host atomicity.h.
272         (host_headers): Add atomic_word.h.
273         (bits_headers): Add bits atomicity.h.
274         Change ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR.
275         * include/Makefile.in: Regenerate.
276         * configure.host (atomic_word_dir): Add.
277         * configure.ac: Substitute ATOMIC_WORD_SRCDIR. Change
278         ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR.
279         * configure: Regenerate.
280         * config/linker-map.gnu: Export __exchange_and_add, and __atomic_add.
282         * testsuite/27_io/ios_base/cons/assign_neg.cc: Adjust line numbers.
283         * testsuite/27_io/ios_base/cons/copy_neg.cc: Same.      
284         
285 2004-02-25  Jonathan Wakely  <redi@gcc.gnu.org>
287         * docs/html/20_util/howto.html, docs/html/20_util/allocator.html,
288         docs/html/ext/howto.html, docs/html/ext/mt_allocator.html:
289         Fix markup, more <link> tags.
291 2004-02-25  Carlo Wood  <carlo@alinoe.com>
293         * bits/demangle.h
294         namespace __gnu_cxx::demangler
295         (session<Allocator>::qualifier_list_Allocator): Add
296         (session<Allocator>::M_qualifier_list_alloc): Add
297         (session<Allocator>::decode_type_with_postfix):
298         Use M_qualifier_list_alloc instead of calling operator new/delete.
300 2004-02-24  Paolo Carlini  <pcarlini@suse.de>
302         PR libstdc++/14252
303         * include/bits/postypes.h (class streamoff): Add operator++(),
304         operator++(int), operator--() and operator--(int).
305         * testsuite/27_io/fpos/14252.cc: New.
307 2004-02-24  Richard Sandiford  <rsandifo@redhat.com>
309         * include/bits/locale_facets.tcc (num_get::_M_extract_int): Fix bounds
310         error in handling of hex constants.
312 2004-02-24  Paolo Carlini  <pcarlini@suse.de>
314         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
315         Prefer basic_string::append to operator+= and a temporary.
317 2004-02-23  Benjamin Kosnik  <bkoz@redhat.com>
319         * libsupc++/vterminate.cc (__gnu_cxx::__verbose_terminate_handler):
320         Only use fputs, not write.
321         
322 2004-02-23  Benjamin Kosnik  <bkoz@redhat.com>
324         * include/ext/malloc_allocator.h: Add operators ==, !=.
325         * include/ext/new_allocator.h: Add operators ==, !=.
326         * include/ext/mt_allocator.h (__mt_alloc::tune): New.
327         (__mt_alloc::_S_get_options): New.
328         (__mt_alloc::_S_set_options): New.      
329         (__mt_alloc::_S_thread_key_destr): To _S_destroy_thread_key.
330         (__mt_alloc::_S_no_of_bins): To _S_bin_size.
331         Move functions out of line, simplify, format.
332         * src/allocator.cc: Simplify explicit instantiations.
333         * include/bits/allocator.h: Tweak.
334         
335 2004-02-22  Paolo Carlini  <pcarlini@suse.de>
337         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
338         Restructure formatting of value component, first dealing with
339         the non-decimal digits; use reserve.
341 2004-02-22  Paolo Carlini  <pcarlini@suse.de>
343         * include/bits/locale_facets.h (class money_get): Inherit
344         from money_base too; tweak declaration of _M_extract, now
345         parameterized on _Intl too.
346         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
347         Update definition to use the cache; call reserve on __res to
348         avoid multiple reallocations; fix parsing of sign component
349         according to 22.2.6.1.2, p3.
350         (money_get<>::do_get(long double&),
351         money_get<>::do_get(string_type&)): Update calls of _M_extract. 
352         * src/locale-inst.cc:  Add instantiations of
353         money_get::_M_extract<false> and money_get::_M_extract<true>.
354         * testsuite/22_locale/money_get/get/char/14.cc: New.
355         * testsuite/22_locale/money_get/get/wchar_t/14.cc: Ditto.
356         
357 2004-02-21  Mark Mitchell  <mark@codesourcery.com>
359         * libsupc++/vterminate.cc
360         (__gnu_cxx::__verbose_terminate_handler): Guard against recursive
361         calls to terminate.
362         * src/demangle.cc (__cxa_demangle): Wrap in try-catch block.
364         * testsuite/testsuite_hooks.cc (__gnu_test::set_memory_limits): Do
365         not set RLIMIT_AS on HP-UX.
367 2004-02-21  Mark Mitchell  <mark@codesourcery.com>
369         * testsuite/testsuite_hooks.cc (__gnu_test::set_memory_limits): Do
370         not set RLIMIT_AS on HP-UX.
372 2004-02-21  Paolo Carlini  <pcarlini@suse.de>
374         * include/bits/locale_facets.h (class money_base): Add { _S_minus,
375         _S_zero, _S_end } enum, _S_atoms.
376         (struct __moneypunct_cache<>): Parameterize on _Intl too; add
377         _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size,
378         _M_negative_sign_size, _M_atoms; tweak constructor consistently.
379         (__moneypunct_cache<>::~__moneypunct_cache): Update.
380         (__moneypunct_cache<>::_M_cache): Fill the cache.
381         (class moneypunct): Tweak __cache_type typedef.
382         (class money_put): Inherit from money_base too; tweak declaration
383         of _M_insert, now parameterized on _Intl.
384         * include/bits/locale_facets.tcc
385         (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New.
386         (money_put<>::_M_insert): Update definition to use the cache;
387         call reserve on __res to avoid multiple reallocations.
388         (money_put<>::do_put(long double),
389         money_put<>::do_put(const string_type&): Update calls of _M_insert.
390         * config/locale/generic/monetary_members.cc
391         (moneypunct<char, true>::_M_initialize_moneypunct,
392         moneypunct<char, false>::_M_initialize_moneypunct,
393         moneypunct<wchar_t, true>::_M_initialize_moneypunct,
394         moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update.
395         * config/locale/gnu/monetary_members.cc: Likewise.
396         * config/locale/gnu/monetary_members.cc
397         (moneypunct<wchar_t, true>::~moneypunct(),
398         moneypunct<wchar_t, false>::~moneypunct()): Likewise.
399         * src/globals_locale.cc: Tweak fake_money_cache_c.
400         * src/locale-inst.cc: Add instantiations for
401         money_put::_M_insert<false> and money_put::_M_insert<true> and
402         __moneypunct_cache<C, false>, __moneypunct_cache<C, true>.
403         * src/locale_facets.cc: Define money_base::_S_atoms.
404         * src/locale_init.cc: Update placement new of
405         __moneypunct_cache<char, false>, __moneypunct_cache<char, true>,
406         __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>.
408         * config/locale/generic/numeric_members.cc: Clean up.
409         * config/locale/gnu/numeric_members.cc: Likewise.
410         * testsuite/22_locale/money_put/put/char/1.cc: Likewise.
411         * testsuite/22_locale/money_put/put/char/2.cc: Likewise.
412         * testsuite/22_locale/money_put/put/char/3.cc: Likewise.
413         * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise.
414         * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise.
415         * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise.
417 2004-02-20  Mark Mitchell  <mark@codesourcery.com>
419         * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc: Open
420         FIFO for writing with ios_base::in|ios_base::out.
421         * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise.
422         * testsuite/27_io/objects/char/7.cc: Likewise.
423         * testsuite/27_io/objects/char/9661-1.cc: Open FIFO for writing
424         with "r+".
426 2004-02-19  David Edelsohn  <edelsohn@gnu.org>
428         * 22_locale/collate/compare/wchar_t/2.cc: Change input-charset
429         from iso-8859-1 to ISO8859-1.
430         * 22_locale/collate/compare/wchar_t/wrapped_env.cc: Same.
431         * 22_locale/collate/compare/wchar_t/wrapped_locale.cc: Same.
432         * 22_locale/collate/hash/wchar_t/2.cc: Same.
433         * 22_locale/collate/hash/wchar_t/wrapped_env.cc: Same.
434         * 22_locale/collate/hash/wchar_t/wrapped_locale.cc: Same.
435         * 22_locale/collate/transform/wchar_t/2.cc: Same.
436         * 22_locale/collate/transform/wchar_t/wrapped_env.cc: Same.
437         * 22_locale/collate/transform/wchar_t/wrapped_locale.cc: Same.
439 2004-02-18  Paolo Carlini  <pcarlini@suse.de>
441         * include/bits/locale_facets.h (money_get<>::_M_extract):
442         New, helper for do_get.
443         (money_put<>::_M_insert): Likewise, for do_put.
444         * include/bits/locale_facets.tcc (money_get<>::_M_extract,
445         money_put<>::_M_insert): Define.
446         (money_get<>::do_get(long double&), money_get<>::do_get(
447         string_type&), money_put::do_put(long double),
448         money_put::do_put(const string_type&)): Use the helpers.
450 2004-02-18  Paolo Carlini  <pcarlini@suse.de>
452         * config/io/basic_file_stdio.cc (__gnu_internal::xwritev):
453         Rewrite, avoiding recursion.
454         (__gnu_internal::xwrite): Minor tweaks.
456 2004-02-17  Stefan Olsson  <stefan@xapa.se>
458         * include/ext/mt_allocator.h: Removed the last
459         pointer. Deallocated blocks are now added to the front of
460         freelists as proposed by Felix Yen.  This gives roughly 10%
461         performance boost and saves some memory.
462         * docs/html/ext/mt_allocator.html: Change due to that deallocated
463         blocks now are added to the front of freelists. The reason to this
464         approach is also explained.
466 2004-02-17  Paolo Carlini  <pcarlini@suse.de>
468         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
469         num_get<>::_M_extract_int, money_get<>::do_get): Simplify
470         grouping fidelity conditional.
472 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
474         * testsuite/27_io/basic_filebuf/overflow/char/13858.cc:
475         Qualify exception with std::.
476         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Ditto.
477         * testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc: Ditto.
478         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
479         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
480         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
482 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
484         * testsuite/ext/enc_filebuf/char/13189.cc: Don't check
485         for now that the catch block is not reached.
486         * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Likewise.
488 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
490         * include/bits/locale_facets.tcc (money_get::do_get(string_type&)):
491         Fix parsing of the remaining sign characters.
492         * 22_locale/money_get/get/char/2.cc: Tweak: now, correctly,
493         the input is scanned 'til eof.
494         * 22_locale/money_get/get/char/4.cc: Likewise.
495         * 22_locale/money_get/get/wchar_t/2.cc: Likewise.
496         * 22_locale/money_get/get/wchar_t/4.cc: Likewise.
497         * 22_locale/money_get/get/char/8.cc: Tweak: override do_neg_format,
498         not do_pos_format: the former is the only one that matters during
499         input.
500         * 22_locale/money_get/get/wchar_t/8.cc: Likewise.
502         * 22_locale/money_get/get/char/6.cc: Minor tweak.
503         * 22_locale/money_get/get/wchar_t/6.cc: Likewise.
505 2004-02-15  David Asher  <david.asher@cavium.com>
507         PR libstdc++/11352
508         * include/bits/locale_facets.tcc (__pad<>::_S_pad): Don't
509         access __olds beyond __oldlen.
511 2004-02-14  Paolo Carlini  <pcarlini@suse.de>
513         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Make
514         sure the exception is actually thrown.
515         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
516         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
517         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
519 2004-02-14  Paolo Carlini  <pcarlini@suse.de>
521         PR libstdc++/13858
522         * include/bits/fstream.tcc (basic_filebuf<>::_M_convert_to_external):
523         In case of conversion errors, throw ios_failure; simplify.
524         * testsuite/27_io/basic_filebuf/overflow/char/13858.cc: New.
525         * testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc: Ditto.
526         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Tweak,
527         previously we didn't throw in case of conversion errors, instead
528         just returned eof().
529         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
530         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
531         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
533         * include/bits/fstream.tcc (basic_filebuf<>::overflow):
534         Trivial simplification of a conditional.
536 2004-02-12  Paolo Carlini  <pcarlini@suse.de>
538         PR libstdc++/13731 (final part: writev)
539         * config/io/basic_file_stdio.cc (__gnu_internal::xwritev):
540         New, a wrapper around writev() handling partial writes.
541         (__basic_file<char>::xwrite): Move to __gnu_internal and make
542         static.
543         (__basic_file<char>::xsputn): Update call.
544         (__basic_file<char>::xsputn_2): Likewise.       
545         * config/io/basic_file_stdio.h (__basic_file<char>::xwrite):
546         Don't declare, now static.
548 2004-02-11  Stefan Olsson  <stefan@xapa.se>
550         * docs/html/ext/mt_allocator.html: New.
552 2004-02-11  Benjamin Kosnik  <bkoz@redhat.com>
554         * docs/html/20_util/allocator.html: New file, consolidate
555         allocator information here. Revamp.
556         * docs/html/documentation.html: Change links.
557         * docs/html/20_util/howto.html: Same.
558         * docs/html/ext/howto.html: Same.
560 2004-02-11  Paolo Carlini  <pcarlini@suse.de>
562         PR libstdc++/13731 (first part: write)
563         * config/io/basic_file_stdio.h (__basic_file<char>::xwrite):
564         New, declare.
565         * config/io/basic_file_stdio.cc (__basic_file<char>::xwrite):
566         Define it: a wrapper around write() handling partial write.
567         (__basic_file<char>::xsputn): Use it.
568         (__basic_file<char>::xsputn_2): Likewise.
570 2004-02-11  Paolo Carlini  <pcarlini@suse.de>
571             Petur Runolfsson  <peturr02@ru.is>
573         PR libstdc++/14078
574         * include/std/std_istream.h (operator>>(__istream_type& (*)
575         (__istream_type&)), operator>>(__ios_type& (*)(__ios_type&)),
576         operator>>(ios_base& (*)(ios_base&))): Declare inline.
577         * include/std/std_ostream.h (operator<<(__ostream_type& (*)
578         (__ostream_type&)), operator<<(__ios_type& (*)(__ios_type&)),
579         operator<<(ios_base& (*) (ios_base&))): Likewise.
580         * testsuite/performance/27_io/fmtflags_manipulators.cc: New.
582 2004-02-10  Loren J. Rittle  <ljrittle@acm.org>
584         PR libstdc++/14098
585         * config/linker-map.gnu: Add typeinfo and typeinfo name for
586         __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> >.
588         PR libstdc++/14097
589         * config/linker-map.gnu: Add typeinfo and typeinfo name for
590         __gnu_cxx::stdio_filebuf<char, std::char_traits<char> >.
592 2004-02-09  Loren J. Rittle  <ljrittle@acm.org>
594         * include/ext/pool_allocator.h: Include c++config.h.
596 2004-02-09  Stefan Olsson  <stefan@xapa.se>
598         * include/ext/mt_allocator.h: thread_id is unused in non threaded
599         applications and now has a ifdef to remove it completely on
600         compilers without thread support. Include stdlib.h due to a
601         compiler warning on getenv().
603 2004-02-09  Paul Brook  <paul@codesourcery.com>
605         * libstdc++-v3/configure.host: Explicitly check for atomicity.h file.
607 2004-02-09  Paolo Carlini  <pcarlini@suse.de>
609         PR libstdc++/14071
610         * src/locale_init.cc (locale::global(const locale&)): Use
611         locale::name() in order to decide whether calling setlocale.
612         * testsuite/22_locale/locale/global_locale_objects/14071.cc: New.
614         * include/bits/locale_classes.h (locale::_Impl::_M_check_same_name()):
615         Avoid computing &= unnecessarily.
617 2004-02-09  James E Wilson  <wilson@specifixinc.com>
619         PR libstdc++/5625
620         * libsuspc++/eh_personality.cc (PERSONALITY_FUNCTION): Use
621         __builtin_extend_pointer.
623 2004-02-09  Paolo Carlini  <pcarlini@suse.de>
625         PR libstdc++/14072
626         * include/bits/basic_ios.tcc (basic_ios<>::_M_cache_locale):
627         Don't leave dangling pointers.
628         * testsuite/27_io/basic_ios/imbue/14072.cc: New.
629         * testsuite/22_locale/numpunct/members/pod/2.cc: Tweak, the num_put
630         facet is needed in the final test.
632 2004-02-09  Bernardo Innocenti  <bernie@develer.com>
634         * crossconfig.m4: Don't enable _GLIBCXX_USE_LFS on *-uclinux*.
635         * configure: Regenerate.
637 2004-02-08  Richard Henderson  <rth@redhat.com>
639         PR libstdc++/14026
640         * libsupc++/eh_catch.cc (__cxa_begin_catch): Don't adjust 
641         uncaughtExceptions during nested catch rethrow.
642         * testsuite/18_support/14026.cc: New.
644 2004-02-08  Paolo Carlini  <pcarlini@suse.de>
646         * include/bits/basic_string.tcc (assign(const _CharT*, size_type)):
647         When working in place remember to set the state to sharable
648         (otherwise, _M_mutate does it).
650 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
652         * include/bits/allocator.h, include/bits/basic_ios.h,
653         include/bits/basic_ios.tcc, include/bits/basic_string.h,
654         include/bits/basic_string.tcc, include/bits/boost_concept_check.h,
655         include/bits/char_traits.h, include/bits/codecvt.h,
656         include/bits/concurrence.h, include/bits/cpp_type_traits.h,
657         include/bits/demangle.h, include/bits/deque.tcc,
658         include/bits/fstream.tcc, include/bits/functexcept.h,
659         include/bits/gslice.h, include/bits/gslice_array.h,
660         include/bits/indirect_array.h, include/bits/ios_base.h,
661         include/bits/istream.tcc, include/bits/list.tcc,
662         include/bits/locale_classes.h, include/bits/locale_facets.h,
663         include/bits/locale_facets.tcc, include/bits/localefwd.h,
664         include/bits/mask_array.h, include/bits/ostream.tcc,
665         include/bits/postypes.h, include/bits/slice_array.h,
666         include/bits/sstream.tcc, include/bits/stl_algo.h,
667         include/bits/stl_algobase.h, include/bits/stl_bvector.h,
668         include/bits/stl_construct.h, include/bits/stl_deque.h,
669         include/bits/stl_function.h, include/bits/stl_heap.h,
670         include/bits/stl_iterator.h, include/bits/stl_iterator_base_funcs.h,
671         include/bits/stl_list.h, include/bits/stl_map.h,
672         include/bits/stl_multimap.h, include/bits/stl_multiset.h,
673         include/bits/stl_numeric.h, include/bits/stl_pair.h,
674         include/bits/stl_queue.h, include/bits/stl_raw_storage_iter.h,
675         include/bits/stl_relops.h, include/bits/stl_set.h,
676         include/bits/stl_stack.h, include/bits/stl_tempbuf.h,
677         include/bits/stl_threads.h, include/bits/stl_tree.h,
678         include/bits/stl_uninitialized.h, include/bits/stl_vector.h,
679         include/bits/stream_iterator.h, include/bits/streambuf.tcc,
680         include/bits/streambuf_iterator.h,include/bits/stringfwd.h,
681         include/bits/type_traits.h, include/bits/valarray_after.h,
682         include/bits/valarray_array.h, include/bits/valarray_array.tcc,
683         include/bits/valarray_before.h, include/bits/vector.tcc: Remove
684         trailing whitespace.
686 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
688         * include/bits/basic_string.h: Fix comment.
690 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
692         * include/bits/stl_construct.h: Wrap overlong lines, reformat
693         according to the coding standards.
694         * include/bits/stl_pair.h: Likewise.
695         * include/bits/stl_raw_storage_iter.h: Likewise.
696         * include/bits/stl_stack.h: Likewise.
697         * include/bits/stl_uninitialized.h: Likewise.
698         * include/bits/stream_iterator.h: Likewise.
699         * include/bits/streambuf_iterator.h: Likewise.
700         * include/bits/type_traits.h: Likewise.
702 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
704         * testsuite/27_io/basic_filebuf/open/char/9507.cc:
705         Adjust timings.
707 2004-02-05  Loren J. Rittle  <ljrittle@acm.org>
709         * scripts/check_performance: Support PCH.
711         * scripts/check_performance (CXX): Add -DNOTHREAD.
712         * testsuite/performance/20_util/allocator/insert.cc: Integrate
713         threaded tests from insert_insert.cc.  Tweak iterations,
714         remove special cases.
715         * testsuite/performance/20_util/allocator/insert_insert.cc:
716         Make all tests single-threaded. Tweak iterations.
717         * testsuite/performance/20_util/allocator/map_thread.cc:
718         Tweak iterations.
719         * testsuite/performance/20_util/allocator/producer_consumer.cc:
720         Likewise.
722 2004-02-05  Geoffrey Keating  <geoffk@apple.com>
724         PR 12179
725         * .cvsignore: New.
726         * acinclude.m4 (GLIBCXX_EXPORT_INSTALL_INFO): Use 'gcc', not
727         'gcc-lib'.  Add comment about poorly-named variables.
728         * aclocal.m4: Regenerate.
729         * configure: Regenerate.
731 2004-02-05  Paolo Carlini  <pcarlini@suse.de>
733         * include/bits/locale_facets.tcc (money_get::do_get(string_type&)):
734         Thousands-sep are always optional; thousands-sep are not allowed
735         after the decimal_point.
736         * testsuite/22_locale/money_get/get/char/12.cc: New.
737         * testsuite/22_locale/money_get/get/char/13.cc: New.
738         * testsuite/22_locale/money_get/get/wchar_t/12.cc: New.
739         * testsuite/22_locale/money_get/get/wchar_t/13.cc: New.
741         * testsuite/22_locale/money_get/get/char/1.cc: Clean-up.
742         * testsuite/22_locale/money_get/get/char/2.cc: Likewise.
743         * testsuite/22_locale/money_get/get/char/3.cc: Likewise.
744         * testsuite/22_locale/money_get/get/char/4.cc: Likewise.
745         * testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise.
746         * testsuite/22_locale/money_get/get/wchar_t/2.cc: Likewise.
747         * testsuite/22_locale/money_get/get/wchar_t/3.cc: Likewise.
748         * testsuite/22_locale/money_get/get/wchar_t/4.cc: Likewise.
750         * testsuite/22_locale/money_get/get/char/9.cc: Fix citation from
751         the standard.
752         * testsuite/22_locale/money_get/get/wchar_t/9.cc: Likewise.
754 2004-02-05  Richard Sandiford  <rsandifo@redhat.com>
756         * config/os/irix/irix6.5/os_defines.h (_GLIBCXX_FIONREAD_TAKES_OFF_T):
757         Define.
758         * config/io/basic_file_stdio.cc (__basic_file<char>::showmanyc): Use
759         it to decide whether FIONREAD should take an off_t or int argument.
761 2004-02-05  Paolo Carlini  <pcarlini@suse.de>
763         * include/bits/stl_function.h: Minor formatting changes.
765 2004-02-04  Zack Weinberg  <zack@codesourcery.com>
767         Revert previous change to config/abi/*/baseline_symbols.txt.
769 2004-02-04  Benjamin Kosnik  <bkoz@redhat.com>
770             Zack Weinberg  <zack@codesourcery.com>
772         * config/io/basic_file_stdio.cc (__gnu_internal::fopen_mode):
773         New function.
774         (__basic_file<char>::sys_open, __basic_file<char>::open): Use it.
775         (__basic_file<char>::_M_open_mode): Delete.
776         * config/io/basic_file_stdio.cc: Delete declaration of _M_open_mode.
778         * testsuite/27_io/basic_filebuf/close/char/9964.cc
779         * testsuite/27_io/basic_filebuf/open/char/9507.cc:
780         Correct flags to filebuf::open calls.
782         * config/abi/alpha-freebsd5/baseline_symbols.txt
783         * config/abi/alpha-linux-gnu/baseline_symbols.txt
784         * config/abi/hppa-linux-gnu/baseline_symbols.txt
785         * config/abi/i386-freebsd4/baseline_symbols.txt
786         * config/abi/i386-freebsd5/baseline_symbols.txt
787         * config/abi/i486-linux-gnu/baseline_symbols.txt
788         * config/abi/ia64-linux-gnu/baseline_symbols.txt
789         * config/abi/mips-linux-gnu/baseline_symbols.txt
790         * config/abi/sparc-freebsd5/baseline_symbols.txt
791         * config/abi/sparc-linux-gnu/baseline_symbols.txt
792         * config/abi/x86_64-linux-gnu/baseline_symbols.txt:
793         Remove entry for __basic_file<char>::_M_open_mode.
795 2004-02-04  Loren J. Rittle  <ljrittle@acm.org>
797         * testsuite/performance/20_util/allocator/insert.cc (main): Tweak.
799 2004-02-04  Felix Yen  <fwy@alumni.brown.edu>
801         * testsuite/performance/20_util/producer_consumer.cc: New.
802         * testsuite/performance/20_util/allocator/insert_insert.cc: Two loops.
804 2004-02-04  Benjamin Kosnik  <bkoz@redhat.com>
806         * testsuite/performance/20_util/allocator.cc: Move to..
807         * testsuite/performance/20_util/allocator/insert.cc: ...here.
808         * testsuite/performance/20_util/allocator_thread.cc: Move to...
809         * testsuite/performance/20_util/allocator/insert_insert.cc: ...here.
810         * testsuite/performance/20_util/allocator_map_thread.cc: Move to...
811         * testsuite/performance/20_util/allocator/map_thread.cc: ...here.
813 2004-02-04  Jonathan Wakely  <redi@gcc.gnu.org>
815         * docs/html/faq/index.html: Recommend using LD_LIBRARY_PATH.
816         * docs/html/faq/index.txt: Regenerate.
818 2004-02-04  Dhruv Matani  <dhruvbird@gmx.net>
820         * include/ext/debug_allocator.h: _M_extra now stands for the
821         number of extra objects instead of the number of extra bytes.
822         (debug_allocator::allocate): Adjust.
823         (debug_allocator::deallocate): Adjust.
825         * include/ext/pool_allocator.h: Fix typo.
827 2004-02-03  Felix Yen  <fwy@alumni.brown.edu>
828             Benjamin Kosnik  <bkoz@redhat.com>
830         * testsuite/performance/20_util/allocator.cc: Add map,
831         deque, set tests.
832         * testsuite/performance/20_util/allocator_thread.cc: Same.
834 2004-02-03  Paolo Carlini  <pcarlini@suse.de>
836         * include/bits/basic_string.h (insert(iterator)): Remove,
837         non-standard and already scheduled for removal.
839 2004-02-03  Paolo Carlini  <pcarlini@suse.de>
841         * include/bits/stl_iterator_base_funcs.h: Minor formatting
842         and indentation tweaks.
843         * include/bits/stl_iterator_base_types.h: Likewise.
844         * include/bits/stl_list.h: Likewise.
845         * include/bits/stl_map.h: Likewise.
846         * include/bits/stl_tempbuf.h: Likewise.
848 2004-02-02  Jerry Quinn  <jlquinn@optonline.net>
850         * include/bits/gslice.h, include/bits/gslice_array.h,
851         include/bits/indirect_array.h, include/bits/mask_array.h,
852         include/bits/slice_array.h, include/bits/stl_numeric.h,
853         include/std/std_valarray.h:  Update copyright years.
855 2004-02-02  Jerry Quinn  <jlquinn@optonline.net>
857         * include/bits/gslice.h (gslice):  Document.
858         * include/bits/gslice_array.h (gslice_array):  Document.
859         * include/bits/indirect_array (indirect_array):  Document.
860         * include/bits/mask_array (mask_array):  Document.
861         * include/bits/slice_array.h (slice,slice_array):  Document.
862         * include/bits/stl_numeric.h (accumulate, inner_product, partial_sum,
863         adjacent_difference):  Document
864         * include/std/std_valarray.h (valarray):  Document.
866 2004-02-02  Benjamin Kosnik  <bkoz@redhat.com>
868         * docs/html/19_diagnostics/howto.html: Move verbose terminate
869         documentation...
870         * docs/html/18_support/howto.html: Here.
871         * docs/html/documentation.html: Add reference here.
873 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
875         * config/locale/gnu/c++locale_internal.h: Remove prototypes
876         of no longer used GLIBC thread locale functions.
878 2004-02-02  Eric Christopher  <echristo@redhat.com>
879             Zack Weinberg  <zack@codesourcery.com>
881         * testsuite/22_locale/collate/compare/wchar_t/2.cc: Remove xfail. Use
882         -finput-charset.
883         * testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc: Ditto.
884         * testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc: Ditto
885         * testsuite/22_locale/collate/hash/wchar_t/2.cc: Ditto.
886         * testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc: Ditto.
887         * testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc: Ditto.
888         * testsuite/22_locale/collate/transform/wchar_t/2.cc: Ditto.
889         * testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc: Ditto.
890         * testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc:
891         Ditto.
893 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
895         * include/bits/stl_function.h: Additional minor tweaks.
896         * include/bits/stl_multiset.h: Likewise.
898         * include/bits/stl_queue.h: Minor tweaks.
900 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
902         PR libstdc++/13976 (continued)
903         * include/ext/malloc_allocator.h (malloc_allocator::deallocate):
904         Make the second parameter unnamed, to void unused parameter
905         warnings.
906         * include/ext/new_allocator.h (new_allocator::deallocate): Ditto.
908 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
910         PR libstdc++/13976
911         * include/ext/malloc_allocator.h (malloc_allocator::allocate):
912         Make the second parameter unnamed, to void unused parameter
913         warnings.
914         * include/ext/mt_allocator.h (__mt_alloc::allocate): Ditto.
915         * include/ext/new_allocator.h (new_allocator::allocate): Ditto.
917 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
919         * include/bits/stl_algo.h: Additional minor tweaks.
920         * include/bits/stl_map.h: Likewise.
921         * include/bits/stl_multimap.h: Likewise.
922         * include/bits/stl_multiset.h: Likewise.
923         * include/bits/stl_set.h: Likewise.
924         * include/bits/stl_tree.h: Likewise.
926 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
928         * include/bits/vector.tcc (vector::_M_insert_aux(iterator)):
929         Remove, unused.
931 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
933         * include/bits/stl_function.h: Additional minor tweaks.
935 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
937         * include/bits/deque.tcc: Wrap overlong lines, constify
938         a few variables, reformat according to the coding standards.
939         * include/bits/list.tcc: Likewise.
940         * include/bits/stl_deque.h: Likewise.
941         * include/bits/stl_function.h: Likewise.
942         * include/bits/stl_iterator.h: Likewise.
943         * include/bits/stl_iterator_base_funcs.h: Likewise.
944         * include/bits/stl_iterator_base_types.h: Likewise.
945         * include/bits/stl_list.h: Likewise.
946         * include/bits/stl_map.h: Likewise.
947         * include/bits/stl_multimap.h: Likewise.
948         * include/bits/stl_multiset.h: Likewise.
949         * include/bits/stl_relops.h: Likewise.
950         * include/bits/stl_set.h: Likewise.
952 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
954         * include/bits/stl_bvector.h: Wrap overlong lines, constify
955         a few variables, reformat according to the coding standards.
956         * include/bits/stl_tree.h: Likewise.
958 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
960         * include/bits/stl_algo.h: Minor additional reformat, add
961         copyright year.
962         * include/bits/stl_algobase.h: Add copyright year.
964 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
966         * include/bits/stl_algo.h: Wrap overlong lines, constify
967         a few variables, reformat according to the coding standards.
968         * include/bits/stl_algobase.h: Likewise.
969         * include/bits/stl_heap.h: Likewise.
971 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
973         * include/bits/basic_string.h (_Rep::operator[]): Remove, unused.
975         * include/bits/basic_string.h: Fix two comments.
977 2004-01-31  Per Bothner  <per@bothner.com>
979         * include/ext/mt_allocator.h
980         (__mt_alloc::_S_thread_freelist_mutex): Guard with
981         __GTHREAD_MUTEX_INIT.
983 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
985         * include/bits/basic_string.tcc (_Rep::_S_create): Minor tweak.
987 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
989         * testsuite/21_strings/basic_string/cons/char/6.cc: New.
990         * testsuite/21_strings/basic_string/cons/wchar_t/6.cc: New.
991         * testsuite/performance/21_strings/string_cons_input_iterator.cc: New.
993 2004-01-30  Felix Yen  <fwy@alumni.brown.edu>
995         * testsuite/performance/20_util/allocator_thread.cc (do_loop):
996         Don't use clear, but instead assign. Use insert.
998 2004-01-30  Benjamin Kosnik  <bkoz@redhat.com>
1000         * src/demangle.cc: Add instantiations.
1001         * src/Makefile.am: Remove special rules for demangle.lo, demangle.o.
1002         * src/Makefile.in: Regenerate.
1004 2004-01-30  David Edelsohn  <edelsohn@gnu.org>
1006         * src/allocator.cc: Protect _S_get_thread_id() and
1007         _S_thread_key_destr() with #ifdef __GTHREADS.
1009 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
1011         Reshuffle performance testsuite.
1012         * testsuite/performance/allocator.cc, allocator_map_thread.cc,
1013         allocator_thread.cc, complex_norm.cc, container_benchmark.cc,
1014         cout_insert_int.cc, filebuf_copy.cc, filebuf_sputc.cc,
1015         fstream_seek_write.cc, ifstream_extract_float.cc,
1016         ifstream_extract_int.cc, ifstream_getline.cc, is_wchar_t.cc,
1017         list_create_fill_sort.cc, map_create_fill.cc,
1018         narrow_widen_char.cc, narrow_widen_wchar_t.cc,
1019         ofstream_insert_float.cc, ofstream_insert_int.cc,
1020         string_append.cc, wchar_t_in.cc, wchar_t_length.cc,
1021         wchar_t_out.cc: Split into...
1022         * testsuite/performance/20_util/allocator.cc: New.
1023         * testsuite/performance/20_util/allocator_map_thread.cc: New.
1024         * testsuite/performance/20_util/allocator_thread.cc: New.
1025         * testsuite/performance/21_strings/string_append: New.
1026         * testsuite/performance/22_locale/is_wchar_t.cc: New.
1027         * testsuite/performance/22_locale/narrow_widen_char.cc: New.
1028         * testsuite/performance/22_locale/narrow_widen_wchar_t.cc: New.
1029         * testsuite/performance/22_locale/wchar_t_in.cc: New.
1030         * testsuite/performance/22_locale/wchar_t_length.cc: New.
1031         * testsuite/performance/22_locale/wchar_t_out.cc: New.
1032         * testsuite/performance/23_containers/container_benchmark.cc: New.
1033         * testsuite/performance/23_containers/list_create_fill_sort.cc: New.
1034         * testsuite/performance/23_containers/map_create_fill.cc: New.
1035         * testsuite/performance/26_numerics/complex_norm.cc: New.
1036         * testsuite/performance/27_io/cout_insert_int.cc: New.
1037         * testsuite/performance/27_io/filebuf_copy.cc: New.
1038         * testsuite/performance/27_io/filebuf_sputc.cc: New.
1039         * testsuite/performance/27_io/fstream_seek_write.cc: New.
1040         * testsuite/performance/27_io/ifstream_extract_float.cc: New.
1041         * testsuite/performance/27_io/ifstream_extract_int.cc: New.
1042         * testsuite/performance/27_io/ifstream_getline.cc: New.
1043         * testsuite/performance/27_io/ofstream_insert_float.cc: New.
1044         * testsuite/performance/27_io/ofstream_insert_int.cc: New.
1046 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
1048         * include/bits/basic_string.tcc (_Rep::_S_create):
1049         Never allocate a string bigger than max_size(); always keep
1050         __capacity and __size in sync to avoid memory leaks at
1051         deallocation time.
1053 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
1055         * include/bits/basic_string.tcc (_S_construct(_InIterator,
1056         _InIterator, const _Alloc&, input_iterator_tag)): Simplify
1057         the double loop, streamline.
1059         * include/bits/basic_string.tcc: Very minor tweaks.
1061 2004-01-30  Loren J. Rittle  <ljrittle@acm.org>
1063         * scripts/check_performance: Only compile with $THREAD_FLAG
1064         when test is marked to require it.  Allow multiple
1065         compilations/executions of marked tests.
1066         * testsuite/testsuite_performance.h (report_performance):
1067         Report dynamic thread support status.
1068         (report_header): Likewise.
1069         * testsuite/performance/allocator.cc: Stabilize iteration
1070         count.  Support more allocators.  Mark each allocator test to
1071         run and report independently.
1072         * testsuite/performance/allocator_map_thread.cc: Likewise.
1073         * testsuite/performance/allocator_thread.cc: Likewise.
1075 2004-01-29  Stephen M. Webb  <stephen.webb@bregmasoft.com>
1077         * config/local/generic/c_locale.h: Change ::malloc() to new char[].
1078         * config/local/gnu/c_locale.h: Change ::malloc() to new char[].
1079         * include/bits/stl_tempbuf.h: Convert _Temporary_buffer to use
1080         std::get_temporary_buffer() instead of duplicating its code.
1081         Update to C++STYLE conventions.
1082         * include/std/std_memory.h (get_temporary_buffer): Use ::operator
1083         new() instead of std::malloc().
1084         (return_temporary_buffer): Use ::operator delete() instead of
1085         std::free().
1087 2004-01-29  Benjamin Kosnik  <bkoz@redhat.com>
1089         * include/bits/allocator.h: Temporary switch to new_allocator as
1090         the default to unjam bootstraps.
1092 2004-01-28  Benjamin Kosnik  <bkoz@redhat.com>
1094         * include/Makefile.am (bits_headers): Remove allocator_traits.h.
1095         * include/Makefile.in: Regenerate.
1096         * include/bits/allocator_traits.h: Remove.
1097         * include/bits/allocator.h: Remove allocator_traits.h include, and
1098         relevant comments.
1099         (allocator): Empty base class, inherit from the underlying allocator.
1100         * src/allocator-inst.cc: Move __pool_alloc instantiation to...
1101         * src/allocator.cc: ...here. New. For the underlying allocators.
1102         Add __mt_alloc, __pool_alloc, new_allocator, malloc_allocator bits.
1103         * config/linker-map.gnu: Remove __pool_alloc bits.
1104         * src/Makefile.am (sources): Add allocator.cc.
1105         * src/Makefile.in: Regenerate.
1106         * testsuite/20_util/allocator/1.cc: Split second test into...
1107         * testsuite/20_util/allocator/8230.cc: ...this.
1108         * include/bits/stl_bvector.h (__gnu_norm): Change bit_vector
1109         typedef to use std::allocatore. Format.
1110         * include/ext/pool_allocator.h: Remove allocator_traits.h include,
1111         _Alloc_traits.
1112         * include/ext/mt_allocator.h (__gnu_cxx): Qualify
1113         __throw_bad_alloc calls. Don't include <memory>.
1114         * include/ext/malloc_allocator.h: Remove <memory> include.
1115         * include/ext/new_allocator.h (new_allocator): Same.
1116         * include/ext/ropeimpl.h (__gnu_cxx): Remove __alloc using
1117         declaration. Switch __alloc to _Alloc.
1118         * include/ext/hashtable.h: Remove __alloc.
1119         * include/backward/alloc.h: Only inject allocator, not
1120         implementation details.
1122         * include/ext/mt_allocator.h: Replace free with delete.
1124 2004-01-28  Benjamin Kosnik  <bkoz@redhat.com>
1126         * src/globals_io.cc: Change to __gnu_internal namespace.
1127         * src/globals_locale.cc: Same.
1128         * src/locale_init.cc: Same.
1129         * src/ios_init.cc: Same.
1131 2004-01-28  Stefan Olsson  <stefan@snon.net>
1133         * include/ext/mt_allocator.h: Replaced all malloc() calls with
1134         operator new(). Added support for the env variable
1135         GLIBCXX_FORCE_NEW (this required the _S_init call to be the first
1136         one in allocate() as well). Fix typos.
1138 2004-01-28  Paolo Carlini  <pcarlini@suse.de>
1140         * include/bits/basic_string.h (_S_create(size_t,
1141         const _Alloc&): Change signature to take two size_type
1142         arguments.
1143         * include/bits/basic_string.tcc (_S_construct(_InIterator,
1144         _InIterator, const _Alloc&, input_iterator_tag)): Update
1145         call, tweak a bit.
1146         (_S_construct(_InIterator, _InIterator, const _Alloc&,
1147         forward_iterator_tag)): Likewise.
1148         (_S_construct(size_type, _CharT, const _Alloc&)): Likewise.
1149         (_M_mutate(size_type, size_type, size_type)): Don't
1150         implement the exponential growth policy, demand it to
1151         _S_create, update call and simplify.
1152         (_M_clone(const _Alloc&, size_type)): Likewise.
1153         (_S_create(size_type, size_type, const _Alloc&)): Implement
1154         the growth policy, simplify otherwise.
1156         * include/bits/basic_string.h (_Rep::operator[]): Tweak
1157         signature to take a size_type, consistently with the other
1158         members.
1160 2004-01-27  Benjamin Kosnik  <bkoz@redhat.com>
1162         * testsuite/27_io/ios_base/storage/11584.cc: Correct new and
1163         delete declarations, add include and test variable.
1165 2003-01-27  Jerry Quinn  <jlquinn@optonline.net>
1167         * include/bits/codecvt.h, include/bits/locale_facets.h,
1168         include/bits/postypes.h, include/bits/stl_bvector.h,
1169         include/bits/stl_multiset.h, include/bits/stl_set.h,
1170         include/bits/stream_iterator.h, include/bits/streambuf_iterator.h,
1171         include/std/std_complex.h:  Document.
1173 2004-01-27  Jerry Quinn  <jlquinn@optonline.net>
1175         PR libstdc++/11584
1176         * include/bits/ios_base.h (ios_base::_M_grow_words):  Add
1177         iword/pword selector.
1178         (ios_base::iword, ios_base::pword):  Use it.
1179         * src/ios.cc (ios_base::_M_grow_words):  Clear _M_word_zero
1180         iword or pword member on alloc failure.
1181         * testsuite/27_io/ios_base/storage/11584.cc:  New test.
1183 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
1184             PJ Darcy  <darcypj@us.ibm.com>
1186         * configure.host: Add support for *-tpf.
1187         * crossconfig.m4: Likewise.
1188         * configure: Regenerate.
1189         * config/os/tpf: New directory.
1190         * config/os/tpf/os_defines.h: New file.
1191         * config/os/tpf/ctype_base.h: Likewise.
1192         * config/os/tpf/ctype_inline.h: Likewise.
1193         * config/os/tpf/ctype_noninline.h: Likewise.
1195 2004-01-27  Paolo Carlini  <pcarlini@suse.de>
1197         PR libstdc++/13884
1198         * include/bits/sstream.tcc: Guard use of extern template.
1200 2004-01-27  Paolo Carlini  <pcarlini@suse.de>
1202         * include/bits/basic_string.tcc
1203         (basic_string(const basic_string&, size_type, size_type),
1204         basic_string(const basic_string&, size_type, size_type,
1205         const _Alloc&)): Avoid unnecessarily constructing iterators.
1207 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
1209         * config/locale/generic/c_locale.cc: Fix throw messages
1210         to use the __N marker.
1211         * config/locale/gnu/c_locale.cc: Likewise.
1212         * config/locale/ieee_1003.1-2001/codecvt_specializations.h:
1213         Likewise.
1214         * docs/html/17_intro/C++STYLE: Likewise.
1215         * include/bits/basic_ios.tcc: Likewise.
1216         * include/bits/fstream.tcc: Likewise.
1217         * include/bits/vector.tcc: Likewise.
1218         * include/ext/ropeimpl.h: Likewise.
1219         * include/std/std_bitset.h: Likewise.
1220         * src/ios.cc: Likewise.
1221         * src/locale.cc: Likewise.
1222         * src/localename.cc: Likewise.
1224 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
1226         * include/bits/basic_string.h (_M_replace_aux): Use the
1227         __N marker in throw message.
1228         * include/bits/basic_string.tcc (assign(const _CharT*,
1229         size_type), insert(size_type, const _CharT*, size_type),
1230         replace(size_type, size_type, const _CharT*, size_type),
1231         reserve, _Rep::_S_create, resize, _M_replace_dispatch):
1232         Likewise.
1234         * include/bits/basic_string.h, include/bits/basic_string.tcc:
1235         Fold overlong lines, minor formatting changes.
1237 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
1239         * include/bits/basic_string.h (replace(iterator, iterator,
1240         const basic_string&)): Remove _GLIBCXX_DEBUG_PEDASSERT.
1241         (replace(iterator, iterator, const _CharT*)): Ditto.
1242         (replace(iterator, iterator, const _CharT*, size_type)):
1243         Add missing _GLIBCXX_DEBUG_PEDASSERT.
1245 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
1247         * include/bits/basic_string.tcc (replace(size_type,
1248         size_type, const _CharT*, size_type)): Implement optimized
1249         in-place algorithm for non-overlapping ranges.
1250         * testsuite/21_strings/basic_string/replace/char/6.cc: New.
1251         * testsuite/21_strings/basic_string/replace/wchar_t/6.cc: New.
1253         * include/bits/basic_string.tcc (insert(size_type,
1254         const _CharT*, size_type)): Tweak slightly.
1256 2004-01-26  Andreas Schwab  <schwab@suse.de>
1258         * config/locale/gnu/monetary_members.cc: Restore locale before
1259         rethrowing exception.
1261 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
1263         * include/bits/basic_string.h (_M_replace_aux, _M_replace_safe):
1264         Define inline here.
1265         * include/bits/basic_string.tcc (_M_replace_aux, _M_replace_safe):
1266         Move inline.
1268         * include/bits/basic_string.tcc: Very minor tweaks.
1270 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
1272         * testsuite/performance/string_append.cc: Increase number
1273         of iterations.
1275 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
1277         * include/bits/basic_string.h (erase(size_type, size_type),
1278         erase(iterator), erase(iterator, iterator)): Call _M_replace_safe
1279         instead, thus avoiding redundant check for length_error.
1281         * include/bits/basic_string.h: Tweak some comments.
1283 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
1285         * include/bits/basic_string.tcc (operator+(const _CharT*,
1286         const basic_string&)): No need to go through the append
1287         taking two iterators.
1289 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
1291         * include/bits/basic_string.tcc (rfind(_CharT, size_type)):
1292         Revert last change to use std::min: machine language is worse.
1293         (find_last_of(const _CharT*, size_type, size_type)): Ditto.
1294         (find_last_not_of(const _CharT*, size_type, size_type)): Ditto.
1295         (find_last_not_of(_CharT, size_type)): Ditto.
1297         * include/bits/basic_string.tcc (insert(size_type, const _CharT*,
1298         size_type)): Discard the value returned by _M_check.
1299         (replace(size_type, size_type, const _CharT*, size_type)): Ditto.
1300         (append(const basic_string&, size_type, size_type)): Ditto.
1301         (copy(_CharT*, size_type, size_type)): Ditto.
1302         (compare(size_type, size_type, const basic_string&)): Ditto.
1303         (compare(size_type, size_type, const basic_string&,
1304         size_type, size_type)): Ditto.
1305         (compare(size_type, size_type, const _CharT*)): Ditto.
1306         (compare(size_type, size_type, const _CharT*, size_type)): Ditto.
1308 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
1310         * include/bits/basic_string.h (insert(size_type,
1311         const basic_string&, size_type, size_type)): Define inline here.
1312         * include/bits/basic_string.tcc (insert(size_type,
1313         const basic_string&, size_type, size_type)): Move inline.
1315 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
1317         * include/bits/basic_string.h (assign(const basic_string&,
1318         size_type, size_type)): Define inline here.
1319         (replace(size_type, size_type, const basic_string&,
1320         size_type, size_type)): Ditto.
1321         (_M_replace_dispatch(iterator, iterator, _InputIterator,
1322         _InputIterator, __false_type)): Only declare.
1323         (_M_replace(iterator, iterator, _InputIterator,
1324         _InputIterator)): Remove.
1325         * include/bits/basic_string.tcc (assign(const basic_string&,
1326         size_type, size_type)): Move inline.
1327         (replace(size_type, size_type, const basic_string&,
1328         size_type, size_type)): Ditto.
1329         (_M_replace_dispatch(iterator, iterator, _InputIterator,
1330         _InputIterator, __false_type)): Define, now does also what
1331         _M_replace did before.
1332         * src/string-inst.cc (_M_replace): Don't instantiate.
1334         * include/bits/basic_string.tcc (find(const _CharT*,
1335         size_type, size_type)): Tidy.
1336         (rfind(_CharT, size_type)): Ditto.
1337         (find_first_not_of(const _CharT*, size_type, size_type)): Ditto.
1338         (find_first_not_of(_CharT, size_type)): Ditto.
1339         (find_last_not_of(const _CharT*, size_type, size_type)): Ditto.
1340         (find_last_not_of(_CharT, size_type)): Ditto.
1342 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
1344         PR libstdc++/13838
1345         * include/debug/bitset (operator|=): Fix typo.
1346         * testsuite/23_containers/bitset/operations/13838.cc: New.
1348 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
1350         * include/bits/basic_string.tcc (insert(size_type,
1351         const _CharT*, size_type __n)): Fix length_error check.
1352         (replace(size_type, size_type, const _CharT*, size_type):
1353         Ditto; call _M_replace_safe.
1354         (_M_replace_aux(size_type, size_type, size_type, _CharT):
1355         Fix length_error check.
1356         (_M_replace(iterator, iterator, _InputIterator,
1357         _InputIterator)): Ditto, tweak.
1358         (_M_replace_safe(size_type, size_type, const _CharT*,
1359         size_type)): Remove length_error check.
1361         * include/bits/basic_string.tcc (append(const basic_string&),
1362         append(const basic_string&, size_type, size_type)): Tweak
1363         comment.
1365         * include/bits/basic_string.tcc (copy(_CharT*, size_type,
1366         size_type)): If __n == 0 don't call traits::copy.
1368 2004-01-23  Stefan Olsson  <stefan@snon.net>
1370         * include/ext/mt_allocator.h: Reduce lock contention.
1372 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
1374         PR libstdc++/13831
1375         * include/bits/fstream.tcc (underflow): Remove unused
1376         variable.
1377         * include/bits/streambuf_iterator.h (equal): Ditto.
1378         * include/bits/locale_facets.h (_M_convert_from_char):
1379         Ditto.
1381 2004-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1383         PR c/13814
1384         * config/linker-map.gnu (nan): Delete.
1385         * libmath/mathconf.h (NAN, nan): Delete.
1386         * linkage.m4 (nan): Don't check for it.
1387         * libmath/nan.c: Delete file.
1389         * config.h.in, configure: Regenerate.
1391 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
1393         * include/bits/basic_string.h (push_back(_CharT)):
1394         Call _M_replace_aux.
1395         (insert(size_type, const basic_string&)): Trivial tweak.
1396         (insert(size_type, size_type, _CharT)): Call _M_replace_aux.
1397         (insert(iterator, _CharT)): Ditto.
1398         (erase(size_type, size_type)): Ditto.
1399         (erase(iterator)): Ditto.
1400         (erase(iterator, iterator)): Ditto.
1401         (replace(size_type, size_type, size_type, _CharT)): Ditto.
1403 2004-01-23  Loren J. Rittle  <ljrittle@acm.org>
1405         libstdc++/13823
1406         * testsuite/performance/allocator_map_thread.cc: New test.
1408 2004-01-22  Paolo Carlini  <pcarlini@suse.de>
1410         * include/bits/locale_facets.tcc
1411         (money_put::do_put(..., long double)): Use the basic_string
1412         constructor for char arrays, not that for C-strings, to pass
1413         __digits to do_put(..., const string_type&): __ws isn't
1414         null-terminated.
1416 2004-01-22  Paolo Carlini  <pcarlini@suse.de>
1418         * include/bits/basic_string.h (_M_replace_safe): Change
1419         signatures to take size_types and const _CharT*.
1420         (_M_replace_aux): Likewise, takes size_types instead of
1421         iterators.
1422         (append(size_type, _CharT)): Update call.
1423         (assign(size_type, _CharT)): Ditto.
1424         (replace(iterator, iterator, size_type, _CharT)): Ditto.
1425         (_M_replace_dispatch(iterator, iterator, _Integer,
1426         _Integer, __true_type)): Ditto.
1427         * include/bits/basic_string.tcc (assign(const _CharT*,
1428         size_type)): Ditto.
1429         (insert(size_type, const _CharT*, size_type)): Ditto.
1430         (replace(size_type, size_type, const _CharT*,
1431         size_type)): Ditto.
1432         (_M_replace(iterator, iterator, _InputIterator,
1433         _InputIterator)): Ditto.
1434         (append(const basic_string&)): Ditto.
1435         (append(const basic_string&, size_type, size_type): Ditto.
1436         (append(const _CharT*, size_type): Ditto.
1437         (_M_replace_safe, _M_replace_safe): Change definitions
1438         accordingly, simplify.
1439         * string-inst.cc (_M_replace_safe): Don't instantiate.
1441 2004-01-21  Paolo Carlini  <pcarlini@suse.de>
1443         * include/bits/basic_string.tcc (append(const basic_string&)):
1444         Revert previous change.
1445         (append(const basic_string&, size_type, size_type)): Revert
1446         previous change, use _M_check and _M_limit.
1448 2004-01-21  Paolo Carlini  <pcarlini@suse.de>
1450         * include/bits/basic_string.h (_M_check): Change to return
1451         a checked __pos and take an additional const char* argument.
1452         (_M_fold): Rename to _M_limit, change to return a size_type,
1453         corresponding to the __off limited to the actual length.
1454         (insert(size_type, size_type, _CharT)): Update call, call
1455         replace.
1456         (insert(iterator, _CharT)): Call replace(iterator, iterator,
1457         size_type, _CharT) instead.
1458         (erase(size_type, size_type)): Update calls.
1459         (replace(size_type, size_type, size_type, _CharT)): Ditto.
1460         (substr(size_type, size_type)): Use _M_check.
1461         * include/bits/basic_string.tcc (basic_string(const basic_string&,
1462         size_type, size_type)): Update calls.
1463         (basic_string(const basic_string&, size_type, size_type,
1464         const _Alloc&)): Ditto.
1465         (assign(const basic_string&, size_type, size_type)): Use the
1466         new _M_check and _M_limit.
1467         (insert(size_type, const basic_string&, size_type, size_type):
1468         Ditto.
1469         (insert(size_type, const _CharT*, size_type)): Ditto.
1470         (replace(size_type, size_type, const _CharT*, size_type): Ditto.
1471         (replace(size_type, size_type, const basic_string&,
1472         size_type, size_type)): Ditto.
1473         (append(const basic_string&)): Ditto.
1474         (append(const basic_string&, size_type, size_type)): Ditto.
1475         (copy(_CharT*, size_type, size_type)): Ditto.
1476         (compare(size_type, size_type, const basic_string&)): Ditto.
1477         (compare(size_type, size_type, const basic_string&,size_type,
1478         size_type)): Ditto.
1479         (compare(size_type, size_type, const _CharT*)): Ditto.
1480         (compare(size_type, size_type, const _CharT*, size_type)): Ditto.
1482 2004-01-19  Stefan Olsson  <stefan@snon.net>
1484         * include/ext/mt_allocator.h: If a thread, when it dies, still has
1485         memory on it's freelist this memory is not returned to global
1486         list. Simplification of deallocate so that memory is always
1487         returned to the calling thread id's freelist instead of to
1488         global. Fix typos. Add volatile where appropriate.
1490 2004-01-19  Loren J. Rittle  <ljrittle@acm.org>
1492         * testsuite/ext/stdio_filebuf/char/10063-2.cc: Treat unbuffered.
1493         * testsuite/ext/stdio_filebuf/char/10063-3.cc: New test.  Like -2 but
1494         use __gnu_cxx::stdio_sync_filebuf<char> instead; allow buffered stream.
1496 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
1498         * src/debug.cc: Make sure all the names are prefixed with
1499         double (or single) underscore.
1501 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
1503         * src/debug.cc: Trivial formatting change.
1505 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
1507         * include/bits/basic_string.tcc (_S_construct(size_type,
1508         _CharT, const _Alloc&)): Remove redundant try/catch.
1509         (_M_mutate(size_type, size_type, size_type)): Ditto.
1510         (_M_clone(const _Alloc&, size_type)): Ditto.
1512 2004-01-18  Paolo Carlini  <pcarlini@suse.de>
1514         * include/bits/basic_string.h (c_str()): Simplify, due to
1515         21.3.4 the internal representation is always kept null-terminated.
1516         * include/bits/basic_string.tcc (_M_clone): Null-terminate.
1517         * testsuite/21_strings/basic_string/element_access/char/4.cc: New.
1518         * testsuite/21_strings/basic_string/element_access/wchar_t/4.cc:
1519         Ditto.
1521 2004-01-18  Paolo Carlini  <pcarlini@suse.de>
1523         * include/bits/basic_string.h (append(size_type, _CharT)):
1524         Moved inline, just call _M_replace_aux, no source iterators at
1525         risk of being clobbered.
1526         (assign(size_type, _CharT)): Call directly _M_replace_aux.
1527         (_M_replace(iterator, iterator, _InputIterator, _InputIterator,
1528         input_iterator_tag)): Remove fifth unused argument.
1529         (_M_replace_dispatch(iterator, iterator, _InputIterator,
1530         _InputIterator, __false_type)): Update call.
1531         * include/bits/basic_string.tcc (replace(size_type, size_type,
1532         const _CharT*, size_type)): Update call.
1533         (_M_replace_aux(iterator, iterator, size_type, _CharT)): Tweak
1534         throw string literal.
1535         (_M_replace_safe(iterator, iterator, _ForwardIterator,
1536         _ForwardIterator)): Likewise.
1537         (_M_replace(iterator, iterator, _InputIterator, _InputIterator,
1538         input_iterator_tag)): Remove fifth unused argument.
1539         (append(size_type __n, _CharT __c)): Move inline.
1540         * src/string-inst.cc (S::_M_replace(S::iterator, S::iterator,
1541         const C*, const C*, input_iterator_tag)): Remove fifth unused
1542         argument.
1544 2004-01-16  Benjamin Kosnik  <bkoz@redhat.com>
1546         * testsuite/ext/enc_filebuf/char/13189.cc: Fix guards.
1547         * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Same.
1549 2004-01-16  Danny Smith  <dannysmith@users.sourceforge.net>
1551         * testsuite/testsuite_hooks.cc (try_mkfifo): Avoid calling
1552         mkfifo for mingw32.
1554 2004-01-15  Stefan Olsson  <stefan@snon.net>
1556         * include/ext/mt_allocator.h: Reuse thread id's as soon as
1557         possible by changing the behaviour of thread_freelist to do
1558         push_front when threads die instead of push_back.
1560 2004-01-14  Paolo Carlini  <pcarlini@suse.de>
1562         * include/bits/locale_facets.h (struct __numpunct_cache):
1563         Add member _M_grouping_size, caching the length of _M_grouping.
1564         (__numpunct_cache<>::_M_cache): Assign the latter.
1565         (__verify_grouping): Move declaration...
1566         * include/bits/locale_facets.tcc (__verify_grouping):
1567         ... here, change signature to take a const char* and a size_t
1568         for the grouping; not a template anymore.
1569         (__add_grouping, num_put::_M_group_int, num_put::_M_group_float):
1570         Likewise change signature and tweak consistently.
1571         (num_get::_M_extract_float, num_get::_M_extract_int,
1572         num_put::_M_insert_int, num_put::_M_insert_float,
1573         money_get::do_get(string_type&), money_get::do_put(string_type)):
1574         Update callers.
1575         * config/locale/generic/numeric_members.cc
1576         (numpunct<>::_M_initialize_numpunct): Assign the new member.
1577         * config/locale/gnu/numeric_members.cc
1578         (numpunct<>::_M_initialize_numpunct): Likewise.
1579         * src/locale-inst.cc (__add_grouping): Tweak signature.
1580         (__verify_grouping): Don't instantiate, not a template anymore.
1582         * include/bits/locale_facets.h: Rename _M_truename_len ->
1583         _M_truename_size, _M_falsename_len -> _M_falsename_size.
1584         * include/bits/locale_facets.tcc: Likewise.
1585         * config/locale/generic/numeric_members.cc: Likewise.
1586         * config/locale/gnu/numeric_members.cc: Likewise.
1588 2004-01-14  Stefan Olsson  <stefan@snon.net>
1590         * include/ext/mt_allocator.h: Fixups.
1591         * testsuite/performance/allocator.cc: Enable __mt_alloc tests.
1592         * testsuite/performance/allocator_thread.cc: Same.
1594 2004-01-13  Benjamin Kosnik  <bkoz@redhat.com>
1596         * testsuite/performance/ifstream_extract_float.cc: Add higher
1597         precision tests.
1598         * testsuite/performance/ofstream_insert_float.cc: Same.
1600 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
1602         * src/locale-misc-inst.cc (__convert_from_v(long),
1603         __convert_from_v(unsigned long), __convert_from_v(long long),
1604         __convert_from_v(unsigned long long)): Remove, unused.
1606 2004-01-13  Benjamin Kosnik  <bkoz@redhat.com>
1608         * testsuite/performance/ifstream_extract_float.cc: New.
1609         * testsuite/performance/ofstream_insert_float.cc: Float generation
1610         matches above.
1612         * 20_util/auto_ptr.cc, auto_ptr_neg.cc: Break into...
1613         * 20_util/auto_ptr/1.cc: ...this.
1614         * 20_util/auto_ptr/2.cc: Same.
1615         * 20_util/auto_ptr/3.cc: Same.
1616         * 20_util/auto_ptr/3946.cc: Same.
1617         * 20_util/auto_ptr/4.cc: Same.
1618         * 20_util/auto_ptr/5.cc: Same.
1619         * 20_util/auto_ptr/6.cc: Same.
1620         * 20_util/auto_ptr/7.cc: Same.
1621         * 20_util/auto_ptr/assign_neg.cc
1622         * 20_util/pairs.cc: Break into...
1623         * 20_util/pair/1.cc: ...this.
1624         * 20_util/pair/2.cc: Same.
1625         * 20_util/pair/3.cc: Same.
1626         * 20_util/pair/4.cc: Same.
1628 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
1630         * include/bits/locale_facets.tcc (num_get::do_get(void*&)):
1631         Set correctly just basefield, the only group that matters.
1633 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
1635         * include/ext/rope (_Rope_rep_alloc_base): Eliminate.
1636         (_Rope_rep_base): Inherit directly from the rope allocator;
1637         use rebinding instead of _Alloc_traits; pick up data member
1638         from _Rope_rep_alloc_base.
1639         (_Rope_alloc_base): Eliminate.
1640         (_Rope_base): Inherit directly from the rope allocator; use
1641         rebinding instead of _Alloc_traits; pick up data member from
1642         _Rope_alloc_base.
1643         (rope::_S_new_RopeLeaf, rope::_S_new_RopeConcatenation,
1644         rope::_S_new_RopeFunction, rope::_S_new_RopeSubstring): Tweak.
1646 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
1648         PR libstdc++/13650
1649         * include/bits/basic_string.tcc (compare(size_type, size_type,
1650         const _CharT*, size_type)): Implement correctly the resolution
1651         of DR 5: basically, s is a char array, -not- a C string.
1652         * include/bits/basic_string.h: Tweak some comments.
1653         * testsuite/21_strings/basic_string/compare/char/13650.cc: New.
1654         * testsuite/21_strings/basic_string/compare/wchar_t/13650.cc: New.
1656 2004-01-12  Andreas Tobler  <a.tobler@schweiz.ch>
1658         * testsuite/lib/libstdc++.exp: Set LD_LIBRARY_PATH_32 for
1659         Solaris.
1661 2004-01-12  Paolo Carlini  <pcarlini@suse.de>
1663         * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc:
1664         Use try_mkfifo.
1665         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc:
1666         Likewise.
1668 2004-01-12  Paolo Carlini  <pcarlini@suse.de>
1670         * include/bits/locale_facets.h (struct __numpunct_cache):
1671         Add members _M_truename_len and _M_falsename_len, caching
1672         the lengths of _M_truename and _M_falsename.
1673         (__numpunct_cache<>::_M_cache): Assign the latter.
1674         * include/bits/locale_facets.tcc (num_get::do_get(bool&),
1675         num_put::do_put(bool)): Use the new members, thus avoiding
1676         computing string lengths again and again.
1677         * config/locale/generic/numeric_members.cc
1678         (numpunct<>::_M_initialize_numpunct): Assign the new members.
1679         * config/locale/gnu/numeric_members.cc
1680         (numpunct<>::_M_initialize_numpunct): Likewise.
1682 2004-01-12  Mark Mitchell  <mark@codesourcery.com>
1684         * testsuite/testsuite_hooks.h (__gnu_test::try_mkfifo): Declare it.
1685         * testsuite/testsuite_hooks.cc (__gnu_test::try_mkfifo): Define
1686         it.
1687         * testsuite/27_io/basic_filebuf/close/char/4879.cc: Use try_mkfifo
1688         and remove Cygwin XFAIL.
1689         * testsuite/27_io/basic_filebuf/close/char/9964.cc: Likewise.
1690         * testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc: Likewise.
1691         * testsuite/27_io/basic_filebuf/open/char/9507.cc: Likewise.
1692         * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc:
1693         Likewise.
1694         * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise.
1695         * testsuite/27_io/objects/char/7.cc: Likewise.
1696         * testsuite/27_io/objects/char/9661-1.cc: Likewise.
1697         * testsuite/27_io/objects/wchar_t/7.cc: Likewise.
1698         * testsuite/27_io/objects/wchar_t/9661-1.cc: Likewise.
1700 2004-01-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1702         * include/std/std_complex.h (std::complex<>::real): Return a
1703         reference. Add non-const overload.
1704         (std::complex<>::real): Likewise.
1705         (std::real): Likewise.
1706         (std::imag): Likewise.
1707         (std::operator+): Tidy.
1708         (std::operator-): Likewise.
1709         (std::operator*): Likewise.
1710         (std::operator/): Likewise.
1711         (std::operator>>): Likewise.
1713 2004-01-11  Paolo Carlini  <pcarlini@suse.de>
1715         PR libstdc++/13582
1716         * include/bits/fstream.tcc (imbue): Exploit the external
1717         buffer to imbue 'on the fly' a new locale and convert its
1718         remainder with the new codecvt facet.
1719         (underflow): Tweak slightly to deal with this special case.
1720         * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc: New.
1721         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc: Ditto.
1722         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Ditto.
1723         * testsuite/27_io/objects/wchar_t/13582-1_xin.cc: Ditto.
1724         * testsuite/27_io/objects/wchar_t/13582-1_xin.in: Ditto.
1726 2004-01-10  Paolo Carlini  <pcarlini@suse.de>
1728         * docs/html/ext/lwg-active.html, docs/html/ext/lwg-defects.html:
1729         Import Revision 28.
1731 2004-01-10  Paolo Carlini  <pcarlini@suse.de>
1733         PR libstdc++/13630
1734         * include/bits/locale_classes.h (class locale): Fix category
1735         typedef.
1736         * testsuite/22_locale/locale/13630.cc: Add.
1738 2004-01-10  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1740         * include/bits/locale_facets.h: Make a name really dependent. This
1741         will be needed when Core Issue 224 is implemented.
1743 2004-01-09  Paolo Carlini  <pcarlini@suse.de>
1745         * testsuite/performance/allocator.cc: Demangle typeid(obj).name().
1746         * testsuite/performance/allocator_thread.cc: Likewise.
1748 2004-01-07  Benjamin Kosnik  <bkoz@redhat.com>
1750         * crossconfig.m4: Add LFS, io bits to linux cross config.
1751         * acconfig.h: Remove obsolete bits, reorder.
1752         * config.h.in: Regenerate.
1753         * aclocal.m4: Same.
1754         * configure: Same.
1756 2004-01-07  Gawain Bolton  <gp.bolton@computer.org>
1758         * include/bits/stl_list.h:
1759         * include/bits/list.tc:
1760         * src/list.cc:
1761         Performance enhancements for destructor, push_front(),
1762         push_back(), pop_front(), pop_back(), sort()
1763         Eliminated static_casts where possible.
1764         Moved code out of header files into new src/list.cc
1765         implementation file for library where possible.
1766         Remove inheritance from iterator class and create separate
1767         classes for non-constant and constant iterators.
1768         * include/bits/stl_tree.h (_Rb_tree class):
1769         * src/tree.cc:
1770         Only erase contents in destructor.
1771         Eliminate unnecessary initialization in assignment operator.
1772         Optimize for the nominal case by not checking whether
1773         container is empty in clear().
1774         Re-order test in _M_insert() to improve performance.
1775         Move initialization of new node's left & right pointers to
1776         src/tree.cc to where new node's colour is initialized
1777         and to reduce the amount of inline code.
1778         Use  _M_leftmost() and _M_end() to improve readability where
1779         appropriate.
1780         Create separate classes for non-constant and constant
1781         iterators to clarify code, avoid extra template parameters and
1782         casting away constness.
1784 2004-01-07  Benjamin Kosnik  <bkoz@redhat.com>
1786         * src/Makefile.am (sources): Add list.cc, tree.cc.
1787         * src/stl_tree.cc: Move to...
1788         * src/tree.cc: ...here.
1789         * src/list.cc: Add.
1790         * config/linker-map.gnu: Tweaks.
1791         * testsuite/23_containers/map/operators/1_neg.cc: Add excess errors.
1792         * testsuite/23_containers/set/operators/1_neg.cc: Add excess errors.
1794         * bits/stl_vector.h: Column wrap comments.
1796 2004-01-07  Loren J. Rittle  <ljrittle@acm.org>
1798         (re-open) PR libstdc++/12658
1799         * src/locale_init.cc (locale::locale): Remove ill-scoped mutex.
1800         (locale::global): Likewise.
1802 2004-01-07  Paolo Carlini  <pcarlini@suse.de>
1804         * testsuite/27_io/basic_istream/extractors_other/char/9318-in.cc:
1805         Remove redundant #include.
1806         * testsuite/27_io/basic_ostream/endl/char/1.cc: Likewise.
1807         * testsuite/27_io/basic_ostream/ends/char/1.cc: Likewise,
1808         re-enable normal testing.
1809         * testsuite/27_io/basic_ostream/ends/char/2.cc: Remove redundant
1810         #include.
1811         * testsuite/27_io/basic_ostream/flush/char/1.cc: Likewise.
1812         * testsuite/27_io/basic_ostream/inserters_character/char/1.cc:
1813         Likewise.
1814         * testsuite/27_io/basic_ostream/inserters_character/char/2.cc:
1815         Likewise.
1816         * testsuite/27_io/basic_ostream/inserters_character/char/3.cc:
1817         Likewise.
1818         * testsuite/27_io/basic_ostream/inserters_character/char/4.cc:
1819         Likewise.
1820         * testsuite/27_io/basic_ostream/inserters_character/char/5.cc:
1821         Likewise.
1822         * testsuite/27_io/basic_ostream/inserters_character/char/6.cc:
1823         Likewise.
1824         * testsuite/27_io/basic_ostream/inserters_character/char/8.cc:
1825         Likewise.
1826         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/7.cc:
1827         More properly, #include <locale>.
1828         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/8.cc:
1829         Remove redundant #include.
1830         * testsuite/27_io/basic_ostream/inserters_other/char/2.cc: Likewise.
1831         * testsuite/27_io/basic_ostream/inserters_other/char/3.cc: Remove
1832         redundant DejaGnu directive.
1833         * testsuite/27_io/basic_ostream/inserters_other/char/4.cc: Remove
1834         redundant #include.
1836 2004-01-06  Benjamin Kosnik  <bkoz@redhat.com>
1837             Stefan Olsson  <stefan@snon.net>
1839         * scripts/check_performance: Use -pthread.
1840         * testsuite/performance/allocator.cc: Tweaks, add list.
1841         * testsuite/performance/allocator_thread.cc: New.
1843 2004-01-06  Jerry Quinn  <jlquinn@optonline.net>
1845         * include/bits/locale_facets.h: Document public classes and
1846         functions.
1847         * include/bits/locale_facets.tcc (time_get::_M_extract_via_format):
1848         Add comment.
1850 2004-01-06  Paolo Carlini  <pcarlini@suse.de>
1852         * testsuite/27_io/basic_istream/extractors_other/char/1.cc:
1853         Remove redundant #includes.
1854         * testsuite/27_io/basic_istream/extractors_other/char/2.cc:
1855         Likewise.
1856         * testsuite/27_io/basic_istream/extractors_other/char/3.cc:
1857         Likewise.
1858         * testsuite/27_io/basic_istream/get/char/1.cc: Likewise.
1859         * testsuite/27_io/basic_istream/get/char/2.cc: Likewise.
1860         * testsuite/27_io/basic_istream/getline/char/1.cc: Likewise.
1861         * testsuite/27_io/basic_istream/getline/char/2.cc: Likewise.
1862         * testsuite/27_io/basic_istream/getline/char/3.cc: Likewise.
1863         * testsuite/27_io/basic_istream/ignore/char/1.cc: Likewise.
1864         * testsuite/27_io/basic_istream/ignore/char/6360.cc: Likewise.
1865         * testsuite/27_io/basic_istream/ignore/char/7220.cc: Likewise.
1866         * testsuite/27_io/basic_istream/peek/char/1.cc: Likewise.
1867         * testsuite/27_io/basic_istream/peek/char/6414.cc: Likewise.
1868         * testsuite/27_io/basic_istream/putback/char/1.cc: Likewise.
1869         * testsuite/27_io/basic_istream/read/char/1.cc: Likewise.
1870         * testsuite/27_io/basic_istream/read/char/2.cc: Likewise.
1871         * testsuite/27_io/basic_istream/read/char/3.cc: Likewise.
1872         * testsuite/27_io/basic_istream/readsome/char/6746-1.cc:
1873         Likewise.
1874         * testsuite/27_io/basic_istream/readsome/char/6746-2.cc:
1875         Likewise.
1876         * testsuite/27_io/basic_istream/readsome/char/8258.cc:
1877         Likewise.
1878         * testsuite/27_io/basic_istream/seekg/char/2346-fstream.cc:
1879         Likewise.
1880         * testsuite/27_io/basic_istream/seekg/char/2346-sstream.cc:
1881         Likewise.
1882         * testsuite/27_io/basic_istream/seekg/char/8348-1.cc: Likewise.
1883         * testsuite/27_io/basic_istream/seekg/char/8348-2.cc: Likewise.
1884         * testsuite/27_io/basic_istream/tellg/char/8348.cc: Likewise.
1886 2004-01-04  Paolo Carlini  <pcarlini@suse.de>
1888         * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc:
1889         Remove redundant #includes.
1890         * testsuite/27_io/basic_istream/extractors_arithmetic/char/02.cc:
1891         Likewise.
1892         * testsuite/27_io/basic_istream/extractors_arithmetic/char/03.cc:
1893         Likewise.
1894         * testsuite/27_io/basic_istream/extractors_arithmetic/char/06.cc:
1895         Likewise.
1896         * testsuite/27_io/basic_istream/extractors_arithmetic/char/07.cc:
1897         Likewise.
1898         * testsuite/27_io/basic_istream/extractors_arithmetic/char/08.cc:
1899         Likewise.
1900         * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc:
1901         Likewise.
1902         * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
1903         Likewise.
1904         * testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc:
1905         Likewise.
1906         * testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc:
1907         Likewise.
1908         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/1.cc:
1909         Likewise.
1910         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc:
1911         Likewise.
1912         * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/1.cc:
1913         Likewise.
1915 2004-01-04  Mark Mitchell  <mark@codesourcery.com>
1917         PR c++/12226
1918         * testsuite/27_io/basic_filebuf/4.cc: Remove use of invalid copy
1919         constructor.
1920         * testsuite/27_io/basic_fstream/4.cc: Likewise.
1921         * testsuite/27_io/basic_ifstream/4.cc: Likewise.
1922         * testsuite/27_io/basic_ios/4.cc: Likewise.
1923         * testsuite/27_io/basic_iostream/4.cc: Likewise.
1924         * testsuite/27_io/basic_istream/4.cc: Likewise.
1925         * testsuite/27_io/basic_istingstream/4.cc: Likewise.
1926         * testsuite/27_io/basic_ofstream/4.cc: Likewise.
1927         * testsuite/27_io/basic_ostream/4.cc: Likewise.
1928         * testsuite/27_io/basic_ostringstream/4.cc: Likewise.
1929         * testsuite/27_io/basic_stringbuf/5.cc: Likewise.
1930         * testsuite/27_io/basic_stringstream/4.cc: Likewise.
1932 2004-01-04  Paolo Carlini  <pcarlini@suse.de>
1934         * config/locale/generic/numeric_members.cc (_M_initialize_numpunct):
1935         Avoid unnecessarily zero terminating _M_atoms_out and _M_atoms_in;
1936         always use double underscored names.
1937         * config/locale/gnu/numeric_members.cc (_M_initialize_numpunct):
1938         Likewise.
1939         * include/bits/locale_facets.h (struct __numpunct_cache):
1940         Dimension _M_atoms_out and _M_atoms_in one position smaller.
1941         (__numpunct_cache<>::_M_cache): Don't zero terminate _M_atoms_out
1942         and _M_atoms_in.