OSDN Git Service

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