OSDN Git Service

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