OSDN Git Service

Update comment to reflect test.
[pf3gnuchains/gcc-fork.git] / libstdc++-v3 / ChangeLog
1 2004-03-29  Loren J. Rittle  <ljrittle@acm.org>
2
3         * testsuite/thread/pthread7-rope.cc: Update comment to reflect test.
4
5 2004-03-29  Paolo Carlini  <pcarlini@suse.de>
6
7         * testsuite/thread/pthread7-rope.cc: Fix, unpredictably, depending
8         on allocator behavior, the memory pointed by data2 may well be not
9         trashed.
10
11 2004-03-28  Chavdar Botev  <cbotev@yahoo.com>
12
13         PR libstdc++/14245
14         * include/bits/basic_string.tcc
15         (basic_string::basic_string(const basic_string&)): Pass to
16         _Rep::_M_grab the actual allocator of the string being constructed
17         not the default constructed one.
18
19 2004-03-27  Benjamin Kosnik  <bkoz@redhat.com>
20
21         libstdc++ PR/13598
22         * config/locale/ieee_1003.1-2001/codecvt_specializations.h
23         (__enc_traits::_M_destroy): New.
24         (__enc_traits::~__enc_traits): Use it.
25         (__enc_traits::operator=): Use _M_destroy, _M_init.
26         (__enc_traits::__enc_traits): Same.
27
28 2004-03-27  Petur Runolfsson  <peturr02@ru.is>
29
30         * testsuite/ext/enc_filebuf/char/13598.cc: New.
31
32 2004-03-27  Paolo Carlini  <pcarlini@suse.de>
33
34         * include/ext/mt_allocator.h: Uglify consistently names of
35         variables, members and classes; tidy.
36
37 2004-03-27  Dhruv Matani  <dhruvbird@gmx.net>
38
39         * include/ext/mt_allocator.h (__mt_alloc<>::deallocate):
40         Deallocation loop rewrote.
41
42 2004-03-26  Paolo Carlini  <pcarlini@suse.de>
43
44         * include/ext/mt_allocator.h (__mt_alloc<>::allocate,
45         __mt_alloc<>::deallocate): Protect two instances of
46         block->thread_id with __GTHREADS.
47
48 2004-03-25  Gawain Bolton  <gp.bolton@computer.org>
49
50         * include/bits/stl_tree.h (_Rb_tree_impl): Add _Node_allocator
51         default argument in constructors.
52         (_Rb_tree::_M_empty_initialize): Remove.
53         
54 2004-03-25  Benjamin Kosnik  <bkoz@redhat.com>
55         
56         * testsuite/23_containers/map/operators/1_neg.cc: Adjust line numbers.
57         * testsuite/23_containers/set/operators/1_neg.cc: Same.
58
59 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
60
61         * include/bits/cpp_type_traits.h: Changed __is_pod
62         completely. Now, it does not use any of the previous type_traits
63         to detect the pod types, and it also detects function pointers as
64         POD types.
65
66         * include/bits/stl_tree.h: Introduced a new class _Rb_tree_impl,
67         which encapsulates the internal implementation of an rb_tree. Made
68         the allocator a base class of this class instead of the rb_tree,
69         which was not conforming. This _Rb_tree_impl class is also
70         specialized on whether the _Compare parameter is a POD type or
71         not. If so, then it maintains the comparison function as a data
72         member, otherwise it makes the _Compare parameter a base class of
73         itself. Also, _M_key_compare is now a function instead of a data
74         member, so that the above trick can work properly. Delegated the
75         initialization of the other data members to this newly created
76         class. Also, now other member functions of rb_tree must refer to
77         _M_key_compare as _M_impl._M_key_compare(). The other data members
78         (*) can be referenced to as _M_impl.(*), where
79         (*) includes _M_header, and _M_node_count.
80
81 2004-03-25  Paolo Carlini  <pcarlini@suse.de>
82
83         * include/ext/mt_allocator.h (__mt_alloc<>::tune):
84         Add _M_min_bin, the size in bytes of the smallest bin.
85         (__mt_alloc<>::tune()): Tweak accordingly.
86         (__mt_alloc<>::tune(size_t, ...)): Likewise.
87         (__mt_alloc<>::block_record): Change to a union: members next
88         and thread_id are never used at the same time.
89         (__mt_alloc<>::allocate): Update consistently.
90         (__mt_alloc<>::deallocate): Likewise.
91         (__mt_alloc<>::_S_initialize): Update setups of _S_binmap and
92         _S_bin_size for the configurable _M_min_size.
93
94 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
95
96         * include/bits/stl_list.h: Created a _List_impl class and made it
97         derive from the allocator, instead of the list deriving from the
98         allocator class, which was not conformant. Changed all references
99         from this->_M_node to this->_M_impl._M_node * bits/list.tcc: Same
100         as above (changed all references to the concerned variables).
101
102 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
103
104         * include/bits/stl_deque.h: Created a _Deque_impl class and made
105         it derive from the allocator, instead of the deque deriving from
106         the allocator class, which was not conformant. Changed all
107         references to the _M_start, _M_finish, _M_map, and _M_map_size to
108         _M_impl.*.
109         (_Deque_base<_Tp,_Alloc>::~_Deque_base()): Added this->
110         qualification in 2 places where it was missing.
111         (_Deque_base<_Tp,_Alloc>::_M_initialize_map(size_t)): Same as
112         above.
113         * include/bits/deque.tcc: Same as above (changed all references to
114         the concerned variables).
115
116 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
117
118         * include/bits/stl_vector.h: Created a _Vector_impl class and made
119         it derive from the allocator, instead of the _Vector_base class,
120         deriving from the allocator which was not conformant. Changed all
121         references to the _M_start, _M_finish, and _M_end_of_storage to
122         _M_impl.*.
123         * include/bits/vector.tcc: Same as above (changed all references
124         to the concerned variables).
125
126 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
127
128         * testsuite/23_containers/deque/cons/clear_allocator.cc: New.
129         * testsuite/23_containers/list/cons/clear_allocator.cc: New.
130         * testsuite/23_containers/vector/cons/clear_allocator.cc: New.
131         
132 2004-03-24  Dhruv Matani  <dhruvbird@gmx.net>
133
134         * include/ext/malloc_allocator.h: Fixed the construct function to
135         call global placement new instead of assignment. Added a check
136         after the return from malloc to check whether returned pointer is
137         NULL, and if so, throw std::bad_alloc().
138         * include/ext/debug_allocator.h: Added a check in the deallocate
139         function to check whether the user has passed a NULL pointer or
140         not.
141         
142 2004-03-24  Benjamin Kosnik  <bkoz@redhat.com>
143
144         * docs/html/20_util/allocator.html: Add bitmap_allocator links.
145
146 2004-03-24  Andreas Schwab  <schwab@suse.de>
147
148         * testsuite/lib/prune.exp (prune_g++_output): Ignore errata
149         warning from IA64 assembler.
150
151 2004-03-24  Dhruv Matani  <dhruvbird@gmx.net>
152         
153         * include/ext/bitmap_allocator.h: (_Bit_scan_forward) -> Made this
154         function call __builtin_ctz instead of the while loop.
155         (allocate) -> If condition has __builtin_expect.
156         (deallocate) -> Ditto.
157         Renamed a few left-over variables and typedefs according to the
158         C++STYLE mentioned in the documentation.
159         Protected calls to __gthread* by __gthread_active_p(), whose value
160         is cached in the local variable __threads_active.
161
162 2004-03-24  Felix Yen  <fwy@alumni.brown.edu>
163
164         * testsuite/performance/20_util/allocator/producer_consumer.cc:
165         Use linear algorithm for producer.
166         
167 2004-03-24  Paolo Carlini  <pcarlini@suse.de>
168
169         * include/ext/mt_allocator.h (__mt_alloc<>::allocate,
170         __mt_alloc<>::deallocate): Avoid redundant conditionals.
171
172 2004-03-23  Benjamin Kosnik  <bkoz@redhat.com>
173
174         * include/bits/locale_facets.h: Tweaks for 80 column.
175         (__numpunct_cache::_M_cache): Move to locale_facets.tcc.
176         (__moneypunct_cache::_M_cache): Same.
177         (num_get): Don't inherit from __num_base.
178         (num_put): Same.
179         (money_get): Don't inherit from money_base.
180         (money_put): Same.
181         (__timepunct::_M_am_pm_format): New.
182         (time_get::_M_extract_num): Return iterator, use ios_base as argument.
183         (time_get::_M_extract_name): Same.
184         (time_get::_M_extract_via_format): Same.
185         * include/bits/locale_facets.tcc: Tweaks for 80 column.
186         Use _M_getloc instead of getloc.
187         * testsuite/22_locale/money_put/put/char/9780-3.cc: New.
188         * testsuite/22_locale/num_put/put/char/9780-2.cc: New.
189         * testsuite/22_locale/time_put/put/char/9780-1.cc: New.
190
191 2004-03-22  Paolo Carlini  <pcarlini@suse.de>
192
193         * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Add pool_allocator.
194         * configure: Regenerate.
195         * config/allocator/pool_allocator_base.h: New.
196         * include/ext/pool_allocator.h: Convert to a standard-conforming
197         allocator.
198         * src/allocator.cc: Tweak instantiations.
199         * testsuite/performance/20_util/allocator/insert.cc: Add __pool_alloc.
200         * testsuite/performance/20_util/allocator/insert_insert.cc: Ditto.
201         * testsuite/performance/20_util/allocator/list_sort_search.cc: Ditto.
202         * testsuite/performance/20_util/allocator/map_mt_find.cc: Ditto.
203         * testsuite/performance/20_util/allocator/map_thread.cc: Ditto.
204         * testsuite/performance/20_util/allocator/producer_consumer.cc: Ditto.
205
206 2004-03-22  Hans-Peter Nilsson  <hp@axis.com>
207
208         * config/cpu/cris/atomicity.h (__atomic_add): Remove "static
209         inline" and attribute-unused.  Qualify parameter __mem with
210         "volatile".
211         (__exchange_and_add): Ditto.  Add back memory clobber to asm.
212
213 2004-03-20  Paolo Carlini  <pcarlini@suse.de>
214
215         * testsuite/27_io/basic_istream/extractors_arithmetic/char/2.cc:
216         Remove junk.
217         * testsuite/27_io/basic_istream/extractors_arithmetic/char/3.cc:
218         Likewise.
219         * testsuite/27_io/basic_istream/extractors_arithmetic/char/6.cc:
220         Likewise.
221         * testsuite/27_io/basic_istream/extractors_arithmetic/char/7.cc:
222         Likewise.
223         * testsuite/27_io/basic_istream/extractors_arithmetic/char/8.cc:
224         Likewise.
225         * testsuite/27_io/basic_istream/extractors_arithmetic/char/9.cc:
226         Likewise.
227         * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
228         Likewise.
229         * testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc:
230         Likewise.
231         * testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
232         Likewise.
233         * testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc:
234         Likewise.       
235
236 2004-03-20  Paolo Carlini  <pcarlini@suse.de>
237
238         * include/std/std_valarray.h: Document DR389 [Ready].
239         * docs/html/ext/howto.html: Add an entry for DR389.
240
241 2004-03-19  Michael Eager  <eager@mvista.com>
242
243         * config/cpu/mips/atomicity.h:  Prevent reg loads between LL and
244         SC instructions.
245
246 2004-03-19  Paolo Carlini  <pcarlini@suse.de>
247
248         * testsuite/22_locale/num_get/get/char/11.cc: Remove redundant
249         static_cast-s.
250         * testsuite/22_locale/num_get/get/char/12.cc: Likewise.
251         * testsuite/22_locale/num_get/get/char/13.cc: Likewise.
252         * testsuite/22_locale/num_get/get/char/14.cc: Likewise.
253         * testsuite/22_locale/num_get/get/char/15.cc: Likewise.
254         * testsuite/22_locale/num_get/get/wchar_t/11.cc: Likewise.
255         * testsuite/22_locale/num_get/get/wchar_t/12.cc: Likewise.
256         * testsuite/22_locale/num_get/get/wchar_t/13.cc: Likewise.
257         * testsuite/22_locale/num_get/get/wchar_t/14.cc: Likewise.
258         * testsuite/22_locale/num_get/get/wchar_t/15.cc: Likewise.
259
260 2004-03-19  Paolo Carlini  <pcarlini@suse.de>
261             Petur Runolfsson  <peturr02@ru.is>
262
263         PR libstdc++/12077
264         * include/ext/stdio_sync_filebuf.h (showmanyc): Remove, there's
265         no way to find out the conversion used by the underlying FILE*.
266         * testsuite/ext/stdio_sync_filebuf/wchar_t/12077.cc: New.
267         * testsuite/27_io/objects/char/9.cc: Tweak.
268
269 2004-03-19  Paolo Carlini  <pcarlini@suse.de>
270
271         PR libstdc++/14648
272         * include/ext/ropeimpl.h (rope<>::_S_apply_to_pieces): Fix
273         memory allocation/deallocation calls.
274         * testsuite/ext/14648.cc: New.
275
276 2004-03-19  Peter Schmid  <schmid@snake.iap.physik.tu-darmstadt.de>
277
278         PR libstdc++/14647
279         * include/backward/bvector.h (bit_vector): Allocator is in std
280         namespace.
281
282 2004-03-19  Phil Edwards  <phil@codesourcery.com>
283
284         * acinclude.m4 (GLIBCXX_CHECK_WCHAR_T_SUPPORT):  Set LIBICONV,
285         not libiconv.  SUBST this variable as well.
286         * testsuite/Makefile.am (site.exp):  New target, based on that
287         created by automake.  Also set libiconv.
288
289         * configure, Makefile.in, include/Makefile.in, libmath/Makefile.in,
290         libsupc++/Makefile.in, po/Makefile.in, src/Makefile.in,
291         testsuite/Makefile.in:  Regenerate.
292
293 2004-03-16  Benjamin Kosnik  <bkoz@redhat.com>
294
295         * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Default setting is
296         new_allocator for all hosts.
297         * configure: Regenerate.
298         
299 2004-03-16  Paolo Carlini  <pcarlini@suse.de>
300
301         * testsuite/22_locale/num_put/put/char/4.cc: Fix for 64-bit pointers.
302         * testsuite/22_locale/num_put/put/wchar_t/4.cc: Likewise.
303         
304 2004-03-15  Paolo Carlini  <pcarlini@suse.de>
305
306         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
307         Adjust the logic underlying the parsing of symbol to deal
308         correctly with an optional sign component (i.e., when either
309         negative_sign or positive_sign is empty) 
310         * testsuite/22_locale/money_get/get/char/19.cc: New.
311         * testsuite/22_locale/money_get/get/wchar_t/19.cc: New.
312
313 2004-03-15  Paolo Carlini  <pcarlini@suse.de>
314
315         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
316         Do not accept an incomplete currency symbol.
317         * testsuite/22_locale/money_get/get/char/18.cc: New.
318         * testsuite/22_locale/money_get/get/wchar_t/18.cc: New.
319
320 2004-03-13  Benjamin Kosnik  <bkoz@redhat.com>
321
322         * config/allocator: New.
323         * config/allocator/bitmap_allocator_base.h: New.
324         * config/allocator/malloc_allocator_base.h: New.
325         * config/allocator/mt_allocator_base.h: New.
326         * config/allocator/new_allocator_base.h: New.
327         * include/bits/allocator.h: Include c++allocator.h.
328         * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): New.
329         * aclocal.m4: Regenerate.
330         * configure.ac: Use GLIBCXX_ENABLE_ALLOCATOR. 
331         * configure: Regenerate.
332         * include/Makefile.am (host_headers_extra): Add c++allocator.h.
333         * include/Makefile.in: Regenerate.
334         * docs/html/configopts.html: Add enable-libstdcxx-allocator.
335
336 2004-03-12  Benjamin Kosnik  <bkoz@redhat.com>
337
338         * include/bits/allocator.h: Revert.
339
340 2004-03-12  Paolo Carlini  <pcarlini@suse.de>
341
342         * docs/html/ext/howto.html: Add entry for DR 253 [Ready].
343         * include/bits/gslice_array.h: Add comment about DR 253.
344         * include/bits/indirect_array.h: Likewise.
345         * include/bits/mask_array.h: Likewise.
346         * include/bits/slice_array.h: Likewise.
347
348 2004-03-12  Benjamin Kosnik  <bkoz@redhat.com>
349
350         * testsuite/20_util/allocator/14176.cc: New.
351         * include/ext/mt_allocator.h: Formatting fixes.
352         
353 2004-03-11  Dhruv Matani  <dhruvbird@HotPOP.com>
354
355         * include/Makefile.am (ext_headers): Add
356         ${ext_srcdir}/bitmap_allocator.h .
357         * include/Makefile.in: Regenerate.
358         * docs/html/ext/ballocator_doc.txt: New file.
359         * include/ext/bitmap_allocator.h: New file.
360         * testsuite/performance/20_util/allocator/list_sort_search.cc: Add 
361         test.
362         * testsuite/performance/20_util/allocator/map_mt_find.cc: Likewise.
363         * testsuite/performance/20_util/allocator/producer_consumer.cc: Add
364         test for the bitmap_allocator<>.
365         * testsuite/performance/20_util/allocator/insert.cc: Likewise.
366         * testsuite/performance/20_util/allocator/insert_insert.cc: Likewise.
367         * testsuite/performance/20_util/allocator/map_thread.cc: Likewise.
368
369 2004-03-11  Paolo Carlini  <pcarlini@suse.de>
370
371         * include/std/std_complex.h (pow(const complex&, const _Tp&),
372         pow(const _Tp&, const complex&), pow(const complex&,
373         const complex&)): Fully qualify with std:: a few calls.
374         * testsuite/26_numerics/complex/13450.cc: Minor tweak.
375
376 2004-03-11  Steven Bosscher  <stevenb@suse.de>
377
378         PR libstdc++/11706
379         * include/c_std/cmath.tcc (__cmath_power): Define inline.
380
381 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
382
383         * configure.ac: Bump AC_PREREQ to 2.59.
384
385 2004-03-10  Paolo Carlini  <pcarlini@suse.de>
386
387         * testsuite/26_numerics/valarray_subset_assignment.cc: Fix typos.
388
389 2004-03-10  Paul Kienzle  <pkienzle@nist.gov>
390             Paolo Carlini  <pcarlini@suse.de>
391
392         PR libstdc++/13450
393         * include/std/std_complex.h (pow(const complex&, const _Tp&),
394         pow(const _Tp&, const complex&)): Use cmath pow only when safe.
395         * testsuite/26_numerics/complex/13450.cc: New.
396
397         * testsuite/26_numerics/cmath/overloads.C: Rename to overloads.cc.
398         * testsuite/26_numerics/complex/pow.C: Rename to pow.cc and fix.
399
400 2004-03-10  Jerry Quinn  <jlquinn@optonline.net>
401
402         PR libstdc++/3247
403         * include/bits/gslice_array.h (gslice_array()): Make public.
404         (operator=(gslice_array)): Make public.  Implement.
405         * include/bits/indirect_array.h (indirect_array()): Make public.
406         * include/bits/mask_array.h (mask_array()): Make public.
407         (operator=(mask_array)): Make public.  Implement.
408         * include/bits/valarray_array.tcc (__valarray_copy):
409         Comment.  Add versions for gslice_array and mask_array.
410         * testsuite/26_numerics/valarray_subset_assignment.cc:  New test.
411
412 2004-03-09  Benjamin Kosnik  <bkoz@redhat.com>
413
414         * testsuite/23_containers/deque/modifiers/swap.cc: Add in bits for
415         non-weak systems.
416         * testsuite/23_containers/vector/modifiers/swap.cc: Same.
417         * testsuite/23_containers/set/modifiers/swap.cc: Same.
418         * testsuite/23_containers/multiset/modifiers/swap.cc: Same.
419         * testsuite/23_containers/multimap/modifiers/swap.cc: Same.
420         * testsuite/23_containers/map/modifiers/swap.cc: Same.
421         * testsuite/23_containers/list/modifiers/swap.cc: Same.
422
423         * testsuite/22_locale/locale/cons/12658_thread.cc: Catch exceptions.
424
425 2004-03-08  Benjamin Kosnik  <bkoz@redhat.com>
426         
427         PR c++/13658
428         * testsuite/23_containers/deque/modifiers/swap.cc: New.
429         * testsuite/23_containers/list/modifiers/swap.cc: New.
430         * testsuite/23_containers/map/modifiers/swap.cc: New.
431         * testsuite/23_containers/multimap/modifiers/swap.cc: New.
432         * testsuite/23_containers/multiset/modifiers/swap.cc: New.
433         * testsuite/23_containers/set/modifiers/swap.cc: New.
434         * testsuite/23_containers/vector/modifiers/swap.cc: New.
435         
436 2004-03-08  Petur Runolfsson  <peturr02@ru.is>
437
438         PR libstdc++/12658
439         * testsuite/22_locale/locale/cons/12658_thread.cc: New.
440
441 2004-03-08  Paolo Carlini  <pcarlini@suse.de>
442
443         * docs/html/ext/howto.html: Add entry for DR 103 [WP].
444         * include/bits/stl_multiset.h: Add comment about DR 103.
445         * include/bits/stl_set.h: Likewise.
446
447 2004-03-08  Paolo Carlini  <pcarlini@suse.de>
448
449         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
450         The value _space_ indicates that at least one space is required
451         at that position.
452         * testsuite/22_locale/money_get/get/char/17.cc: New.
453         * testsuite/22_locale/money_get/get/wchar_t/17.cc: New.
454
455         * testsuite/22_locale/money_get/get/char/7.cc: Minor tweaks.
456         * testsuite/22_locale/money_get/get/wchar_t/7.cc: Likewise.
457
458         * include/bits/locale_facets.tcc (money_get<>::do_get(long_double&)):
459         Remove redundant conditional on __str.size().
460         
461 2004-03-08  Benjamin Kosnik  <bkoz@redhat.com>
462
463         * include/bits/allocator.h: Switch defaults to mt_alloc.
464
465 2004-03-06  Benjamin Kosnik  <bkoz@redhat.com>
466
467         * include/ext/mt_allocator.h (_S_initialize): If
468         !__GTHREAD_MUTEX_INIT, then initialize _S_thread_freelist_mutex.
469
470 2004-03-06  Benjamin Kosnik  <bkoz@redhat.com>
471
472         PR libstdc++/12658
473         * src/locale_init.cc (locale::locale): Lock critical regions with
474         external mutexes.
475         (locale::global): Same. 
476         * include/bits/concurrence.h (__glibcxx_mutex_define_initialized): 
477         Add in once bits for cases without __GTHREAD_MUTEX_INIT.
478         (__glibcxx_mutex_lock): Same.
479
480         * config/cpu/generic/atomicity.h: Remove
481         _GLIBCXX_NEED_GENERIC_MUTEX, use concurrence.h.
482         * src/misc-inst.cc: Move all locking bits out of this file.
483
484         * config/os/hpux/os_defines.h: Remove _GLIBCXX_INST_ATOMICITY_LOCK.
485         * src/misc-inst.cc: Same.
486         * config/cpu/hppa/atomicity.h: Same.
487
488         * config/linker-map.gnu: Remove types in the signature of atomic
489         exports, as they may vary.
490         
491 2004-03-06  Paolo Carlini  <pcarlini@suse.de>
492
493         * include/bits/locale_facets.tcc: Tweak the comment preceding
494         has_facet: doesn't throw.
495
496 2004-03-06  Paolo Carlini  <pcarlini@suse.de>
497
498         * testsuite/22_locale/money_get/get/char/1.cc: Clean up.
499         * testsuite/22_locale/money_get/get/char/2.cc: Likewise.
500         * testsuite/22_locale/money_get/get/char/3.cc: Likewise.
501         * testsuite/22_locale/money_get/get/char/4.cc: Likewise.
502         * testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise.
503         * testsuite/22_locale/money_get/get/wchar_t/2.cc: Likewise.
504         * testsuite/22_locale/money_get/get/wchar_t/3.cc: Likewise.
505         * testsuite/22_locale/money_get/get/wchar_t/4.cc: Likewise.
506
507 2004-03-06  Paolo Carlini  <pcarlini@suse.de>
508
509         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
510         num_get<>::_M_extract_int, num_get<>::do_get(bool&),
511         __pad<>::_S_pad): Prefer plain operator== to traits::eq().
512         * testsuite/testsuite_character.h (struct __gnu_test::character):
513         Provide operator==.
514         * testsuite/testsuite_hooks.h (struct __gnu_test::pod_char):
515         Likewise.
516
517 2004-03-05  Paolo Carlini  <pcarlini@suse.de>
518
519         * testsuite/27_io/fpos/14320-2.cc: Remove xfail.
520
521 2004-03-04  Benjamin Kosnik  <bkoz@redhat.com>
522
523         * testsuite/23_containers/multiset/insert/1.cc: Test result string.
524
525         * testsuite/23_containers/bitset/invalidation/1.cc: Main always
526         returns 0.      
527         * testsuite/23_containers/deque/invalidation/4.cc: Same.
528         * testsuite/23_containers/list/invalidation/1.cc: Same.
529         * testsuite/23_containers/list/invalidation/2.cc: Same.
530         * testsuite/23_containers/list/invalidation/3.cc: Same.
531         * testsuite/23_containers/list/invalidation/4.cc: Same.
532         * testsuite/23_containers/map/invalidation/2.cc: Same.
533         * testsuite/23_containers/multimap/invalidation/1.cc: Same.
534         * testsuite/23_containers/multimap/invalidation/2.cc: Same.
535         * testsuite/23_containers/multiset/invalidation/1.cc: Same.
536         * testsuite/23_containers/multiset/invalidation/2.cc: Same.
537         * testsuite/23_containers/set/invalidation/1.cc: Same.
538         * testsuite/23_containers/set/invalidation/2.cc: Same.
539         * testsuite/23_containers/vector/invalidation/1.cc: Same.
540         * testsuite/23_containers/vector/invalidation/2.cc: Same.
541         * testsuite/23_containers/vector/invalidation/3.cc: Same.
542         * testsuite/23_containers/vector/invalidation/4.cc: Same.
543
544 2004-03-04  Paolo Carlini  <pcarlini@suse.de>
545
546         * scripts/testsuite_flags.in: Add "-D_GLIBCXX_ASSERT" to
547         CXXFLAGS_save.
548         * testsuite/lib/libstdc++.exp: Don't add it conditionally to
549         DEFAULT_CXXFLAGS. 
550         * testsuite/18_support/numeric_limits.cc: Remove "-D_GLIBCXX_ASSERT"
551         from the dg-options.
552         * testsuite/23_containers/vector/invalidation/1.cc: Likewise.
553         * testsuite/23_containers/vector/invalidation/2.cc: Likewise.
554         * testsuite/23_containers/vector/invalidation/3.cc: Likewise.
555         * testsuite/23_containers/vector/invalidation/4.cc: Likewise.
556         * testsuite/23_containers/vector/resize/1.cc: Likewise.
557         * testsuite/26_numerics/complex_value.cc: Likewise.
558         * testsuite/27_io/ios_base/storage/1.cc: Likewise.
559         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
560         * testsuite/27_io/ios_base/storage/3.cc: Likewise.
561         * testsuite/27_io/manipulators/standard/char/2.cc: Likewise.
562         * testsuite/27_io/objects/char/5.cc: Likewise.
563         * testsuite/27_io/objects/wchar_t/5.cc: Likewise.
564         * testsuite/backward/11460.cc: Likewise.
565         * testsuite/thread/pthread7-rope.cc: Likewise.
566
567         * testsuite/21_strings/basic_string/compare/char/1.cc: Add
568         missing test variable.
569         * testsuite/21_strings/basic_string/compare/wchar_t/1.cc: Add
570         missing test variable.
571
572 2004-03-04  Benjamin Kosnik  <bkoz@redhat.com>
573
574         * testsuite/20_util/allocator/1.cc: Provide explicit
575         instantiations for non-weak systems.
576         * testsuite/20_util/binders.cc: Same.
577         * testsuite/20_util/allocator/8230.cc: Same.
578         * testsuite/20_util/allocator/10378.cc: Same.
579         * testsuite/22_locale/ctype/is/wchar_t/2.cc: Same.
580         * testsuite/22_locale/ctype/is/char/2.cc: Same.
581         * testsuite/thread/pthread7-rope.cc: Same.
582         * testsuite/thread/pthread6.cc: Same.   
583         * testsuite/thread/pthread5.cc: Same.           
584         * testsuite/thread/pthread4.cc: Same.   
585         * testsuite/thread/pthread1.cc: Same.
586         * testsuite/ext/rope.cc: Same.
587         * testsuite/ext/hash_set.cc: Same.
588         * testsuite/ext/hash_map.cc: Same.      
589         * testsuite/ext/concept_checks.cc: Same.
590         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc: Same.
591         * testsuite/25_algorithms/unique/2.cc: Same.
592         * testsuite/25_algorithms/unique/1.cc: Same.
593         * testsuite/25_algorithms/rotate.cc: Same.
594         * testsuite/25_algorithms/min_max.cc: Same.
595         * testsuite/25_algorithms/equal.cc: Same.       
596         * testsuite/24_iterators/rel_ops.cc: Same.
597         * testsuite/24_iterators/iterator.cc: Same.
598         * testsuite/24_iterators/insert_iterator.cc: Same.
599         * testsuite/24_iterators/front_insert_iterator.cc: Same.
600         * testsuite/24_iterators/back_insert_iterator.cc: Same.
601         * testsuite/23_containers/vector/resize/1.cc: Same.
602         * testsuite/23_containers/vector/modifiers/2.cc: Same.
603         * testsuite/23_containers/vector/modifiers/1.cc: Same.
604         * testsuite/23_containers/vector/invalidation/4.cc: Same.
605         * testsuite/23_containers/vector/invalidation/3.cc: Same.
606         * testsuite/23_containers/vector/invalidation/2.cc: Same.       
607         * testsuite/23_containers/vector/invalidation/1.cc: Same.
608         * testsuite/23_containers/vector/element_access/1.cc: Same.
609         * testsuite/23_containers/vector/cons/6513.cc: Same.
610         * testsuite/23_containers/vector/cons/3.cc: Same.
611         * testsuite/23_containers/vector/cons/2.cc: Same.
612         * testsuite/23_containers/vector/cons/1.cc: Same.
613         * testsuite/23_containers/vector/capacity/8230.cc: Same.
614         * testsuite/23_containers/vector/capacity/1.cc: Same.
615         * testsuite/23_containers/vector/bool/6886.cc: Same.
616         * testsuite/23_containers/stack/members/7158.cc: Same.
617         * testsuite/23_containers/set/invalidation/2.cc: Same.
618         * testsuite/23_containers/set/invalidation/1.cc: Same.
619         * testsuite/23_containers/queue/members/7157.cc: Same.
620         * testsuite/23_containers/priority_queue/members/7161.cc: Same.
621         * testsuite/23_containers/multiset/invalidation/2.cc: Same.
622         * testsuite/23_containers/multiset/invalidation/2.cc: Same.     
623         * testsuite/23_containers/multiset/insert/1.cc: Same.
624         * testsuite/23_containers/multimap/invalidation/2.cc: Same.
625         * testsuite/23_containers/multimap/invalidation/2.cc: Same.
626         * testsuite/23_containers/map/operators/1.cc: Same.
627         * testsuite/23_containers/map/invalidation/2.cc: Same.
628         * testsuite/23_containers/map/invalidation/1.cc: Same.
629         * testsuite/23_containers/map/insert/1.cc: Same.
630         * testsuite/23_containers/list/operators/4.cc: Same.
631         * testsuite/23_containers/list/operators/3.cc: Same.
632         * testsuite/23_containers/list/operators/2.cc: Same.
633         * testsuite/23_containers/list/operators/1.cc: Same.
634         * testsuite/23_containers/list/modifiers/3.cc: Same.
635         * testsuite/23_containers/list/modifiers/2.cc: Same.
636         * testsuite/23_containers/list/modifiers/1.cc: Same.
637         * testsuite/23_containers/list/invalidation/4.cc: Same.
638         * testsuite/23_containers/list/invalidation/3.cc: Same.
639         * testsuite/23_containers/list/invalidation/2.cc: Same.
640         * testsuite/23_containers/list/invalidation/1.cc: Same. 
641         * testsuite/23_containers/list/cons/9.cc: Same.
642         * testsuite/23_containers/list/cons/8.cc: Same.
643         * testsuite/23_containers/list/cons/7.cc: Same.
644         * testsuite/23_containers/list/cons/6.cc: Same.
645         * testsuite/23_containers/list/cons/5.cc: Same.
646         * testsuite/23_containers/list/cons/4.cc: Same.
647         * testsuite/23_containers/list/cons/3.cc: Same.
648         * testsuite/23_containers/list/cons/2.cc: Same.
649         * testsuite/23_containers/list/cons/1.cc: Same.
650         * testsuite/23_containers/list/capacity/1.cc: Same.
651         * testsuite/23_containers/deque/operators/1.cc: Same.
652         * testsuite/23_containers/deque/invalidation/4.cc: Same.
653         * testsuite/23_containers/deque/invalidation/3.cc: Same.
654         * testsuite/23_containers/deque/invalidation/2.cc: Same.
655         * testsuite/23_containers/deque/invalidation/1.cc: Same.
656         * testsuite/23_containers/deque/cons/2.cc: Same.
657         * testsuite/23_containers/deque/cons/1.cc: Same.
658
659         * src/allocator.cc: Add char, wchar_t instantiations
660         to match extern template declarations in memory.h.
661
662 2004-03-03  Paolo Carlini  <pcarlini@suse.de>
663
664         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
665         Fix warning regression.
666
667 2004-03-03  Paolo Carlini  <pcarlini@suse.de>
668
669         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
670         Deal properly with empty __digits and negative frac_digits,
671         clean-up a bit.
672
673 2004-03-03  Jonathan Wakely  <redi@gcc.gnu.org>
674
675         * docs/html/documentation.html: Regenerate.
676
677 2004-03-02  Paolo Carlini  <pcarlini@suse.de>
678
679         PR libstdc++/14320
680         * include/bits/postypes.h (class streamoff): Remove, now
681         streamoff is just typedef a 64 bit signed integer type.
682         (class fpos): Tweak consistently.
683         * testsuite/27_io/fpos/14320-1.cc: New.
684         * testsuite/27_io/fpos/14320-2.cc: New.
685         * testsuite/27_io/fpos/14320-3.cc: New.
686         * testsuite/27_io/fpos/14320-4.cc: New.
687         * testsuite/27_io/fpos/14320-5.cc: New.
688         * testsuite/27_io/fpos/mbstate_t/4_neg.cc: xfail for now.
689
690 2004-03-02  Paolo Carlini  <pcarlini@suse.de>
691
692         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
693         Reorganize a bit the main parsing loop, thus early detecting
694         an empty value component.
695         * testsuite/22_locale/money_get/get/char/16.cc: New.
696         * testsuite/22_locale/money_get/get/wchar_t/16.cc: New.
697
698 2004-03-02  Benjamin Kosnik  <bkoz@redhat.com>
699
700         Support automake 1.8.2
701         * configure.ac (AM_INIT_AUTOMAKE): Add -Wno-override.
702         * po/Makefile.am (EXTRA_DIST): New.
703         * po/Makefile.in: Regenerate.
704         * Makefile.in: Same.
705         * include/Makefile.in: Same.
706         * libmath/Makefile.in: Same.
707         * libsupc++/Makefile.in: Same.
708         * src/Makefile.in: Same.
709         * testsuite/Makefile.in: Same.
710
711         * include/Makefile.am (${host_builddir}/gthr-posix.h): Use
712         __GXX_WEAK__ instead of SUPPORTS_WEAK.
713         (${host_builddir}/gthr-default.h): Same.
714         (${host_builddir}/gthr.h): Same.
715         * acinclude.m4 (GLIBCXX_ENABLE_THREAD): Remove
716         _GLIBCXX_SUPPORTS_WEAK, as this behavior can be modified via
717         -fno-weak.
718         * aclocal.m4: Regenerate.
719         * acconfig.h: Remove _GLIBCXX_SUPPORTS_WEAK.
720         * config.h.in: Regenerate.
721         * configure: Same.
722         
723 2004-03-01  Benjamin Kosnik  <bkoz@redhat.com>
724
725         Support autoconf 2.59
726         * acinclude.m4: Quote correctly.
727         * aclocal.m4: Regenerate.
728         * linkage.m4: Same.
729
730 2004-03-01  Benjamin Kosnik  <bkoz@redhat.com>
731
732         * docs/html/test.html: Add multilib RUNTESTFLAGS example.
733
734         * docs/html/18_support/howto.html: Add bit about writing to
735         stderr, mostly by Zack.
736         
737 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
738
739         * include/bits/locale_facets.tcc (money_get<>::_M_extract,
740         money_get<>::do_get(string_type&)): ... and two more.
741
742 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
743
744         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
745         Fix thinkos in the switch from string_type& to string& as last
746         argument.
747
748 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
749
750         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float):
751         Also when parsing exponent sign, first look for thousands_sep
752         and decimal_point; tweak a bit.
753         * testsuite/22_locale/num_get/get/char/15.cc: New.
754         * testsuite/22_locale/num_get/get/wchar_t/15.cc: New.
755         
756         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
757         num_get<>::_M_extract_int): Reorder some conditionals.
758
759 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
760
761         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
762         Consistently with numpunct, enforce the requirements in
763         22.2.6.3, p3 for the thousands separators; tweak a bit.
764         * testsuite/22_locale/money_get/get/char/15.cc: New.
765         * testsuite/22_locale/money_get/get/wchar_t/15.cc: New.
766         
767 2004-03-01  David Billinghurst <David.Billinghurst@riotinto.com>
768
769         * testsuite/lib/libstdc++.exp (v3-list-tests): Use 
770         testsuite_files from correct multilib blddir when running
771         testsuite.
772
773 2004-02-29  Phil Edwards  <phil@codesourcery.com>
774
775         * testsuite/Makefile.am (check-abi, check-abi-verbose):  Copy
776         the summary file to the logfile.
777         * testsuite/Makefile.in:  Regenerate.
778
779 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
780
781         * config/cpu/hppa/atomicity.h (__atomic_add): Make first argument
782         volatile.
783         * config/os/hpux/os_defines.h (_GLIBCXX_INST_ATOMICITY_LOCK): Use
784         __GXX_WEAK__ instead of _GLIBCXX_SUPPORTS_WEAK.
785
786 2004-02-28  Paolo Carlini  <pcarlini@suse.de>
787
788         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float):
789         According to 22.2.3.1, p2, 'units' may be followed by 'e' with
790         no 'decimal-point' in the middle: in this case too we must fix
791         up __found_grouping; slightly tweak.
792         * testsuite/22_locale/num_get/get/char/14.cc: New.
793         * testsuite/22_locale/num_get/get/wchar_t/14.cc: New.
794
795 2004-02-27  Eric Christopher  <echristo@redhat.com>
796             Phil Edwards  <phil@codesourcery.com>
797
798         * testsuite/22_locale/collate/compare/wchar_t/2.cc,
799         testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc,
800         testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc,
801         testsuite/22_locale/collate/hash/wchar_t/2.cc,
802         testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc,
803         testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc,
804         testsuite/22_locale/collate/transform/wchar_t/2.cc,
805         testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc,
806         testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc:
807         Use dg-require-iconv.
808         * testsuite/lib/libstdc++.exp:  Load target-supports.exp.
809
810 2004-02-27  Phil Edwards  <phil@codesourcery.com>
811             Eric Christopher  <echristo@redhat.com>
812
813         * testsuite/config/default.exp:  Update with comments.
814         (${tool}_target_compile):  New wrapper routine.
815         * testsuite/lib/dg-options.exp:  New file, with dg-require-iconv.
816         * testsuite/lib/libstdc++.exp:  Update with comments and cosmetic
817         fixes.
818         (load_gcc_lib, v3track):  New routines.
819         (v3-init):  Rename to libstdc++_init.
820         * testsuite/libstdc++-dg/normal.exp:  No longer call v3-init.
821         Move DEFAULT_CXXFLAGS handling into libstdc++_init.
822
823 2004-02-27  Benjamin Kosnik  <bkoz@redhat.com>
824
825         * config/cpu/hppa/atomicity.h: Include c++config.h to get defines.
826
827         * src/misc-inst.cc (_S_atomicity_lock): Move to __gnu_cxx.
828
829         * config/os/irix/irix5.2/atomicity.h: Merge..
830         * config/os/irix/irix6.5/atomicity.h: Merge..
831         * config/os/irix/atomicity.h: ...into this.
832         * config/os/irix/atomic_word.h: New.
833         * configure.host: Set atomic_word_dir for irix.
834
835         * hppa/atomicity.h: Change __Atomicity_lock to _Atomicity_lock.
836         * i386/atomicity.h: Same.
837         * m68k/atomicity.h: Same.
838         * sparc/atomicity.h: Same.
839
840 2004-02-27  David Edelsohn  <edelsohn@gnu.org>
841
842         * config/os/aix/atomicity.h: Use __gnu_cxx namespace. Remove
843         static, and inline keywords.
844
845 2004-02-27  Paolo Carlini  <pcarlini@suse.de>
846
847         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
848         num_get<>::_M_extract_int, money_get<>::_M_extract): If appropriate,
849         call reserve on the __tmp_gruping string.
850         (num_get<>::_M_extract_float): Don't append unnecessarily a
851         char() to the returned string.
852         * include/bits/locale_facets.tcc: Trivial reformattings.
853
854 2004-02-27  Paolo Carlini  <pcarlini@suse.de>
855
856         * include/bits/locale_facets.h (money_get<>::_M_extract):
857         Change signature: now takes a plain string&.
858         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
859         Update consistently the definition; use the moneypunct cache
860         to parse the value; use swap to change __units.
861         (money_get<>::do_get(long double&)): Update call of _M_extract,
862         avoid ctype::narrow, not correct wrt the standard.
863         (money_get<>::do_get(string_type&)): Likewise, update call
864         of _M_extract, use ctype::widen.
865         * src/locale-inst.cc: Tweak instantiations of _M_extract.
866
867 2004-02-26  Ian Lance Taylor  <ian@wasabisystems.com>
868
869         * testsuite/demangle/abi_examples/01.cc: Expect error -2.
870         * testsuite/demangle/abi_examples/02.cc: Likewise.
871         * testsuite/demangle/regression/cw-11.cc: Likewise.
872         * testsuite/demangle/regression/cw-16.cc: Change two expected
873         results to match libiberty demangler output.
874
875 2004-02-26  Benjamin Kosnik  <bkoz@redhat.com>
876
877         PR libstdc++/10246
878         * libsupc++/Makefile.am: Use libiberty demangler.
879         (c_sources): Add cp-demangle.c.
880         * libsupc++/Makefile.in: Regenerate.
881         * src/Makefile.am (sources): Remove demangle.cc.
882         * src/Makefile.in: Regenerate.
883         * include/Makefile.am (bits_headers): Move demangle.h.
884         (ext_headers): ...here.
885         * include/Makefile.in: Regenerate.
886         * include/bits/demangle.h: Move...
887         * include/ext/demangle.h: ...here.
888         * src/demangle.cc: Remove.
889
890 2004-02-26  Benjamin Kosnik  <bkoz@redhat.com>
891  
892         * include/bits/demangle.h: Add type template parameter to all
893         templates with just an Allocator template parameter.
894  
895 2004-02-25  Benjamin Kosnik  <bkoz@redhat.com>
896
897         * include/bits/atomicity.h: New, forward declarations for __atomic_add
898         and __exchange_and_add.
899         * config/cpu/generic/atomic_word.h: New, typdef for atomic word.
900         * config/cpu/cris/atomic_word.h: Same.
901         * config/cpu/sparc/atomic_word.h: Same.
902         * include/bits/ios_base.h (_Callback_list::_M_remove_reference):
903         Qualifiy with __gnu_cxx.
904         (_Callback_list::_M_add_reference): Same.
905         * include/bits/locale_classes.h (locale::facet::_M_add_reference): Add.
906         (locale::facet::_M_remove_reference): Same.
907         (locale::_Impl::_M_add_reference): Add.
908         (locale::_Impl::_M_remove_reference): Same.
909         * include/bits/basic_string.h (basic_string::_Rep::_M_refcopy): Same.
910         (basic_string::_Rep::_M_dispose): Same.
911         * src/ios.cc (ios_base::xalloc): Same.
912         * src/ios_init.cc (ios_base::Init::Init): Same.
913         (ios_base::Init::~Init): Same.
914         * src/locale.cc (locale::id::_M_id): Same.
915         * config/cpu/i486/atomicity.h: Use __gnu_cxx namespace. Remove
916         static, and inline keywords.
917         * config/cpu/alpha/atomicity.h: Same.
918         * config/cpu/cris/atomicity.h: Same.
919         * config/cpu/generic/atomicity.h: Same.
920         * config/cpu/hppa/atomicity.h: Same.
921         * config/cpu/i386/atomicity.h: Same.
922         * config/cpu/ia64/atomicity.h: Same.
923         * config/cpu/m68k/atomicity.h: Same.
924         * config/cpu/mips/atomicity.h: Same.
925         * config/cpu/powerpc/atomicity.h: Same.
926         * config/cpu/s390/atomicity.h: Same.
927         * config/cpu/sparc/atomicity.h: Same.
928         
929         * src/Makefile.am (host_sources): Add atomicity.cc.
930         (atomicity.cc): New rule.
931         * src/Makefile.in: Regenerate.
932         * include/Makefile.am (host_headers): Remove host atomicity.h.
933         (host_headers): Add atomic_word.h.
934         (bits_headers): Add bits atomicity.h.
935         Change ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR.
936         * include/Makefile.in: Regenerate.
937         * configure.host (atomic_word_dir): Add.
938         * configure.ac: Substitute ATOMIC_WORD_SRCDIR. Change
939         ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR.
940         * configure: Regenerate.
941         * config/linker-map.gnu: Export __exchange_and_add, and __atomic_add.
942
943         * testsuite/27_io/ios_base/cons/assign_neg.cc: Adjust line numbers.
944         * testsuite/27_io/ios_base/cons/copy_neg.cc: Same.      
945         
946 2004-02-25  Jonathan Wakely  <redi@gcc.gnu.org>
947
948         * docs/html/20_util/howto.html, docs/html/20_util/allocator.html,
949         docs/html/ext/howto.html, docs/html/ext/mt_allocator.html:
950         Fix markup, more <link> tags.
951
952 2004-02-25  Carlo Wood  <carlo@alinoe.com>
953
954         * bits/demangle.h
955         namespace __gnu_cxx::demangler
956         (session<Allocator>::qualifier_list_Allocator): Add
957         (session<Allocator>::M_qualifier_list_alloc): Add
958         (session<Allocator>::decode_type_with_postfix):
959         Use M_qualifier_list_alloc instead of calling operator new/delete.
960
961 2004-02-24  Paolo Carlini  <pcarlini@suse.de>
962
963         PR libstdc++/14252
964         * include/bits/postypes.h (class streamoff): Add operator++(),
965         operator++(int), operator--() and operator--(int).
966         * testsuite/27_io/fpos/14252.cc: New.
967
968 2004-02-24  Richard Sandiford  <rsandifo@redhat.com>
969
970         * include/bits/locale_facets.tcc (num_get::_M_extract_int): Fix bounds
971         error in handling of hex constants.
972
973 2004-02-24  Paolo Carlini  <pcarlini@suse.de>
974
975         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
976         Prefer basic_string::append to operator+= and a temporary.
977
978 2004-02-23  Benjamin Kosnik  <bkoz@redhat.com>
979
980         * libsupc++/vterminate.cc (__gnu_cxx::__verbose_terminate_handler):
981         Only use fputs, not write.
982         
983 2004-02-23  Benjamin Kosnik  <bkoz@redhat.com>
984
985         * include/ext/malloc_allocator.h: Add operators ==, !=.
986         * include/ext/new_allocator.h: Add operators ==, !=.
987         * include/ext/mt_allocator.h (__mt_alloc::tune): New.
988         (__mt_alloc::_S_get_options): New.
989         (__mt_alloc::_S_set_options): New.      
990         (__mt_alloc::_S_thread_key_destr): To _S_destroy_thread_key.
991         (__mt_alloc::_S_no_of_bins): To _S_bin_size.
992         Move functions out of line, simplify, format.
993         * src/allocator.cc: Simplify explicit instantiations.
994         * include/bits/allocator.h: Tweak.
995         
996 2004-02-22  Paolo Carlini  <pcarlini@suse.de>
997
998         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
999         Restructure formatting of value component, first dealing with
1000         the non-decimal digits; use reserve.
1001
1002 2004-02-22  Paolo Carlini  <pcarlini@suse.de>
1003
1004         * include/bits/locale_facets.h (class money_get): Inherit
1005         from money_base too; tweak declaration of _M_extract, now
1006         parameterized on _Intl too.
1007         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
1008         Update definition to use the cache; call reserve on __res to
1009         avoid multiple reallocations; fix parsing of sign component
1010         according to 22.2.6.1.2, p3.
1011         (money_get<>::do_get(long double&),
1012         money_get<>::do_get(string_type&)): Update calls of _M_extract. 
1013         * src/locale-inst.cc:  Add instantiations of
1014         money_get::_M_extract<false> and money_get::_M_extract<true>.
1015         * testsuite/22_locale/money_get/get/char/14.cc: New.
1016         * testsuite/22_locale/money_get/get/wchar_t/14.cc: Ditto.
1017         
1018 2004-02-21  Mark Mitchell  <mark@codesourcery.com>
1019
1020         * libsupc++/vterminate.cc
1021         (__gnu_cxx::__verbose_terminate_handler): Guard against recursive
1022         calls to terminate.
1023         * src/demangle.cc (__cxa_demangle): Wrap in try-catch block.
1024
1025         * testsuite/testsuite_hooks.cc (__gnu_test::set_memory_limits): Do
1026         not set RLIMIT_AS on HP-UX.
1027
1028 2004-02-21  Mark Mitchell  <mark@codesourcery.com>
1029
1030         * testsuite/testsuite_hooks.cc (__gnu_test::set_memory_limits): Do
1031         not set RLIMIT_AS on HP-UX.
1032
1033 2004-02-21  Paolo Carlini  <pcarlini@suse.de>
1034
1035         * include/bits/locale_facets.h (class money_base): Add { _S_minus,
1036         _S_zero, _S_end } enum, _S_atoms.
1037         (struct __moneypunct_cache<>): Parameterize on _Intl too; add
1038         _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size,
1039         _M_negative_sign_size, _M_atoms; tweak constructor consistently.
1040         (__moneypunct_cache<>::~__moneypunct_cache): Update.
1041         (__moneypunct_cache<>::_M_cache): Fill the cache.
1042         (class moneypunct): Tweak __cache_type typedef.
1043         (class money_put): Inherit from money_base too; tweak declaration
1044         of _M_insert, now parameterized on _Intl.
1045         * include/bits/locale_facets.tcc
1046         (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New.
1047         (money_put<>::_M_insert): Update definition to use the cache;
1048         call reserve on __res to avoid multiple reallocations.
1049         (money_put<>::do_put(long double),
1050         money_put<>::do_put(const string_type&): Update calls of _M_insert.
1051         * config/locale/generic/monetary_members.cc
1052         (moneypunct<char, true>::_M_initialize_moneypunct,
1053         moneypunct<char, false>::_M_initialize_moneypunct,
1054         moneypunct<wchar_t, true>::_M_initialize_moneypunct,
1055         moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update.
1056         * config/locale/gnu/monetary_members.cc: Likewise.
1057         * config/locale/gnu/monetary_members.cc
1058         (moneypunct<wchar_t, true>::~moneypunct(),
1059         moneypunct<wchar_t, false>::~moneypunct()): Likewise.
1060         * src/globals_locale.cc: Tweak fake_money_cache_c.
1061         * src/locale-inst.cc: Add instantiations for
1062         money_put::_M_insert<false> and money_put::_M_insert<true> and
1063         __moneypunct_cache<C, false>, __moneypunct_cache<C, true>.
1064         * src/locale_facets.cc: Define money_base::_S_atoms.
1065         * src/locale_init.cc: Update placement new of
1066         __moneypunct_cache<char, false>, __moneypunct_cache<char, true>,
1067         __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>.
1068
1069         * config/locale/generic/numeric_members.cc: Clean up.
1070         * config/locale/gnu/numeric_members.cc: Likewise.
1071         * testsuite/22_locale/money_put/put/char/1.cc: Likewise.
1072         * testsuite/22_locale/money_put/put/char/2.cc: Likewise.
1073         * testsuite/22_locale/money_put/put/char/3.cc: Likewise.
1074         * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise.
1075         * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise.
1076         * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise.
1077
1078 2004-02-20  Mark Mitchell  <mark@codesourcery.com>
1079
1080         * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc: Open
1081         FIFO for writing with ios_base::in|ios_base::out.
1082         * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise.
1083         * testsuite/27_io/objects/char/7.cc: Likewise.
1084         * testsuite/27_io/objects/char/9661-1.cc: Open FIFO for writing
1085         with "r+".
1086
1087 2004-02-19  David Edelsohn  <edelsohn@gnu.org>
1088
1089         * 22_locale/collate/compare/wchar_t/2.cc: Change input-charset
1090         from iso-8859-1 to ISO8859-1.
1091         * 22_locale/collate/compare/wchar_t/wrapped_env.cc: Same.
1092         * 22_locale/collate/compare/wchar_t/wrapped_locale.cc: Same.
1093         * 22_locale/collate/hash/wchar_t/2.cc: Same.
1094         * 22_locale/collate/hash/wchar_t/wrapped_env.cc: Same.
1095         * 22_locale/collate/hash/wchar_t/wrapped_locale.cc: Same.
1096         * 22_locale/collate/transform/wchar_t/2.cc: Same.
1097         * 22_locale/collate/transform/wchar_t/wrapped_env.cc: Same.
1098         * 22_locale/collate/transform/wchar_t/wrapped_locale.cc: Same.
1099
1100 2004-02-18  Paolo Carlini  <pcarlini@suse.de>
1101
1102         * include/bits/locale_facets.h (money_get<>::_M_extract):
1103         New, helper for do_get.
1104         (money_put<>::_M_insert): Likewise, for do_put.
1105         * include/bits/locale_facets.tcc (money_get<>::_M_extract,
1106         money_put<>::_M_insert): Define.
1107         (money_get<>::do_get(long double&), money_get<>::do_get(
1108         string_type&), money_put::do_put(long double),
1109         money_put::do_put(const string_type&)): Use the helpers.
1110
1111 2004-02-18  Paolo Carlini  <pcarlini@suse.de>
1112
1113         * config/io/basic_file_stdio.cc (__gnu_internal::xwritev):
1114         Rewrite, avoiding recursion.
1115         (__gnu_internal::xwrite): Minor tweaks.
1116
1117 2004-02-17  Stefan Olsson  <stefan@xapa.se>
1118
1119         * include/ext/mt_allocator.h: Removed the last
1120         pointer. Deallocated blocks are now added to the front of
1121         freelists as proposed by Felix Yen.  This gives roughly 10%
1122         performance boost and saves some memory.
1123         * docs/html/ext/mt_allocator.html: Change due to that deallocated
1124         blocks now are added to the front of freelists. The reason to this
1125         approach is also explained.
1126
1127 2004-02-17  Paolo Carlini  <pcarlini@suse.de>
1128
1129         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
1130         num_get<>::_M_extract_int, money_get<>::do_get): Simplify
1131         grouping fidelity conditional.
1132
1133 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
1134
1135         * testsuite/27_io/basic_filebuf/overflow/char/13858.cc:
1136         Qualify exception with std::.
1137         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Ditto.
1138         * testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc: Ditto.
1139         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
1140         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
1141         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
1142
1143 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
1144
1145         * testsuite/ext/enc_filebuf/char/13189.cc: Don't check
1146         for now that the catch block is not reached.
1147         * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Likewise.
1148
1149 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
1150
1151         * include/bits/locale_facets.tcc (money_get::do_get(string_type&)):
1152         Fix parsing of the remaining sign characters.
1153         * 22_locale/money_get/get/char/2.cc: Tweak: now, correctly,
1154         the input is scanned 'til eof.
1155         * 22_locale/money_get/get/char/4.cc: Likewise.
1156         * 22_locale/money_get/get/wchar_t/2.cc: Likewise.
1157         * 22_locale/money_get/get/wchar_t/4.cc: Likewise.
1158         * 22_locale/money_get/get/char/8.cc: Tweak: override do_neg_format,
1159         not do_pos_format: the former is the only one that matters during
1160         input.
1161         * 22_locale/money_get/get/wchar_t/8.cc: Likewise.
1162
1163         * 22_locale/money_get/get/char/6.cc: Minor tweak.
1164         * 22_locale/money_get/get/wchar_t/6.cc: Likewise.
1165
1166 2004-02-15  David Asher  <david.asher@cavium.com>
1167
1168         PR libstdc++/11352
1169         * include/bits/locale_facets.tcc (__pad<>::_S_pad): Don't
1170         access __olds beyond __oldlen.
1171
1172 2004-02-14  Paolo Carlini  <pcarlini@suse.de>
1173
1174         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Make
1175         sure the exception is actually thrown.
1176         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
1177         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
1178         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
1179
1180 2004-02-14  Paolo Carlini  <pcarlini@suse.de>
1181
1182         PR libstdc++/13858
1183         * include/bits/fstream.tcc (basic_filebuf<>::_M_convert_to_external):
1184         In case of conversion errors, throw ios_failure; simplify.
1185         * testsuite/27_io/basic_filebuf/overflow/char/13858.cc: New.
1186         * testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc: Ditto.
1187         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Tweak,
1188         previously we didn't throw in case of conversion errors, instead
1189         just returned eof().
1190         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
1191         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
1192         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
1193
1194         * include/bits/fstream.tcc (basic_filebuf<>::overflow):
1195         Trivial simplification of a conditional.
1196
1197 2004-02-12  Paolo Carlini  <pcarlini@suse.de>
1198
1199         PR libstdc++/13731 (final part: writev)
1200         * config/io/basic_file_stdio.cc (__gnu_internal::xwritev):
1201         New, a wrapper around writev() handling partial writes.
1202         (__basic_file<char>::xwrite): Move to __gnu_internal and make
1203         static.
1204         (__basic_file<char>::xsputn): Update call.
1205         (__basic_file<char>::xsputn_2): Likewise.       
1206         * config/io/basic_file_stdio.h (__basic_file<char>::xwrite):
1207         Don't declare, now static.
1208
1209 2004-02-11  Stefan Olsson  <stefan@xapa.se>
1210
1211         * docs/html/ext/mt_allocator.html: New.
1212
1213 2004-02-11  Benjamin Kosnik  <bkoz@redhat.com>
1214
1215         * docs/html/20_util/allocator.html: New file, consolidate
1216         allocator information here. Revamp.
1217         * docs/html/documentation.html: Change links.
1218         * docs/html/20_util/howto.html: Same.
1219         * docs/html/ext/howto.html: Same.
1220
1221 2004-02-11  Paolo Carlini  <pcarlini@suse.de>
1222
1223         PR libstdc++/13731 (first part: write)
1224         * config/io/basic_file_stdio.h (__basic_file<char>::xwrite):
1225         New, declare.
1226         * config/io/basic_file_stdio.cc (__basic_file<char>::xwrite):
1227         Define it: a wrapper around write() handling partial write.
1228         (__basic_file<char>::xsputn): Use it.
1229         (__basic_file<char>::xsputn_2): Likewise.
1230
1231 2004-02-11  Paolo Carlini  <pcarlini@suse.de>
1232             Petur Runolfsson  <peturr02@ru.is>
1233
1234         PR libstdc++/14078
1235         * include/std/std_istream.h (operator>>(__istream_type& (*)
1236         (__istream_type&)), operator>>(__ios_type& (*)(__ios_type&)),
1237         operator>>(ios_base& (*)(ios_base&))): Declare inline.
1238         * include/std/std_ostream.h (operator<<(__ostream_type& (*)
1239         (__ostream_type&)), operator<<(__ios_type& (*)(__ios_type&)),
1240         operator<<(ios_base& (*) (ios_base&))): Likewise.
1241         * testsuite/performance/27_io/fmtflags_manipulators.cc: New.
1242
1243 2004-02-10  Loren J. Rittle  <ljrittle@acm.org>
1244
1245         PR libstdc++/14098
1246         * config/linker-map.gnu: Add typeinfo and typeinfo name for
1247         __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> >.
1248
1249         PR libstdc++/14097
1250         * config/linker-map.gnu: Add typeinfo and typeinfo name for
1251         __gnu_cxx::stdio_filebuf<char, std::char_traits<char> >.
1252
1253 2004-02-09  Loren J. Rittle  <ljrittle@acm.org>
1254
1255         * include/ext/pool_allocator.h: Include c++config.h.
1256
1257 2004-02-09  Stefan Olsson  <stefan@xapa.se>
1258
1259         * include/ext/mt_allocator.h: thread_id is unused in non threaded
1260         applications and now has a ifdef to remove it completely on
1261         compilers without thread support. Include stdlib.h due to a
1262         compiler warning on getenv().
1263
1264 2004-02-09  Paul Brook  <paul@codesourcery.com>
1265
1266         * libstdc++-v3/configure.host: Explicitly check for atomicity.h file.
1267
1268 2004-02-09  Paolo Carlini  <pcarlini@suse.de>
1269
1270         PR libstdc++/14071
1271         * src/locale_init.cc (locale::global(const locale&)): Use
1272         locale::name() in order to decide whether calling setlocale.
1273         * testsuite/22_locale/locale/global_locale_objects/14071.cc: New.
1274
1275         * include/bits/locale_classes.h (locale::_Impl::_M_check_same_name()):
1276         Avoid computing &= unnecessarily.
1277
1278 2004-02-09  James E Wilson  <wilson@specifixinc.com>
1279
1280         PR libstdc++/5625
1281         * libsuspc++/eh_personality.cc (PERSONALITY_FUNCTION): Use
1282         __builtin_extend_pointer.
1283
1284 2004-02-09  Paolo Carlini  <pcarlini@suse.de>
1285
1286         PR libstdc++/14072
1287         * include/bits/basic_ios.tcc (basic_ios<>::_M_cache_locale):
1288         Don't leave dangling pointers.
1289         * testsuite/27_io/basic_ios/imbue/14072.cc: New.
1290         * testsuite/22_locale/numpunct/members/pod/2.cc: Tweak, the num_put
1291         facet is needed in the final test.
1292
1293 2004-02-09  Bernardo Innocenti  <bernie@develer.com>
1294
1295         * crossconfig.m4: Don't enable _GLIBCXX_USE_LFS on *-uclinux*.
1296         * configure: Regenerate.
1297
1298 2004-02-08  Richard Henderson  <rth@redhat.com>
1299
1300         PR libstdc++/14026
1301         * libsupc++/eh_catch.cc (__cxa_begin_catch): Don't adjust 
1302         uncaughtExceptions during nested catch rethrow.
1303         * testsuite/18_support/14026.cc: New.
1304
1305 2004-02-08  Paolo Carlini  <pcarlini@suse.de>
1306
1307         * include/bits/basic_string.tcc (assign(const _CharT*, size_type)):
1308         When working in place remember to set the state to sharable
1309         (otherwise, _M_mutate does it).
1310
1311 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
1312
1313         * include/bits/allocator.h, include/bits/basic_ios.h,
1314         include/bits/basic_ios.tcc, include/bits/basic_string.h,
1315         include/bits/basic_string.tcc, include/bits/boost_concept_check.h,
1316         include/bits/char_traits.h, include/bits/codecvt.h,
1317         include/bits/concurrence.h, include/bits/cpp_type_traits.h,
1318         include/bits/demangle.h, include/bits/deque.tcc,
1319         include/bits/fstream.tcc, include/bits/functexcept.h,
1320         include/bits/gslice.h, include/bits/gslice_array.h,
1321         include/bits/indirect_array.h, include/bits/ios_base.h,
1322         include/bits/istream.tcc, include/bits/list.tcc,
1323         include/bits/locale_classes.h, include/bits/locale_facets.h,
1324         include/bits/locale_facets.tcc, include/bits/localefwd.h,
1325         include/bits/mask_array.h, include/bits/ostream.tcc,
1326         include/bits/postypes.h, include/bits/slice_array.h,
1327         include/bits/sstream.tcc, include/bits/stl_algo.h,
1328         include/bits/stl_algobase.h, include/bits/stl_bvector.h,
1329         include/bits/stl_construct.h, include/bits/stl_deque.h,
1330         include/bits/stl_function.h, include/bits/stl_heap.h,
1331         include/bits/stl_iterator.h, include/bits/stl_iterator_base_funcs.h,
1332         include/bits/stl_list.h, include/bits/stl_map.h,
1333         include/bits/stl_multimap.h, include/bits/stl_multiset.h,
1334         include/bits/stl_numeric.h, include/bits/stl_pair.h,
1335         include/bits/stl_queue.h, include/bits/stl_raw_storage_iter.h,
1336         include/bits/stl_relops.h, include/bits/stl_set.h,
1337         include/bits/stl_stack.h, include/bits/stl_tempbuf.h,
1338         include/bits/stl_threads.h, include/bits/stl_tree.h,
1339         include/bits/stl_uninitialized.h, include/bits/stl_vector.h,
1340         include/bits/stream_iterator.h, include/bits/streambuf.tcc,
1341         include/bits/streambuf_iterator.h,include/bits/stringfwd.h,
1342         include/bits/type_traits.h, include/bits/valarray_after.h,
1343         include/bits/valarray_array.h, include/bits/valarray_array.tcc,
1344         include/bits/valarray_before.h, include/bits/vector.tcc: Remove
1345         trailing whitespace.
1346
1347 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
1348
1349         * include/bits/basic_string.h: Fix comment.
1350
1351 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
1352
1353         * include/bits/stl_construct.h: Wrap overlong lines, reformat
1354         according to the coding standards.
1355         * include/bits/stl_pair.h: Likewise.
1356         * include/bits/stl_raw_storage_iter.h: Likewise.
1357         * include/bits/stl_stack.h: Likewise.
1358         * include/bits/stl_uninitialized.h: Likewise.
1359         * include/bits/stream_iterator.h: Likewise.
1360         * include/bits/streambuf_iterator.h: Likewise.
1361         * include/bits/type_traits.h: Likewise.
1362
1363 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
1364
1365         * testsuite/27_io/basic_filebuf/open/char/9507.cc:
1366         Adjust timings.
1367
1368 2004-02-05  Loren J. Rittle  <ljrittle@acm.org>
1369
1370         * scripts/check_performance: Support PCH.
1371
1372         * scripts/check_performance (CXX): Add -DNOTHREAD.
1373         * testsuite/performance/20_util/allocator/insert.cc: Integrate
1374         threaded tests from insert_insert.cc.  Tweak iterations,
1375         remove special cases.
1376         * testsuite/performance/20_util/allocator/insert_insert.cc:
1377         Make all tests single-threaded. Tweak iterations.
1378         * testsuite/performance/20_util/allocator/map_thread.cc:
1379         Tweak iterations.
1380         * testsuite/performance/20_util/allocator/producer_consumer.cc:
1381         Likewise.
1382
1383 2004-02-05  Geoffrey Keating  <geoffk@apple.com>
1384
1385         PR 12179
1386         * .cvsignore: New.
1387         * acinclude.m4 (GLIBCXX_EXPORT_INSTALL_INFO): Use 'gcc', not
1388         'gcc-lib'.  Add comment about poorly-named variables.
1389         * aclocal.m4: Regenerate.
1390         * configure: Regenerate.
1391
1392 2004-02-05  Paolo Carlini  <pcarlini@suse.de>
1393
1394         * include/bits/locale_facets.tcc (money_get::do_get(string_type&)):
1395         Thousands-sep are always optional; thousands-sep are not allowed
1396         after the decimal_point.
1397         * testsuite/22_locale/money_get/get/char/12.cc: New.
1398         * testsuite/22_locale/money_get/get/char/13.cc: New.
1399         * testsuite/22_locale/money_get/get/wchar_t/12.cc: New.
1400         * testsuite/22_locale/money_get/get/wchar_t/13.cc: New.
1401
1402         * testsuite/22_locale/money_get/get/char/1.cc: Clean-up.
1403         * testsuite/22_locale/money_get/get/char/2.cc: Likewise.
1404         * testsuite/22_locale/money_get/get/char/3.cc: Likewise.
1405         * testsuite/22_locale/money_get/get/char/4.cc: Likewise.
1406         * testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise.
1407         * testsuite/22_locale/money_get/get/wchar_t/2.cc: Likewise.
1408         * testsuite/22_locale/money_get/get/wchar_t/3.cc: Likewise.
1409         * testsuite/22_locale/money_get/get/wchar_t/4.cc: Likewise.
1410
1411         * testsuite/22_locale/money_get/get/char/9.cc: Fix citation from
1412         the standard.
1413         * testsuite/22_locale/money_get/get/wchar_t/9.cc: Likewise.
1414
1415 2004-02-05  Richard Sandiford  <rsandifo@redhat.com>
1416
1417         * config/os/irix/irix6.5/os_defines.h (_GLIBCXX_FIONREAD_TAKES_OFF_T):
1418         Define.
1419         * config/io/basic_file_stdio.cc (__basic_file<char>::showmanyc): Use
1420         it to decide whether FIONREAD should take an off_t or int argument.
1421
1422 2004-02-05  Paolo Carlini  <pcarlini@suse.de>
1423
1424         * include/bits/stl_function.h: Minor formatting changes.
1425
1426 2004-02-04  Zack Weinberg  <zack@codesourcery.com>
1427
1428         Revert previous change to config/abi/*/baseline_symbols.txt.
1429
1430 2004-02-04  Benjamin Kosnik  <bkoz@redhat.com>
1431             Zack Weinberg  <zack@codesourcery.com>
1432
1433         * config/io/basic_file_stdio.cc (__gnu_internal::fopen_mode):
1434         New function.
1435         (__basic_file<char>::sys_open, __basic_file<char>::open): Use it.
1436         (__basic_file<char>::_M_open_mode): Delete.
1437         * config/io/basic_file_stdio.cc: Delete declaration of _M_open_mode.
1438
1439         * testsuite/27_io/basic_filebuf/close/char/9964.cc
1440         * testsuite/27_io/basic_filebuf/open/char/9507.cc:
1441         Correct flags to filebuf::open calls.
1442
1443         * config/abi/alpha-freebsd5/baseline_symbols.txt
1444         * config/abi/alpha-linux-gnu/baseline_symbols.txt
1445         * config/abi/hppa-linux-gnu/baseline_symbols.txt
1446         * config/abi/i386-freebsd4/baseline_symbols.txt
1447         * config/abi/i386-freebsd5/baseline_symbols.txt
1448         * config/abi/i486-linux-gnu/baseline_symbols.txt
1449         * config/abi/ia64-linux-gnu/baseline_symbols.txt
1450         * config/abi/mips-linux-gnu/baseline_symbols.txt
1451         * config/abi/sparc-freebsd5/baseline_symbols.txt
1452         * config/abi/sparc-linux-gnu/baseline_symbols.txt
1453         * config/abi/x86_64-linux-gnu/baseline_symbols.txt:
1454         Remove entry for __basic_file<char>::_M_open_mode.
1455
1456 2004-02-04  Loren J. Rittle  <ljrittle@acm.org>
1457
1458         * testsuite/performance/20_util/allocator/insert.cc (main): Tweak.
1459
1460 2004-02-04  Felix Yen  <fwy@alumni.brown.edu>
1461
1462         * testsuite/performance/20_util/producer_consumer.cc: New.
1463         * testsuite/performance/20_util/allocator/insert_insert.cc: Two loops.
1464
1465 2004-02-04  Benjamin Kosnik  <bkoz@redhat.com>
1466
1467         * testsuite/performance/20_util/allocator.cc: Move to..
1468         * testsuite/performance/20_util/allocator/insert.cc: ...here.
1469         * testsuite/performance/20_util/allocator_thread.cc: Move to...
1470         * testsuite/performance/20_util/allocator/insert_insert.cc: ...here.
1471         * testsuite/performance/20_util/allocator_map_thread.cc: Move to...
1472         * testsuite/performance/20_util/allocator/map_thread.cc: ...here.
1473
1474 2004-02-04  Jonathan Wakely  <redi@gcc.gnu.org>
1475
1476         * docs/html/faq/index.html: Recommend using LD_LIBRARY_PATH.
1477         * docs/html/faq/index.txt: Regenerate.
1478
1479 2004-02-04  Dhruv Matani  <dhruvbird@gmx.net>
1480
1481         * include/ext/debug_allocator.h: _M_extra now stands for the
1482         number of extra objects instead of the number of extra bytes.
1483         (debug_allocator::allocate): Adjust.
1484         (debug_allocator::deallocate): Adjust.
1485
1486         * include/ext/pool_allocator.h: Fix typo.
1487
1488 2004-02-03  Felix Yen  <fwy@alumni.brown.edu>
1489             Benjamin Kosnik  <bkoz@redhat.com>
1490
1491         * testsuite/performance/20_util/allocator.cc: Add map,
1492         deque, set tests.
1493         * testsuite/performance/20_util/allocator_thread.cc: Same.
1494
1495 2004-02-03  Paolo Carlini  <pcarlini@suse.de>
1496
1497         * include/bits/basic_string.h (insert(iterator)): Remove,
1498         non-standard and already scheduled for removal.
1499
1500 2004-02-03  Paolo Carlini  <pcarlini@suse.de>
1501
1502         * include/bits/stl_iterator_base_funcs.h: Minor formatting
1503         and indentation tweaks.
1504         * include/bits/stl_iterator_base_types.h: Likewise.
1505         * include/bits/stl_list.h: Likewise.
1506         * include/bits/stl_map.h: Likewise.
1507         * include/bits/stl_tempbuf.h: Likewise.
1508
1509 2004-02-02  Jerry Quinn  <jlquinn@optonline.net>
1510
1511         * include/bits/gslice.h, include/bits/gslice_array.h,
1512         include/bits/indirect_array.h, include/bits/mask_array.h,
1513         include/bits/slice_array.h, include/bits/stl_numeric.h,
1514         include/std/std_valarray.h:  Update copyright years.
1515
1516 2004-02-02  Jerry Quinn  <jlquinn@optonline.net>
1517
1518         * include/bits/gslice.h (gslice):  Document.
1519         * include/bits/gslice_array.h (gslice_array):  Document.
1520         * include/bits/indirect_array (indirect_array):  Document.
1521         * include/bits/mask_array (mask_array):  Document.
1522         * include/bits/slice_array.h (slice,slice_array):  Document.
1523         * include/bits/stl_numeric.h (accumulate, inner_product, partial_sum,
1524         adjacent_difference):  Document
1525         * include/std/std_valarray.h (valarray):  Document.
1526
1527 2004-02-02  Benjamin Kosnik  <bkoz@redhat.com>
1528
1529         * docs/html/19_diagnostics/howto.html: Move verbose terminate
1530         documentation...
1531         * docs/html/18_support/howto.html: Here.
1532         * docs/html/documentation.html: Add reference here.
1533
1534 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
1535
1536         * config/locale/gnu/c++locale_internal.h: Remove prototypes
1537         of no longer used GLIBC thread locale functions.
1538
1539 2004-02-02  Eric Christopher  <echristo@redhat.com>
1540             Zack Weinberg  <zack@codesourcery.com>
1541
1542         * testsuite/22_locale/collate/compare/wchar_t/2.cc: Remove xfail. Use
1543         -finput-charset.
1544         * testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc: Ditto.
1545         * testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc: Ditto
1546         * testsuite/22_locale/collate/hash/wchar_t/2.cc: Ditto.
1547         * testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc: Ditto.
1548         * testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc: Ditto.
1549         * testsuite/22_locale/collate/transform/wchar_t/2.cc: Ditto.
1550         * testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc: Ditto.
1551         * testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc:
1552         Ditto.
1553
1554 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
1555
1556         * include/bits/stl_function.h: Additional minor tweaks.
1557         * include/bits/stl_multiset.h: Likewise.
1558
1559         * include/bits/stl_queue.h: Minor tweaks.
1560
1561 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
1562
1563         PR libstdc++/13976 (continued)
1564         * include/ext/malloc_allocator.h (malloc_allocator::deallocate):
1565         Make the second parameter unnamed, to void unused parameter
1566         warnings.
1567         * include/ext/new_allocator.h (new_allocator::deallocate): Ditto.
1568
1569 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
1570
1571         PR libstdc++/13976
1572         * include/ext/malloc_allocator.h (malloc_allocator::allocate):
1573         Make the second parameter unnamed, to void unused parameter
1574         warnings.
1575         * include/ext/mt_allocator.h (__mt_alloc::allocate): Ditto.
1576         * include/ext/new_allocator.h (new_allocator::allocate): Ditto.
1577
1578 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
1579
1580         * include/bits/stl_algo.h: Additional minor tweaks.
1581         * include/bits/stl_map.h: Likewise.
1582         * include/bits/stl_multimap.h: Likewise.
1583         * include/bits/stl_multiset.h: Likewise.
1584         * include/bits/stl_set.h: Likewise.
1585         * include/bits/stl_tree.h: Likewise.
1586
1587 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
1588
1589         * include/bits/vector.tcc (vector::_M_insert_aux(iterator)):
1590         Remove, unused.
1591
1592 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
1593
1594         * include/bits/stl_function.h: Additional minor tweaks.
1595
1596 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
1597
1598         * include/bits/deque.tcc: Wrap overlong lines, constify
1599         a few variables, reformat according to the coding standards.
1600         * include/bits/list.tcc: Likewise.
1601         * include/bits/stl_deque.h: Likewise.
1602         * include/bits/stl_function.h: Likewise.
1603         * include/bits/stl_iterator.h: Likewise.
1604         * include/bits/stl_iterator_base_funcs.h: Likewise.
1605         * include/bits/stl_iterator_base_types.h: Likewise.
1606         * include/bits/stl_list.h: Likewise.
1607         * include/bits/stl_map.h: Likewise.
1608         * include/bits/stl_multimap.h: Likewise.
1609         * include/bits/stl_multiset.h: Likewise.
1610         * include/bits/stl_relops.h: Likewise.
1611         * include/bits/stl_set.h: Likewise.
1612
1613 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
1614
1615         * include/bits/stl_bvector.h: Wrap overlong lines, constify
1616         a few variables, reformat according to the coding standards.
1617         * include/bits/stl_tree.h: Likewise.
1618
1619 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
1620
1621         * include/bits/stl_algo.h: Minor additional reformat, add
1622         copyright year.
1623         * include/bits/stl_algobase.h: Add copyright year.
1624
1625 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
1626
1627         * include/bits/stl_algo.h: Wrap overlong lines, constify
1628         a few variables, reformat according to the coding standards.
1629         * include/bits/stl_algobase.h: Likewise.
1630         * include/bits/stl_heap.h: Likewise.
1631
1632 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
1633
1634         * include/bits/basic_string.h (_Rep::operator[]): Remove, unused.
1635
1636         * include/bits/basic_string.h: Fix two comments.
1637
1638 2004-01-31  Per Bothner  <per@bothner.com>
1639
1640         * include/ext/mt_allocator.h
1641         (__mt_alloc::_S_thread_freelist_mutex): Guard with
1642         __GTHREAD_MUTEX_INIT.
1643
1644 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
1645
1646         * include/bits/basic_string.tcc (_Rep::_S_create): Minor tweak.
1647
1648 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
1649
1650         * testsuite/21_strings/basic_string/cons/char/6.cc: New.
1651         * testsuite/21_strings/basic_string/cons/wchar_t/6.cc: New.
1652         * testsuite/performance/21_strings/string_cons_input_iterator.cc: New.
1653
1654 2004-01-30  Felix Yen  <fwy@alumni.brown.edu>
1655
1656         * testsuite/performance/20_util/allocator_thread.cc (do_loop):
1657         Don't use clear, but instead assign. Use insert.
1658
1659 2004-01-30  Benjamin Kosnik  <bkoz@redhat.com>
1660
1661         * src/demangle.cc: Add instantiations.
1662         * src/Makefile.am: Remove special rules for demangle.lo, demangle.o.
1663         * src/Makefile.in: Regenerate.
1664
1665 2004-01-30  David Edelsohn  <edelsohn@gnu.org>
1666
1667         * src/allocator.cc: Protect _S_get_thread_id() and
1668         _S_thread_key_destr() with #ifdef __GTHREADS.
1669
1670 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
1671
1672         Reshuffle performance testsuite.
1673         * testsuite/performance/allocator.cc, allocator_map_thread.cc,
1674         allocator_thread.cc, complex_norm.cc, container_benchmark.cc,
1675         cout_insert_int.cc, filebuf_copy.cc, filebuf_sputc.cc,
1676         fstream_seek_write.cc, ifstream_extract_float.cc,
1677         ifstream_extract_int.cc, ifstream_getline.cc, is_wchar_t.cc,
1678         list_create_fill_sort.cc, map_create_fill.cc,
1679         narrow_widen_char.cc, narrow_widen_wchar_t.cc,
1680         ofstream_insert_float.cc, ofstream_insert_int.cc,
1681         string_append.cc, wchar_t_in.cc, wchar_t_length.cc,
1682         wchar_t_out.cc: Split into...
1683         * testsuite/performance/20_util/allocator.cc: New.
1684         * testsuite/performance/20_util/allocator_map_thread.cc: New.
1685         * testsuite/performance/20_util/allocator_thread.cc: New.
1686         * testsuite/performance/21_strings/string_append: New.
1687         * testsuite/performance/22_locale/is_wchar_t.cc: New.
1688         * testsuite/performance/22_locale/narrow_widen_char.cc: New.
1689         * testsuite/performance/22_locale/narrow_widen_wchar_t.cc: New.
1690         * testsuite/performance/22_locale/wchar_t_in.cc: New.
1691         * testsuite/performance/22_locale/wchar_t_length.cc: New.
1692         * testsuite/performance/22_locale/wchar_t_out.cc: New.
1693         * testsuite/performance/23_containers/container_benchmark.cc: New.
1694         * testsuite/performance/23_containers/list_create_fill_sort.cc: New.
1695         * testsuite/performance/23_containers/map_create_fill.cc: New.
1696         * testsuite/performance/26_numerics/complex_norm.cc: New.
1697         * testsuite/performance/27_io/cout_insert_int.cc: New.
1698         * testsuite/performance/27_io/filebuf_copy.cc: New.
1699         * testsuite/performance/27_io/filebuf_sputc.cc: New.
1700         * testsuite/performance/27_io/fstream_seek_write.cc: New.
1701         * testsuite/performance/27_io/ifstream_extract_float.cc: New.
1702         * testsuite/performance/27_io/ifstream_extract_int.cc: New.
1703         * testsuite/performance/27_io/ifstream_getline.cc: New.
1704         * testsuite/performance/27_io/ofstream_insert_float.cc: New.
1705         * testsuite/performance/27_io/ofstream_insert_int.cc: New.
1706
1707 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
1708
1709         * include/bits/basic_string.tcc (_Rep::_S_create):
1710         Never allocate a string bigger than max_size(); always keep
1711         __capacity and __size in sync to avoid memory leaks at
1712         deallocation time.
1713
1714 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
1715
1716         * include/bits/basic_string.tcc (_S_construct(_InIterator,
1717         _InIterator, const _Alloc&, input_iterator_tag)): Simplify
1718         the double loop, streamline.
1719
1720         * include/bits/basic_string.tcc: Very minor tweaks.
1721
1722 2004-01-30  Loren J. Rittle  <ljrittle@acm.org>
1723
1724         * scripts/check_performance: Only compile with $THREAD_FLAG
1725         when test is marked to require it.  Allow multiple
1726         compilations/executions of marked tests.
1727         * testsuite/testsuite_performance.h (report_performance):
1728         Report dynamic thread support status.
1729         (report_header): Likewise.
1730         * testsuite/performance/allocator.cc: Stabilize iteration
1731         count.  Support more allocators.  Mark each allocator test to
1732         run and report independently.
1733         * testsuite/performance/allocator_map_thread.cc: Likewise.
1734         * testsuite/performance/allocator_thread.cc: Likewise.
1735
1736 2004-01-29  Stephen M. Webb  <stephen.webb@bregmasoft.com>
1737
1738         * config/local/generic/c_locale.h: Change ::malloc() to new char[].
1739         * config/local/gnu/c_locale.h: Change ::malloc() to new char[].
1740         * include/bits/stl_tempbuf.h: Convert _Temporary_buffer to use
1741         std::get_temporary_buffer() instead of duplicating its code.
1742         Update to C++STYLE conventions.
1743         * include/std/std_memory.h (get_temporary_buffer): Use ::operator
1744         new() instead of std::malloc().
1745         (return_temporary_buffer): Use ::operator delete() instead of
1746         std::free().
1747
1748 2004-01-29  Benjamin Kosnik  <bkoz@redhat.com>
1749
1750         * include/bits/allocator.h: Temporary switch to new_allocator as
1751         the default to unjam bootstraps.
1752
1753 2004-01-28  Benjamin Kosnik  <bkoz@redhat.com>
1754
1755         * include/Makefile.am (bits_headers): Remove allocator_traits.h.
1756         * include/Makefile.in: Regenerate.
1757         * include/bits/allocator_traits.h: Remove.
1758         * include/bits/allocator.h: Remove allocator_traits.h include, and
1759         relevant comments.
1760         (allocator): Empty base class, inherit from the underlying allocator.
1761         * src/allocator-inst.cc: Move __pool_alloc instantiation to...
1762         * src/allocator.cc: ...here. New. For the underlying allocators.
1763         Add __mt_alloc, __pool_alloc, new_allocator, malloc_allocator bits.
1764         * config/linker-map.gnu: Remove __pool_alloc bits.
1765         * src/Makefile.am (sources): Add allocator.cc.
1766         * src/Makefile.in: Regenerate.
1767         * testsuite/20_util/allocator/1.cc: Split second test into...
1768         * testsuite/20_util/allocator/8230.cc: ...this.
1769         * include/bits/stl_bvector.h (__gnu_norm): Change bit_vector
1770         typedef to use std::allocatore. Format.
1771         * include/ext/pool_allocator.h: Remove allocator_traits.h include,
1772         _Alloc_traits.
1773         * include/ext/mt_allocator.h (__gnu_cxx): Qualify
1774         __throw_bad_alloc calls. Don't include <memory>.
1775         * include/ext/malloc_allocator.h: Remove <memory> include.
1776         * include/ext/new_allocator.h (new_allocator): Same.
1777         * include/ext/ropeimpl.h (__gnu_cxx): Remove __alloc using
1778         declaration. Switch __alloc to _Alloc.
1779         * include/ext/hashtable.h: Remove __alloc.
1780         * include/backward/alloc.h: Only inject allocator, not
1781         implementation details.
1782
1783         * include/ext/mt_allocator.h: Replace free with delete.
1784
1785 2004-01-28  Benjamin Kosnik  <bkoz@redhat.com>
1786
1787         * src/globals_io.cc: Change to __gnu_internal namespace.
1788         * src/globals_locale.cc: Same.
1789         * src/locale_init.cc: Same.
1790         * src/ios_init.cc: Same.
1791
1792 2004-01-28  Stefan Olsson  <stefan@snon.net>
1793
1794         * include/ext/mt_allocator.h: Replaced all malloc() calls with
1795         operator new(). Added support for the env variable
1796         GLIBCXX_FORCE_NEW (this required the _S_init call to be the first
1797         one in allocate() as well). Fix typos.
1798
1799 2004-01-28  Paolo Carlini  <pcarlini@suse.de>
1800
1801         * include/bits/basic_string.h (_S_create(size_t,
1802         const _Alloc&): Change signature to take two size_type
1803         arguments.
1804         * include/bits/basic_string.tcc (_S_construct(_InIterator,
1805         _InIterator, const _Alloc&, input_iterator_tag)): Update
1806         call, tweak a bit.
1807         (_S_construct(_InIterator, _InIterator, const _Alloc&,
1808         forward_iterator_tag)): Likewise.
1809         (_S_construct(size_type, _CharT, const _Alloc&)): Likewise.
1810         (_M_mutate(size_type, size_type, size_type)): Don't
1811         implement the exponential growth policy, demand it to
1812         _S_create, update call and simplify.
1813         (_M_clone(const _Alloc&, size_type)): Likewise.
1814         (_S_create(size_type, size_type, const _Alloc&)): Implement
1815         the growth policy, simplify otherwise.
1816
1817         * include/bits/basic_string.h (_Rep::operator[]): Tweak
1818         signature to take a size_type, consistently with the other
1819         members.
1820
1821 2004-01-27  Benjamin Kosnik  <bkoz@redhat.com>
1822
1823         * testsuite/27_io/ios_base/storage/11584.cc: Correct new and
1824         delete declarations, add include and test variable.
1825
1826 2003-01-27  Jerry Quinn  <jlquinn@optonline.net>
1827
1828         * include/bits/codecvt.h, include/bits/locale_facets.h,
1829         include/bits/postypes.h, include/bits/stl_bvector.h,
1830         include/bits/stl_multiset.h, include/bits/stl_set.h,
1831         include/bits/stream_iterator.h, include/bits/streambuf_iterator.h,
1832         include/std/std_complex.h:  Document.
1833
1834 2004-01-27  Jerry Quinn  <jlquinn@optonline.net>
1835
1836         PR libstdc++/11584
1837         * include/bits/ios_base.h (ios_base::_M_grow_words):  Add
1838         iword/pword selector.
1839         (ios_base::iword, ios_base::pword):  Use it.
1840         * src/ios.cc (ios_base::_M_grow_words):  Clear _M_word_zero
1841         iword or pword member on alloc failure.
1842         * testsuite/27_io/ios_base/storage/11584.cc:  New test.
1843
1844 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
1845             PJ Darcy  <darcypj@us.ibm.com>
1846
1847         * configure.host: Add support for *-tpf.
1848         * crossconfig.m4: Likewise.
1849         * configure: Regenerate.
1850         * config/os/tpf: New directory.
1851         * config/os/tpf/os_defines.h: New file.
1852         * config/os/tpf/ctype_base.h: Likewise.
1853         * config/os/tpf/ctype_inline.h: Likewise.
1854         * config/os/tpf/ctype_noninline.h: Likewise.
1855
1856 2004-01-27  Paolo Carlini  <pcarlini@suse.de>
1857
1858         PR libstdc++/13884
1859         * include/bits/sstream.tcc: Guard use of extern template.
1860
1861 2004-01-27  Paolo Carlini  <pcarlini@suse.de>
1862
1863         * include/bits/basic_string.tcc
1864         (basic_string(const basic_string&, size_type, size_type),
1865         basic_string(const basic_string&, size_type, size_type,
1866         const _Alloc&)): Avoid unnecessarily constructing iterators.
1867
1868 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
1869
1870         * config/locale/generic/c_locale.cc: Fix throw messages
1871         to use the __N marker.
1872         * config/locale/gnu/c_locale.cc: Likewise.
1873         * config/locale/ieee_1003.1-2001/codecvt_specializations.h:
1874         Likewise.
1875         * docs/html/17_intro/C++STYLE: Likewise.
1876         * include/bits/basic_ios.tcc: Likewise.
1877         * include/bits/fstream.tcc: Likewise.
1878         * include/bits/vector.tcc: Likewise.
1879         * include/ext/ropeimpl.h: Likewise.
1880         * include/std/std_bitset.h: Likewise.
1881         * src/ios.cc: Likewise.
1882         * src/locale.cc: Likewise.
1883         * src/localename.cc: Likewise.
1884
1885 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
1886
1887         * include/bits/basic_string.h (_M_replace_aux): Use the
1888         __N marker in throw message.
1889         * include/bits/basic_string.tcc (assign(const _CharT*,
1890         size_type), insert(size_type, const _CharT*, size_type),
1891         replace(size_type, size_type, const _CharT*, size_type),
1892         reserve, _Rep::_S_create, resize, _M_replace_dispatch):
1893         Likewise.
1894
1895         * include/bits/basic_string.h, include/bits/basic_string.tcc:
1896         Fold overlong lines, minor formatting changes.
1897
1898 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
1899
1900         * include/bits/basic_string.h (replace(iterator, iterator,
1901         const basic_string&)): Remove _GLIBCXX_DEBUG_PEDASSERT.
1902         (replace(iterator, iterator, const _CharT*)): Ditto.
1903         (replace(iterator, iterator, const _CharT*, size_type)):
1904         Add missing _GLIBCXX_DEBUG_PEDASSERT.
1905
1906 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
1907
1908         * include/bits/basic_string.tcc (replace(size_type,
1909         size_type, const _CharT*, size_type)): Implement optimized
1910         in-place algorithm for non-overlapping ranges.
1911         * testsuite/21_strings/basic_string/replace/char/6.cc: New.
1912         * testsuite/21_strings/basic_string/replace/wchar_t/6.cc: New.
1913
1914         * include/bits/basic_string.tcc (insert(size_type,
1915         const _CharT*, size_type)): Tweak slightly.
1916
1917 2004-01-26  Andreas Schwab  <schwab@suse.de>
1918
1919         * config/locale/gnu/monetary_members.cc: Restore locale before
1920         rethrowing exception.
1921
1922 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
1923
1924         * include/bits/basic_string.h (_M_replace_aux, _M_replace_safe):
1925         Define inline here.
1926         * include/bits/basic_string.tcc (_M_replace_aux, _M_replace_safe):
1927         Move inline.
1928
1929         * include/bits/basic_string.tcc: Very minor tweaks.
1930
1931 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
1932
1933         * testsuite/performance/string_append.cc: Increase number
1934         of iterations.
1935
1936 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
1937
1938         * include/bits/basic_string.h (erase(size_type, size_type),
1939         erase(iterator), erase(iterator, iterator)): Call _M_replace_safe
1940         instead, thus avoiding redundant check for length_error.
1941
1942         * include/bits/basic_string.h: Tweak some comments.
1943
1944 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
1945
1946         * include/bits/basic_string.tcc (operator+(const _CharT*,
1947         const basic_string&)): No need to go through the append
1948         taking two iterators.
1949
1950 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
1951
1952         * include/bits/basic_string.tcc (rfind(_CharT, size_type)):
1953         Revert last change to use std::min: machine language is worse.
1954         (find_last_of(const _CharT*, size_type, size_type)): Ditto.
1955         (find_last_not_of(const _CharT*, size_type, size_type)): Ditto.
1956         (find_last_not_of(_CharT, size_type)): Ditto.
1957
1958         * include/bits/basic_string.tcc (insert(size_type, const _CharT*,
1959         size_type)): Discard the value returned by _M_check.
1960         (replace(size_type, size_type, const _CharT*, size_type)): Ditto.
1961         (append(const basic_string&, size_type, size_type)): Ditto.
1962         (copy(_CharT*, size_type, size_type)): Ditto.
1963         (compare(size_type, size_type, const basic_string&)): Ditto.
1964         (compare(size_type, size_type, const basic_string&,
1965         size_type, size_type)): Ditto.
1966         (compare(size_type, size_type, const _CharT*)): Ditto.
1967         (compare(size_type, size_type, const _CharT*, size_type)): Ditto.
1968
1969 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
1970
1971         * include/bits/basic_string.h (insert(size_type,
1972         const basic_string&, size_type, size_type)): Define inline here.
1973         * include/bits/basic_string.tcc (insert(size_type,
1974         const basic_string&, size_type, size_type)): Move inline.
1975
1976 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
1977
1978         * include/bits/basic_string.h (assign(const basic_string&,
1979         size_type, size_type)): Define inline here.
1980         (replace(size_type, size_type, const basic_string&,
1981         size_type, size_type)): Ditto.
1982         (_M_replace_dispatch(iterator, iterator, _InputIterator,
1983         _InputIterator, __false_type)): Only declare.
1984         (_M_replace(iterator, iterator, _InputIterator,
1985         _InputIterator)): Remove.
1986         * include/bits/basic_string.tcc (assign(const basic_string&,
1987         size_type, size_type)): Move inline.
1988         (replace(size_type, size_type, const basic_string&,
1989         size_type, size_type)): Ditto.
1990         (_M_replace_dispatch(iterator, iterator, _InputIterator,
1991         _InputIterator, __false_type)): Define, now does also what
1992         _M_replace did before.
1993         * src/string-inst.cc (_M_replace): Don't instantiate.
1994
1995         * include/bits/basic_string.tcc (find(const _CharT*,
1996         size_type, size_type)): Tidy.
1997         (rfind(_CharT, size_type)): Ditto.
1998         (find_first_not_of(const _CharT*, size_type, size_type)): Ditto.
1999         (find_first_not_of(_CharT, size_type)): Ditto.
2000         (find_last_not_of(const _CharT*, size_type, size_type)): Ditto.
2001         (find_last_not_of(_CharT, size_type)): Ditto.
2002
2003 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
2004
2005         PR libstdc++/13838
2006         * include/debug/bitset (operator|=): Fix typo.
2007         * testsuite/23_containers/bitset/operations/13838.cc: New.
2008
2009 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
2010
2011         * include/bits/basic_string.tcc (insert(size_type,
2012         const _CharT*, size_type __n)): Fix length_error check.
2013         (replace(size_type, size_type, const _CharT*, size_type):
2014         Ditto; call _M_replace_safe.
2015         (_M_replace_aux(size_type, size_type, size_type, _CharT):
2016         Fix length_error check.
2017         (_M_replace(iterator, iterator, _InputIterator,
2018         _InputIterator)): Ditto, tweak.
2019         (_M_replace_safe(size_type, size_type, const _CharT*,
2020         size_type)): Remove length_error check.
2021
2022         * include/bits/basic_string.tcc (append(const basic_string&),
2023         append(const basic_string&, size_type, size_type)): Tweak
2024         comment.
2025
2026         * include/bits/basic_string.tcc (copy(_CharT*, size_type,
2027         size_type)): If __n == 0 don't call traits::copy.
2028
2029 2004-01-23  Stefan Olsson  <stefan@snon.net>
2030
2031         * include/ext/mt_allocator.h: Reduce lock contention.
2032
2033 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
2034
2035         PR libstdc++/13831
2036         * include/bits/fstream.tcc (underflow): Remove unused
2037         variable.
2038         * include/bits/streambuf_iterator.h (equal): Ditto.
2039         * include/bits/locale_facets.h (_M_convert_from_char):
2040         Ditto.
2041
2042 2004-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2043
2044         PR c/13814
2045         * config/linker-map.gnu (nan): Delete.
2046         * libmath/mathconf.h (NAN, nan): Delete.
2047         * linkage.m4 (nan): Don't check for it.
2048         * libmath/nan.c: Delete file.
2049
2050         * config.h.in, configure: Regenerate.
2051
2052 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
2053
2054         * include/bits/basic_string.h (push_back(_CharT)):
2055         Call _M_replace_aux.
2056         (insert(size_type, const basic_string&)): Trivial tweak.
2057         (insert(size_type, size_type, _CharT)): Call _M_replace_aux.
2058         (insert(iterator, _CharT)): Ditto.
2059         (erase(size_type, size_type)): Ditto.
2060         (erase(iterator)): Ditto.
2061         (erase(iterator, iterator)): Ditto.
2062         (replace(size_type, size_type, size_type, _CharT)): Ditto.
2063
2064 2004-01-23  Loren J. Rittle  <ljrittle@acm.org>
2065
2066         libstdc++/13823
2067         * testsuite/performance/allocator_map_thread.cc: New test.
2068
2069 2004-01-22  Paolo Carlini  <pcarlini@suse.de>
2070
2071         * include/bits/locale_facets.tcc
2072         (money_put::do_put(..., long double)): Use the basic_string
2073         constructor for char arrays, not that for C-strings, to pass
2074         __digits to do_put(..., const string_type&): __ws isn't
2075         null-terminated.
2076
2077 2004-01-22  Paolo Carlini  <pcarlini@suse.de>
2078
2079         * include/bits/basic_string.h (_M_replace_safe): Change
2080         signatures to take size_types and const _CharT*.
2081         (_M_replace_aux): Likewise, takes size_types instead of
2082         iterators.
2083         (append(size_type, _CharT)): Update call.
2084         (assign(size_type, _CharT)): Ditto.
2085         (replace(iterator, iterator, size_type, _CharT)): Ditto.
2086         (_M_replace_dispatch(iterator, iterator, _Integer,
2087         _Integer, __true_type)): Ditto.
2088         * include/bits/basic_string.tcc (assign(const _CharT*,
2089         size_type)): Ditto.
2090         (insert(size_type, const _CharT*, size_type)): Ditto.
2091         (replace(size_type, size_type, const _CharT*,
2092         size_type)): Ditto.
2093         (_M_replace(iterator, iterator, _InputIterator,
2094         _InputIterator)): Ditto.
2095         (append(const basic_string&)): Ditto.
2096         (append(const basic_string&, size_type, size_type): Ditto.
2097         (append(const _CharT*, size_type): Ditto.
2098         (_M_replace_safe, _M_replace_safe): Change definitions
2099         accordingly, simplify.
2100         * string-inst.cc (_M_replace_safe): Don't instantiate.
2101
2102 2004-01-21  Paolo Carlini  <pcarlini@suse.de>
2103
2104         * include/bits/basic_string.tcc (append(const basic_string&)):
2105         Revert previous change.
2106         (append(const basic_string&, size_type, size_type)): Revert
2107         previous change, use _M_check and _M_limit.
2108
2109 2004-01-21  Paolo Carlini  <pcarlini@suse.de>
2110
2111         * include/bits/basic_string.h (_M_check): Change to return
2112         a checked __pos and take an additional const char* argument.
2113         (_M_fold): Rename to _M_limit, change to return a size_type,
2114         corresponding to the __off limited to the actual length.
2115         (insert(size_type, size_type, _CharT)): Update call, call
2116         replace.
2117         (insert(iterator, _CharT)): Call replace(iterator, iterator,
2118         size_type, _CharT) instead.
2119         (erase(size_type, size_type)): Update calls.
2120         (replace(size_type, size_type, size_type, _CharT)): Ditto.
2121         (substr(size_type, size_type)): Use _M_check.
2122         * include/bits/basic_string.tcc (basic_string(const basic_string&,
2123         size_type, size_type)): Update calls.
2124         (basic_string(const basic_string&, size_type, size_type,
2125         const _Alloc&)): Ditto.
2126         (assign(const basic_string&, size_type, size_type)): Use the
2127         new _M_check and _M_limit.
2128         (insert(size_type, const basic_string&, size_type, size_type):
2129         Ditto.
2130         (insert(size_type, const _CharT*, size_type)): Ditto.
2131         (replace(size_type, size_type, const _CharT*, size_type): Ditto.
2132         (replace(size_type, size_type, const basic_string&,
2133         size_type, size_type)): Ditto.
2134         (append(const basic_string&)): Ditto.
2135         (append(const basic_string&, size_type, size_type)): Ditto.
2136         (copy(_CharT*, size_type, size_type)): Ditto.
2137         (compare(size_type, size_type, const basic_string&)): Ditto.
2138         (compare(size_type, size_type, const basic_string&,size_type,
2139         size_type)): Ditto.
2140         (compare(size_type, size_type, const _CharT*)): Ditto.
2141         (compare(size_type, size_type, const _CharT*, size_type)): Ditto.
2142
2143 2004-01-19  Stefan Olsson  <stefan@snon.net>
2144
2145         * include/ext/mt_allocator.h: If a thread, when it dies, still has
2146         memory on it's freelist this memory is not returned to global
2147         list. Simplification of deallocate so that memory is always
2148         returned to the calling thread id's freelist instead of to
2149         global. Fix typos. Add volatile where appropriate.
2150
2151 2004-01-19  Loren J. Rittle  <ljrittle@acm.org>
2152
2153         * testsuite/ext/stdio_filebuf/char/10063-2.cc: Treat unbuffered.
2154         * testsuite/ext/stdio_filebuf/char/10063-3.cc: New test.  Like -2 but
2155         use __gnu_cxx::stdio_sync_filebuf<char> instead; allow buffered stream.
2156
2157 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
2158
2159         * src/debug.cc: Make sure all the names are prefixed with
2160         double (or single) underscore.
2161
2162 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
2163
2164         * src/debug.cc: Trivial formatting change.
2165
2166 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
2167
2168         * include/bits/basic_string.tcc (_S_construct(size_type,
2169         _CharT, const _Alloc&)): Remove redundant try/catch.
2170         (_M_mutate(size_type, size_type, size_type)): Ditto.
2171         (_M_clone(const _Alloc&, size_type)): Ditto.
2172
2173 2004-01-18  Paolo Carlini  <pcarlini@suse.de>
2174
2175         * include/bits/basic_string.h (c_str()): Simplify, due to
2176         21.3.4 the internal representation is always kept null-terminated.
2177         * include/bits/basic_string.tcc (_M_clone): Null-terminate.
2178         * testsuite/21_strings/basic_string/element_access/char/4.cc: New.
2179         * testsuite/21_strings/basic_string/element_access/wchar_t/4.cc:
2180         Ditto.
2181
2182 2004-01-18  Paolo Carlini  <pcarlini@suse.de>
2183
2184         * include/bits/basic_string.h (append(size_type, _CharT)):
2185         Moved inline, just call _M_replace_aux, no source iterators at
2186         risk of being clobbered.
2187         (assign(size_type, _CharT)): Call directly _M_replace_aux.
2188         (_M_replace(iterator, iterator, _InputIterator, _InputIterator,
2189         input_iterator_tag)): Remove fifth unused argument.
2190         (_M_replace_dispatch(iterator, iterator, _InputIterator,
2191         _InputIterator, __false_type)): Update call.
2192         * include/bits/basic_string.tcc (replace(size_type, size_type,
2193         const _CharT*, size_type)): Update call.
2194         (_M_replace_aux(iterator, iterator, size_type, _CharT)): Tweak
2195         throw string literal.
2196         (_M_replace_safe(iterator, iterator, _ForwardIterator,
2197         _ForwardIterator)): Likewise.
2198         (_M_replace(iterator, iterator, _InputIterator, _InputIterator,
2199         input_iterator_tag)): Remove fifth unused argument.
2200         (append(size_type __n, _CharT __c)): Move inline.
2201         * src/string-inst.cc (S::_M_replace(S::iterator, S::iterator,
2202         const C*, const C*, input_iterator_tag)): Remove fifth unused
2203         argument.
2204
2205 2004-01-16  Benjamin Kosnik  <bkoz@redhat.com>
2206
2207         * testsuite/ext/enc_filebuf/char/13189.cc: Fix guards.
2208         * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Same.
2209
2210 2004-01-16  Danny Smith  <dannysmith@users.sourceforge.net>
2211
2212         * testsuite/testsuite_hooks.cc (try_mkfifo): Avoid calling
2213         mkfifo for mingw32.
2214
2215 2004-01-15  Stefan Olsson  <stefan@snon.net>
2216
2217         * include/ext/mt_allocator.h: Reuse thread id's as soon as
2218         possible by changing the behaviour of thread_freelist to do
2219         push_front when threads die instead of push_back.
2220
2221 2004-01-14  Paolo Carlini  <pcarlini@suse.de>
2222
2223         * include/bits/locale_facets.h (struct __numpunct_cache):
2224         Add member _M_grouping_size, caching the length of _M_grouping.
2225         (__numpunct_cache<>::_M_cache): Assign the latter.
2226         (__verify_grouping): Move declaration...
2227         * include/bits/locale_facets.tcc (__verify_grouping):
2228         ... here, change signature to take a const char* and a size_t
2229         for the grouping; not a template anymore.
2230         (__add_grouping, num_put::_M_group_int, num_put::_M_group_float):
2231         Likewise change signature and tweak consistently.
2232         (num_get::_M_extract_float, num_get::_M_extract_int,
2233         num_put::_M_insert_int, num_put::_M_insert_float,
2234         money_get::do_get(string_type&), money_get::do_put(string_type)):
2235         Update callers.
2236         * config/locale/generic/numeric_members.cc
2237         (numpunct<>::_M_initialize_numpunct): Assign the new member.
2238         * config/locale/gnu/numeric_members.cc
2239         (numpunct<>::_M_initialize_numpunct): Likewise.
2240         * src/locale-inst.cc (__add_grouping): Tweak signature.
2241         (__verify_grouping): Don't instantiate, not a template anymore.
2242
2243         * include/bits/locale_facets.h: Rename _M_truename_len ->
2244         _M_truename_size, _M_falsename_len -> _M_falsename_size.
2245         * include/bits/locale_facets.tcc: Likewise.
2246         * config/locale/generic/numeric_members.cc: Likewise.
2247         * config/locale/gnu/numeric_members.cc: Likewise.
2248
2249 2004-01-14  Stefan Olsson  <stefan@snon.net>
2250
2251         * include/ext/mt_allocator.h: Fixups.
2252         * testsuite/performance/allocator.cc: Enable __mt_alloc tests.
2253         * testsuite/performance/allocator_thread.cc: Same.
2254
2255 2004-01-13  Benjamin Kosnik  <bkoz@redhat.com>
2256
2257         * testsuite/performance/ifstream_extract_float.cc: Add higher
2258         precision tests.
2259         * testsuite/performance/ofstream_insert_float.cc: Same.
2260
2261 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
2262
2263         * src/locale-misc-inst.cc (__convert_from_v(long),
2264         __convert_from_v(unsigned long), __convert_from_v(long long),
2265         __convert_from_v(unsigned long long)): Remove, unused.
2266
2267 2004-01-13  Benjamin Kosnik  <bkoz@redhat.com>
2268
2269         * testsuite/performance/ifstream_extract_float.cc: New.
2270         * testsuite/performance/ofstream_insert_float.cc: Float generation
2271         matches above.
2272
2273         * 20_util/auto_ptr.cc, auto_ptr_neg.cc: Break into...
2274         * 20_util/auto_ptr/1.cc: ...this.
2275         * 20_util/auto_ptr/2.cc: Same.
2276         * 20_util/auto_ptr/3.cc: Same.
2277         * 20_util/auto_ptr/3946.cc: Same.
2278         * 20_util/auto_ptr/4.cc: Same.
2279         * 20_util/auto_ptr/5.cc: Same.
2280         * 20_util/auto_ptr/6.cc: Same.
2281         * 20_util/auto_ptr/7.cc: Same.
2282         * 20_util/auto_ptr/assign_neg.cc
2283         * 20_util/pairs.cc: Break into...
2284         * 20_util/pair/1.cc: ...this.
2285         * 20_util/pair/2.cc: Same.
2286         * 20_util/pair/3.cc: Same.
2287         * 20_util/pair/4.cc: Same.
2288
2289 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
2290
2291         * include/bits/locale_facets.tcc (num_get::do_get(void*&)):
2292         Set correctly just basefield, the only group that matters.
2293
2294 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
2295
2296         * include/ext/rope (_Rope_rep_alloc_base): Eliminate.
2297         (_Rope_rep_base): Inherit directly from the rope allocator;
2298         use rebinding instead of _Alloc_traits; pick up data member
2299         from _Rope_rep_alloc_base.
2300         (_Rope_alloc_base): Eliminate.
2301         (_Rope_base): Inherit directly from the rope allocator; use
2302         rebinding instead of _Alloc_traits; pick up data member from
2303         _Rope_alloc_base.
2304         (rope::_S_new_RopeLeaf, rope::_S_new_RopeConcatenation,
2305         rope::_S_new_RopeFunction, rope::_S_new_RopeSubstring): Tweak.
2306
2307 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
2308
2309         PR libstdc++/13650
2310         * include/bits/basic_string.tcc (compare(size_type, size_type,
2311         const _CharT*, size_type)): Implement correctly the resolution
2312         of DR 5: basically, s is a char array, -not- a C string.
2313         * include/bits/basic_string.h: Tweak some comments.
2314         * testsuite/21_strings/basic_string/compare/char/13650.cc: New.
2315         * testsuite/21_strings/basic_string/compare/wchar_t/13650.cc: New.
2316
2317 2004-01-12  Andreas Tobler  <a.tobler@schweiz.ch>
2318
2319         * testsuite/lib/libstdc++.exp: Set LD_LIBRARY_PATH_32 for
2320         Solaris.
2321
2322 2004-01-12  Paolo Carlini  <pcarlini@suse.de>
2323
2324         * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc:
2325         Use try_mkfifo.
2326         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc:
2327         Likewise.
2328
2329 2004-01-12  Paolo Carlini  <pcarlini@suse.de>
2330
2331         * include/bits/locale_facets.h (struct __numpunct_cache):
2332         Add members _M_truename_len and _M_falsename_len, caching
2333         the lengths of _M_truename and _M_falsename.
2334         (__numpunct_cache<>::_M_cache): Assign the latter.
2335         * include/bits/locale_facets.tcc (num_get::do_get(bool&),
2336         num_put::do_put(bool)): Use the new members, thus avoiding
2337         computing string lengths again and again.
2338         * config/locale/generic/numeric_members.cc
2339         (numpunct<>::_M_initialize_numpunct): Assign the new members.
2340         * config/locale/gnu/numeric_members.cc
2341         (numpunct<>::_M_initialize_numpunct): Likewise.
2342
2343 2004-01-12  Mark Mitchell  <mark@codesourcery.com>
2344
2345         * testsuite/testsuite_hooks.h (__gnu_test::try_mkfifo): Declare it.
2346         * testsuite/testsuite_hooks.cc (__gnu_test::try_mkfifo): Define
2347         it.
2348         * testsuite/27_io/basic_filebuf/close/char/4879.cc: Use try_mkfifo
2349         and remove Cygwin XFAIL.
2350         * testsuite/27_io/basic_filebuf/close/char/9964.cc: Likewise.
2351         * testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc: Likewise.
2352         * testsuite/27_io/basic_filebuf/open/char/9507.cc: Likewise.
2353         * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc:
2354         Likewise.
2355         * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise.
2356         * testsuite/27_io/objects/char/7.cc: Likewise.
2357         * testsuite/27_io/objects/char/9661-1.cc: Likewise.
2358         * testsuite/27_io/objects/wchar_t/7.cc: Likewise.
2359         * testsuite/27_io/objects/wchar_t/9661-1.cc: Likewise.
2360
2361 2004-01-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2362
2363         * include/std/std_complex.h (std::complex<>::real): Return a
2364         reference. Add non-const overload.
2365         (std::complex<>::real): Likewise.
2366         (std::real): Likewise.
2367         (std::imag): Likewise.
2368         (std::operator+): Tidy.
2369         (std::operator-): Likewise.
2370         (std::operator*): Likewise.
2371         (std::operator/): Likewise.
2372         (std::operator>>): Likewise.
2373
2374 2004-01-11  Paolo Carlini  <pcarlini@suse.de>
2375
2376         PR libstdc++/13582
2377         * include/bits/fstream.tcc (imbue): Exploit the external
2378         buffer to imbue 'on the fly' a new locale and convert its
2379         remainder with the new codecvt facet.
2380         (underflow): Tweak slightly to deal with this special case.
2381         * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc: New.
2382         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc: Ditto.
2383         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Ditto.
2384         * testsuite/27_io/objects/wchar_t/13582-1_xin.cc: Ditto.
2385         * testsuite/27_io/objects/wchar_t/13582-1_xin.in: Ditto.
2386
2387 2004-01-10  Paolo Carlini  <pcarlini@suse.de>
2388
2389         * docs/html/ext/lwg-active.html, docs/html/ext/lwg-defects.html:
2390         Import Revision 28.
2391
2392 2004-01-10  Paolo Carlini  <pcarlini@suse.de>
2393
2394         PR libstdc++/13630
2395         * include/bits/locale_classes.h (class locale): Fix category
2396         typedef.
2397         * testsuite/22_locale/locale/13630.cc: Add.
2398
2399 2004-01-10  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
2400
2401         * include/bits/locale_facets.h: Make a name really dependent. This
2402         will be needed when Core Issue 224 is implemented.
2403
2404 2004-01-09  Paolo Carlini  <pcarlini@suse.de>
2405
2406         * testsuite/performance/allocator.cc: Demangle typeid(obj).name().
2407         * testsuite/performance/allocator_thread.cc: Likewise.
2408
2409 2004-01-07  Benjamin Kosnik  <bkoz@redhat.com>
2410
2411         * crossconfig.m4: Add LFS, io bits to linux cross config.
2412         * acconfig.h: Remove obsolete bits, reorder.
2413         * config.h.in: Regenerate.
2414         * aclocal.m4: Same.
2415         * configure: Same.
2416
2417 2004-01-07  Gawain Bolton  <gp.bolton@computer.org>
2418
2419         * include/bits/stl_list.h:
2420         * include/bits/list.tc:
2421         * src/list.cc:
2422         Performance enhancements for destructor, push_front(),
2423         push_back(), pop_front(), pop_back(), sort()
2424         Eliminated static_casts where possible.
2425         Moved code out of header files into new src/list.cc
2426         implementation file for library where possible.
2427         Remove inheritance from iterator class and create separate
2428         classes for non-constant and constant iterators.
2429         * include/bits/stl_tree.h (_Rb_tree class):
2430         * src/tree.cc:
2431         Only erase contents in destructor.
2432         Eliminate unnecessary initialization in assignment operator.
2433         Optimize for the nominal case by not checking whether
2434         container is empty in clear().
2435         Re-order test in _M_insert() to improve performance.
2436         Move initialization of new node's left & right pointers to
2437         src/tree.cc to where new node's colour is initialized
2438         and to reduce the amount of inline code.
2439         Use  _M_leftmost() and _M_end() to improve readability where
2440         appropriate.
2441         Create separate classes for non-constant and constant
2442         iterators to clarify code, avoid extra template parameters and
2443         casting away constness.
2444
2445 2004-01-07  Benjamin Kosnik  <bkoz@redhat.com>
2446
2447         * src/Makefile.am (sources): Add list.cc, tree.cc.
2448         * src/stl_tree.cc: Move to...
2449         * src/tree.cc: ...here.
2450         * src/list.cc: Add.
2451         * config/linker-map.gnu: Tweaks.
2452         * testsuite/23_containers/map/operators/1_neg.cc: Add excess errors.
2453         * testsuite/23_containers/set/operators/1_neg.cc: Add excess errors.
2454
2455         * bits/stl_vector.h: Column wrap comments.
2456
2457 2004-01-07  Loren J. Rittle  <ljrittle@acm.org>
2458
2459         (re-open) PR libstdc++/12658
2460         * src/locale_init.cc (locale::locale): Remove ill-scoped mutex.
2461         (locale::global): Likewise.
2462
2463 2004-01-07  Paolo Carlini  <pcarlini@suse.de>
2464
2465         * testsuite/27_io/basic_istream/extractors_other/char/9318-in.cc:
2466         Remove redundant #include.
2467         * testsuite/27_io/basic_ostream/endl/char/1.cc: Likewise.
2468         * testsuite/27_io/basic_ostream/ends/char/1.cc: Likewise,
2469         re-enable normal testing.
2470         * testsuite/27_io/basic_ostream/ends/char/2.cc: Remove redundant
2471         #include.
2472         * testsuite/27_io/basic_ostream/flush/char/1.cc: Likewise.
2473         * testsuite/27_io/basic_ostream/inserters_character/char/1.cc:
2474         Likewise.
2475         * testsuite/27_io/basic_ostream/inserters_character/char/2.cc:
2476         Likewise.
2477         * testsuite/27_io/basic_ostream/inserters_character/char/3.cc:
2478         Likewise.
2479         * testsuite/27_io/basic_ostream/inserters_character/char/4.cc:
2480         Likewise.
2481         * testsuite/27_io/basic_ostream/inserters_character/char/5.cc:
2482         Likewise.
2483         * testsuite/27_io/basic_ostream/inserters_character/char/6.cc:
2484         Likewise.
2485         * testsuite/27_io/basic_ostream/inserters_character/char/8.cc:
2486         Likewise.
2487         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/7.cc:
2488         More properly, #include <locale>.
2489         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/8.cc:
2490         Remove redundant #include.
2491         * testsuite/27_io/basic_ostream/inserters_other/char/2.cc: Likewise.
2492         * testsuite/27_io/basic_ostream/inserters_other/char/3.cc: Remove
2493         redundant DejaGnu directive.
2494         * testsuite/27_io/basic_ostream/inserters_other/char/4.cc: Remove
2495         redundant #include.
2496
2497 2004-01-06  Benjamin Kosnik  <bkoz@redhat.com>
2498             Stefan Olsson  <stefan@snon.net>
2499
2500         * scripts/check_performance: Use -pthread.
2501         * testsuite/performance/allocator.cc: Tweaks, add list.
2502         * testsuite/performance/allocator_thread.cc: New.
2503
2504 2004-01-06  Jerry Quinn  <jlquinn@optonline.net>
2505
2506         * include/bits/locale_facets.h: Document public classes and
2507         functions.
2508         * include/bits/locale_facets.tcc (time_get::_M_extract_via_format):
2509         Add comment.
2510
2511 2004-01-06  Paolo Carlini  <pcarlini@suse.de>
2512
2513         * testsuite/27_io/basic_istream/extractors_other/char/1.cc:
2514         Remove redundant #includes.
2515         * testsuite/27_io/basic_istream/extractors_other/char/2.cc:
2516         Likewise.
2517         * testsuite/27_io/basic_istream/extractors_other/char/3.cc:
2518         Likewise.
2519         * testsuite/27_io/basic_istream/get/char/1.cc: Likewise.
2520         * testsuite/27_io/basic_istream/get/char/2.cc: Likewise.
2521         * testsuite/27_io/basic_istream/getline/char/1.cc: Likewise.
2522         * testsuite/27_io/basic_istream/getline/char/2.cc: Likewise.
2523         * testsuite/27_io/basic_istream/getline/char/3.cc: Likewise.
2524         * testsuite/27_io/basic_istream/ignore/char/1.cc: Likewise.
2525         * testsuite/27_io/basic_istream/ignore/char/6360.cc: Likewise.
2526         * testsuite/27_io/basic_istream/ignore/char/7220.cc: Likewise.
2527         * testsuite/27_io/basic_istream/peek/char/1.cc: Likewise.
2528         * testsuite/27_io/basic_istream/peek/char/6414.cc: Likewise.
2529         * testsuite/27_io/basic_istream/putback/char/1.cc: Likewise.
2530         * testsuite/27_io/basic_istream/read/char/1.cc: Likewise.
2531         * testsuite/27_io/basic_istream/read/char/2.cc: Likewise.
2532         * testsuite/27_io/basic_istream/read/char/3.cc: Likewise.
2533         * testsuite/27_io/basic_istream/readsome/char/6746-1.cc:
2534         Likewise.
2535         * testsuite/27_io/basic_istream/readsome/char/6746-2.cc:
2536         Likewise.
2537         * testsuite/27_io/basic_istream/readsome/char/8258.cc:
2538         Likewise.
2539         * testsuite/27_io/basic_istream/seekg/char/2346-fstream.cc:
2540         Likewise.
2541         * testsuite/27_io/basic_istream/seekg/char/2346-sstream.cc:
2542         Likewise.
2543         * testsuite/27_io/basic_istream/seekg/char/8348-1.cc: Likewise.
2544         * testsuite/27_io/basic_istream/seekg/char/8348-2.cc: Likewise.
2545         * testsuite/27_io/basic_istream/tellg/char/8348.cc: Likewise.
2546
2547 2004-01-04  Paolo Carlini  <pcarlini@suse.de>
2548
2549         * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc:
2550         Remove redundant #includes.
2551         * testsuite/27_io/basic_istream/extractors_arithmetic/char/02.cc:
2552         Likewise.
2553         * testsuite/27_io/basic_istream/extractors_arithmetic/char/03.cc:
2554         Likewise.
2555         * testsuite/27_io/basic_istream/extractors_arithmetic/char/06.cc:
2556         Likewise.
2557         * testsuite/27_io/basic_istream/extractors_arithmetic/char/07.cc:
2558         Likewise.
2559         * testsuite/27_io/basic_istream/extractors_arithmetic/char/08.cc:
2560         Likewise.
2561         * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc:
2562         Likewise.
2563         * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
2564         Likewise.
2565         * testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc:
2566         Likewise.
2567         * testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc:
2568         Likewise.
2569         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/1.cc:
2570         Likewise.
2571         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc:
2572         Likewise.
2573         * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/1.cc:
2574         Likewise.
2575
2576 2004-01-04  Mark Mitchell  <mark@codesourcery.com>
2577
2578         PR c++/12226
2579         * testsuite/27_io/basic_filebuf/4.cc: Remove use of invalid copy
2580         constructor.
2581         * testsuite/27_io/basic_fstream/4.cc: Likewise.
2582         * testsuite/27_io/basic_ifstream/4.cc: Likewise.
2583         * testsuite/27_io/basic_ios/4.cc: Likewise.
2584         * testsuite/27_io/basic_iostream/4.cc: Likewise.
2585         * testsuite/27_io/basic_istream/4.cc: Likewise.
2586         * testsuite/27_io/basic_istingstream/4.cc: Likewise.
2587         * testsuite/27_io/basic_ofstream/4.cc: Likewise.
2588         * testsuite/27_io/basic_ostream/4.cc: Likewise.
2589         * testsuite/27_io/basic_ostringstream/4.cc: Likewise.
2590         * testsuite/27_io/basic_stringbuf/5.cc: Likewise.
2591         * testsuite/27_io/basic_stringstream/4.cc: Likewise.
2592
2593 2004-01-04  Paolo Carlini  <pcarlini@suse.de>
2594
2595         * config/locale/generic/numeric_members.cc (_M_initialize_numpunct):
2596         Avoid unnecessarily zero terminating _M_atoms_out and _M_atoms_in;
2597         always use double underscored names.
2598         * config/locale/gnu/numeric_members.cc (_M_initialize_numpunct):
2599         Likewise.
2600         * include/bits/locale_facets.h (struct __numpunct_cache):
2601         Dimension _M_atoms_out and _M_atoms_in one position smaller.
2602         (__numpunct_cache<>::_M_cache): Don't zero terminate _M_atoms_out
2603         and _M_atoms_in.