OSDN Git Service

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