2004-02-27 Phil Edwards <phil@codesourcery.com>
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob5f196bb64220e72e15be8d87d07613cbbdbcb40d
1 2004-02-27  Phil Edwards  <phil@codesourcery.com>
3         * testsuite/config/default.exp:  Update with comments.
4         (${tool}_target_compile):  New wrapper routine.
5         * testsuite/lib/dg-options.exp:  New file, with dg-require-iconv.
6         * testsuite/lib/libstdc++.exp:  Update with comments and cosmetic
7         fixes.
8         (load_gcc_lib, v3track):  New routines.
9         (v3-init):  Rename to libstdc++_init.
10         * testsuite/libstdc++-dg/normal.exp:  No longer call v3-init.
11         Move DEFAULT_CXXFLAGS handling into libstdc++_init.
13 2004-02-27  Benjamin Kosnik  <bkoz@redhat.com>
15         * config/cpu/hppa/atomicity.h: Include c++config.h to get defines.
17         * src/misc-inst.cc (_S_atomicity_lock): Move to __gnu_cxx.
19         * config/os/irix/irix5.2/atomicity.h: Merge..
20         * config/os/irix/irix6.5/atomicity.h: Merge..
21         * config/os/irix/atomicity.h: ...into this.
22         * config/os/irix/atomic_word.h: New.
23         * configure.host: Set atomic_word_dir for irix.
25         * hppa/atomicity.h: Change __Atomicity_lock to _Atomicity_lock.
26         * i386/atomicity.h: Same.
27         * m68k/atomicity.h: Same.
28         * sparc/atomicity.h: Same.
30 2004-02-27  David Edelsohn  <edelsohn@gnu.org>
32         * config/os/aix/atomicity.h: Use __gnu_cxx namespace. Remove
33         static, and inline keywords.
35 2004-02-27  Paolo Carlini  <pcarlini@suse.de>
37         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
38         num_get<>::_M_extract_int, money_get<>::_M_extract): If appropriate,
39         call reserve on the __tmp_gruping string.
40         (num_get<>::_M_extract_float): Don't append unnecessarily a
41         char() to the returned string.
42         * include/bits/locale_facets.tcc: Trivial reformattings.
44 2004-02-27  Paolo Carlini  <pcarlini@suse.de>
46         * include/bits/locale_facets.h (money_get<>::_M_extract):
47         Change signature: now takes a plain string&.
48         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
49         Update consistently the definition; use the moneypunct cache
50         to parse the value; use swap to change __units.
51         (money_get<>::do_get(long double&)): Update call of _M_extract,
52         avoid ctype::narrow, not correct wrt the standard.
53         (money_get<>::do_get(string_type&)): Likewise, update call
54         of _M_extract, use ctype::widen.
55         * src/locale-inst.cc: Tweak instantiations of _M_extract.
57 2004-02-26  Ian Lance Taylor  <ian@wasabisystems.com>
59         * testsuite/demangle/abi_examples/01.cc: Expect error -2.
60         * testsuite/demangle/abi_examples/02.cc: Likewise.
61         * testsuite/demangle/regression/cw-11.cc: Likewise.
62         * testsuite/demangle/regression/cw-16.cc: Change two expected
63         results to match libiberty demangler output.
65 2004-02-26  Benjamin Kosnik  <bkoz@redhat.com>
67         PR libstdc++/10246
68         * libsupc++/Makefile.am: Use libiberty demangler.
69         (c_sources): Add cp-demangle.c.
70         * libsupc++/Makefile.in: Regenerate.
71         * src/Makefile.am (sources): Remove demangle.cc.
72         * src/Makefile.in: Regenerate.
73         * include/Makefile.am (bits_headers): Move demangle.h.
74         (ext_headers): ...here.
75         * include/Makefile.in: Regenerate.
76         * include/bits/demangle.h: Move...
77         * include/ext/demangle.h: ...here.
78         * src/demangle.cc: Remove.
80 2004-02-26  Benjamin Kosnik  <bkoz@redhat.com>
82         * include/bits/demangle.h: Add type template parameter to all
83         templates with just an Allocator template parameter.
85 2004-02-25  Benjamin Kosnik  <bkoz@redhat.com>
87         * include/bits/atomicity.h: New, forward declarations for __atomic_add
88         and __exchange_and_add.
89         * config/cpu/generic/atomic_word.h: New, typdef for atomic word.
90         * config/cpu/cris/atomic_word.h: Same.
91         * config/cpu/sparc/atomic_word.h: Same.
92         * include/bits/ios_base.h (_Callback_list::_M_remove_reference):
93         Qualifiy with __gnu_cxx.
94         (_Callback_list::_M_add_reference): Same.
95         * include/bits/locale_classes.h (locale::facet::_M_add_reference): Add.
96         (locale::facet::_M_remove_reference): Same.
97         (locale::_Impl::_M_add_reference): Add.
98         (locale::_Impl::_M_remove_reference): Same.
99         * include/bits/basic_string.h (basic_string::_Rep::_M_refcopy): Same.
100         (basic_string::_Rep::_M_dispose): Same.
101         * src/ios.cc (ios_base::xalloc): Same.
102         * src/ios_init.cc (ios_base::Init::Init): Same.
103         (ios_base::Init::~Init): Same.
104         * src/locale.cc (locale::id::_M_id): Same.
105         * config/cpu/i486/atomicity.h: Use __gnu_cxx namespace. Remove
106         static, and inline keywords.
107         * config/cpu/alpha/atomicity.h: Same.
108         * config/cpu/cris/atomicity.h: Same.
109         * config/cpu/generic/atomicity.h: Same.
110         * config/cpu/hppa/atomicity.h: Same.
111         * config/cpu/i386/atomicity.h: Same.
112         * config/cpu/ia64/atomicity.h: Same.
113         * config/cpu/m68k/atomicity.h: Same.
114         * config/cpu/mips/atomicity.h: Same.
115         * config/cpu/powerpc/atomicity.h: Same.
116         * config/cpu/s390/atomicity.h: Same.
117         * config/cpu/sparc/atomicity.h: Same.
118         
119         * src/Makefile.am (host_sources): Add atomicity.cc.
120         (atomicity.cc): New rule.
121         * src/Makefile.in: Regenerate.
122         * include/Makefile.am (host_headers): Remove host atomicity.h.
123         (host_headers): Add atomic_word.h.
124         (bits_headers): Add bits atomicity.h.
125         Change ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR.
126         * include/Makefile.in: Regenerate.
127         * configure.host (atomic_word_dir): Add.
128         * configure.ac: Substitute ATOMIC_WORD_SRCDIR. Change
129         ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR.
130         * configure: Regenerate.
131         * config/linker-map.gnu: Export __exchange_and_add, and __atomic_add.
133         * testsuite/27_io/ios_base/cons/assign_neg.cc: Adjust line numbers.
134         * testsuite/27_io/ios_base/cons/copy_neg.cc: Same.      
135         
136 2004-02-25  Jonathan Wakely  <redi@gcc.gnu.org>
138         * docs/html/20_util/howto.html, docs/html/20_util/allocator.html,
139         docs/html/ext/howto.html, docs/html/ext/mt_allocator.html:
140         Fix markup, more <link> tags.
142 2004-02-25  Carlo Wood  <carlo@alinoe.com>
144         * bits/demangle.h
145         namespace __gnu_cxx::demangler
146         (session<Allocator>::qualifier_list_Allocator): Add
147         (session<Allocator>::M_qualifier_list_alloc): Add
148         (session<Allocator>::decode_type_with_postfix):
149         Use M_qualifier_list_alloc instead of calling operator new/delete.
151 2004-02-24  Paolo Carlini  <pcarlini@suse.de>
153         PR libstdc++/14252
154         * include/bits/postypes.h (class streamoff): Add operator++(),
155         operator++(int), operator--() and operator--(int).
156         * testsuite/27_io/fpos/14252.cc: New.
158 2004-02-24  Richard Sandiford  <rsandifo@redhat.com>
160         * include/bits/locale_facets.tcc (num_get::_M_extract_int): Fix bounds
161         error in handling of hex constants.
163 2004-02-24  Paolo Carlini  <pcarlini@suse.de>
165         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
166         Prefer basic_string::append to operator+= and a temporary.
168 2004-02-23  Benjamin Kosnik  <bkoz@redhat.com>
170         * libsupc++/vterminate.cc (__gnu_cxx::__verbose_terminate_handler):
171         Only use fputs, not write.
172         
173 2004-02-23  Benjamin Kosnik  <bkoz@redhat.com>
175         * include/ext/malloc_allocator.h: Add operators ==, !=.
176         * include/ext/new_allocator.h: Add operators ==, !=.
177         * include/ext/mt_allocator.h (__mt_alloc::tune): New.
178         (__mt_alloc::_S_get_options): New.
179         (__mt_alloc::_S_set_options): New.      
180         (__mt_alloc::_S_thread_key_destr): To _S_destroy_thread_key.
181         (__mt_alloc::_S_no_of_bins): To _S_bin_size.
182         Move functions out of line, simplify, format.
183         * src/allocator.cc: Simplify explicit instantiations.
184         * include/bits/allocator.h: Tweak.
185         
186 2004-02-22  Paolo Carlini  <pcarlini@suse.de>
188         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
189         Restructure formatting of value component, first dealing with
190         the non-decimal digits; use reserve.
192 2004-02-22  Paolo Carlini  <pcarlini@suse.de>
194         * include/bits/locale_facets.h (class money_get): Inherit
195         from money_base too; tweak declaration of _M_extract, now
196         parameterized on _Intl too.
197         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
198         Update definition to use the cache; call reserve on __res to
199         avoid multiple reallocations; fix parsing of sign component
200         according to 22.2.6.1.2, p3.
201         (money_get<>::do_get(long double&),
202         money_get<>::do_get(string_type&)): Update calls of _M_extract. 
203         * src/locale-inst.cc:  Add instantiations of
204         money_get::_M_extract<false> and money_get::_M_extract<true>.
205         * testsuite/22_locale/money_get/get/char/14.cc: New.
206         * testsuite/22_locale/money_get/get/wchar_t/14.cc: Ditto.
207         
208 2004-02-21  Mark Mitchell  <mark@codesourcery.com>
210         * libsupc++/vterminate.cc
211         (__gnu_cxx::__verbose_terminate_handler): Guard against recursive
212         calls to terminate.
213         * src/demangle.cc (__cxa_demangle): Wrap in try-catch block.
215         * testsuite/testsuite_hooks.cc (__gnu_test::set_memory_limits): Do
216         not set RLIMIT_AS on HP-UX.
218 2004-02-21  Mark Mitchell  <mark@codesourcery.com>
220         * testsuite/testsuite_hooks.cc (__gnu_test::set_memory_limits): Do
221         not set RLIMIT_AS on HP-UX.
223 2004-02-21  Paolo Carlini  <pcarlini@suse.de>
225         * include/bits/locale_facets.h (class money_base): Add { _S_minus,
226         _S_zero, _S_end } enum, _S_atoms.
227         (struct __moneypunct_cache<>): Parameterize on _Intl too; add
228         _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size,
229         _M_negative_sign_size, _M_atoms; tweak constructor consistently.
230         (__moneypunct_cache<>::~__moneypunct_cache): Update.
231         (__moneypunct_cache<>::_M_cache): Fill the cache.
232         (class moneypunct): Tweak __cache_type typedef.
233         (class money_put): Inherit from money_base too; tweak declaration
234         of _M_insert, now parameterized on _Intl.
235         * include/bits/locale_facets.tcc
236         (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New.
237         (money_put<>::_M_insert): Update definition to use the cache;
238         call reserve on __res to avoid multiple reallocations.
239         (money_put<>::do_put(long double),
240         money_put<>::do_put(const string_type&): Update calls of _M_insert.
241         * config/locale/generic/monetary_members.cc
242         (moneypunct<char, true>::_M_initialize_moneypunct,
243         moneypunct<char, false>::_M_initialize_moneypunct,
244         moneypunct<wchar_t, true>::_M_initialize_moneypunct,
245         moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update.
246         * config/locale/gnu/monetary_members.cc: Likewise.
247         * config/locale/gnu/monetary_members.cc
248         (moneypunct<wchar_t, true>::~moneypunct(),
249         moneypunct<wchar_t, false>::~moneypunct()): Likewise.
250         * src/globals_locale.cc: Tweak fake_money_cache_c.
251         * src/locale-inst.cc: Add instantiations for
252         money_put::_M_insert<false> and money_put::_M_insert<true> and
253         __moneypunct_cache<C, false>, __moneypunct_cache<C, true>.
254         * src/locale_facets.cc: Define money_base::_S_atoms.
255         * src/locale_init.cc: Update placement new of
256         __moneypunct_cache<char, false>, __moneypunct_cache<char, true>,
257         __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>.
259         * config/locale/generic/numeric_members.cc: Clean up.
260         * config/locale/gnu/numeric_members.cc: Likewise.
261         * testsuite/22_locale/money_put/put/char/1.cc: Likewise.
262         * testsuite/22_locale/money_put/put/char/2.cc: Likewise.
263         * testsuite/22_locale/money_put/put/char/3.cc: Likewise.
264         * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise.
265         * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise.
266         * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise.
268 2004-02-20  Mark Mitchell  <mark@codesourcery.com>
270         * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc: Open
271         FIFO for writing with ios_base::in|ios_base::out.
272         * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise.
273         * testsuite/27_io/objects/char/7.cc: Likewise.
274         * testsuite/27_io/objects/char/9661-1.cc: Open FIFO for writing
275         with "r+".
277 2004-02-19  David Edelsohn  <edelsohn@gnu.org>
279         * 22_locale/collate/compare/wchar_t/2.cc: Change input-charset
280         from iso-8859-1 to ISO8859-1.
281         * 22_locale/collate/compare/wchar_t/wrapped_env.cc: Same.
282         * 22_locale/collate/compare/wchar_t/wrapped_locale.cc: Same.
283         * 22_locale/collate/hash/wchar_t/2.cc: Same.
284         * 22_locale/collate/hash/wchar_t/wrapped_env.cc: Same.
285         * 22_locale/collate/hash/wchar_t/wrapped_locale.cc: Same.
286         * 22_locale/collate/transform/wchar_t/2.cc: Same.
287         * 22_locale/collate/transform/wchar_t/wrapped_env.cc: Same.
288         * 22_locale/collate/transform/wchar_t/wrapped_locale.cc: Same.
290 2004-02-18  Paolo Carlini  <pcarlini@suse.de>
292         * include/bits/locale_facets.h (money_get<>::_M_extract):
293         New, helper for do_get.
294         (money_put<>::_M_insert): Likewise, for do_put.
295         * include/bits/locale_facets.tcc (money_get<>::_M_extract,
296         money_put<>::_M_insert): Define.
297         (money_get<>::do_get(long double&), money_get<>::do_get(
298         string_type&), money_put::do_put(long double),
299         money_put::do_put(const string_type&)): Use the helpers.
301 2004-02-18  Paolo Carlini  <pcarlini@suse.de>
303         * config/io/basic_file_stdio.cc (__gnu_internal::xwritev):
304         Rewrite, avoiding recursion.
305         (__gnu_internal::xwrite): Minor tweaks.
307 2004-02-17  Stefan Olsson  <stefan@xapa.se>
309         * include/ext/mt_allocator.h: Removed the last
310         pointer. Deallocated blocks are now added to the front of
311         freelists as proposed by Felix Yen.  This gives roughly 10%
312         performance boost and saves some memory.
313         * docs/html/ext/mt_allocator.html: Change due to that deallocated
314         blocks now are added to the front of freelists. The reason to this
315         approach is also explained.
317 2004-02-17  Paolo Carlini  <pcarlini@suse.de>
319         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
320         num_get<>::_M_extract_int, money_get<>::do_get): Simplify
321         grouping fidelity conditional.
323 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
325         * testsuite/27_io/basic_filebuf/overflow/char/13858.cc:
326         Qualify exception with std::.
327         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Ditto.
328         * testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc: Ditto.
329         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
330         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
331         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
333 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
335         * testsuite/ext/enc_filebuf/char/13189.cc: Don't check
336         for now that the catch block is not reached.
337         * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Likewise.
339 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
341         * include/bits/locale_facets.tcc (money_get::do_get(string_type&)):
342         Fix parsing of the remaining sign characters.
343         * 22_locale/money_get/get/char/2.cc: Tweak: now, correctly,
344         the input is scanned 'til eof.
345         * 22_locale/money_get/get/char/4.cc: Likewise.
346         * 22_locale/money_get/get/wchar_t/2.cc: Likewise.
347         * 22_locale/money_get/get/wchar_t/4.cc: Likewise.
348         * 22_locale/money_get/get/char/8.cc: Tweak: override do_neg_format,
349         not do_pos_format: the former is the only one that matters during
350         input.
351         * 22_locale/money_get/get/wchar_t/8.cc: Likewise.
353         * 22_locale/money_get/get/char/6.cc: Minor tweak.
354         * 22_locale/money_get/get/wchar_t/6.cc: Likewise.
356 2004-02-15  David Asher  <david.asher@cavium.com>
358         PR libstdc++/11352
359         * include/bits/locale_facets.tcc (__pad<>::_S_pad): Don't
360         access __olds beyond __oldlen.
362 2004-02-14  Paolo Carlini  <pcarlini@suse.de>
364         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Make
365         sure the exception is actually thrown.
366         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
367         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
368         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
370 2004-02-14  Paolo Carlini  <pcarlini@suse.de>
372         PR libstdc++/13858
373         * include/bits/fstream.tcc (basic_filebuf<>::_M_convert_to_external):
374         In case of conversion errors, throw ios_failure; simplify.
375         * testsuite/27_io/basic_filebuf/overflow/char/13858.cc: New.
376         * testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc: Ditto.
377         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Tweak,
378         previously we didn't throw in case of conversion errors, instead
379         just returned eof().
380         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
381         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
382         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
384         * include/bits/fstream.tcc (basic_filebuf<>::overflow):
385         Trivial simplification of a conditional.
387 2004-02-12  Paolo Carlini  <pcarlini@suse.de>
389         PR libstdc++/13731 (final part: writev)
390         * config/io/basic_file_stdio.cc (__gnu_internal::xwritev):
391         New, a wrapper around writev() handling partial writes.
392         (__basic_file<char>::xwrite): Move to __gnu_internal and make
393         static.
394         (__basic_file<char>::xsputn): Update call.
395         (__basic_file<char>::xsputn_2): Likewise.       
396         * config/io/basic_file_stdio.h (__basic_file<char>::xwrite):
397         Don't declare, now static.
399 2004-02-11  Stefan Olsson  <stefan@xapa.se>
401         * docs/html/ext/mt_allocator.html: New.
403 2004-02-11  Benjamin Kosnik  <bkoz@redhat.com>
405         * docs/html/20_util/allocator.html: New file, consolidate
406         allocator information here. Revamp.
407         * docs/html/documentation.html: Change links.
408         * docs/html/20_util/howto.html: Same.
409         * docs/html/ext/howto.html: Same.
411 2004-02-11  Paolo Carlini  <pcarlini@suse.de>
413         PR libstdc++/13731 (first part: write)
414         * config/io/basic_file_stdio.h (__basic_file<char>::xwrite):
415         New, declare.
416         * config/io/basic_file_stdio.cc (__basic_file<char>::xwrite):
417         Define it: a wrapper around write() handling partial write.
418         (__basic_file<char>::xsputn): Use it.
419         (__basic_file<char>::xsputn_2): Likewise.
421 2004-02-11  Paolo Carlini  <pcarlini@suse.de>
422             Petur Runolfsson  <peturr02@ru.is>
424         PR libstdc++/14078
425         * include/std/std_istream.h (operator>>(__istream_type& (*)
426         (__istream_type&)), operator>>(__ios_type& (*)(__ios_type&)),
427         operator>>(ios_base& (*)(ios_base&))): Declare inline.
428         * include/std/std_ostream.h (operator<<(__ostream_type& (*)
429         (__ostream_type&)), operator<<(__ios_type& (*)(__ios_type&)),
430         operator<<(ios_base& (*) (ios_base&))): Likewise.
431         * testsuite/performance/27_io/fmtflags_manipulators.cc: New.
433 2004-02-10  Loren J. Rittle  <ljrittle@acm.org>
435         PR libstdc++/14098
436         * config/linker-map.gnu: Add typeinfo and typeinfo name for
437         __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> >.
439         PR libstdc++/14097
440         * config/linker-map.gnu: Add typeinfo and typeinfo name for
441         __gnu_cxx::stdio_filebuf<char, std::char_traits<char> >.
443 2004-02-09  Loren J. Rittle  <ljrittle@acm.org>
445         * include/ext/pool_allocator.h: Include c++config.h.
447 2004-02-09  Stefan Olsson  <stefan@xapa.se>
449         * include/ext/mt_allocator.h: thread_id is unused in non threaded
450         applications and now has a ifdef to remove it completely on
451         compilers without thread support. Include stdlib.h due to a
452         compiler warning on getenv().
454 2004-02-09  Paul Brook  <paul@codesourcery.com>
456         * libstdc++-v3/configure.host: Explicitly check for atomicity.h file.
458 2004-02-09  Paolo Carlini  <pcarlini@suse.de>
460         PR libstdc++/14071
461         * src/locale_init.cc (locale::global(const locale&)): Use
462         locale::name() in order to decide whether calling setlocale.
463         * testsuite/22_locale/locale/global_locale_objects/14071.cc: New.
465         * include/bits/locale_classes.h (locale::_Impl::_M_check_same_name()):
466         Avoid computing &= unnecessarily.
468 2004-02-09  James E Wilson  <wilson@specifixinc.com>
470         PR libstdc++/5625
471         * libsuspc++/eh_personality.cc (PERSONALITY_FUNCTION): Use
472         __builtin_extend_pointer.
474 2004-02-09  Paolo Carlini  <pcarlini@suse.de>
476         PR libstdc++/14072
477         * include/bits/basic_ios.tcc (basic_ios<>::_M_cache_locale):
478         Don't leave dangling pointers.
479         * testsuite/27_io/basic_ios/imbue/14072.cc: New.
480         * testsuite/22_locale/numpunct/members/pod/2.cc: Tweak, the num_put
481         facet is needed in the final test.
483 2004-02-09  Bernardo Innocenti  <bernie@develer.com>
485         * crossconfig.m4: Don't enable _GLIBCXX_USE_LFS on *-uclinux*.
486         * configure: Regenerate.
488 2004-02-08  Richard Henderson  <rth@redhat.com>
490         PR libstdc++/14026
491         * libsupc++/eh_catch.cc (__cxa_begin_catch): Don't adjust 
492         uncaughtExceptions during nested catch rethrow.
493         * testsuite/18_support/14026.cc: New.
495 2004-02-08  Paolo Carlini  <pcarlini@suse.de>
497         * include/bits/basic_string.tcc (assign(const _CharT*, size_type)):
498         When working in place remember to set the state to sharable
499         (otherwise, _M_mutate does it).
501 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
503         * include/bits/allocator.h, include/bits/basic_ios.h,
504         include/bits/basic_ios.tcc, include/bits/basic_string.h,
505         include/bits/basic_string.tcc, include/bits/boost_concept_check.h,
506         include/bits/char_traits.h, include/bits/codecvt.h,
507         include/bits/concurrence.h, include/bits/cpp_type_traits.h,
508         include/bits/demangle.h, include/bits/deque.tcc,
509         include/bits/fstream.tcc, include/bits/functexcept.h,
510         include/bits/gslice.h, include/bits/gslice_array.h,
511         include/bits/indirect_array.h, include/bits/ios_base.h,
512         include/bits/istream.tcc, include/bits/list.tcc,
513         include/bits/locale_classes.h, include/bits/locale_facets.h,
514         include/bits/locale_facets.tcc, include/bits/localefwd.h,
515         include/bits/mask_array.h, include/bits/ostream.tcc,
516         include/bits/postypes.h, include/bits/slice_array.h,
517         include/bits/sstream.tcc, include/bits/stl_algo.h,
518         include/bits/stl_algobase.h, include/bits/stl_bvector.h,
519         include/bits/stl_construct.h, include/bits/stl_deque.h,
520         include/bits/stl_function.h, include/bits/stl_heap.h,
521         include/bits/stl_iterator.h, include/bits/stl_iterator_base_funcs.h,
522         include/bits/stl_list.h, include/bits/stl_map.h,
523         include/bits/stl_multimap.h, include/bits/stl_multiset.h,
524         include/bits/stl_numeric.h, include/bits/stl_pair.h,
525         include/bits/stl_queue.h, include/bits/stl_raw_storage_iter.h,
526         include/bits/stl_relops.h, include/bits/stl_set.h,
527         include/bits/stl_stack.h, include/bits/stl_tempbuf.h,
528         include/bits/stl_threads.h, include/bits/stl_tree.h,
529         include/bits/stl_uninitialized.h, include/bits/stl_vector.h,
530         include/bits/stream_iterator.h, include/bits/streambuf.tcc,
531         include/bits/streambuf_iterator.h,include/bits/stringfwd.h,
532         include/bits/type_traits.h, include/bits/valarray_after.h,
533         include/bits/valarray_array.h, include/bits/valarray_array.tcc,
534         include/bits/valarray_before.h, include/bits/vector.tcc: Remove
535         trailing whitespace.
537 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
539         * include/bits/basic_string.h: Fix comment.
541 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
543         * include/bits/stl_construct.h: Wrap overlong lines, reformat
544         according to the coding standards.
545         * include/bits/stl_pair.h: Likewise.
546         * include/bits/stl_raw_storage_iter.h: Likewise.
547         * include/bits/stl_stack.h: Likewise.
548         * include/bits/stl_uninitialized.h: Likewise.
549         * include/bits/stream_iterator.h: Likewise.
550         * include/bits/streambuf_iterator.h: Likewise.
551         * include/bits/type_traits.h: Likewise.
553 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
555         * testsuite/27_io/basic_filebuf/open/char/9507.cc:
556         Adjust timings.
558 2004-02-05  Loren J. Rittle  <ljrittle@acm.org>
560         * scripts/check_performance: Support PCH.
562         * scripts/check_performance (CXX): Add -DNOTHREAD.
563         * testsuite/performance/20_util/allocator/insert.cc: Integrate
564         threaded tests from insert_insert.cc.  Tweak iterations,
565         remove special cases.
566         * testsuite/performance/20_util/allocator/insert_insert.cc:
567         Make all tests single-threaded. Tweak iterations.
568         * testsuite/performance/20_util/allocator/map_thread.cc:
569         Tweak iterations.
570         * testsuite/performance/20_util/allocator/producer_consumer.cc:
571         Likewise.
573 2004-02-05  Geoffrey Keating  <geoffk@apple.com>
575         PR 12179
576         * .cvsignore: New.
577         * acinclude.m4 (GLIBCXX_EXPORT_INSTALL_INFO): Use 'gcc', not
578         'gcc-lib'.  Add comment about poorly-named variables.
579         * aclocal.m4: Regenerate.
580         * configure: Regenerate.
582 2004-02-05  Paolo Carlini  <pcarlini@suse.de>
584         * include/bits/locale_facets.tcc (money_get::do_get(string_type&)):
585         Thousands-sep are always optional; thousands-sep are not allowed
586         after the decimal_point.
587         * testsuite/22_locale/money_get/get/char/12.cc: New.
588         * testsuite/22_locale/money_get/get/char/13.cc: New.
589         * testsuite/22_locale/money_get/get/wchar_t/12.cc: New.
590         * testsuite/22_locale/money_get/get/wchar_t/13.cc: New.
592         * testsuite/22_locale/money_get/get/char/1.cc: Clean-up.
593         * testsuite/22_locale/money_get/get/char/2.cc: Likewise.
594         * testsuite/22_locale/money_get/get/char/3.cc: Likewise.
595         * testsuite/22_locale/money_get/get/char/4.cc: Likewise.
596         * testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise.
597         * testsuite/22_locale/money_get/get/wchar_t/2.cc: Likewise.
598         * testsuite/22_locale/money_get/get/wchar_t/3.cc: Likewise.
599         * testsuite/22_locale/money_get/get/wchar_t/4.cc: Likewise.
601         * testsuite/22_locale/money_get/get/char/9.cc: Fix citation from
602         the standard.
603         * testsuite/22_locale/money_get/get/wchar_t/9.cc: Likewise.
605 2004-02-05  Richard Sandiford  <rsandifo@redhat.com>
607         * config/os/irix/irix6.5/os_defines.h (_GLIBCXX_FIONREAD_TAKES_OFF_T):
608         Define.
609         * config/io/basic_file_stdio.cc (__basic_file<char>::showmanyc): Use
610         it to decide whether FIONREAD should take an off_t or int argument.
612 2004-02-05  Paolo Carlini  <pcarlini@suse.de>
614         * include/bits/stl_function.h: Minor formatting changes.
616 2004-02-04  Zack Weinberg  <zack@codesourcery.com>
618         Revert previous change to config/abi/*/baseline_symbols.txt.
620 2004-02-04  Benjamin Kosnik  <bkoz@redhat.com>
621             Zack Weinberg  <zack@codesourcery.com>
623         * config/io/basic_file_stdio.cc (__gnu_internal::fopen_mode):
624         New function.
625         (__basic_file<char>::sys_open, __basic_file<char>::open): Use it.
626         (__basic_file<char>::_M_open_mode): Delete.
627         * config/io/basic_file_stdio.cc: Delete declaration of _M_open_mode.
629         * testsuite/27_io/basic_filebuf/close/char/9964.cc
630         * testsuite/27_io/basic_filebuf/open/char/9507.cc:
631         Correct flags to filebuf::open calls.
633         * config/abi/alpha-freebsd5/baseline_symbols.txt
634         * config/abi/alpha-linux-gnu/baseline_symbols.txt
635         * config/abi/hppa-linux-gnu/baseline_symbols.txt
636         * config/abi/i386-freebsd4/baseline_symbols.txt
637         * config/abi/i386-freebsd5/baseline_symbols.txt
638         * config/abi/i486-linux-gnu/baseline_symbols.txt
639         * config/abi/ia64-linux-gnu/baseline_symbols.txt
640         * config/abi/mips-linux-gnu/baseline_symbols.txt
641         * config/abi/sparc-freebsd5/baseline_symbols.txt
642         * config/abi/sparc-linux-gnu/baseline_symbols.txt
643         * config/abi/x86_64-linux-gnu/baseline_symbols.txt:
644         Remove entry for __basic_file<char>::_M_open_mode.
646 2004-02-04  Loren J. Rittle  <ljrittle@acm.org>
648         * testsuite/performance/20_util/allocator/insert.cc (main): Tweak.
650 2004-02-04  Felix Yen  <fwy@alumni.brown.edu>
652         * testsuite/performance/20_util/producer_consumer.cc: New.
653         * testsuite/performance/20_util/allocator/insert_insert.cc: Two loops.
655 2004-02-04  Benjamin Kosnik  <bkoz@redhat.com>
657         * testsuite/performance/20_util/allocator.cc: Move to..
658         * testsuite/performance/20_util/allocator/insert.cc: ...here.
659         * testsuite/performance/20_util/allocator_thread.cc: Move to...
660         * testsuite/performance/20_util/allocator/insert_insert.cc: ...here.
661         * testsuite/performance/20_util/allocator_map_thread.cc: Move to...
662         * testsuite/performance/20_util/allocator/map_thread.cc: ...here.
664 2004-02-04  Jonathan Wakely  <redi@gcc.gnu.org>
666         * docs/html/faq/index.html: Recommend using LD_LIBRARY_PATH.
667         * docs/html/faq/index.txt: Regenerate.
669 2004-02-04  Dhruv Matani  <dhruvbird@gmx.net>
671         * include/ext/debug_allocator.h: _M_extra now stands for the
672         number of extra objects instead of the number of extra bytes.
673         (debug_allocator::allocate): Adjust.
674         (debug_allocator::deallocate): Adjust.
676         * include/ext/pool_allocator.h: Fix typo.
678 2004-02-03  Felix Yen  <fwy@alumni.brown.edu>
679             Benjamin Kosnik  <bkoz@redhat.com>
681         * testsuite/performance/20_util/allocator.cc: Add map,
682         deque, set tests.
683         * testsuite/performance/20_util/allocator_thread.cc: Same.
685 2004-02-03  Paolo Carlini  <pcarlini@suse.de>
687         * include/bits/basic_string.h (insert(iterator)): Remove,
688         non-standard and already scheduled for removal.
690 2004-02-03  Paolo Carlini  <pcarlini@suse.de>
692         * include/bits/stl_iterator_base_funcs.h: Minor formatting
693         and indentation tweaks.
694         * include/bits/stl_iterator_base_types.h: Likewise.
695         * include/bits/stl_list.h: Likewise.
696         * include/bits/stl_map.h: Likewise.
697         * include/bits/stl_tempbuf.h: Likewise.
699 2004-02-02  Jerry Quinn  <jlquinn@optonline.net>
701         * include/bits/gslice.h, include/bits/gslice_array.h,
702         include/bits/indirect_array.h, include/bits/mask_array.h,
703         include/bits/slice_array.h, include/bits/stl_numeric.h,
704         include/std/std_valarray.h:  Update copyright years.
706 2004-02-02  Jerry Quinn  <jlquinn@optonline.net>
708         * include/bits/gslice.h (gslice):  Document.
709         * include/bits/gslice_array.h (gslice_array):  Document.
710         * include/bits/indirect_array (indirect_array):  Document.
711         * include/bits/mask_array (mask_array):  Document.
712         * include/bits/slice_array.h (slice,slice_array):  Document.
713         * include/bits/stl_numeric.h (accumulate, inner_product, partial_sum,
714         adjacent_difference):  Document
715         * include/std/std_valarray.h (valarray):  Document.
717 2004-02-02  Benjamin Kosnik  <bkoz@redhat.com>
719         * docs/html/19_diagnostics/howto.html: Move verbose terminate
720         documentation...
721         * docs/html/18_support/howto.html: Here.
722         * docs/html/documentation.html: Add reference here.
724 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
726         * config/locale/gnu/c++locale_internal.h: Remove prototypes
727         of no longer used GLIBC thread locale functions.
729 2004-02-02  Eric Christopher  <echristo@redhat.com>
730             Zack Weinberg  <zack@codesourcery.com>
732         * testsuite/22_locale/collate/compare/wchar_t/2.cc: Remove xfail. Use
733         -finput-charset.
734         * testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc: Ditto.
735         * testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc: Ditto
736         * testsuite/22_locale/collate/hash/wchar_t/2.cc: Ditto.
737         * testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc: Ditto.
738         * testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc: Ditto.
739         * testsuite/22_locale/collate/transform/wchar_t/2.cc: Ditto.
740         * testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc: Ditto.
741         * testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc:
742         Ditto.
744 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
746         * include/bits/stl_function.h: Additional minor tweaks.
747         * include/bits/stl_multiset.h: Likewise.
749         * include/bits/stl_queue.h: Minor tweaks.
751 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
753         PR libstdc++/13976 (continued)
754         * include/ext/malloc_allocator.h (malloc_allocator::deallocate):
755         Make the second parameter unnamed, to void unused parameter
756         warnings.
757         * include/ext/new_allocator.h (new_allocator::deallocate): Ditto.
759 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
761         PR libstdc++/13976
762         * include/ext/malloc_allocator.h (malloc_allocator::allocate):
763         Make the second parameter unnamed, to void unused parameter
764         warnings.
765         * include/ext/mt_allocator.h (__mt_alloc::allocate): Ditto.
766         * include/ext/new_allocator.h (new_allocator::allocate): Ditto.
768 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
770         * include/bits/stl_algo.h: Additional minor tweaks.
771         * include/bits/stl_map.h: Likewise.
772         * include/bits/stl_multimap.h: Likewise.
773         * include/bits/stl_multiset.h: Likewise.
774         * include/bits/stl_set.h: Likewise.
775         * include/bits/stl_tree.h: Likewise.
777 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
779         * include/bits/vector.tcc (vector::_M_insert_aux(iterator)):
780         Remove, unused.
782 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
784         * include/bits/stl_function.h: Additional minor tweaks.
786 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
788         * include/bits/deque.tcc: Wrap overlong lines, constify
789         a few variables, reformat according to the coding standards.
790         * include/bits/list.tcc: Likewise.
791         * include/bits/stl_deque.h: Likewise.
792         * include/bits/stl_function.h: Likewise.
793         * include/bits/stl_iterator.h: Likewise.
794         * include/bits/stl_iterator_base_funcs.h: Likewise.
795         * include/bits/stl_iterator_base_types.h: Likewise.
796         * include/bits/stl_list.h: Likewise.
797         * include/bits/stl_map.h: Likewise.
798         * include/bits/stl_multimap.h: Likewise.
799         * include/bits/stl_multiset.h: Likewise.
800         * include/bits/stl_relops.h: Likewise.
801         * include/bits/stl_set.h: Likewise.
803 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
805         * include/bits/stl_bvector.h: Wrap overlong lines, constify
806         a few variables, reformat according to the coding standards.
807         * include/bits/stl_tree.h: Likewise.
809 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
811         * include/bits/stl_algo.h: Minor additional reformat, add
812         copyright year.
813         * include/bits/stl_algobase.h: Add copyright year.
815 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
817         * include/bits/stl_algo.h: Wrap overlong lines, constify
818         a few variables, reformat according to the coding standards.
819         * include/bits/stl_algobase.h: Likewise.
820         * include/bits/stl_heap.h: Likewise.
822 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
824         * include/bits/basic_string.h (_Rep::operator[]): Remove, unused.
826         * include/bits/basic_string.h: Fix two comments.
828 2004-01-31  Per Bothner  <per@bothner.com>
830         * include/ext/mt_allocator.h
831         (__mt_alloc::_S_thread_freelist_mutex): Guard with
832         __GTHREAD_MUTEX_INIT.
834 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
836         * include/bits/basic_string.tcc (_Rep::_S_create): Minor tweak.
838 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
840         * testsuite/21_strings/basic_string/cons/char/6.cc: New.
841         * testsuite/21_strings/basic_string/cons/wchar_t/6.cc: New.
842         * testsuite/performance/21_strings/string_cons_input_iterator.cc: New.
844 2004-01-30  Felix Yen  <fwy@alumni.brown.edu>
846         * testsuite/performance/20_util/allocator_thread.cc (do_loop):
847         Don't use clear, but instead assign. Use insert.
849 2004-01-30  Benjamin Kosnik  <bkoz@redhat.com>
851         * src/demangle.cc: Add instantiations.
852         * src/Makefile.am: Remove special rules for demangle.lo, demangle.o.
853         * src/Makefile.in: Regenerate.
855 2004-01-30  David Edelsohn  <edelsohn@gnu.org>
857         * src/allocator.cc: Protect _S_get_thread_id() and
858         _S_thread_key_destr() with #ifdef __GTHREADS.
860 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
862         Reshuffle performance testsuite.
863         * testsuite/performance/allocator.cc, allocator_map_thread.cc,
864         allocator_thread.cc, complex_norm.cc, container_benchmark.cc,
865         cout_insert_int.cc, filebuf_copy.cc, filebuf_sputc.cc,
866         fstream_seek_write.cc, ifstream_extract_float.cc,
867         ifstream_extract_int.cc, ifstream_getline.cc, is_wchar_t.cc,
868         list_create_fill_sort.cc, map_create_fill.cc,
869         narrow_widen_char.cc, narrow_widen_wchar_t.cc,
870         ofstream_insert_float.cc, ofstream_insert_int.cc,
871         string_append.cc, wchar_t_in.cc, wchar_t_length.cc,
872         wchar_t_out.cc: Split into...
873         * testsuite/performance/20_util/allocator.cc: New.
874         * testsuite/performance/20_util/allocator_map_thread.cc: New.
875         * testsuite/performance/20_util/allocator_thread.cc: New.
876         * testsuite/performance/21_strings/string_append: New.
877         * testsuite/performance/22_locale/is_wchar_t.cc: New.
878         * testsuite/performance/22_locale/narrow_widen_char.cc: New.
879         * testsuite/performance/22_locale/narrow_widen_wchar_t.cc: New.
880         * testsuite/performance/22_locale/wchar_t_in.cc: New.
881         * testsuite/performance/22_locale/wchar_t_length.cc: New.
882         * testsuite/performance/22_locale/wchar_t_out.cc: New.
883         * testsuite/performance/23_containers/container_benchmark.cc: New.
884         * testsuite/performance/23_containers/list_create_fill_sort.cc: New.
885         * testsuite/performance/23_containers/map_create_fill.cc: New.
886         * testsuite/performance/26_numerics/complex_norm.cc: New.
887         * testsuite/performance/27_io/cout_insert_int.cc: New.
888         * testsuite/performance/27_io/filebuf_copy.cc: New.
889         * testsuite/performance/27_io/filebuf_sputc.cc: New.
890         * testsuite/performance/27_io/fstream_seek_write.cc: New.
891         * testsuite/performance/27_io/ifstream_extract_float.cc: New.
892         * testsuite/performance/27_io/ifstream_extract_int.cc: New.
893         * testsuite/performance/27_io/ifstream_getline.cc: New.
894         * testsuite/performance/27_io/ofstream_insert_float.cc: New.
895         * testsuite/performance/27_io/ofstream_insert_int.cc: New.
897 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
899         * include/bits/basic_string.tcc (_Rep::_S_create):
900         Never allocate a string bigger than max_size(); always keep
901         __capacity and __size in sync to avoid memory leaks at
902         deallocation time.
904 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
906         * include/bits/basic_string.tcc (_S_construct(_InIterator,
907         _InIterator, const _Alloc&, input_iterator_tag)): Simplify
908         the double loop, streamline.
910         * include/bits/basic_string.tcc: Very minor tweaks.
912 2004-01-30  Loren J. Rittle  <ljrittle@acm.org>
914         * scripts/check_performance: Only compile with $THREAD_FLAG
915         when test is marked to require it.  Allow multiple
916         compilations/executions of marked tests.
917         * testsuite/testsuite_performance.h (report_performance):
918         Report dynamic thread support status.
919         (report_header): Likewise.
920         * testsuite/performance/allocator.cc: Stabilize iteration
921         count.  Support more allocators.  Mark each allocator test to
922         run and report independently.
923         * testsuite/performance/allocator_map_thread.cc: Likewise.
924         * testsuite/performance/allocator_thread.cc: Likewise.
926 2004-01-29  Stephen M. Webb  <stephen.webb@bregmasoft.com>
928         * config/local/generic/c_locale.h: Change ::malloc() to new char[].
929         * config/local/gnu/c_locale.h: Change ::malloc() to new char[].
930         * include/bits/stl_tempbuf.h: Convert _Temporary_buffer to use
931         std::get_temporary_buffer() instead of duplicating its code.
932         Update to C++STYLE conventions.
933         * include/std/std_memory.h (get_temporary_buffer): Use ::operator
934         new() instead of std::malloc().
935         (return_temporary_buffer): Use ::operator delete() instead of
936         std::free().
938 2004-01-29  Benjamin Kosnik  <bkoz@redhat.com>
940         * include/bits/allocator.h: Temporary switch to new_allocator as
941         the default to unjam bootstraps.
943 2004-01-28  Benjamin Kosnik  <bkoz@redhat.com>
945         * include/Makefile.am (bits_headers): Remove allocator_traits.h.
946         * include/Makefile.in: Regenerate.
947         * include/bits/allocator_traits.h: Remove.
948         * include/bits/allocator.h: Remove allocator_traits.h include, and
949         relevant comments.
950         (allocator): Empty base class, inherit from the underlying allocator.
951         * src/allocator-inst.cc: Move __pool_alloc instantiation to...
952         * src/allocator.cc: ...here. New. For the underlying allocators.
953         Add __mt_alloc, __pool_alloc, new_allocator, malloc_allocator bits.
954         * config/linker-map.gnu: Remove __pool_alloc bits.
955         * src/Makefile.am (sources): Add allocator.cc.
956         * src/Makefile.in: Regenerate.
957         * testsuite/20_util/allocator/1.cc: Split second test into...
958         * testsuite/20_util/allocator/8230.cc: ...this.
959         * include/bits/stl_bvector.h (__gnu_norm): Change bit_vector
960         typedef to use std::allocatore. Format.
961         * include/ext/pool_allocator.h: Remove allocator_traits.h include,
962         _Alloc_traits.
963         * include/ext/mt_allocator.h (__gnu_cxx): Qualify
964         __throw_bad_alloc calls. Don't include <memory>.
965         * include/ext/malloc_allocator.h: Remove <memory> include.
966         * include/ext/new_allocator.h (new_allocator): Same.
967         * include/ext/ropeimpl.h (__gnu_cxx): Remove __alloc using
968         declaration. Switch __alloc to _Alloc.
969         * include/ext/hashtable.h: Remove __alloc.
970         * include/backward/alloc.h: Only inject allocator, not
971         implementation details.
973         * include/ext/mt_allocator.h: Replace free with delete.
975 2004-01-28  Benjamin Kosnik  <bkoz@redhat.com>
977         * src/globals_io.cc: Change to __gnu_internal namespace.
978         * src/globals_locale.cc: Same.
979         * src/locale_init.cc: Same.
980         * src/ios_init.cc: Same.
982 2004-01-28  Stefan Olsson  <stefan@snon.net>
984         * include/ext/mt_allocator.h: Replaced all malloc() calls with
985         operator new(). Added support for the env variable
986         GLIBCXX_FORCE_NEW (this required the _S_init call to be the first
987         one in allocate() as well). Fix typos.
989 2004-01-28  Paolo Carlini  <pcarlini@suse.de>
991         * include/bits/basic_string.h (_S_create(size_t,
992         const _Alloc&): Change signature to take two size_type
993         arguments.
994         * include/bits/basic_string.tcc (_S_construct(_InIterator,
995         _InIterator, const _Alloc&, input_iterator_tag)): Update
996         call, tweak a bit.
997         (_S_construct(_InIterator, _InIterator, const _Alloc&,
998         forward_iterator_tag)): Likewise.
999         (_S_construct(size_type, _CharT, const _Alloc&)): Likewise.
1000         (_M_mutate(size_type, size_type, size_type)): Don't
1001         implement the exponential growth policy, demand it to
1002         _S_create, update call and simplify.
1003         (_M_clone(const _Alloc&, size_type)): Likewise.
1004         (_S_create(size_type, size_type, const _Alloc&)): Implement
1005         the growth policy, simplify otherwise.
1007         * include/bits/basic_string.h (_Rep::operator[]): Tweak
1008         signature to take a size_type, consistently with the other
1009         members.
1011 2004-01-27  Benjamin Kosnik  <bkoz@redhat.com>
1013         * testsuite/27_io/ios_base/storage/11584.cc: Correct new and
1014         delete declarations, add include and test variable.
1016 2003-01-27  Jerry Quinn  <jlquinn@optonline.net>
1018         * include/bits/codecvt.h, include/bits/locale_facets.h,
1019         include/bits/postypes.h, include/bits/stl_bvector.h,
1020         include/bits/stl_multiset.h, include/bits/stl_set.h,
1021         include/bits/stream_iterator.h, include/bits/streambuf_iterator.h,
1022         include/std/std_complex.h:  Document.
1024 2004-01-27  Jerry Quinn  <jlquinn@optonline.net>
1026         PR libstdc++/11584
1027         * include/bits/ios_base.h (ios_base::_M_grow_words):  Add
1028         iword/pword selector.
1029         (ios_base::iword, ios_base::pword):  Use it.
1030         * src/ios.cc (ios_base::_M_grow_words):  Clear _M_word_zero
1031         iword or pword member on alloc failure.
1032         * testsuite/27_io/ios_base/storage/11584.cc:  New test.
1034 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
1035             PJ Darcy  <darcypj@us.ibm.com>
1037         * configure.host: Add support for *-tpf.
1038         * crossconfig.m4: Likewise.
1039         * configure: Regenerate.
1040         * config/os/tpf: New directory.
1041         * config/os/tpf/os_defines.h: New file.
1042         * config/os/tpf/ctype_base.h: Likewise.
1043         * config/os/tpf/ctype_inline.h: Likewise.
1044         * config/os/tpf/ctype_noninline.h: Likewise.
1046 2004-01-27  Paolo Carlini  <pcarlini@suse.de>
1048         PR libstdc++/13884
1049         * include/bits/sstream.tcc: Guard use of extern template.
1051 2004-01-27  Paolo Carlini  <pcarlini@suse.de>
1053         * include/bits/basic_string.tcc
1054         (basic_string(const basic_string&, size_type, size_type),
1055         basic_string(const basic_string&, size_type, size_type,
1056         const _Alloc&)): Avoid unnecessarily constructing iterators.
1058 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
1060         * config/locale/generic/c_locale.cc: Fix throw messages
1061         to use the __N marker.
1062         * config/locale/gnu/c_locale.cc: Likewise.
1063         * config/locale/ieee_1003.1-2001/codecvt_specializations.h:
1064         Likewise.
1065         * docs/html/17_intro/C++STYLE: Likewise.
1066         * include/bits/basic_ios.tcc: Likewise.
1067         * include/bits/fstream.tcc: Likewise.
1068         * include/bits/vector.tcc: Likewise.
1069         * include/ext/ropeimpl.h: Likewise.
1070         * include/std/std_bitset.h: Likewise.
1071         * src/ios.cc: Likewise.
1072         * src/locale.cc: Likewise.
1073         * src/localename.cc: Likewise.
1075 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
1077         * include/bits/basic_string.h (_M_replace_aux): Use the
1078         __N marker in throw message.
1079         * include/bits/basic_string.tcc (assign(const _CharT*,
1080         size_type), insert(size_type, const _CharT*, size_type),
1081         replace(size_type, size_type, const _CharT*, size_type),
1082         reserve, _Rep::_S_create, resize, _M_replace_dispatch):
1083         Likewise.
1085         * include/bits/basic_string.h, include/bits/basic_string.tcc:
1086         Fold overlong lines, minor formatting changes.
1088 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
1090         * include/bits/basic_string.h (replace(iterator, iterator,
1091         const basic_string&)): Remove _GLIBCXX_DEBUG_PEDASSERT.
1092         (replace(iterator, iterator, const _CharT*)): Ditto.
1093         (replace(iterator, iterator, const _CharT*, size_type)):
1094         Add missing _GLIBCXX_DEBUG_PEDASSERT.
1096 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
1098         * include/bits/basic_string.tcc (replace(size_type,
1099         size_type, const _CharT*, size_type)): Implement optimized
1100         in-place algorithm for non-overlapping ranges.
1101         * testsuite/21_strings/basic_string/replace/char/6.cc: New.
1102         * testsuite/21_strings/basic_string/replace/wchar_t/6.cc: New.
1104         * include/bits/basic_string.tcc (insert(size_type,
1105         const _CharT*, size_type)): Tweak slightly.
1107 2004-01-26  Andreas Schwab  <schwab@suse.de>
1109         * config/locale/gnu/monetary_members.cc: Restore locale before
1110         rethrowing exception.
1112 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
1114         * include/bits/basic_string.h (_M_replace_aux, _M_replace_safe):
1115         Define inline here.
1116         * include/bits/basic_string.tcc (_M_replace_aux, _M_replace_safe):
1117         Move inline.
1119         * include/bits/basic_string.tcc: Very minor tweaks.
1121 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
1123         * testsuite/performance/string_append.cc: Increase number
1124         of iterations.
1126 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
1128         * include/bits/basic_string.h (erase(size_type, size_type),
1129         erase(iterator), erase(iterator, iterator)): Call _M_replace_safe
1130         instead, thus avoiding redundant check for length_error.
1132         * include/bits/basic_string.h: Tweak some comments.
1134 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
1136         * include/bits/basic_string.tcc (operator+(const _CharT*,
1137         const basic_string&)): No need to go through the append
1138         taking two iterators.
1140 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
1142         * include/bits/basic_string.tcc (rfind(_CharT, size_type)):
1143         Revert last change to use std::min: machine language is worse.
1144         (find_last_of(const _CharT*, size_type, size_type)): Ditto.
1145         (find_last_not_of(const _CharT*, size_type, size_type)): Ditto.
1146         (find_last_not_of(_CharT, size_type)): Ditto.
1148         * include/bits/basic_string.tcc (insert(size_type, const _CharT*,
1149         size_type)): Discard the value returned by _M_check.
1150         (replace(size_type, size_type, const _CharT*, size_type)): Ditto.
1151         (append(const basic_string&, size_type, size_type)): Ditto.
1152         (copy(_CharT*, size_type, size_type)): Ditto.
1153         (compare(size_type, size_type, const basic_string&)): Ditto.
1154         (compare(size_type, size_type, const basic_string&,
1155         size_type, size_type)): Ditto.
1156         (compare(size_type, size_type, const _CharT*)): Ditto.
1157         (compare(size_type, size_type, const _CharT*, size_type)): Ditto.
1159 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
1161         * include/bits/basic_string.h (insert(size_type,
1162         const basic_string&, size_type, size_type)): Define inline here.
1163         * include/bits/basic_string.tcc (insert(size_type,
1164         const basic_string&, size_type, size_type)): Move inline.
1166 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
1168         * include/bits/basic_string.h (assign(const basic_string&,
1169         size_type, size_type)): Define inline here.
1170         (replace(size_type, size_type, const basic_string&,
1171         size_type, size_type)): Ditto.
1172         (_M_replace_dispatch(iterator, iterator, _InputIterator,
1173         _InputIterator, __false_type)): Only declare.
1174         (_M_replace(iterator, iterator, _InputIterator,
1175         _InputIterator)): Remove.
1176         * include/bits/basic_string.tcc (assign(const basic_string&,
1177         size_type, size_type)): Move inline.
1178         (replace(size_type, size_type, const basic_string&,
1179         size_type, size_type)): Ditto.
1180         (_M_replace_dispatch(iterator, iterator, _InputIterator,
1181         _InputIterator, __false_type)): Define, now does also what
1182         _M_replace did before.
1183         * src/string-inst.cc (_M_replace): Don't instantiate.
1185         * include/bits/basic_string.tcc (find(const _CharT*,
1186         size_type, size_type)): Tidy.
1187         (rfind(_CharT, size_type)): Ditto.
1188         (find_first_not_of(const _CharT*, size_type, size_type)): Ditto.
1189         (find_first_not_of(_CharT, size_type)): Ditto.
1190         (find_last_not_of(const _CharT*, size_type, size_type)): Ditto.
1191         (find_last_not_of(_CharT, size_type)): Ditto.
1193 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
1195         PR libstdc++/13838
1196         * include/debug/bitset (operator|=): Fix typo.
1197         * testsuite/23_containers/bitset/operations/13838.cc: New.
1199 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
1201         * include/bits/basic_string.tcc (insert(size_type,
1202         const _CharT*, size_type __n)): Fix length_error check.
1203         (replace(size_type, size_type, const _CharT*, size_type):
1204         Ditto; call _M_replace_safe.
1205         (_M_replace_aux(size_type, size_type, size_type, _CharT):
1206         Fix length_error check.
1207         (_M_replace(iterator, iterator, _InputIterator,
1208         _InputIterator)): Ditto, tweak.
1209         (_M_replace_safe(size_type, size_type, const _CharT*,
1210         size_type)): Remove length_error check.
1212         * include/bits/basic_string.tcc (append(const basic_string&),
1213         append(const basic_string&, size_type, size_type)): Tweak
1214         comment.
1216         * include/bits/basic_string.tcc (copy(_CharT*, size_type,
1217         size_type)): If __n == 0 don't call traits::copy.
1219 2004-01-23  Stefan Olsson  <stefan@snon.net>
1221         * include/ext/mt_allocator.h: Reduce lock contention.
1223 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
1225         PR libstdc++/13831
1226         * include/bits/fstream.tcc (underflow): Remove unused
1227         variable.
1228         * include/bits/streambuf_iterator.h (equal): Ditto.
1229         * include/bits/locale_facets.h (_M_convert_from_char):
1230         Ditto.
1232 2004-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1234         PR c/13814
1235         * config/linker-map.gnu (nan): Delete.
1236         * libmath/mathconf.h (NAN, nan): Delete.
1237         * linkage.m4 (nan): Don't check for it.
1238         * libmath/nan.c: Delete file.
1240         * config.h.in, configure: Regenerate.
1242 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
1244         * include/bits/basic_string.h (push_back(_CharT)):
1245         Call _M_replace_aux.
1246         (insert(size_type, const basic_string&)): Trivial tweak.
1247         (insert(size_type, size_type, _CharT)): Call _M_replace_aux.
1248         (insert(iterator, _CharT)): Ditto.
1249         (erase(size_type, size_type)): Ditto.
1250         (erase(iterator)): Ditto.
1251         (erase(iterator, iterator)): Ditto.
1252         (replace(size_type, size_type, size_type, _CharT)): Ditto.
1254 2004-01-23  Loren J. Rittle  <ljrittle@acm.org>
1256         libstdc++/13823
1257         * testsuite/performance/allocator_map_thread.cc: New test.
1259 2004-01-22  Paolo Carlini  <pcarlini@suse.de>
1261         * include/bits/locale_facets.tcc
1262         (money_put::do_put(..., long double)): Use the basic_string
1263         constructor for char arrays, not that for C-strings, to pass
1264         __digits to do_put(..., const string_type&): __ws isn't
1265         null-terminated.
1267 2004-01-22  Paolo Carlini  <pcarlini@suse.de>
1269         * include/bits/basic_string.h (_M_replace_safe): Change
1270         signatures to take size_types and const _CharT*.
1271         (_M_replace_aux): Likewise, takes size_types instead of
1272         iterators.
1273         (append(size_type, _CharT)): Update call.
1274         (assign(size_type, _CharT)): Ditto.
1275         (replace(iterator, iterator, size_type, _CharT)): Ditto.
1276         (_M_replace_dispatch(iterator, iterator, _Integer,
1277         _Integer, __true_type)): Ditto.
1278         * include/bits/basic_string.tcc (assign(const _CharT*,
1279         size_type)): Ditto.
1280         (insert(size_type, const _CharT*, size_type)): Ditto.
1281         (replace(size_type, size_type, const _CharT*,
1282         size_type)): Ditto.
1283         (_M_replace(iterator, iterator, _InputIterator,
1284         _InputIterator)): Ditto.
1285         (append(const basic_string&)): Ditto.
1286         (append(const basic_string&, size_type, size_type): Ditto.
1287         (append(const _CharT*, size_type): Ditto.
1288         (_M_replace_safe, _M_replace_safe): Change definitions
1289         accordingly, simplify.
1290         * string-inst.cc (_M_replace_safe): Don't instantiate.
1292 2004-01-21  Paolo Carlini  <pcarlini@suse.de>
1294         * include/bits/basic_string.tcc (append(const basic_string&)):
1295         Revert previous change.
1296         (append(const basic_string&, size_type, size_type)): Revert
1297         previous change, use _M_check and _M_limit.
1299 2004-01-21  Paolo Carlini  <pcarlini@suse.de>
1301         * include/bits/basic_string.h (_M_check): Change to return
1302         a checked __pos and take an additional const char* argument.
1303         (_M_fold): Rename to _M_limit, change to return a size_type,
1304         corresponding to the __off limited to the actual length.
1305         (insert(size_type, size_type, _CharT)): Update call, call
1306         replace.
1307         (insert(iterator, _CharT)): Call replace(iterator, iterator,
1308         size_type, _CharT) instead.
1309         (erase(size_type, size_type)): Update calls.
1310         (replace(size_type, size_type, size_type, _CharT)): Ditto.
1311         (substr(size_type, size_type)): Use _M_check.
1312         * include/bits/basic_string.tcc (basic_string(const basic_string&,
1313         size_type, size_type)): Update calls.
1314         (basic_string(const basic_string&, size_type, size_type,
1315         const _Alloc&)): Ditto.
1316         (assign(const basic_string&, size_type, size_type)): Use the
1317         new _M_check and _M_limit.
1318         (insert(size_type, const basic_string&, size_type, size_type):
1319         Ditto.
1320         (insert(size_type, const _CharT*, size_type)): Ditto.
1321         (replace(size_type, size_type, const _CharT*, size_type): Ditto.
1322         (replace(size_type, size_type, const basic_string&,
1323         size_type, size_type)): Ditto.
1324         (append(const basic_string&)): Ditto.
1325         (append(const basic_string&, size_type, size_type)): Ditto.
1326         (copy(_CharT*, size_type, size_type)): Ditto.
1327         (compare(size_type, size_type, const basic_string&)): Ditto.
1328         (compare(size_type, size_type, const basic_string&,size_type,
1329         size_type)): Ditto.
1330         (compare(size_type, size_type, const _CharT*)): Ditto.
1331         (compare(size_type, size_type, const _CharT*, size_type)): Ditto.
1333 2004-01-19  Stefan Olsson  <stefan@snon.net>
1335         * include/ext/mt_allocator.h: If a thread, when it dies, still has
1336         memory on it's freelist this memory is not returned to global
1337         list. Simplification of deallocate so that memory is always
1338         returned to the calling thread id's freelist instead of to
1339         global. Fix typos. Add volatile where appropriate.
1341 2004-01-19  Loren J. Rittle  <ljrittle@acm.org>
1343         * testsuite/ext/stdio_filebuf/char/10063-2.cc: Treat unbuffered.
1344         * testsuite/ext/stdio_filebuf/char/10063-3.cc: New test.  Like -2 but
1345         use __gnu_cxx::stdio_sync_filebuf<char> instead; allow buffered stream.
1347 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
1349         * src/debug.cc: Make sure all the names are prefixed with
1350         double (or single) underscore.
1352 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
1354         * src/debug.cc: Trivial formatting change.
1356 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
1358         * include/bits/basic_string.tcc (_S_construct(size_type,
1359         _CharT, const _Alloc&)): Remove redundant try/catch.
1360         (_M_mutate(size_type, size_type, size_type)): Ditto.
1361         (_M_clone(const _Alloc&, size_type)): Ditto.
1363 2004-01-18  Paolo Carlini  <pcarlini@suse.de>
1365         * include/bits/basic_string.h (c_str()): Simplify, due to
1366         21.3.4 the internal representation is always kept null-terminated.
1367         * include/bits/basic_string.tcc (_M_clone): Null-terminate.
1368         * testsuite/21_strings/basic_string/element_access/char/4.cc: New.
1369         * testsuite/21_strings/basic_string/element_access/wchar_t/4.cc:
1370         Ditto.
1372 2004-01-18  Paolo Carlini  <pcarlini@suse.de>
1374         * include/bits/basic_string.h (append(size_type, _CharT)):
1375         Moved inline, just call _M_replace_aux, no source iterators at
1376         risk of being clobbered.
1377         (assign(size_type, _CharT)): Call directly _M_replace_aux.
1378         (_M_replace(iterator, iterator, _InputIterator, _InputIterator,
1379         input_iterator_tag)): Remove fifth unused argument.
1380         (_M_replace_dispatch(iterator, iterator, _InputIterator,
1381         _InputIterator, __false_type)): Update call.
1382         * include/bits/basic_string.tcc (replace(size_type, size_type,
1383         const _CharT*, size_type)): Update call.
1384         (_M_replace_aux(iterator, iterator, size_type, _CharT)): Tweak
1385         throw string literal.
1386         (_M_replace_safe(iterator, iterator, _ForwardIterator,
1387         _ForwardIterator)): Likewise.
1388         (_M_replace(iterator, iterator, _InputIterator, _InputIterator,
1389         input_iterator_tag)): Remove fifth unused argument.
1390         (append(size_type __n, _CharT __c)): Move inline.
1391         * src/string-inst.cc (S::_M_replace(S::iterator, S::iterator,
1392         const C*, const C*, input_iterator_tag)): Remove fifth unused
1393         argument.
1395 2004-01-16  Benjamin Kosnik  <bkoz@redhat.com>
1397         * testsuite/ext/enc_filebuf/char/13189.cc: Fix guards.
1398         * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Same.
1400 2004-01-16  Danny Smith  <dannysmith@users.sourceforge.net>
1402         * testsuite/testsuite_hooks.cc (try_mkfifo): Avoid calling
1403         mkfifo for mingw32.
1405 2004-01-15  Stefan Olsson  <stefan@snon.net>
1407         * include/ext/mt_allocator.h: Reuse thread id's as soon as
1408         possible by changing the behaviour of thread_freelist to do
1409         push_front when threads die instead of push_back.
1411 2004-01-14  Paolo Carlini  <pcarlini@suse.de>
1413         * include/bits/locale_facets.h (struct __numpunct_cache):
1414         Add member _M_grouping_size, caching the length of _M_grouping.
1415         (__numpunct_cache<>::_M_cache): Assign the latter.
1416         (__verify_grouping): Move declaration...
1417         * include/bits/locale_facets.tcc (__verify_grouping):
1418         ... here, change signature to take a const char* and a size_t
1419         for the grouping; not a template anymore.
1420         (__add_grouping, num_put::_M_group_int, num_put::_M_group_float):
1421         Likewise change signature and tweak consistently.
1422         (num_get::_M_extract_float, num_get::_M_extract_int,
1423         num_put::_M_insert_int, num_put::_M_insert_float,
1424         money_get::do_get(string_type&), money_get::do_put(string_type)):
1425         Update callers.
1426         * config/locale/generic/numeric_members.cc
1427         (numpunct<>::_M_initialize_numpunct): Assign the new member.
1428         * config/locale/gnu/numeric_members.cc
1429         (numpunct<>::_M_initialize_numpunct): Likewise.
1430         * src/locale-inst.cc (__add_grouping): Tweak signature.
1431         (__verify_grouping): Don't instantiate, not a template anymore.
1433         * include/bits/locale_facets.h: Rename _M_truename_len ->
1434         _M_truename_size, _M_falsename_len -> _M_falsename_size.
1435         * include/bits/locale_facets.tcc: Likewise.
1436         * config/locale/generic/numeric_members.cc: Likewise.
1437         * config/locale/gnu/numeric_members.cc: Likewise.
1439 2004-01-14  Stefan Olsson  <stefan@snon.net>
1441         * include/ext/mt_allocator.h: Fixups.
1442         * testsuite/performance/allocator.cc: Enable __mt_alloc tests.
1443         * testsuite/performance/allocator_thread.cc: Same.
1445 2004-01-13  Benjamin Kosnik  <bkoz@redhat.com>
1447         * testsuite/performance/ifstream_extract_float.cc: Add higher
1448         precision tests.
1449         * testsuite/performance/ofstream_insert_float.cc: Same.
1451 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
1453         * src/locale-misc-inst.cc (__convert_from_v(long),
1454         __convert_from_v(unsigned long), __convert_from_v(long long),
1455         __convert_from_v(unsigned long long)): Remove, unused.
1457 2004-01-13  Benjamin Kosnik  <bkoz@redhat.com>
1459         * testsuite/performance/ifstream_extract_float.cc: New.
1460         * testsuite/performance/ofstream_insert_float.cc: Float generation
1461         matches above.
1463         * 20_util/auto_ptr.cc, auto_ptr_neg.cc: Break into...
1464         * 20_util/auto_ptr/1.cc: ...this.
1465         * 20_util/auto_ptr/2.cc: Same.
1466         * 20_util/auto_ptr/3.cc: Same.
1467         * 20_util/auto_ptr/3946.cc: Same.
1468         * 20_util/auto_ptr/4.cc: Same.
1469         * 20_util/auto_ptr/5.cc: Same.
1470         * 20_util/auto_ptr/6.cc: Same.
1471         * 20_util/auto_ptr/7.cc: Same.
1472         * 20_util/auto_ptr/assign_neg.cc
1473         * 20_util/pairs.cc: Break into...
1474         * 20_util/pair/1.cc: ...this.
1475         * 20_util/pair/2.cc: Same.
1476         * 20_util/pair/3.cc: Same.
1477         * 20_util/pair/4.cc: Same.
1479 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
1481         * include/bits/locale_facets.tcc (num_get::do_get(void*&)):
1482         Set correctly just basefield, the only group that matters.
1484 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
1486         * include/ext/rope (_Rope_rep_alloc_base): Eliminate.
1487         (_Rope_rep_base): Inherit directly from the rope allocator;
1488         use rebinding instead of _Alloc_traits; pick up data member
1489         from _Rope_rep_alloc_base.
1490         (_Rope_alloc_base): Eliminate.
1491         (_Rope_base): Inherit directly from the rope allocator; use
1492         rebinding instead of _Alloc_traits; pick up data member from
1493         _Rope_alloc_base.
1494         (rope::_S_new_RopeLeaf, rope::_S_new_RopeConcatenation,
1495         rope::_S_new_RopeFunction, rope::_S_new_RopeSubstring): Tweak.
1497 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
1499         PR libstdc++/13650
1500         * include/bits/basic_string.tcc (compare(size_type, size_type,
1501         const _CharT*, size_type)): Implement correctly the resolution
1502         of DR 5: basically, s is a char array, -not- a C string.
1503         * include/bits/basic_string.h: Tweak some comments.
1504         * testsuite/21_strings/basic_string/compare/char/13650.cc: New.
1505         * testsuite/21_strings/basic_string/compare/wchar_t/13650.cc: New.
1507 2004-01-12  Andreas Tobler  <a.tobler@schweiz.ch>
1509         * testsuite/lib/libstdc++.exp: Set LD_LIBRARY_PATH_32 for
1510         Solaris.
1512 2004-01-12  Paolo Carlini  <pcarlini@suse.de>
1514         * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc:
1515         Use try_mkfifo.
1516         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc:
1517         Likewise.
1519 2004-01-12  Paolo Carlini  <pcarlini@suse.de>
1521         * include/bits/locale_facets.h (struct __numpunct_cache):
1522         Add members _M_truename_len and _M_falsename_len, caching
1523         the lengths of _M_truename and _M_falsename.
1524         (__numpunct_cache<>::_M_cache): Assign the latter.
1525         * include/bits/locale_facets.tcc (num_get::do_get(bool&),
1526         num_put::do_put(bool)): Use the new members, thus avoiding
1527         computing string lengths again and again.
1528         * config/locale/generic/numeric_members.cc
1529         (numpunct<>::_M_initialize_numpunct): Assign the new members.
1530         * config/locale/gnu/numeric_members.cc
1531         (numpunct<>::_M_initialize_numpunct): Likewise.
1533 2004-01-12  Mark Mitchell  <mark@codesourcery.com>
1535         * testsuite/testsuite_hooks.h (__gnu_test::try_mkfifo): Declare it.
1536         * testsuite/testsuite_hooks.cc (__gnu_test::try_mkfifo): Define
1537         it.
1538         * testsuite/27_io/basic_filebuf/close/char/4879.cc: Use try_mkfifo
1539         and remove Cygwin XFAIL.
1540         * testsuite/27_io/basic_filebuf/close/char/9964.cc: Likewise.
1541         * testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc: Likewise.
1542         * testsuite/27_io/basic_filebuf/open/char/9507.cc: Likewise.
1543         * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc:
1544         Likewise.
1545         * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise.
1546         * testsuite/27_io/objects/char/7.cc: Likewise.
1547         * testsuite/27_io/objects/char/9661-1.cc: Likewise.
1548         * testsuite/27_io/objects/wchar_t/7.cc: Likewise.
1549         * testsuite/27_io/objects/wchar_t/9661-1.cc: Likewise.
1551 2004-01-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1553         * include/std/std_complex.h (std::complex<>::real): Return a
1554         reference. Add non-const overload.
1555         (std::complex<>::real): Likewise.
1556         (std::real): Likewise.
1557         (std::imag): Likewise.
1558         (std::operator+): Tidy.
1559         (std::operator-): Likewise.
1560         (std::operator*): Likewise.
1561         (std::operator/): Likewise.
1562         (std::operator>>): Likewise.
1564 2004-01-11  Paolo Carlini  <pcarlini@suse.de>
1566         PR libstdc++/13582
1567         * include/bits/fstream.tcc (imbue): Exploit the external
1568         buffer to imbue 'on the fly' a new locale and convert its
1569         remainder with the new codecvt facet.
1570         (underflow): Tweak slightly to deal with this special case.
1571         * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc: New.
1572         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc: Ditto.
1573         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Ditto.
1574         * testsuite/27_io/objects/wchar_t/13582-1_xin.cc: Ditto.
1575         * testsuite/27_io/objects/wchar_t/13582-1_xin.in: Ditto.
1577 2004-01-10  Paolo Carlini  <pcarlini@suse.de>
1579         * docs/html/ext/lwg-active.html, docs/html/ext/lwg-defects.html:
1580         Import Revision 28.
1582 2004-01-10  Paolo Carlini  <pcarlini@suse.de>
1584         PR libstdc++/13630
1585         * include/bits/locale_classes.h (class locale): Fix category
1586         typedef.
1587         * testsuite/22_locale/locale/13630.cc: Add.
1589 2004-01-10  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1591         * include/bits/locale_facets.h: Make a name really dependent. This
1592         will be needed when Core Issue 224 is implemented.
1594 2004-01-09  Paolo Carlini  <pcarlini@suse.de>
1596         * testsuite/performance/allocator.cc: Demangle typeid(obj).name().
1597         * testsuite/performance/allocator_thread.cc: Likewise.
1599 2004-01-07  Benjamin Kosnik  <bkoz@redhat.com>
1601         * crossconfig.m4: Add LFS, io bits to linux cross config.
1602         * acconfig.h: Remove obsolete bits, reorder.
1603         * config.h.in: Regenerate.
1604         * aclocal.m4: Same.
1605         * configure: Same.
1607 2004-01-07  Gawain Bolton  <gp.bolton@computer.org>
1609         * include/bits/stl_list.h:
1610         * include/bits/list.tc:
1611         * src/list.cc:
1612         Performance enhancements for destructor, push_front(),
1613         push_back(), pop_front(), pop_back(), sort()
1614         Eliminated static_casts where possible.
1615         Moved code out of header files into new src/list.cc
1616         implementation file for library where possible.
1617         Remove inheritance from iterator class and create separate
1618         classes for non-constant and constant iterators.
1619         * include/bits/stl_tree.h (_Rb_tree class):
1620         * src/tree.cc:
1621         Only erase contents in destructor.
1622         Eliminate unnecessary initialization in assignment operator.
1623         Optimize for the nominal case by not checking whether
1624         container is empty in clear().
1625         Re-order test in _M_insert() to improve performance.
1626         Move initialization of new node's left & right pointers to
1627         src/tree.cc to where new node's colour is initialized
1628         and to reduce the amount of inline code.
1629         Use  _M_leftmost() and _M_end() to improve readability where
1630         appropriate.
1631         Create separate classes for non-constant and constant
1632         iterators to clarify code, avoid extra template parameters and
1633         casting away constness.
1635 2004-01-07  Benjamin Kosnik  <bkoz@redhat.com>
1637         * src/Makefile.am (sources): Add list.cc, tree.cc.
1638         * src/stl_tree.cc: Move to...
1639         * src/tree.cc: ...here.
1640         * src/list.cc: Add.
1641         * config/linker-map.gnu: Tweaks.
1642         * testsuite/23_containers/map/operators/1_neg.cc: Add excess errors.
1643         * testsuite/23_containers/set/operators/1_neg.cc: Add excess errors.
1645         * bits/stl_vector.h: Column wrap comments.
1647 2004-01-07  Loren J. Rittle  <ljrittle@acm.org>
1649         (re-open) PR libstdc++/12658
1650         * src/locale_init.cc (locale::locale): Remove ill-scoped mutex.
1651         (locale::global): Likewise.
1653 2004-01-07  Paolo Carlini  <pcarlini@suse.de>
1655         * testsuite/27_io/basic_istream/extractors_other/char/9318-in.cc:
1656         Remove redundant #include.
1657         * testsuite/27_io/basic_ostream/endl/char/1.cc: Likewise.
1658         * testsuite/27_io/basic_ostream/ends/char/1.cc: Likewise,
1659         re-enable normal testing.
1660         * testsuite/27_io/basic_ostream/ends/char/2.cc: Remove redundant
1661         #include.
1662         * testsuite/27_io/basic_ostream/flush/char/1.cc: Likewise.
1663         * testsuite/27_io/basic_ostream/inserters_character/char/1.cc:
1664         Likewise.
1665         * testsuite/27_io/basic_ostream/inserters_character/char/2.cc:
1666         Likewise.
1667         * testsuite/27_io/basic_ostream/inserters_character/char/3.cc:
1668         Likewise.
1669         * testsuite/27_io/basic_ostream/inserters_character/char/4.cc:
1670         Likewise.
1671         * testsuite/27_io/basic_ostream/inserters_character/char/5.cc:
1672         Likewise.
1673         * testsuite/27_io/basic_ostream/inserters_character/char/6.cc:
1674         Likewise.
1675         * testsuite/27_io/basic_ostream/inserters_character/char/8.cc:
1676         Likewise.
1677         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/7.cc:
1678         More properly, #include <locale>.
1679         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/8.cc:
1680         Remove redundant #include.
1681         * testsuite/27_io/basic_ostream/inserters_other/char/2.cc: Likewise.
1682         * testsuite/27_io/basic_ostream/inserters_other/char/3.cc: Remove
1683         redundant DejaGnu directive.
1684         * testsuite/27_io/basic_ostream/inserters_other/char/4.cc: Remove
1685         redundant #include.
1687 2004-01-06  Benjamin Kosnik  <bkoz@redhat.com>
1688             Stefan Olsson  <stefan@snon.net>
1690         * scripts/check_performance: Use -pthread.
1691         * testsuite/performance/allocator.cc: Tweaks, add list.
1692         * testsuite/performance/allocator_thread.cc: New.
1694 2004-01-06  Jerry Quinn  <jlquinn@optonline.net>
1696         * include/bits/locale_facets.h: Document public classes and
1697         functions.
1698         * include/bits/locale_facets.tcc (time_get::_M_extract_via_format):
1699         Add comment.
1701 2004-01-06  Paolo Carlini  <pcarlini@suse.de>
1703         * testsuite/27_io/basic_istream/extractors_other/char/1.cc:
1704         Remove redundant #includes.
1705         * testsuite/27_io/basic_istream/extractors_other/char/2.cc:
1706         Likewise.
1707         * testsuite/27_io/basic_istream/extractors_other/char/3.cc:
1708         Likewise.
1709         * testsuite/27_io/basic_istream/get/char/1.cc: Likewise.
1710         * testsuite/27_io/basic_istream/get/char/2.cc: Likewise.
1711         * testsuite/27_io/basic_istream/getline/char/1.cc: Likewise.
1712         * testsuite/27_io/basic_istream/getline/char/2.cc: Likewise.
1713         * testsuite/27_io/basic_istream/getline/char/3.cc: Likewise.
1714         * testsuite/27_io/basic_istream/ignore/char/1.cc: Likewise.
1715         * testsuite/27_io/basic_istream/ignore/char/6360.cc: Likewise.
1716         * testsuite/27_io/basic_istream/ignore/char/7220.cc: Likewise.
1717         * testsuite/27_io/basic_istream/peek/char/1.cc: Likewise.
1718         * testsuite/27_io/basic_istream/peek/char/6414.cc: Likewise.
1719         * testsuite/27_io/basic_istream/putback/char/1.cc: Likewise.
1720         * testsuite/27_io/basic_istream/read/char/1.cc: Likewise.
1721         * testsuite/27_io/basic_istream/read/char/2.cc: Likewise.
1722         * testsuite/27_io/basic_istream/read/char/3.cc: Likewise.
1723         * testsuite/27_io/basic_istream/readsome/char/6746-1.cc:
1724         Likewise.
1725         * testsuite/27_io/basic_istream/readsome/char/6746-2.cc:
1726         Likewise.
1727         * testsuite/27_io/basic_istream/readsome/char/8258.cc:
1728         Likewise.
1729         * testsuite/27_io/basic_istream/seekg/char/2346-fstream.cc:
1730         Likewise.
1731         * testsuite/27_io/basic_istream/seekg/char/2346-sstream.cc:
1732         Likewise.
1733         * testsuite/27_io/basic_istream/seekg/char/8348-1.cc: Likewise.
1734         * testsuite/27_io/basic_istream/seekg/char/8348-2.cc: Likewise.
1735         * testsuite/27_io/basic_istream/tellg/char/8348.cc: Likewise.
1737 2004-01-04  Paolo Carlini  <pcarlini@suse.de>
1739         * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc:
1740         Remove redundant #includes.
1741         * testsuite/27_io/basic_istream/extractors_arithmetic/char/02.cc:
1742         Likewise.
1743         * testsuite/27_io/basic_istream/extractors_arithmetic/char/03.cc:
1744         Likewise.
1745         * testsuite/27_io/basic_istream/extractors_arithmetic/char/06.cc:
1746         Likewise.
1747         * testsuite/27_io/basic_istream/extractors_arithmetic/char/07.cc:
1748         Likewise.
1749         * testsuite/27_io/basic_istream/extractors_arithmetic/char/08.cc:
1750         Likewise.
1751         * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc:
1752         Likewise.
1753         * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
1754         Likewise.
1755         * testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc:
1756         Likewise.
1757         * testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc:
1758         Likewise.
1759         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/1.cc:
1760         Likewise.
1761         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc:
1762         Likewise.
1763         * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/1.cc:
1764         Likewise.
1766 2004-01-04  Mark Mitchell  <mark@codesourcery.com>
1768         PR c++/12226
1769         * testsuite/27_io/basic_filebuf/4.cc: Remove use of invalid copy
1770         constructor.
1771         * testsuite/27_io/basic_fstream/4.cc: Likewise.
1772         * testsuite/27_io/basic_ifstream/4.cc: Likewise.
1773         * testsuite/27_io/basic_ios/4.cc: Likewise.
1774         * testsuite/27_io/basic_iostream/4.cc: Likewise.
1775         * testsuite/27_io/basic_istream/4.cc: Likewise.
1776         * testsuite/27_io/basic_istingstream/4.cc: Likewise.
1777         * testsuite/27_io/basic_ofstream/4.cc: Likewise.
1778         * testsuite/27_io/basic_ostream/4.cc: Likewise.
1779         * testsuite/27_io/basic_ostringstream/4.cc: Likewise.
1780         * testsuite/27_io/basic_stringbuf/5.cc: Likewise.
1781         * testsuite/27_io/basic_stringstream/4.cc: Likewise.
1783 2004-01-04  Paolo Carlini  <pcarlini@suse.de>
1785         * config/locale/generic/numeric_members.cc (_M_initialize_numpunct):
1786         Avoid unnecessarily zero terminating _M_atoms_out and _M_atoms_in;
1787         always use double underscored names.
1788         * config/locale/gnu/numeric_members.cc (_M_initialize_numpunct):
1789         Likewise.
1790         * include/bits/locale_facets.h (struct __numpunct_cache):
1791         Dimension _M_atoms_out and _M_atoms_in one position smaller.
1792         (__numpunct_cache<>::_M_cache): Don't zero terminate _M_atoms_out
1793         and _M_atoms_in.