OSDN Git Service

e647afe3265abf7fe061b509aa22f1f5e4b84d84
[pf3gnuchains/gcc-fork.git] / libstdc++-v3 / ChangeLog
1 2004-02-05  Paolo Carlini  <pcarlini@suse.de>
2
3         * include/bits/stl_function.h: Minor formatting changes.
4
5 2004-02-04  Zack Weinberg  <zack@codesourcery.com>
6
7         Revert previous change to config/abi/*/baseline_symbols.txt.
8
9 2004-02-04  Benjamin Kosnik  <bkoz@redhat.com>
10             Zack Weinberg  <zack@codesourcery.com>
11
12         * config/io/basic_file_stdio.cc (__gnu_internal::fopen_mode):
13         New function.
14         (__basic_file<char>::sys_open, __basic_file<char>::open): Use it.
15         (__basic_file<char>::_M_open_mode): Delete.
16         * config/io/basic_file_stdio.cc: Delete declaration of _M_open_mode.
17
18         * testsuite/27_io/basic_filebuf/close/char/9964.cc
19         * testsuite/27_io/basic_filebuf/open/char/9507.cc:
20         Correct flags to filebuf::open calls.
21
22         * config/abi/alpha-freebsd5/baseline_symbols.txt
23         * config/abi/alpha-linux-gnu/baseline_symbols.txt
24         * config/abi/hppa-linux-gnu/baseline_symbols.txt
25         * config/abi/i386-freebsd4/baseline_symbols.txt
26         * config/abi/i386-freebsd5/baseline_symbols.txt
27         * config/abi/i486-linux-gnu/baseline_symbols.txt
28         * config/abi/ia64-linux-gnu/baseline_symbols.txt
29         * config/abi/mips-linux-gnu/baseline_symbols.txt
30         * config/abi/sparc-freebsd5/baseline_symbols.txt
31         * config/abi/sparc-linux-gnu/baseline_symbols.txt
32         * config/abi/x86_64-linux-gnu/baseline_symbols.txt:
33         Remove entry for __basic_file<char>::_M_open_mode.
34
35 2004-02-04  Loren J. Rittle  <ljrittle@acm.org>
36
37         * testsuite/performance/20_util/allocator/insert.cc (main): Tweak.
38
39 2004-02-04  Felix Yen  <fwy@alumni.brown.edu>
40
41         * testsuite/performance/20_util/producer_consumer.cc: New.
42         * testsuite/performance/20_util/allocator/insert_insert.cc: Two loops.
43
44 2004-02-04  Benjamin Kosnik  <bkoz@redhat.com>
45
46         * testsuite/performance/20_util/allocator.cc: Move to..
47         * testsuite/performance/20_util/allocator/insert.cc: ...here.
48         * testsuite/performance/20_util/allocator_thread.cc: Move to...
49         * testsuite/performance/20_util/allocator/insert_insert.cc: ...here.
50         * testsuite/performance/20_util/allocator_map_thread.cc: Move to...
51         * testsuite/performance/20_util/allocator/map_thread.cc: ...here.
52
53 2004-02-04  Jonathan Wakely  <redi@gcc.gnu.org>
54
55         * docs/html/faq/index.html: Recommend using LD_LIBRARY_PATH.
56         * docs/html/faq/index.txt: Regenerate.
57
58 2004-02-04  Dhruv Matani  <dhruvbird@gmx.net>
59
60         * include/ext/debug_allocator.h: _M_extra now stands for the
61         number of extra objects instead of the number of extra bytes.
62         (debug_allocator::allocate): Adjust.
63         (debug_allocator::deallocate): Adjust.
64
65         * include/ext/pool_allocator.h: Fix typo.
66
67 2004-02-03  Felix Yen  <fwy@alumni.brown.edu>
68             Benjamin Kosnik  <bkoz@redhat.com>
69
70         * testsuite/performance/20_util/allocator.cc: Add map,
71         deque, set tests.
72         * testsuite/performance/20_util/allocator_thread.cc: Same.
73
74 2004-02-03  Paolo Carlini  <pcarlini@suse.de>
75
76         * include/bits/basic_string.h (insert(iterator)): Remove,
77         non-standard and already scheduled for removal.
78
79 2004-02-03  Paolo Carlini  <pcarlini@suse.de>
80
81         * include/bits/stl_iterator_base_funcs.h: Minor formatting
82         and indentation tweaks.
83         * include/bits/stl_iterator_base_types.h: Likewise.
84         * include/bits/stl_list.h: Likewise.
85         * include/bits/stl_map.h: Likewise.
86         * include/bits/stl_tempbuf.h: Likewise.
87
88 2004-02-02  Jerry Quinn  <jlquinn@optonline.net>
89
90         * include/bits/gslice.h, include/bits/gslice_array.h,
91         include/bits/indirect_array.h, include/bits/mask_array.h,
92         include/bits/slice_array.h, include/bits/stl_numeric.h,
93         include/std/std_valarray.h:  Update copyright years.
94
95 2004-02-02  Jerry Quinn  <jlquinn@optonline.net>
96
97         * include/bits/gslice.h (gslice):  Document.
98         * include/bits/gslice_array.h (gslice_array):  Document.
99         * include/bits/indirect_array (indirect_array):  Document.
100         * include/bits/mask_array (mask_array):  Document.
101         * include/bits/slice_array.h (slice,slice_array):  Document.
102         * include/bits/stl_numeric.h (accumulate, inner_product, partial_sum,
103         adjacent_difference):  Document
104         * include/std/std_valarray.h (valarray):  Document.
105
106 2004-02-02  Benjamin Kosnik  <bkoz@redhat.com>
107
108         * docs/html/19_diagnostics/howto.html: Move verbose terminate
109         documentation...
110         * docs/html/18_support/howto.html: Here.
111         * docs/html/documentation.html: Add reference here.
112
113 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
114
115         * config/locale/gnu/c++locale_internal.h: Remove prototypes
116         of no longer used GLIBC thread locale functions.
117
118 2004-02-02  Eric Christopher  <echristo@redhat.com>
119             Zack Weinberg  <zack@codesourcery.com>
120
121         * testsuite/22_locale/collate/compare/wchar_t/2.cc: Remove xfail. Use
122         -finput-charset.
123         * testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc: Ditto.
124         * testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc: Ditto
125         * testsuite/22_locale/collate/hash/wchar_t/2.cc: Ditto.
126         * testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc: Ditto.
127         * testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc: Ditto.
128         * testsuite/22_locale/collate/transform/wchar_t/2.cc: Ditto.
129         * testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc: Ditto.
130         * testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc:
131         Ditto.
132
133 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
134
135         * include/bits/stl_function.h: Additional minor tweaks.
136         * include/bits/stl_multiset.h: Likewise.
137
138         * include/bits/stl_queue.h: Minor tweaks.
139
140 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
141
142         PR libstdc++/13976 (continued)
143         * include/ext/malloc_allocator.h (malloc_allocator::deallocate):
144         Make the second parameter unnamed, to void unused parameter
145         warnings.
146         * include/ext/new_allocator.h (new_allocator::deallocate): Ditto.
147
148 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
149
150         PR libstdc++/13976
151         * include/ext/malloc_allocator.h (malloc_allocator::allocate):
152         Make the second parameter unnamed, to void unused parameter
153         warnings.
154         * include/ext/mt_allocator.h (__mt_alloc::allocate): Ditto.
155         * include/ext/new_allocator.h (new_allocator::allocate): Ditto.
156
157 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
158
159         * include/bits/stl_algo.h: Additional minor tweaks.
160         * include/bits/stl_map.h: Likewise.
161         * include/bits/stl_multimap.h: Likewise.
162         * include/bits/stl_multiset.h: Likewise.
163         * include/bits/stl_set.h: Likewise.
164         * include/bits/stl_tree.h: Likewise.
165
166 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
167
168         * include/bits/vector.tcc (vector::_M_insert_aux(iterator)):
169         Remove, unused.
170
171 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
172
173         * include/bits/stl_function.h: Additional minor tweaks.
174
175 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
176
177         * include/bits/deque.tcc: Wrap overlong lines, constify
178         a few variables, reformat according to the coding standards.
179         * include/bits/list.tcc: Likewise.
180         * include/bits/stl_deque.h: Likewise.
181         * include/bits/stl_function.h: Likewise.
182         * include/bits/stl_iterator.h: Likewise.
183         * include/bits/stl_iterator_base_funcs.h: Likewise.
184         * include/bits/stl_iterator_base_types.h: Likewise.
185         * include/bits/stl_list.h: Likewise.
186         * include/bits/stl_map.h: Likewise.
187         * include/bits/stl_multimap.h: Likewise.
188         * include/bits/stl_multiset.h: Likewise.
189         * include/bits/stl_relops.h: Likewise.
190         * include/bits/stl_set.h: Likewise.
191
192 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
193
194         * include/bits/stl_bvector.h: Wrap overlong lines, constify
195         a few variables, reformat according to the coding standards.
196         * include/bits/stl_tree.h: Likewise.
197
198 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
199
200         * include/bits/stl_algo.h: Minor additional reformat, add
201         copyright year.
202         * include/bits/stl_algobase.h: Add copyright year.
203
204 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
205
206         * include/bits/stl_algo.h: Wrap overlong lines, constify
207         a few variables, reformat according to the coding standards.
208         * include/bits/stl_algobase.h: Likewise.
209         * include/bits/stl_heap.h: Likewise.
210
211 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
212
213         * include/bits/basic_string.h (_Rep::operator[]): Remove, unused.
214
215         * include/bits/basic_string.h: Fix two comments.
216
217 2004-01-31  Per Bothner  <per@bothner.com>
218
219         * include/ext/mt_allocator.h
220         (__mt_alloc::_S_thread_freelist_mutex): Guard with
221         __GTHREAD_MUTEX_INIT.
222
223 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
224
225         * include/bits/basic_string.tcc (_Rep::_S_create): Minor tweak.
226
227 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
228
229         * testsuite/21_strings/basic_string/cons/char/6.cc: New.
230         * testsuite/21_strings/basic_string/cons/wchar_t/6.cc: New.
231         * testsuite/performance/21_strings/string_cons_input_iterator.cc: New.
232
233 2004-01-30  Felix Yen  <fwy@alumni.brown.edu>
234
235         * testsuite/performance/20_util/allocator_thread.cc (do_loop):
236         Don't use clear, but instead assign. Use insert.
237
238 2004-01-30  Benjamin Kosnik  <bkoz@redhat.com>
239
240         * src/demangle.cc: Add instantiations.
241         * src/Makefile.am: Remove special rules for demangle.lo, demangle.o.
242         * src/Makefile.in: Regenerate.
243
244 2004-01-30  David Edelsohn  <edelsohn@gnu.org>
245
246         * src/allocator.cc: Protect _S_get_thread_id() and
247         _S_thread_key_destr() with #ifdef __GTHREADS.
248
249 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
250
251         Reshuffle performance testsuite.
252         * testsuite/performance/allocator.cc, allocator_map_thread.cc,
253         allocator_thread.cc, complex_norm.cc, container_benchmark.cc,
254         cout_insert_int.cc, filebuf_copy.cc, filebuf_sputc.cc,
255         fstream_seek_write.cc, ifstream_extract_float.cc,
256         ifstream_extract_int.cc, ifstream_getline.cc, is_wchar_t.cc,
257         list_create_fill_sort.cc, map_create_fill.cc,
258         narrow_widen_char.cc, narrow_widen_wchar_t.cc,
259         ofstream_insert_float.cc, ofstream_insert_int.cc,
260         string_append.cc, wchar_t_in.cc, wchar_t_length.cc,
261         wchar_t_out.cc: Split into...
262         * testsuite/performance/20_util/allocator.cc: New.
263         * testsuite/performance/20_util/allocator_map_thread.cc: New.
264         * testsuite/performance/20_util/allocator_thread.cc: New.
265         * testsuite/performance/21_strings/string_append: New.
266         * testsuite/performance/22_locale/is_wchar_t.cc: New.
267         * testsuite/performance/22_locale/narrow_widen_char.cc: New.
268         * testsuite/performance/22_locale/narrow_widen_wchar_t.cc: New.
269         * testsuite/performance/22_locale/wchar_t_in.cc: New.
270         * testsuite/performance/22_locale/wchar_t_length.cc: New.
271         * testsuite/performance/22_locale/wchar_t_out.cc: New.
272         * testsuite/performance/23_containers/container_benchmark.cc: New.
273         * testsuite/performance/23_containers/list_create_fill_sort.cc: New.
274         * testsuite/performance/23_containers/map_create_fill.cc: New.
275         * testsuite/performance/26_numerics/complex_norm.cc: New.
276         * testsuite/performance/27_io/cout_insert_int.cc: New.
277         * testsuite/performance/27_io/filebuf_copy.cc: New.
278         * testsuite/performance/27_io/filebuf_sputc.cc: New.
279         * testsuite/performance/27_io/fstream_seek_write.cc: New.
280         * testsuite/performance/27_io/ifstream_extract_float.cc: New.
281         * testsuite/performance/27_io/ifstream_extract_int.cc: New.
282         * testsuite/performance/27_io/ifstream_getline.cc: New.
283         * testsuite/performance/27_io/ofstream_insert_float.cc: New.
284         * testsuite/performance/27_io/ofstream_insert_int.cc: New.
285
286 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
287
288         * include/bits/basic_string.tcc (_Rep::_S_create):
289         Never allocate a string bigger than max_size(); always keep
290         __capacity and __size in sync to avoid memory leaks at
291         deallocation time.
292
293 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
294
295         * include/bits/basic_string.tcc (_S_construct(_InIterator,
296         _InIterator, const _Alloc&, input_iterator_tag)): Simplify
297         the double loop, streamline.
298
299         * include/bits/basic_string.tcc: Very minor tweaks.
300
301 2004-01-30  Loren J. Rittle  <ljrittle@acm.org>
302
303         * scripts/check_performance: Only compile with $THREAD_FLAG
304         when test is marked to require it.  Allow multiple
305         compilations/executions of marked tests.
306         * testsuite/testsuite_performance.h (report_performance):
307         Report dynamic thread support status.
308         (report_header): Likewise.
309         * testsuite/performance/allocator.cc: Stabilize iteration
310         count.  Support more allocators.  Mark each allocator test to
311         run and report independently.
312         * testsuite/performance/allocator_map_thread.cc: Likewise.
313         * testsuite/performance/allocator_thread.cc: Likewise.
314
315 2004-01-29  Stephen M. Webb  <stephen.webb@bregmasoft.com>
316
317         * config/local/generic/c_locale.h: Change ::malloc() to new char[].
318         * config/local/gnu/c_locale.h: Change ::malloc() to new char[].
319         * include/bits/stl_tempbuf.h: Convert _Temporary_buffer to use
320         std::get_temporary_buffer() instead of duplicating its code.
321         Update to C++STYLE conventions.
322         * include/std/std_memory.h (get_temporary_buffer): Use ::operator
323         new() instead of std::malloc().
324         (return_temporary_buffer): Use ::operator delete() instead of
325         std::free().
326
327 2004-01-29  Benjamin Kosnik  <bkoz@redhat.com>
328
329         * include/bits/allocator.h: Temporary switch to new_allocator as
330         the default to unjam bootstraps.
331
332 2004-01-28  Benjamin Kosnik  <bkoz@redhat.com>
333
334         * include/Makefile.am (bits_headers): Remove allocator_traits.h.
335         * include/Makefile.in: Regenerate.
336         * include/bits/allocator_traits.h: Remove.
337         * include/bits/allocator.h: Remove allocator_traits.h include, and
338         relevant comments.
339         (allocator): Empty base class, inherit from the underlying allocator.
340         * src/allocator-inst.cc: Move __pool_alloc instantiation to...
341         * src/allocator.cc: ...here. New. For the underlying allocators.
342         Add __mt_alloc, __pool_alloc, new_allocator, malloc_allocator bits.
343         * config/linker-map.gnu: Remove __pool_alloc bits.
344         * src/Makefile.am (sources): Add allocator.cc.
345         * src/Makefile.in: Regenerate.
346         * testsuite/20_util/allocator/1.cc: Split second test into...
347         * testsuite/20_util/allocator/8230.cc: ...this.
348         * include/bits/stl_bvector.h (__gnu_norm): Change bit_vector
349         typedef to use std::allocatore. Format.
350         * include/ext/pool_allocator.h: Remove allocator_traits.h include,
351         _Alloc_traits.
352         * include/ext/mt_allocator.h (__gnu_cxx): Qualify
353         __throw_bad_alloc calls. Don't include <memory>.
354         * include/ext/malloc_allocator.h: Remove <memory> include.
355         * include/ext/new_allocator.h (new_allocator): Same.
356         * include/ext/ropeimpl.h (__gnu_cxx): Remove __alloc using
357         declaration. Switch __alloc to _Alloc.
358         * include/ext/hashtable.h: Remove __alloc.
359         * include/backward/alloc.h: Only inject allocator, not
360         implementation details.
361
362         * include/ext/mt_allocator.h: Replace free with delete.
363
364 2004-01-28  Benjamin Kosnik  <bkoz@redhat.com>
365
366         * src/globals_io.cc: Change to __gnu_internal namespace.
367         * src/globals_locale.cc: Same.
368         * src/locale_init.cc: Same.
369         * src/ios_init.cc: Same.
370
371 2004-01-28  Stefan Olsson  <stefan@snon.net>
372
373         * include/ext/mt_allocator.h: Replaced all malloc() calls with
374         operator new(). Added support for the env variable
375         GLIBCXX_FORCE_NEW (this required the _S_init call to be the first
376         one in allocate() as well). Fix typos.
377
378 2004-01-28  Paolo Carlini  <pcarlini@suse.de>
379
380         * include/bits/basic_string.h (_S_create(size_t,
381         const _Alloc&): Change signature to take two size_type
382         arguments.
383         * include/bits/basic_string.tcc (_S_construct(_InIterator,
384         _InIterator, const _Alloc&, input_iterator_tag)): Update
385         call, tweak a bit.
386         (_S_construct(_InIterator, _InIterator, const _Alloc&,
387         forward_iterator_tag)): Likewise.
388         (_S_construct(size_type, _CharT, const _Alloc&)): Likewise.
389         (_M_mutate(size_type, size_type, size_type)): Don't
390         implement the exponential growth policy, demand it to
391         _S_create, update call and simplify.
392         (_M_clone(const _Alloc&, size_type)): Likewise.
393         (_S_create(size_type, size_type, const _Alloc&)): Implement
394         the growth policy, simplify otherwise.
395
396         * include/bits/basic_string.h (_Rep::operator[]): Tweak
397         signature to take a size_type, consistently with the other
398         members.
399
400 2004-01-27  Benjamin Kosnik  <bkoz@redhat.com>
401
402         * testsuite/27_io/ios_base/storage/11584.cc: Correct new and
403         delete declarations, add include and test variable.
404
405 2003-01-27  Jerry Quinn  <jlquinn@optonline.net>
406
407         * include/bits/codecvt.h, include/bits/locale_facets.h,
408         include/bits/postypes.h, include/bits/stl_bvector.h,
409         include/bits/stl_multiset.h, include/bits/stl_set.h,
410         include/bits/stream_iterator.h, include/bits/streambuf_iterator.h,
411         include/std/std_complex.h:  Document.
412
413 2004-01-27  Jerry Quinn  <jlquinn@optonline.net>
414
415         PR libstdc++/11584
416         * include/bits/ios_base.h (ios_base::_M_grow_words):  Add
417         iword/pword selector.
418         (ios_base::iword, ios_base::pword):  Use it.
419         * src/ios.cc (ios_base::_M_grow_words):  Clear _M_word_zero
420         iword or pword member on alloc failure.
421         * testsuite/27_io/ios_base/storage/11584.cc:  New test.
422
423 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
424             PJ Darcy  <darcypj@us.ibm.com>
425
426         * configure.host: Add support for *-tpf.
427         * crossconfig.m4: Likewise.
428         * configure: Regenerate.
429         * config/os/tpf: New directory.
430         * config/os/tpf/os_defines.h: New file.
431         * config/os/tpf/ctype_base.h: Likewise.
432         * config/os/tpf/ctype_inline.h: Likewise.
433         * config/os/tpf/ctype_noninline.h: Likewise.
434
435 2004-01-27  Paolo Carlini  <pcarlini@suse.de>
436
437         PR libstdc++/13884
438         * include/bits/sstream.tcc: Guard use of extern template.
439
440 2004-01-27  Paolo Carlini  <pcarlini@suse.de>
441
442         * include/bits/basic_string.tcc
443         (basic_string(const basic_string&, size_type, size_type),
444         basic_string(const basic_string&, size_type, size_type,
445         const _Alloc&)): Avoid unnecessarily constructing iterators.
446
447 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
448
449         * config/locale/generic/c_locale.cc: Fix throw messages
450         to use the __N marker.
451         * config/locale/gnu/c_locale.cc: Likewise.
452         * config/locale/ieee_1003.1-2001/codecvt_specializations.h:
453         Likewise.
454         * docs/html/17_intro/C++STYLE: Likewise.
455         * include/bits/basic_ios.tcc: Likewise.
456         * include/bits/fstream.tcc: Likewise.
457         * include/bits/vector.tcc: Likewise.
458         * include/ext/ropeimpl.h: Likewise.
459         * include/std/std_bitset.h: Likewise.
460         * src/ios.cc: Likewise.
461         * src/locale.cc: Likewise.
462         * src/localename.cc: Likewise.
463
464 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
465
466         * include/bits/basic_string.h (_M_replace_aux): Use the
467         __N marker in throw message.
468         * include/bits/basic_string.tcc (assign(const _CharT*,
469         size_type), insert(size_type, const _CharT*, size_type),
470         replace(size_type, size_type, const _CharT*, size_type),
471         reserve, _Rep::_S_create, resize, _M_replace_dispatch):
472         Likewise.
473
474         * include/bits/basic_string.h, include/bits/basic_string.tcc:
475         Fold overlong lines, minor formatting changes.
476
477 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
478
479         * include/bits/basic_string.h (replace(iterator, iterator,
480         const basic_string&)): Remove _GLIBCXX_DEBUG_PEDASSERT.
481         (replace(iterator, iterator, const _CharT*)): Ditto.
482         (replace(iterator, iterator, const _CharT*, size_type)):
483         Add missing _GLIBCXX_DEBUG_PEDASSERT.
484
485 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
486
487         * include/bits/basic_string.tcc (replace(size_type,
488         size_type, const _CharT*, size_type)): Implement optimized
489         in-place algorithm for non-overlapping ranges.
490         * testsuite/21_strings/basic_string/replace/char/6.cc: New.
491         * testsuite/21_strings/basic_string/replace/wchar_t/6.cc: New.
492
493         * include/bits/basic_string.tcc (insert(size_type,
494         const _CharT*, size_type)): Tweak slightly.
495
496 2004-01-26  Andreas Schwab  <schwab@suse.de>
497
498         * config/locale/gnu/monetary_members.cc: Restore locale before
499         rethrowing exception.
500
501 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
502
503         * include/bits/basic_string.h (_M_replace_aux, _M_replace_safe):
504         Define inline here.
505         * include/bits/basic_string.tcc (_M_replace_aux, _M_replace_safe):
506         Move inline.
507
508         * include/bits/basic_string.tcc: Very minor tweaks.
509
510 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
511
512         * testsuite/performance/string_append.cc: Increase number
513         of iterations.
514
515 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
516
517         * include/bits/basic_string.h (erase(size_type, size_type),
518         erase(iterator), erase(iterator, iterator)): Call _M_replace_safe
519         instead, thus avoiding redundant check for length_error.
520
521         * include/bits/basic_string.h: Tweak some comments.
522
523 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
524
525         * include/bits/basic_string.tcc (operator+(const _CharT*,
526         const basic_string&)): No need to go through the append
527         taking two iterators.
528
529 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
530
531         * include/bits/basic_string.tcc (rfind(_CharT, size_type)):
532         Revert last change to use std::min: machine language is worse.
533         (find_last_of(const _CharT*, size_type, size_type)): Ditto.
534         (find_last_not_of(const _CharT*, size_type, size_type)): Ditto.
535         (find_last_not_of(_CharT, size_type)): Ditto.
536
537         * include/bits/basic_string.tcc (insert(size_type, const _CharT*,
538         size_type)): Discard the value returned by _M_check.
539         (replace(size_type, size_type, const _CharT*, size_type)): Ditto.
540         (append(const basic_string&, size_type, size_type)): Ditto.
541         (copy(_CharT*, size_type, size_type)): Ditto.
542         (compare(size_type, size_type, const basic_string&)): Ditto.
543         (compare(size_type, size_type, const basic_string&,
544         size_type, size_type)): Ditto.
545         (compare(size_type, size_type, const _CharT*)): Ditto.
546         (compare(size_type, size_type, const _CharT*, size_type)): Ditto.
547
548 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
549
550         * include/bits/basic_string.h (insert(size_type,
551         const basic_string&, size_type, size_type)): Define inline here.
552         * include/bits/basic_string.tcc (insert(size_type,
553         const basic_string&, size_type, size_type)): Move inline.
554
555 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
556
557         * include/bits/basic_string.h (assign(const basic_string&,
558         size_type, size_type)): Define inline here.
559         (replace(size_type, size_type, const basic_string&,
560         size_type, size_type)): Ditto.
561         (_M_replace_dispatch(iterator, iterator, _InputIterator,
562         _InputIterator, __false_type)): Only declare.
563         (_M_replace(iterator, iterator, _InputIterator,
564         _InputIterator)): Remove.
565         * include/bits/basic_string.tcc (assign(const basic_string&,
566         size_type, size_type)): Move inline.
567         (replace(size_type, size_type, const basic_string&,
568         size_type, size_type)): Ditto.
569         (_M_replace_dispatch(iterator, iterator, _InputIterator,
570         _InputIterator, __false_type)): Define, now does also what
571         _M_replace did before.
572         * src/string-inst.cc (_M_replace): Don't instantiate.
573
574         * include/bits/basic_string.tcc (find(const _CharT*,
575         size_type, size_type)): Tidy.
576         (rfind(_CharT, size_type)): Ditto.
577         (find_first_not_of(const _CharT*, size_type, size_type)): Ditto.
578         (find_first_not_of(_CharT, size_type)): Ditto.
579         (find_last_not_of(const _CharT*, size_type, size_type)): Ditto.
580         (find_last_not_of(_CharT, size_type)): Ditto.
581
582 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
583
584         PR libstdc++/13838
585         * include/debug/bitset (operator|=): Fix typo.
586         * testsuite/23_containers/bitset/operations/13838.cc: New.
587
588 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
589
590         * include/bits/basic_string.tcc (insert(size_type,
591         const _CharT*, size_type __n)): Fix length_error check.
592         (replace(size_type, size_type, const _CharT*, size_type):
593         Ditto; call _M_replace_safe.
594         (_M_replace_aux(size_type, size_type, size_type, _CharT):
595         Fix length_error check.
596         (_M_replace(iterator, iterator, _InputIterator,
597         _InputIterator)): Ditto, tweak.
598         (_M_replace_safe(size_type, size_type, const _CharT*,
599         size_type)): Remove length_error check.
600
601         * include/bits/basic_string.tcc (append(const basic_string&),
602         append(const basic_string&, size_type, size_type)): Tweak
603         comment.
604
605         * include/bits/basic_string.tcc (copy(_CharT*, size_type,
606         size_type)): If __n == 0 don't call traits::copy.
607
608 2004-01-23  Stefan Olsson  <stefan@snon.net>
609
610         * include/ext/mt_allocator.h: Reduce lock contention.
611
612 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
613
614         PR libstdc++/13831
615         * include/bits/fstream.tcc (underflow): Remove unused
616         variable.
617         * include/bits/streambuf_iterator.h (equal): Ditto.
618         * include/bits/locale_facets.h (_M_convert_from_char):
619         Ditto.
620
621 2004-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
622
623         PR c/13814
624         * config/linker-map.gnu (nan): Delete.
625         * libmath/mathconf.h (NAN, nan): Delete.
626         * linkage.m4 (nan): Don't check for it.
627         * libmath/nan.c: Delete file.
628
629         * config.h.in, configure: Regenerate.
630
631 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
632
633         * include/bits/basic_string.h (push_back(_CharT)):
634         Call _M_replace_aux.
635         (insert(size_type, const basic_string&)): Trivial tweak.
636         (insert(size_type, size_type, _CharT)): Call _M_replace_aux.
637         (insert(iterator, _CharT)): Ditto.
638         (erase(size_type, size_type)): Ditto.
639         (erase(iterator)): Ditto.
640         (erase(iterator, iterator)): Ditto.
641         (replace(size_type, size_type, size_type, _CharT)): Ditto.
642
643 2004-01-23  Loren J. Rittle  <ljrittle@acm.org>
644
645         libstdc++/13823
646         * testsuite/performance/allocator_map_thread.cc: New test.
647
648 2004-01-22  Paolo Carlini  <pcarlini@suse.de>
649
650         * include/bits/locale_facets.tcc
651         (money_put::do_put(..., long double)): Use the basic_string
652         constructor for char arrays, not that for C-strings, to pass
653         __digits to do_put(..., const string_type&): __ws isn't
654         null-terminated.
655
656 2004-01-22  Paolo Carlini  <pcarlini@suse.de>
657
658         * include/bits/basic_string.h (_M_replace_safe): Change
659         signatures to take size_types and const _CharT*.
660         (_M_replace_aux): Likewise, takes size_types instead of
661         iterators.
662         (append(size_type, _CharT)): Update call.
663         (assign(size_type, _CharT)): Ditto.
664         (replace(iterator, iterator, size_type, _CharT)): Ditto.
665         (_M_replace_dispatch(iterator, iterator, _Integer,
666         _Integer, __true_type)): Ditto.
667         * include/bits/basic_string.tcc (assign(const _CharT*,
668         size_type)): Ditto.
669         (insert(size_type, const _CharT*, size_type)): Ditto.
670         (replace(size_type, size_type, const _CharT*,
671         size_type)): Ditto.
672         (_M_replace(iterator, iterator, _InputIterator,
673         _InputIterator)): Ditto.
674         (append(const basic_string&)): Ditto.
675         (append(const basic_string&, size_type, size_type): Ditto.
676         (append(const _CharT*, size_type): Ditto.
677         (_M_replace_safe, _M_replace_safe): Change definitions
678         accordingly, simplify.
679         * string-inst.cc (_M_replace_safe): Don't instantiate.
680
681 2004-01-21  Paolo Carlini  <pcarlini@suse.de>
682
683         * include/bits/basic_string.tcc (append(const basic_string&)):
684         Revert previous change.
685         (append(const basic_string&, size_type, size_type)): Revert
686         previous change, use _M_check and _M_limit.
687
688 2004-01-21  Paolo Carlini  <pcarlini@suse.de>
689
690         * include/bits/basic_string.h (_M_check): Change to return
691         a checked __pos and take an additional const char* argument.
692         (_M_fold): Rename to _M_limit, change to return a size_type,
693         corresponding to the __off limited to the actual length.
694         (insert(size_type, size_type, _CharT)): Update call, call
695         replace.
696         (insert(iterator, _CharT)): Call replace(iterator, iterator,
697         size_type, _CharT) instead.
698         (erase(size_type, size_type)): Update calls.
699         (replace(size_type, size_type, size_type, _CharT)): Ditto.
700         (substr(size_type, size_type)): Use _M_check.
701         * include/bits/basic_string.tcc (basic_string(const basic_string&,
702         size_type, size_type)): Update calls.
703         (basic_string(const basic_string&, size_type, size_type,
704         const _Alloc&)): Ditto.
705         (assign(const basic_string&, size_type, size_type)): Use the
706         new _M_check and _M_limit.
707         (insert(size_type, const basic_string&, size_type, size_type):
708         Ditto.
709         (insert(size_type, const _CharT*, size_type)): Ditto.
710         (replace(size_type, size_type, const _CharT*, size_type): Ditto.
711         (replace(size_type, size_type, const basic_string&,
712         size_type, size_type)): Ditto.
713         (append(const basic_string&)): Ditto.
714         (append(const basic_string&, size_type, size_type)): Ditto.
715         (copy(_CharT*, size_type, size_type)): Ditto.
716         (compare(size_type, size_type, const basic_string&)): Ditto.
717         (compare(size_type, size_type, const basic_string&,size_type,
718         size_type)): Ditto.
719         (compare(size_type, size_type, const _CharT*)): Ditto.
720         (compare(size_type, size_type, const _CharT*, size_type)): Ditto.
721
722 2004-01-19  Stefan Olsson  <stefan@snon.net>
723
724         * include/ext/mt_allocator.h: If a thread, when it dies, still has
725         memory on it's freelist this memory is not returned to global
726         list. Simplification of deallocate so that memory is always
727         returned to the calling thread id's freelist instead of to
728         global. Fix typos. Add volatile where appropriate.
729
730 2004-01-19  Loren J. Rittle  <ljrittle@acm.org>
731
732         * testsuite/ext/stdio_filebuf/char/10063-2.cc: Treat unbuffered.
733         * testsuite/ext/stdio_filebuf/char/10063-3.cc: New test.  Like -2 but
734         use __gnu_cxx::stdio_sync_filebuf<char> instead; allow buffered stream.
735
736 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
737
738         * src/debug.cc: Make sure all the names are prefixed with
739         double (or single) underscore.
740
741 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
742
743         * src/debug.cc: Trivial formatting change.
744
745 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
746
747         * include/bits/basic_string.tcc (_S_construct(size_type,
748         _CharT, const _Alloc&)): Remove redundant try/catch.
749         (_M_mutate(size_type, size_type, size_type)): Ditto.
750         (_M_clone(const _Alloc&, size_type)): Ditto.
751
752 2004-01-18  Paolo Carlini  <pcarlini@suse.de>
753
754         * include/bits/basic_string.h (c_str()): Simplify, due to
755         21.3.4 the internal representation is always kept null-terminated.
756         * include/bits/basic_string.tcc (_M_clone): Null-terminate.
757         * testsuite/21_strings/basic_string/element_access/char/4.cc: New.
758         * testsuite/21_strings/basic_string/element_access/wchar_t/4.cc:
759         Ditto.
760
761 2004-01-18  Paolo Carlini  <pcarlini@suse.de>
762
763         * include/bits/basic_string.h (append(size_type, _CharT)):
764         Moved inline, just call _M_replace_aux, no source iterators at
765         risk of being clobbered.
766         (assign(size_type, _CharT)): Call directly _M_replace_aux.
767         (_M_replace(iterator, iterator, _InputIterator, _InputIterator,
768         input_iterator_tag)): Remove fifth unused argument.
769         (_M_replace_dispatch(iterator, iterator, _InputIterator,
770         _InputIterator, __false_type)): Update call.
771         * include/bits/basic_string.tcc (replace(size_type, size_type,
772         const _CharT*, size_type)): Update call.
773         (_M_replace_aux(iterator, iterator, size_type, _CharT)): Tweak
774         throw string literal.
775         (_M_replace_safe(iterator, iterator, _ForwardIterator,
776         _ForwardIterator)): Likewise.
777         (_M_replace(iterator, iterator, _InputIterator, _InputIterator,
778         input_iterator_tag)): Remove fifth unused argument.
779         (append(size_type __n, _CharT __c)): Move inline.
780         * src/string-inst.cc (S::_M_replace(S::iterator, S::iterator,
781         const C*, const C*, input_iterator_tag)): Remove fifth unused
782         argument.
783
784 2004-01-16  Benjamin Kosnik  <bkoz@redhat.com>
785
786         * testsuite/ext/enc_filebuf/char/13189.cc: Fix guards.
787         * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Same.
788
789 2004-01-16  Danny Smith  <dannysmith@users.sourceforge.net>
790
791         * testsuite/testsuite_hooks.cc (try_mkfifo): Avoid calling
792         mkfifo for mingw32.
793
794 2004-01-15  Stefan Olsson  <stefan@snon.net>
795
796         * include/ext/mt_allocator.h: Reuse thread id's as soon as
797         possible by changing the behaviour of thread_freelist to do
798         push_front when threads die instead of push_back.
799
800 2004-01-14  Paolo Carlini  <pcarlini@suse.de>
801
802         * include/bits/locale_facets.h (struct __numpunct_cache):
803         Add member _M_grouping_size, caching the length of _M_grouping.
804         (__numpunct_cache<>::_M_cache): Assign the latter.
805         (__verify_grouping): Move declaration...
806         * include/bits/locale_facets.tcc (__verify_grouping):
807         ... here, change signature to take a const char* and a size_t
808         for the grouping; not a template anymore.
809         (__add_grouping, num_put::_M_group_int, num_put::_M_group_float):
810         Likewise change signature and tweak consistently.
811         (num_get::_M_extract_float, num_get::_M_extract_int,
812         num_put::_M_insert_int, num_put::_M_insert_float,
813         money_get::do_get(string_type&), money_get::do_put(string_type)):
814         Update callers.
815         * config/locale/generic/numeric_members.cc
816         (numpunct<>::_M_initialize_numpunct): Assign the new member.
817         * config/locale/gnu/numeric_members.cc
818         (numpunct<>::_M_initialize_numpunct): Likewise.
819         * src/locale-inst.cc (__add_grouping): Tweak signature.
820         (__verify_grouping): Don't instantiate, not a template anymore.
821
822         * include/bits/locale_facets.h: Rename _M_truename_len ->
823         _M_truename_size, _M_falsename_len -> _M_falsename_size.
824         * include/bits/locale_facets.tcc: Likewise.
825         * config/locale/generic/numeric_members.cc: Likewise.
826         * config/locale/gnu/numeric_members.cc: Likewise.
827
828 2004-01-14  Stefan Olsson  <stefan@snon.net>
829
830         * include/ext/mt_allocator.h: Fixups.
831         * testsuite/performance/allocator.cc: Enable __mt_alloc tests.
832         * testsuite/performance/allocator_thread.cc: Same.
833
834 2004-01-13  Benjamin Kosnik  <bkoz@redhat.com>
835
836         * testsuite/performance/ifstream_extract_float.cc: Add higher
837         precision tests.
838         * testsuite/performance/ofstream_insert_float.cc: Same.
839
840 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
841
842         * src/locale-misc-inst.cc (__convert_from_v(long),
843         __convert_from_v(unsigned long), __convert_from_v(long long),
844         __convert_from_v(unsigned long long)): Remove, unused.
845
846 2004-01-13  Benjamin Kosnik  <bkoz@redhat.com>
847
848         * testsuite/performance/ifstream_extract_float.cc: New.
849         * testsuite/performance/ofstream_insert_float.cc: Float generation
850         matches above.
851
852         * 20_util/auto_ptr.cc, auto_ptr_neg.cc: Break into...
853         * 20_util/auto_ptr/1.cc: ...this.
854         * 20_util/auto_ptr/2.cc: Same.
855         * 20_util/auto_ptr/3.cc: Same.
856         * 20_util/auto_ptr/3946.cc: Same.
857         * 20_util/auto_ptr/4.cc: Same.
858         * 20_util/auto_ptr/5.cc: Same.
859         * 20_util/auto_ptr/6.cc: Same.
860         * 20_util/auto_ptr/7.cc: Same.
861         * 20_util/auto_ptr/assign_neg.cc
862         * 20_util/pairs.cc: Break into...
863         * 20_util/pair/1.cc: ...this.
864         * 20_util/pair/2.cc: Same.
865         * 20_util/pair/3.cc: Same.
866         * 20_util/pair/4.cc: Same.
867
868 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
869
870         * include/bits/locale_facets.tcc (num_get::do_get(void*&)):
871         Set correctly just basefield, the only group that matters.
872
873 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
874
875         * include/ext/rope (_Rope_rep_alloc_base): Eliminate.
876         (_Rope_rep_base): Inherit directly from the rope allocator;
877         use rebinding instead of _Alloc_traits; pick up data member
878         from _Rope_rep_alloc_base.
879         (_Rope_alloc_base): Eliminate.
880         (_Rope_base): Inherit directly from the rope allocator; use
881         rebinding instead of _Alloc_traits; pick up data member from
882         _Rope_alloc_base.
883         (rope::_S_new_RopeLeaf, rope::_S_new_RopeConcatenation,
884         rope::_S_new_RopeFunction, rope::_S_new_RopeSubstring): Tweak.
885
886 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
887
888         PR libstdc++/13650
889         * include/bits/basic_string.tcc (compare(size_type, size_type,
890         const _CharT*, size_type)): Implement correctly the resolution
891         of DR 5: basically, s is a char array, -not- a C string.
892         * include/bits/basic_string.h: Tweak some comments.
893         * testsuite/21_strings/basic_string/compare/char/13650.cc: New.
894         * testsuite/21_strings/basic_string/compare/wchar_t/13650.cc: New.
895
896 2004-01-12  Andreas Tobler  <a.tobler@schweiz.ch>
897
898         * testsuite/lib/libstdc++.exp: Set LD_LIBRARY_PATH_32 for
899         Solaris.
900
901 2004-01-12  Paolo Carlini  <pcarlini@suse.de>
902
903         * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc:
904         Use try_mkfifo.
905         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc:
906         Likewise.
907
908 2004-01-12  Paolo Carlini  <pcarlini@suse.de>
909
910         * include/bits/locale_facets.h (struct __numpunct_cache):
911         Add members _M_truename_len and _M_falsename_len, caching
912         the lengths of _M_truename and _M_falsename.
913         (__numpunct_cache<>::_M_cache): Assign the latter.
914         * include/bits/locale_facets.tcc (num_get::do_get(bool&),
915         num_put::do_put(bool)): Use the new members, thus avoiding
916         computing string lengths again and again.
917         * config/locale/generic/numeric_members.cc
918         (numpunct<>::_M_initialize_numpunct): Assign the new members.
919         * config/locale/gnu/numeric_members.cc
920         (numpunct<>::_M_initialize_numpunct): Likewise.
921
922 2004-01-12  Mark Mitchell  <mark@codesourcery.com>
923
924         * testsuite/testsuite_hooks.h (__gnu_test::try_mkfifo): Declare it.
925         * testsuite/testsuite_hooks.cc (__gnu_test::try_mkfifo): Define
926         it.
927         * testsuite/27_io/basic_filebuf/close/char/4879.cc: Use try_mkfifo
928         and remove Cygwin XFAIL.
929         * testsuite/27_io/basic_filebuf/close/char/9964.cc: Likewise.
930         * testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc: Likewise.
931         * testsuite/27_io/basic_filebuf/open/char/9507.cc: Likewise.
932         * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc:
933         Likewise.
934         * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise.
935         * testsuite/27_io/objects/char/7.cc: Likewise.
936         * testsuite/27_io/objects/char/9661-1.cc: Likewise.
937         * testsuite/27_io/objects/wchar_t/7.cc: Likewise.
938         * testsuite/27_io/objects/wchar_t/9661-1.cc: Likewise.
939
940 2004-01-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
941
942         * include/std/std_complex.h (std::complex<>::real): Return a
943         reference. Add non-const overload.
944         (std::complex<>::real): Likewise.
945         (std::real): Likewise.
946         (std::imag): Likewise.
947         (std::operator+): Tidy.
948         (std::operator-): Likewise.
949         (std::operator*): Likewise.
950         (std::operator/): Likewise.
951         (std::operator>>): Likewise.
952
953 2004-01-11  Paolo Carlini  <pcarlini@suse.de>
954
955         PR libstdc++/13582
956         * include/bits/fstream.tcc (imbue): Exploit the external
957         buffer to imbue 'on the fly' a new locale and convert its
958         remainder with the new codecvt facet.
959         (underflow): Tweak slightly to deal with this special case.
960         * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc: New.
961         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc: Ditto.
962         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Ditto.
963         * testsuite/27_io/objects/wchar_t/13582-1_xin.cc: Ditto.
964         * testsuite/27_io/objects/wchar_t/13582-1_xin.in: Ditto.
965
966 2004-01-10  Paolo Carlini  <pcarlini@suse.de>
967
968         * docs/html/ext/lwg-active.html, docs/html/ext/lwg-defects.html:
969         Import Revision 28.
970
971 2004-01-10  Paolo Carlini  <pcarlini@suse.de>
972
973         PR libstdc++/13630
974         * include/bits/locale_classes.h (class locale): Fix category
975         typedef.
976         * testsuite/22_locale/locale/13630.cc: Add.
977
978 2004-01-10  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
979
980         * include/bits/locale_facets.h: Make a name really dependent. This
981         will be needed when Core Issue 224 is implemented.
982
983 2004-01-09  Paolo Carlini  <pcarlini@suse.de>
984
985         * testsuite/performance/allocator.cc: Demangle typeid(obj).name().
986         * testsuite/performance/allocator_thread.cc: Likewise.
987
988 2004-01-07  Benjamin Kosnik  <bkoz@redhat.com>
989
990         * crossconfig.m4: Add LFS, io bits to linux cross config.
991         * acconfig.h: Remove obsolete bits, reorder.
992         * config.h.in: Regenerate.
993         * aclocal.m4: Same.
994         * configure: Same.
995
996 2004-01-07  Gawain Bolton  <gp.bolton@computer.org>
997
998         * include/bits/stl_list.h:
999         * include/bits/list.tc:
1000         * src/list.cc:
1001         Performance enhancements for destructor, push_front(),
1002         push_back(), pop_front(), pop_back(), sort()
1003         Eliminated static_casts where possible.
1004         Moved code out of header files into new src/list.cc
1005         implementation file for library where possible.
1006         Remove inheritance from iterator class and create separate
1007         classes for non-constant and constant iterators.
1008         * include/bits/stl_tree.h (_Rb_tree class):
1009         * src/tree.cc:
1010         Only erase contents in destructor.
1011         Eliminate unnecessary initialization in assignment operator.
1012         Optimize for the nominal case by not checking whether
1013         container is empty in clear().
1014         Re-order test in _M_insert() to improve performance.
1015         Move initialization of new node's left & right pointers to
1016         src/tree.cc to where new node's colour is initialized
1017         and to reduce the amount of inline code.
1018         Use  _M_leftmost() and _M_end() to improve readability where
1019         appropriate.
1020         Create separate classes for non-constant and constant
1021         iterators to clarify code, avoid extra template parameters and
1022         casting away constness.
1023
1024 2004-01-07  Benjamin Kosnik  <bkoz@redhat.com>
1025
1026         * src/Makefile.am (sources): Add list.cc, tree.cc.
1027         * src/stl_tree.cc: Move to...
1028         * src/tree.cc: ...here.
1029         * src/list.cc: Add.
1030         * config/linker-map.gnu: Tweaks.
1031         * testsuite/23_containers/map/operators/1_neg.cc: Add excess errors.
1032         * testsuite/23_containers/set/operators/1_neg.cc: Add excess errors.
1033
1034         * bits/stl_vector.h: Column wrap comments.
1035
1036 2004-01-07  Loren J. Rittle  <ljrittle@acm.org>
1037
1038         (re-open) PR libstdc++/12658
1039         * src/locale_init.cc (locale::locale): Remove ill-scoped mutex.
1040         (locale::global): Likewise.
1041
1042 2004-01-07  Paolo Carlini  <pcarlini@suse.de>
1043
1044         * testsuite/27_io/basic_istream/extractors_other/char/9318-in.cc:
1045         Remove redundant #include.
1046         * testsuite/27_io/basic_ostream/endl/char/1.cc: Likewise.
1047         * testsuite/27_io/basic_ostream/ends/char/1.cc: Likewise,
1048         re-enable normal testing.
1049         * testsuite/27_io/basic_ostream/ends/char/2.cc: Remove redundant
1050         #include.
1051         * testsuite/27_io/basic_ostream/flush/char/1.cc: Likewise.
1052         * testsuite/27_io/basic_ostream/inserters_character/char/1.cc:
1053         Likewise.
1054         * testsuite/27_io/basic_ostream/inserters_character/char/2.cc:
1055         Likewise.
1056         * testsuite/27_io/basic_ostream/inserters_character/char/3.cc:
1057         Likewise.
1058         * testsuite/27_io/basic_ostream/inserters_character/char/4.cc:
1059         Likewise.
1060         * testsuite/27_io/basic_ostream/inserters_character/char/5.cc:
1061         Likewise.
1062         * testsuite/27_io/basic_ostream/inserters_character/char/6.cc:
1063         Likewise.
1064         * testsuite/27_io/basic_ostream/inserters_character/char/8.cc:
1065         Likewise.
1066         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/7.cc:
1067         More properly, #include <locale>.
1068         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/8.cc:
1069         Remove redundant #include.
1070         * testsuite/27_io/basic_ostream/inserters_other/char/2.cc: Likewise.
1071         * testsuite/27_io/basic_ostream/inserters_other/char/3.cc: Remove
1072         redundant DejaGnu directive.
1073         * testsuite/27_io/basic_ostream/inserters_other/char/4.cc: Remove
1074         redundant #include.
1075
1076 2004-01-06  Benjamin Kosnik  <bkoz@redhat.com>
1077             Stefan Olsson  <stefan@snon.net>
1078
1079         * scripts/check_performance: Use -pthread.
1080         * testsuite/performance/allocator.cc: Tweaks, add list.
1081         * testsuite/performance/allocator_thread.cc: New.
1082
1083 2004-01-06  Jerry Quinn  <jlquinn@optonline.net>
1084
1085         * include/bits/locale_facets.h: Document public classes and
1086         functions.
1087         * include/bits/locale_facets.tcc (time_get::_M_extract_via_format):
1088         Add comment.
1089
1090 2004-01-06  Paolo Carlini  <pcarlini@suse.de>
1091
1092         * testsuite/27_io/basic_istream/extractors_other/char/1.cc:
1093         Remove redundant #includes.
1094         * testsuite/27_io/basic_istream/extractors_other/char/2.cc:
1095         Likewise.
1096         * testsuite/27_io/basic_istream/extractors_other/char/3.cc:
1097         Likewise.
1098         * testsuite/27_io/basic_istream/get/char/1.cc: Likewise.
1099         * testsuite/27_io/basic_istream/get/char/2.cc: Likewise.
1100         * testsuite/27_io/basic_istream/getline/char/1.cc: Likewise.
1101         * testsuite/27_io/basic_istream/getline/char/2.cc: Likewise.
1102         * testsuite/27_io/basic_istream/getline/char/3.cc: Likewise.
1103         * testsuite/27_io/basic_istream/ignore/char/1.cc: Likewise.
1104         * testsuite/27_io/basic_istream/ignore/char/6360.cc: Likewise.
1105         * testsuite/27_io/basic_istream/ignore/char/7220.cc: Likewise.
1106         * testsuite/27_io/basic_istream/peek/char/1.cc: Likewise.
1107         * testsuite/27_io/basic_istream/peek/char/6414.cc: Likewise.
1108         * testsuite/27_io/basic_istream/putback/char/1.cc: Likewise.
1109         * testsuite/27_io/basic_istream/read/char/1.cc: Likewise.
1110         * testsuite/27_io/basic_istream/read/char/2.cc: Likewise.
1111         * testsuite/27_io/basic_istream/read/char/3.cc: Likewise.
1112         * testsuite/27_io/basic_istream/readsome/char/6746-1.cc:
1113         Likewise.
1114         * testsuite/27_io/basic_istream/readsome/char/6746-2.cc:
1115         Likewise.
1116         * testsuite/27_io/basic_istream/readsome/char/8258.cc:
1117         Likewise.
1118         * testsuite/27_io/basic_istream/seekg/char/2346-fstream.cc:
1119         Likewise.
1120         * testsuite/27_io/basic_istream/seekg/char/2346-sstream.cc:
1121         Likewise.
1122         * testsuite/27_io/basic_istream/seekg/char/8348-1.cc: Likewise.
1123         * testsuite/27_io/basic_istream/seekg/char/8348-2.cc: Likewise.
1124         * testsuite/27_io/basic_istream/tellg/char/8348.cc: Likewise.
1125
1126 2004-01-04  Paolo Carlini  <pcarlini@suse.de>
1127
1128         * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc:
1129         Remove redundant #includes.
1130         * testsuite/27_io/basic_istream/extractors_arithmetic/char/02.cc:
1131         Likewise.
1132         * testsuite/27_io/basic_istream/extractors_arithmetic/char/03.cc:
1133         Likewise.
1134         * testsuite/27_io/basic_istream/extractors_arithmetic/char/06.cc:
1135         Likewise.
1136         * testsuite/27_io/basic_istream/extractors_arithmetic/char/07.cc:
1137         Likewise.
1138         * testsuite/27_io/basic_istream/extractors_arithmetic/char/08.cc:
1139         Likewise.
1140         * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc:
1141         Likewise.
1142         * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
1143         Likewise.
1144         * testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc:
1145         Likewise.
1146         * testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc:
1147         Likewise.
1148         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/1.cc:
1149         Likewise.
1150         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc:
1151         Likewise.
1152         * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/1.cc:
1153         Likewise.
1154
1155 2004-01-04  Mark Mitchell  <mark@codesourcery.com>
1156
1157         PR c++/12226
1158         * testsuite/27_io/basic_filebuf/4.cc: Remove use of invalid copy
1159         constructor.
1160         * testsuite/27_io/basic_fstream/4.cc: Likewise.
1161         * testsuite/27_io/basic_ifstream/4.cc: Likewise.
1162         * testsuite/27_io/basic_ios/4.cc: Likewise.
1163         * testsuite/27_io/basic_iostream/4.cc: Likewise.
1164         * testsuite/27_io/basic_istream/4.cc: Likewise.
1165         * testsuite/27_io/basic_istingstream/4.cc: Likewise.
1166         * testsuite/27_io/basic_ofstream/4.cc: Likewise.
1167         * testsuite/27_io/basic_ostream/4.cc: Likewise.
1168         * testsuite/27_io/basic_ostringstream/4.cc: Likewise.
1169         * testsuite/27_io/basic_stringbuf/5.cc: Likewise.
1170         * testsuite/27_io/basic_stringstream/4.cc: Likewise.
1171
1172 2004-01-04  Paolo Carlini  <pcarlini@suse.de>
1173
1174         * config/locale/generic/numeric_members.cc (_M_initialize_numpunct):
1175         Avoid unnecessarily zero terminating _M_atoms_out and _M_atoms_in;
1176         always use double underscored names.
1177         * config/locale/gnu/numeric_members.cc (_M_initialize_numpunct):
1178         Likewise.
1179         * include/bits/locale_facets.h (struct __numpunct_cache):
1180         Dimension _M_atoms_out and _M_atoms_in one position smaller.
1181         (__numpunct_cache<>::_M_cache): Don't zero terminate _M_atoms_out
1182         and _M_atoms_in.