OSDN Git Service

5f196bb64220e72e15be8d87d07613cbbdbcb40d
[pf3gnuchains/gcc-fork.git] / libstdc++-v3 / ChangeLog
1 2004-02-27  Phil Edwards  <phil@codesourcery.com>
2
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.
12
13 2004-02-27  Benjamin Kosnik  <bkoz@redhat.com>
14
15         * config/cpu/hppa/atomicity.h: Include c++config.h to get defines.
16
17         * src/misc-inst.cc (_S_atomicity_lock): Move to __gnu_cxx.
18
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.
24
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.
29
30 2004-02-27  David Edelsohn  <edelsohn@gnu.org>
31
32         * config/os/aix/atomicity.h: Use __gnu_cxx namespace. Remove
33         static, and inline keywords.
34
35 2004-02-27  Paolo Carlini  <pcarlini@suse.de>
36
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.
43
44 2004-02-27  Paolo Carlini  <pcarlini@suse.de>
45
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.
56
57 2004-02-26  Ian Lance Taylor  <ian@wasabisystems.com>
58
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.
64
65 2004-02-26  Benjamin Kosnik  <bkoz@redhat.com>
66
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.
79
80 2004-02-26  Benjamin Kosnik  <bkoz@redhat.com>
81  
82         * include/bits/demangle.h: Add type template parameter to all
83         templates with just an Allocator template parameter.
84  
85 2004-02-25  Benjamin Kosnik  <bkoz@redhat.com>
86
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.
132
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>
137
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.
141
142 2004-02-25  Carlo Wood  <carlo@alinoe.com>
143
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.
150
151 2004-02-24  Paolo Carlini  <pcarlini@suse.de>
152
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.
157
158 2004-02-24  Richard Sandiford  <rsandifo@redhat.com>
159
160         * include/bits/locale_facets.tcc (num_get::_M_extract_int): Fix bounds
161         error in handling of hex constants.
162
163 2004-02-24  Paolo Carlini  <pcarlini@suse.de>
164
165         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
166         Prefer basic_string::append to operator+= and a temporary.
167
168 2004-02-23  Benjamin Kosnik  <bkoz@redhat.com>
169
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>
174
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>
187
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.
191
192 2004-02-22  Paolo Carlini  <pcarlini@suse.de>
193
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>
209
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.
214
215         * testsuite/testsuite_hooks.cc (__gnu_test::set_memory_limits): Do
216         not set RLIMIT_AS on HP-UX.
217
218 2004-02-21  Mark Mitchell  <mark@codesourcery.com>
219
220         * testsuite/testsuite_hooks.cc (__gnu_test::set_memory_limits): Do
221         not set RLIMIT_AS on HP-UX.
222
223 2004-02-21  Paolo Carlini  <pcarlini@suse.de>
224
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>.
258
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.
267
268 2004-02-20  Mark Mitchell  <mark@codesourcery.com>
269
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+".
276
277 2004-02-19  David Edelsohn  <edelsohn@gnu.org>
278
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.
289
290 2004-02-18  Paolo Carlini  <pcarlini@suse.de>
291
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.
300
301 2004-02-18  Paolo Carlini  <pcarlini@suse.de>
302
303         * config/io/basic_file_stdio.cc (__gnu_internal::xwritev):
304         Rewrite, avoiding recursion.
305         (__gnu_internal::xwrite): Minor tweaks.
306
307 2004-02-17  Stefan Olsson  <stefan@xapa.se>
308
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.
316
317 2004-02-17  Paolo Carlini  <pcarlini@suse.de>
318
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.
322
323 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
324
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.
332
333 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
334
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.
338
339 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
340
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.
352
353         * 22_locale/money_get/get/char/6.cc: Minor tweak.
354         * 22_locale/money_get/get/wchar_t/6.cc: Likewise.
355
356 2004-02-15  David Asher  <david.asher@cavium.com>
357
358         PR libstdc++/11352
359         * include/bits/locale_facets.tcc (__pad<>::_S_pad): Don't
360         access __olds beyond __oldlen.
361
362 2004-02-14  Paolo Carlini  <pcarlini@suse.de>
363
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.
369
370 2004-02-14  Paolo Carlini  <pcarlini@suse.de>
371
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.
383
384         * include/bits/fstream.tcc (basic_filebuf<>::overflow):
385         Trivial simplification of a conditional.
386
387 2004-02-12  Paolo Carlini  <pcarlini@suse.de>
388
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.
398
399 2004-02-11  Stefan Olsson  <stefan@xapa.se>
400
401         * docs/html/ext/mt_allocator.html: New.
402
403 2004-02-11  Benjamin Kosnik  <bkoz@redhat.com>
404
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.
410
411 2004-02-11  Paolo Carlini  <pcarlini@suse.de>
412
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.
420
421 2004-02-11  Paolo Carlini  <pcarlini@suse.de>
422             Petur Runolfsson  <peturr02@ru.is>
423
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.
432
433 2004-02-10  Loren J. Rittle  <ljrittle@acm.org>
434
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> >.
438
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> >.
442
443 2004-02-09  Loren J. Rittle  <ljrittle@acm.org>
444
445         * include/ext/pool_allocator.h: Include c++config.h.
446
447 2004-02-09  Stefan Olsson  <stefan@xapa.se>
448
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().
453
454 2004-02-09  Paul Brook  <paul@codesourcery.com>
455
456         * libstdc++-v3/configure.host: Explicitly check for atomicity.h file.
457
458 2004-02-09  Paolo Carlini  <pcarlini@suse.de>
459
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.
464
465         * include/bits/locale_classes.h (locale::_Impl::_M_check_same_name()):
466         Avoid computing &= unnecessarily.
467
468 2004-02-09  James E Wilson  <wilson@specifixinc.com>
469
470         PR libstdc++/5625
471         * libsuspc++/eh_personality.cc (PERSONALITY_FUNCTION): Use
472         __builtin_extend_pointer.
473
474 2004-02-09  Paolo Carlini  <pcarlini@suse.de>
475
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.
482
483 2004-02-09  Bernardo Innocenti  <bernie@develer.com>
484
485         * crossconfig.m4: Don't enable _GLIBCXX_USE_LFS on *-uclinux*.
486         * configure: Regenerate.
487
488 2004-02-08  Richard Henderson  <rth@redhat.com>
489
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.
494
495 2004-02-08  Paolo Carlini  <pcarlini@suse.de>
496
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).
500
501 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
502
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.
536
537 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
538
539         * include/bits/basic_string.h: Fix comment.
540
541 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
542
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.
552
553 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
554
555         * testsuite/27_io/basic_filebuf/open/char/9507.cc:
556         Adjust timings.
557
558 2004-02-05  Loren J. Rittle  <ljrittle@acm.org>
559
560         * scripts/check_performance: Support PCH.
561
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.
572
573 2004-02-05  Geoffrey Keating  <geoffk@apple.com>
574
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.
581
582 2004-02-05  Paolo Carlini  <pcarlini@suse.de>
583
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.
591
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.
600
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.
604
605 2004-02-05  Richard Sandiford  <rsandifo@redhat.com>
606
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.
611
612 2004-02-05  Paolo Carlini  <pcarlini@suse.de>
613
614         * include/bits/stl_function.h: Minor formatting changes.
615
616 2004-02-04  Zack Weinberg  <zack@codesourcery.com>
617
618         Revert previous change to config/abi/*/baseline_symbols.txt.
619
620 2004-02-04  Benjamin Kosnik  <bkoz@redhat.com>
621             Zack Weinberg  <zack@codesourcery.com>
622
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.
628
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.
632
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.
645
646 2004-02-04  Loren J. Rittle  <ljrittle@acm.org>
647
648         * testsuite/performance/20_util/allocator/insert.cc (main): Tweak.
649
650 2004-02-04  Felix Yen  <fwy@alumni.brown.edu>
651
652         * testsuite/performance/20_util/producer_consumer.cc: New.
653         * testsuite/performance/20_util/allocator/insert_insert.cc: Two loops.
654
655 2004-02-04  Benjamin Kosnik  <bkoz@redhat.com>
656
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.
663
664 2004-02-04  Jonathan Wakely  <redi@gcc.gnu.org>
665
666         * docs/html/faq/index.html: Recommend using LD_LIBRARY_PATH.
667         * docs/html/faq/index.txt: Regenerate.
668
669 2004-02-04  Dhruv Matani  <dhruvbird@gmx.net>
670
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.
675
676         * include/ext/pool_allocator.h: Fix typo.
677
678 2004-02-03  Felix Yen  <fwy@alumni.brown.edu>
679             Benjamin Kosnik  <bkoz@redhat.com>
680
681         * testsuite/performance/20_util/allocator.cc: Add map,
682         deque, set tests.
683         * testsuite/performance/20_util/allocator_thread.cc: Same.
684
685 2004-02-03  Paolo Carlini  <pcarlini@suse.de>
686
687         * include/bits/basic_string.h (insert(iterator)): Remove,
688         non-standard and already scheduled for removal.
689
690 2004-02-03  Paolo Carlini  <pcarlini@suse.de>
691
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.
698
699 2004-02-02  Jerry Quinn  <jlquinn@optonline.net>
700
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.
705
706 2004-02-02  Jerry Quinn  <jlquinn@optonline.net>
707
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.
716
717 2004-02-02  Benjamin Kosnik  <bkoz@redhat.com>
718
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.
723
724 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
725
726         * config/locale/gnu/c++locale_internal.h: Remove prototypes
727         of no longer used GLIBC thread locale functions.
728
729 2004-02-02  Eric Christopher  <echristo@redhat.com>
730             Zack Weinberg  <zack@codesourcery.com>
731
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.
743
744 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
745
746         * include/bits/stl_function.h: Additional minor tweaks.
747         * include/bits/stl_multiset.h: Likewise.
748
749         * include/bits/stl_queue.h: Minor tweaks.
750
751 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
752
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.
758
759 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
760
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.
767
768 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
769
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.
776
777 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
778
779         * include/bits/vector.tcc (vector::_M_insert_aux(iterator)):
780         Remove, unused.
781
782 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
783
784         * include/bits/stl_function.h: Additional minor tweaks.
785
786 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
787
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.
802
803 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
804
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.
808
809 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
810
811         * include/bits/stl_algo.h: Minor additional reformat, add
812         copyright year.
813         * include/bits/stl_algobase.h: Add copyright year.
814
815 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
816
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.
821
822 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
823
824         * include/bits/basic_string.h (_Rep::operator[]): Remove, unused.
825
826         * include/bits/basic_string.h: Fix two comments.
827
828 2004-01-31  Per Bothner  <per@bothner.com>
829
830         * include/ext/mt_allocator.h
831         (__mt_alloc::_S_thread_freelist_mutex): Guard with
832         __GTHREAD_MUTEX_INIT.
833
834 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
835
836         * include/bits/basic_string.tcc (_Rep::_S_create): Minor tweak.
837
838 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
839
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.
843
844 2004-01-30  Felix Yen  <fwy@alumni.brown.edu>
845
846         * testsuite/performance/20_util/allocator_thread.cc (do_loop):
847         Don't use clear, but instead assign. Use insert.
848
849 2004-01-30  Benjamin Kosnik  <bkoz@redhat.com>
850
851         * src/demangle.cc: Add instantiations.
852         * src/Makefile.am: Remove special rules for demangle.lo, demangle.o.
853         * src/Makefile.in: Regenerate.
854
855 2004-01-30  David Edelsohn  <edelsohn@gnu.org>
856
857         * src/allocator.cc: Protect _S_get_thread_id() and
858         _S_thread_key_destr() with #ifdef __GTHREADS.
859
860 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
861
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.
896
897 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
898
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.
903
904 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
905
906         * include/bits/basic_string.tcc (_S_construct(_InIterator,
907         _InIterator, const _Alloc&, input_iterator_tag)): Simplify
908         the double loop, streamline.
909
910         * include/bits/basic_string.tcc: Very minor tweaks.
911
912 2004-01-30  Loren J. Rittle  <ljrittle@acm.org>
913
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.
925
926 2004-01-29  Stephen M. Webb  <stephen.webb@bregmasoft.com>
927
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().
937
938 2004-01-29  Benjamin Kosnik  <bkoz@redhat.com>
939
940         * include/bits/allocator.h: Temporary switch to new_allocator as
941         the default to unjam bootstraps.
942
943 2004-01-28  Benjamin Kosnik  <bkoz@redhat.com>
944
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.
972
973         * include/ext/mt_allocator.h: Replace free with delete.
974
975 2004-01-28  Benjamin Kosnik  <bkoz@redhat.com>
976
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.
981
982 2004-01-28  Stefan Olsson  <stefan@snon.net>
983
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.
988
989 2004-01-28  Paolo Carlini  <pcarlini@suse.de>
990
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.
1006
1007         * include/bits/basic_string.h (_Rep::operator[]): Tweak
1008         signature to take a size_type, consistently with the other
1009         members.
1010
1011 2004-01-27  Benjamin Kosnik  <bkoz@redhat.com>
1012
1013         * testsuite/27_io/ios_base/storage/11584.cc: Correct new and
1014         delete declarations, add include and test variable.
1015
1016 2003-01-27  Jerry Quinn  <jlquinn@optonline.net>
1017
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.
1023
1024 2004-01-27  Jerry Quinn  <jlquinn@optonline.net>
1025
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.
1033
1034 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
1035             PJ Darcy  <darcypj@us.ibm.com>
1036
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.
1045
1046 2004-01-27  Paolo Carlini  <pcarlini@suse.de>
1047
1048         PR libstdc++/13884
1049         * include/bits/sstream.tcc: Guard use of extern template.
1050
1051 2004-01-27  Paolo Carlini  <pcarlini@suse.de>
1052
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.
1057
1058 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
1059
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.
1074
1075 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
1076
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.
1084
1085         * include/bits/basic_string.h, include/bits/basic_string.tcc:
1086         Fold overlong lines, minor formatting changes.
1087
1088 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
1089
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.
1095
1096 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
1097
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.
1103
1104         * include/bits/basic_string.tcc (insert(size_type,
1105         const _CharT*, size_type)): Tweak slightly.
1106
1107 2004-01-26  Andreas Schwab  <schwab@suse.de>
1108
1109         * config/locale/gnu/monetary_members.cc: Restore locale before
1110         rethrowing exception.
1111
1112 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
1113
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.
1118
1119         * include/bits/basic_string.tcc: Very minor tweaks.
1120
1121 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
1122
1123         * testsuite/performance/string_append.cc: Increase number
1124         of iterations.
1125
1126 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
1127
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.
1131
1132         * include/bits/basic_string.h: Tweak some comments.
1133
1134 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
1135
1136         * include/bits/basic_string.tcc (operator+(const _CharT*,
1137         const basic_string&)): No need to go through the append
1138         taking two iterators.
1139
1140 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
1141
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.
1147
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.
1158
1159 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
1160
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.
1165
1166 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
1167
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.
1184
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.
1192
1193 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
1194
1195         PR libstdc++/13838
1196         * include/debug/bitset (operator|=): Fix typo.
1197         * testsuite/23_containers/bitset/operations/13838.cc: New.
1198
1199 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
1200
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.
1211
1212         * include/bits/basic_string.tcc (append(const basic_string&),
1213         append(const basic_string&, size_type, size_type)): Tweak
1214         comment.
1215
1216         * include/bits/basic_string.tcc (copy(_CharT*, size_type,
1217         size_type)): If __n == 0 don't call traits::copy.
1218
1219 2004-01-23  Stefan Olsson  <stefan@snon.net>
1220
1221         * include/ext/mt_allocator.h: Reduce lock contention.
1222
1223 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
1224
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.
1231
1232 2004-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1233
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.
1239
1240         * config.h.in, configure: Regenerate.
1241
1242 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
1243
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.
1253
1254 2004-01-23  Loren J. Rittle  <ljrittle@acm.org>
1255
1256         libstdc++/13823
1257         * testsuite/performance/allocator_map_thread.cc: New test.
1258
1259 2004-01-22  Paolo Carlini  <pcarlini@suse.de>
1260
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.
1266
1267 2004-01-22  Paolo Carlini  <pcarlini@suse.de>
1268
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.
1291
1292 2004-01-21  Paolo Carlini  <pcarlini@suse.de>
1293
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.
1298
1299 2004-01-21  Paolo Carlini  <pcarlini@suse.de>
1300
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.
1332
1333 2004-01-19  Stefan Olsson  <stefan@snon.net>
1334
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.
1340
1341 2004-01-19  Loren J. Rittle  <ljrittle@acm.org>
1342
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.
1346
1347 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
1348
1349         * src/debug.cc: Make sure all the names are prefixed with
1350         double (or single) underscore.
1351
1352 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
1353
1354         * src/debug.cc: Trivial formatting change.
1355
1356 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
1357
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.
1362
1363 2004-01-18  Paolo Carlini  <pcarlini@suse.de>
1364
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.
1371
1372 2004-01-18  Paolo Carlini  <pcarlini@suse.de>
1373
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.
1394
1395 2004-01-16  Benjamin Kosnik  <bkoz@redhat.com>
1396
1397         * testsuite/ext/enc_filebuf/char/13189.cc: Fix guards.
1398         * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Same.
1399
1400 2004-01-16  Danny Smith  <dannysmith@users.sourceforge.net>
1401
1402         * testsuite/testsuite_hooks.cc (try_mkfifo): Avoid calling
1403         mkfifo for mingw32.
1404
1405 2004-01-15  Stefan Olsson  <stefan@snon.net>
1406
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.
1410
1411 2004-01-14  Paolo Carlini  <pcarlini@suse.de>
1412
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.
1432
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.
1438
1439 2004-01-14  Stefan Olsson  <stefan@snon.net>
1440
1441         * include/ext/mt_allocator.h: Fixups.
1442         * testsuite/performance/allocator.cc: Enable __mt_alloc tests.
1443         * testsuite/performance/allocator_thread.cc: Same.
1444
1445 2004-01-13  Benjamin Kosnik  <bkoz@redhat.com>
1446
1447         * testsuite/performance/ifstream_extract_float.cc: Add higher
1448         precision tests.
1449         * testsuite/performance/ofstream_insert_float.cc: Same.
1450
1451 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
1452
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.
1456
1457 2004-01-13  Benjamin Kosnik  <bkoz@redhat.com>
1458
1459         * testsuite/performance/ifstream_extract_float.cc: New.
1460         * testsuite/performance/ofstream_insert_float.cc: Float generation
1461         matches above.
1462
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.
1478
1479 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
1480
1481         * include/bits/locale_facets.tcc (num_get::do_get(void*&)):
1482         Set correctly just basefield, the only group that matters.
1483
1484 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
1485
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.
1496
1497 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
1498
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.
1506
1507 2004-01-12  Andreas Tobler  <a.tobler@schweiz.ch>
1508
1509         * testsuite/lib/libstdc++.exp: Set LD_LIBRARY_PATH_32 for
1510         Solaris.
1511
1512 2004-01-12  Paolo Carlini  <pcarlini@suse.de>
1513
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.
1518
1519 2004-01-12  Paolo Carlini  <pcarlini@suse.de>
1520
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.
1532
1533 2004-01-12  Mark Mitchell  <mark@codesourcery.com>
1534
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.
1550
1551 2004-01-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1552
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.
1563
1564 2004-01-11  Paolo Carlini  <pcarlini@suse.de>
1565
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.
1576
1577 2004-01-10  Paolo Carlini  <pcarlini@suse.de>
1578
1579         * docs/html/ext/lwg-active.html, docs/html/ext/lwg-defects.html:
1580         Import Revision 28.
1581
1582 2004-01-10  Paolo Carlini  <pcarlini@suse.de>
1583
1584         PR libstdc++/13630
1585         * include/bits/locale_classes.h (class locale): Fix category
1586         typedef.
1587         * testsuite/22_locale/locale/13630.cc: Add.
1588
1589 2004-01-10  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1590
1591         * include/bits/locale_facets.h: Make a name really dependent. This
1592         will be needed when Core Issue 224 is implemented.
1593
1594 2004-01-09  Paolo Carlini  <pcarlini@suse.de>
1595
1596         * testsuite/performance/allocator.cc: Demangle typeid(obj).name().
1597         * testsuite/performance/allocator_thread.cc: Likewise.
1598
1599 2004-01-07  Benjamin Kosnik  <bkoz@redhat.com>
1600
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.
1606
1607 2004-01-07  Gawain Bolton  <gp.bolton@computer.org>
1608
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.
1634
1635 2004-01-07  Benjamin Kosnik  <bkoz@redhat.com>
1636
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.
1644
1645         * bits/stl_vector.h: Column wrap comments.
1646
1647 2004-01-07  Loren J. Rittle  <ljrittle@acm.org>
1648
1649         (re-open) PR libstdc++/12658
1650         * src/locale_init.cc (locale::locale): Remove ill-scoped mutex.
1651         (locale::global): Likewise.
1652
1653 2004-01-07  Paolo Carlini  <pcarlini@suse.de>
1654
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.
1686
1687 2004-01-06  Benjamin Kosnik  <bkoz@redhat.com>
1688             Stefan Olsson  <stefan@snon.net>
1689
1690         * scripts/check_performance: Use -pthread.
1691         * testsuite/performance/allocator.cc: Tweaks, add list.
1692         * testsuite/performance/allocator_thread.cc: New.
1693
1694 2004-01-06  Jerry Quinn  <jlquinn@optonline.net>
1695
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.
1700
1701 2004-01-06  Paolo Carlini  <pcarlini@suse.de>
1702
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.
1736
1737 2004-01-04  Paolo Carlini  <pcarlini@suse.de>
1738
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.
1765
1766 2004-01-04  Mark Mitchell  <mark@codesourcery.com>
1767
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.
1782
1783 2004-01-04  Paolo Carlini  <pcarlini@suse.de>
1784
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.