OSDN Git Service

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