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