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