OSDN Git Service

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