OSDN Git Service

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