OSDN Git Service

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