OSDN Git Service

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