OSDN Git Service

* cpu/hppa/atomicity.h (__exchange_and_add, __atomic_add): Add memory
[pf3gnuchains/gcc-fork.git] / libstdc++-v3 / ChangeLog
1 2004-08-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2
3         * cpu/hppa/atomicity.h (__exchange_and_add, __atomic_add): Add memory
4         barrier to locking asm.
5
6 2004-08-20  Paolo Carlini  <pcarlini@suse.de>
7
8         * include/c_std/cmath.tcc (__cmath_power): Revert previous commit:
9         actually the warning is a front-end bug (c++/17120).
10
11 2004-08-20  Matthias Klose  <doko@debian.org>
12
13         * config/abi/s390-linux-gnu/baseline_symbols.txt: New.
14
15 2004-08-20  Paolo Carlini  <pcarlini@suse.de>
16
17         * include/c_std/cmath.tcc (__cmath_power): Suppress assignment
18         used as truth value warning.
19
20 2004-08-20  Paolo Carlini  <pcarlini@suse.de>
21
22         * config/abi/x86_64-linux-gnu/32/baseline_symbols.txt: Add 32 bit
23         baseline.
24
25 2004-08-20  Paolo Carlini  <pcarlini@suse.de>
26
27         * config/abi/x86_64-linux-gnu/baseline_symbols.txt: Fix it.
28
29 2004-08-19  Benjamin Kosnik  <bkoz@redhat.com>
30
31         * testsuite/22_locale/time_put/put/char/3.cc (test03): Don't check
32         timezone.
33         * testsuite/22_locale/time_put/put/wchar_t/3.cc (test03): Same.
34
35 2004-08-19  Paolo Carlini  <pcarlini@suse.de>
36
37         * testsuite/performance/20_util/allocator/insert.cc: For std::map
38         instantiate the allocator for a correct pair type.
39         * testsuite/performance/20_util/allocator/insert_insert.cc: Likewise.
40         * testsuite/performance/20_util/allocator/map_thread.cc: Likewise.
41         * testsuite/performance/20_util/allocator/producer_consumer.cc:
42         Likewise.
43
44         * testsuite/performance/20_util/allocator/list_sort_search.cc: Very
45         minor formatting fixes.
46         * testsuite/performance/20_util/allocator/map_mt_find.cc: Likewise.
47
48 2004-08-19  Paolo Carlini  <pcarlini@suse.de>
49
50         * testsuite/22_locale/time_put/put/char/1.cc: Add VERIFY on the
51         results.
52         * testsuite/22_locale/time_put/put/char/2.cc: Likewise.
53         * testsuite/22_locale/time_put/put/char/3.cc: Likewise.
54         * testsuite/22_locale/time_put/put/char/4.cc: Likewise.
55         * testsuite/22_locale/time_put/put/wchar_t/1.cc: Likewise.
56         * testsuite/22_locale/time_put/put/wchar_t/2.cc: Likewise.
57         * testsuite/22_locale/time_put/put/wchar_t/3.cc: Likewise.
58         * testsuite/22_locale/time_put/put/wchar_t/4.cc: Likewise.
59  
60 2004-08-19  Paolo Carlini  <pcarlini@suse.de>
61
62         * config/abi/x86_64-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
63
64 2004-08-18  Matthias Klose  <doko@debian.org>
65
66         * config/abi/hppa-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
67         * config/abi/i386-linux-gnu/baseline_symbols.txt: New.
68         * config/abi/powerpc-linux-gnu/baseline_symbols.txt: New.
69
70 2004-08-17  Paolo Carlini  <pcarlini@suse.de>
71
72         * config/abi/alpha-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
73
74 2004-08-17  Paolo Carlini  <pcarlini@suse.de>
75
76         * config/abi/ia64-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
77
78 2004-08-17  Benjamin Kosnik  <bkoz@redhat.com>
79
80         * config/abi/i486-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
81
82 2004-08-16  Paolo Carlini  <pcarlini@suse.de>
83
84         * include/bits/indirect_array.h: Trivial formatting fixes.
85         * include/bits/valarray_after.h: Likewise.
86         * include/bits/valarray_array.h: Likewise.
87         * src/valarray-inst.cc: Likewise.
88
89 2004-08-15  Paolo Carlini  <pcarlini@suse.de>
90
91         * testsuite/27_io/basic_stringstream/rdbuf/char/2832.cc: Remove junk.
92         * testsuite/27_io/basic_stringstream/str/char/1.cc: Likewise.
93         * testsuite/27_io/basic_stringstream/str/char/3.cc: Likewise.
94
95         * testsuite/27_io/basic_stringstream/rdbuf/wchar_t/2832.cc: New.
96         * testsuite/27_io/basic_stringstream/str/wchar_t/1.cc: Likewise.
97         * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc: Likewise.
98         * testsuite/27_io/basic_stringstream/str/wchar_t/3.cc: Likewise.
99         * testsuite/27_io/basic_stringstream/str/wchar_t/4.cc: Likewise.
100
101 2004-08-15  Paolo Carlini  <pcarlini@suse.de>
102
103         * include/bits/deque.tcc: Trivial formatting fixes.
104
105 2004-08-15  Paolo Carlini  <pcarlini@suse.de>
106
107         * include/bits/deque.tcc: Trivial formatting fixes.
108
109         * include/bits/locale_facets.tcc (num_get<>::do_get(&bool)):
110         Remove unneded typedef.
111
112         * include/bits/locale_facets.tcc: Very minor tweaks.
113
114         * testsuite/22_locale/time_put/put/wchar_t/1.cc: Use proper
115         type for the fill argument.
116         * testsuite/22_locale/time_put/put/wchar_t/10.cc: Likewise.
117         * testsuite/22_locale/time_put/put/wchar_t/2.cc: Likewise.
118         * testsuite/22_locale/time_put/put/wchar_t/3.cc: Likewise.
119         * testsuite/22_locale/time_put/put/wchar_t/4.cc: Likewise.
120         * testsuite/22_locale/time_put/put/wchar_t/5.cc: Likewise.
121         * testsuite/22_locale/time_put/put/wchar_t/6.cc: Likewise.
122         * testsuite/22_locale/time_put/put/wchar_t/7.cc: Likewise.
123         * testsuite/22_locale/time_put/put/wchar_t/8.cc: Likewise.
124
125 2004-08-13  Paolo Carlini  <pcarlini@suse.de>
126         
127         * src/debug.cc (_Error_formatter::_M_print_string): Fix thinko,
128         memmove is not needed, memcpy suffices.
129
130 2004-08-13  Paolo Carlini  <pcarlini@suse.de>
131
132         * include/std/std_fstream.h (class basic_ifstream,
133         class basic_ofstream, class basic_fstream): Add const overloads
134         of is_open, as per DR 365 [WP].
135         * docs/html/ext/howto.html: Add an entry for DR 365.
136
137 2004-08-12  Paolo Carlini  <pcarlini@suse.de>
138
139         * configure.ac: Specify version 1.8.5 in AM_INIT_AUTOMAKE.
140
141 2004-08-12  Paolo Carlini  <pcarlini@suse.de>
142
143         PR libstdc++/16956
144         * include/bits/sstream.tcc (basic_stringbuf<>::seekoff): Add __off
145         to the returned value, reorganize a bit.
146         * testsuite/27_io/basic_stringbuf/seekoff/char/16956.cc: New.
147         * testsuite/27_io/basic_stringbuf/seekoff/wchar_t/16956.cc: New.
148
149         * testsuite/27_io/basic_stringbuf/seekoff/char/1.cc: Remove junk.
150         * testsuite/27_io/basic_stringbuf/seekoff/wchar_t/1.cc: Likewise.
151         * testsuite/27_io/basic_stringbuf/seekpos/char/1.cc: Likewise.
152         * testsuite/27_io/basic_stringbuf/seekpos/wchar_t/1.cc: Likewise.
153
154 2004-08-12  Paul Brook  <paul@codesourcery.com>
155
156         * config/cpu/arm/cxxabi_tweaks.h: Define __cxa_vec_ctor_return and
157         _GLIBCXX_CXA_VEC_CTOR_RETURN.
158         * config/cpu/generic/cxxabi_tweaks.h: Ditto.
159         * libsupc++/cxxabi.h (__cxa_vec_ctor, __cxa_vec_cctor): Use
160         __cxa_vec_ctor_return.
161         * libsupc++/vec.cc (__cxa_vec_ctor, __cxa_vec_cctor): Ditto.
162         Use _GLIBCXX_CXA_VEC_CTOR_RETURN.
163
164 2004-08-12  Kelley Cook  <kcook@gcc.gnu.org>
165
166         * Makefile.in, aclocal.m4, configure, include/Makefile.in,
167         libmath/Makefile.in, libsupc++/Makefile.in, po/Makefile.in,
168         src/Makefile.in, testsuite/Makefile.in: Regenerate
169
170 2004-08-12  Jan Beulich  <jbeulich@novell.com>
171
172         * config/locale/generic/ctype_members.cc
173         (ctype<wchar_t>::_M_convert_to_wmask): Default case must not use 0 as
174         initializer for return value, as that is invalid for enumerated types.
175         * config/locale/gnu/ctype_members.cc
176         (ctype<wchar_t>::_M_convert_to_wmask): Likewise.
177
178 2004-08-11  Paolo Carlini  <pcarlini@suse.de>
179
180         * testsuite/27_io/basic_stringbuf/sbumpc/wchar_t/1.cc: Fix typo.
181
182 2004-08-11  Paolo Carlini  <pcarlini@suse.de>
183         
184         * testsuite/27_io/basic_stringbuf/imbue/char/1.cc: Declare test
185         variable.
186         * testsuite/27_io/basic_stringbuf/imbue/wchar_t/1.cc: Ditto.
187         * testsuite/27_io/basic_stringbuf/in_avail/char/1.cc: Remove junk.
188         * testsuite/27_io/basic_stringbuf/in_avail/wchar_t/1.cc: Ditto.
189         * testsuite/27_io/basic_stringbuf/sbumpc/char/1.cc: Ditto.
190         * testsuite/27_io/basic_stringbuf/sbumpc/wchar_t/1.cc: Ditto.
191         * testsuite/27_io/basic_stringbuf/setbuf/char/1.cc: Ditto.
192         * testsuite/27_io/basic_stringbuf/setbuf/wchar_t/1.cc: Ditto.
193         * testsuite/27_io/basic_stringbuf/sgetc/char/1.cc: Ditto.
194         * testsuite/27_io/basic_stringbuf/sgetc/wchar_t/1.cc: Ditto.
195         * testsuite/27_io/basic_stringbuf/sgetn/char/1.cc: Ditto.
196         * testsuite/27_io/basic_stringbuf/sgetn/wchar_t/1.cc: Ditto.
197         * testsuite/27_io/basic_stringbuf/snextc/char/1.cc: Ditto.
198         * testsuite/27_io/basic_stringbuf/snextc/wchar_t/1.cc: Ditto.
199         * testsuite/27_io/basic_stringbuf/sputbackc/char/1.cc: Ditto.
200         * testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/1.cc: Ditto.
201         * testsuite/27_io/basic_stringbuf/sputc/char/1.cc: Ditto.
202         * testsuite/27_io/basic_stringbuf/sputc/wchar_t/1.cc: Ditto.
203         * testsuite/27_io/basic_stringbuf/sputn/char/1.cc: Ditto.
204         * testsuite/27_io/basic_stringbuf/sputn/wchar_t/1.cc: Ditto.
205         * testsuite/27_io/basic_stringbuf/sungetc/char/1.cc: Ditto.
206         * testsuite/27_io/basic_stringbuf/sungetc/wchar_t/1.cc: Ditto.
207
208 2004-08-11  Paolo Carlini  <pcarlini@suse.de>
209             Petur Runolfsson  <peturr02@ru.is>
210
211         PR libstdc++/16959
212         * src/ios_init.cc (ios_base::sync_with_stdio): Make sure the
213         standard streams are constructed.
214         * testsuite/27_io/ios_base/sync_with_stdio/16959.cc: New.
215
216 2004-08-09  Paolo Carlini  <pcarlini@suse.de>
217
218         * include/bits/stl_bvector.h: Trivial formatting fixes.
219
220 2004-08-09  Paolo Carlini  <pcarlini@suse.de>
221
222         * src/ios.cc (ios_base::_M_grow_words): Uglify the names.
223
224 2004-08-07  Jonathan Wakely  <redi@gcc.gnu.org>
225             Paolo Carlini  <pcarlini@suse.de>
226         
227         * src/debug.cc (_Error_formatter::_M_print_string): In order
228         to print individual words from __string, _M_format_word can't
229         be called since may be just sprintf, thus ignoring completely
230         __n: instead, use memmove and append '\0' by hand.
231
232 2004-08-07  Paolo Carlini  <pcarlini@suse.de>
233
234         * config/locale/generic/c_locale.h (__convert_from_v): Don't
235         use a default for __prec, assume __prec >= 0 and simplify.
236         * config/locale/gnu/c_locale.h (__convert_from_v): Likewise.
237         * include/bits/locale_facets.tcc (money_put<>::do_put(long double)):
238         Pass format "%.*Lf" + precision == 0, equivalent to "%.0Lf".
239
240 2004-08-04  Phil Edwards  <phil@codesourcery.com>
241
242         * docs/html/configopts.html:  Emphasize that options change.
243         * docs/html/17_intro/configury.html:  Update links.
244
245 2004-08-03  Paolo Carlini  <pcarlini@suse.de>
246
247         * include/bits/list.tcc: Trivial formatting fixes.
248
249 2004-08-03  Mark Mitchell  <mark@codesourcery.com>
250
251         * libsupc++/new_op.cc: Update comments.
252         * libsupc++/del_op.cc: Likewise.
253
254 2004-08-02  Mark Mitchell  <mark@codesourcery.com>
255
256         * libsupc++/cxxabi.h: Make all declarations have default
257         visibility.
258         * libsupc++/exception: Likewise.
259         * libsupc++/new: Likewise.
260         * libsupc++/typeinfo: Likewise.
261         * libsupc++/unwind-cxx.h: Likewise.
262         * libsupc++/eh_alloc.cc (__cxa_allocate_exception): Put it into
263         the __cxxabiv1 namespace.
264         (__cxa_free_exception): Likewise.
265         * libsupc++/eh_aux_runtime.cc (__cxa_bad_cast): Likewise.
266         (__cxa_bad_typeid): Likewise.
267         * libsupc++/eh_catch.cc (__cxa_begin_catch): Likewise.
268         (__cxa_end_catch): Likewise.
269         * libsupc++/eh_globals.cc (__cxa_get_globals_fast): Likewise.
270         (__cxa_get_globals): Likewise.
271         * libsupc++/eh_throw.cc (__cxa_throw): Likewise.
272         (__cxa_rethrow): Likewise.
273         * libsupc++/pure.cc (__cxa_pure_virtual): Likewise.
274         * libsupc++/eh_type.cc: Include <cxxabi.h>.
275
276         * Makefile.am (hosted_source): Add libmath and testsuite.
277         (SUBDIRS): Remove them.
278         * acinclude.m4: (GLIBCXX_ENABLED_HOSTED): Default to freestanding
279         on arm*-*-symbianelf*.
280         * crossconfig.m4: Add arm*-*-symbianelf* support.
281         * include/c_std/std/std_cstdlib.h (stdlib.h): Do not include it
282         when freestanding.  Do not bring names into std:: namespace with
283         "using" when freestanding.  Declare required functions and macros
284         when freestanding. 
285         * libsupc++/Makefile.am (c_sources): Do not include cp-demangle.c
286         when freestanding.
287         * libsupc++/del_op.cc: Declare "free" only when freestanding.
288         * libsupc++/eh_alloc.cc (cstring): Include it only when hosted.
289         (malloc): Declare when freestanding.
290         (free): Likewise.
291         (memset): Likewise.
292         (__cxa_allocate_exception): Call malloc, not std::malloc.  Likewise
293         for memset.
294         (__cxa_free_exception): Likewise for free.
295         * libsupc++/new_op.cc: Declare "malloc" when freestanding.
296         * libsupc++/pure.cc (writestr): Define to nothing when
297         freestanding.
298         * libsupc++/vterminate.cc: Do not define anything when
299         freestanding.
300         * Makefile.in: Regenerated.
301         * aclocal.m4: Likewise.
302         * configure: Likewise.
303         * include/Makefile.in: Likewise.
304         * libmath/Makefile.in: Likewise.
305         * libsupc++/Makefile.in: Likewise.
306         * po/Makefile.in: Likewise.
307         * src/Makefile.in: Likewise.
308         * testsuite/Makefile.in: Likewise.
309         
310 2004-08-01  Matt Austern  <austern@apple.com>
311
312         PR libstdc++/16844
313         * include/bits/stl_list.h (_M_create_node): Remove unused 
314         zero-argument version.
315         * include/ext/slist (_M_create_node): Pass two arguments to
316         allocator's construct() member function.
317         * testsuite/23_containers/deque/explicit_instantiation.cc: New.
318         * testsuite/23_containers/list/explicit_instantiation.cc: New.
319         * testsuite/23_containers/vector/explicit_instantiation.cc: New.
320         * testsuite/23_containers/map/explicit_instantiation.cc: New.
321         * testsuite/23_containers/set/explicit_instantiation.cc: New.
322         * testsuite/23_containers/multimap/explicit_instantiation.cc: New.
323         * testsuite/23_containers/multiset/explicit_instantiation.cc: New.
324         * testsuite/ext/hash_set_explicit_instantiation.cc: New.
325         * testsuite/ext/slist_explicit_instantiation.cc: New.
326         
327 2004-07-30  Paolo Carlini  <pcarlini@suse.de>
328
329         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
330         num_get<>::_M_extract_int): In the main parsing loop delay the
331         life of __q to the actual use point.
332
333 2004-07-29  Paolo Carlini  <pcarlini@suse.de>
334
335         PR libstdc++/14220
336         * include/bits/locale_facets.tcc (num_put<>::_M_insert_float):
337         Don't clip the precision passed down to __convert_from_v:
338         22.2.2.2.2 nowhere says so.
339         * testsuite/22_locale/num_put/put/char/14220.cc: New.
340         * testsuite/22_locale/num_put/put/wchar_t/14220.c: Likewise.
341
342 2004-07-29  Paolo Carlini  <pcarlini@suse.de>
343
344         * docs/html/ext/lwg-active.html, lwg-defects.html: Import Revision 31.
345
346 2004-07-29  Paolo Carlini  <pcarlini@suse.de>
347             Petur Runolfsson  <peturr02@ru.is>
348
349         PR libstdc++/12658 (continued)
350         * src/locale_init.cc (locale::locale, locale::global): Use
351         a single locale_mutex instead of two separate mutexes.
352
353 2004-07-29  Paolo Carlini  <pcarlini@suse.de>
354
355         PR libstdc++/16813
356         * include/debug/map.h (insert(_InputIterator, _InputIterator)):
357         Fix typo.
358         * testsuite/23_containers/map/insert/16813.cc: New.
359
360 2004-07-29  Phil Edwards  <phil@codesourcery.com>
361
362         * docs/html/faq/index.html:  Update version references.  Make
363         clear that code from SGI has diverged greatly.  Remove references
364         to library snapshots and what's-new sections.
365         * docs/html/faq/index.txt:  Regenerate.
366
367 2004-07-28  Matt Austern  <austern@apple.com>
368
369         * include/bits/stl_construct.h (_Destroy): New three-argument
370         overload that takes an allocator argument.  Another inline
371         three-argument overload that takes std::allocator and dispatches
372         to the two-argument version.
373         * include/bits/stl_uninitialized.h (__uninitialized_fill_n_aux):
374         Change return type to void to match uninitialized_fill_n.
375         (__uninitialized_copy_a_): New function.  Like uninitialized_copy
376         except that it takes an allocator and uses it for construct and
377         destroy.  If the allocator is std::allocator, dispatches to
378         uninitialized_copy.
379         (__uninitialized_fill_a): Likewise.
380         (__uninitialized_fill_n_a): Likewise.
381         (__uninitialized_copy_copy): Give it an allocator argument.
382         (__uninitialized_fill_copy): Likewise.
383         (__uninitialized_copy_fill): Likewise.
384         * include/bits/deque.tcc: Use new forms defined in stl_construct.h
385         and stl_uninitialized.h.  Replace use of single-argument _Construct
386         and _Destroy with use of allocator's construct and destroy methods.
387         * include/bits/list.tcc: Likewise.
388         * include/bits/stl_deque.h: Likewise.
389         * include/bits/stl_list.h: Likewise.
390         * include/bits/stl_tree.h: Likewise.
391         * include/bits/stl_vector.h: Likewise.
392         * include/bits/vector.tcc: Likewise.
393         * include/ext/hashtable.h: Use rebind so that allocator_type
394         has correct type for a container's allocator.  Replace use of 
395         single-argument _Construct and _Destroy with use of allocator's 
396         construct and destroy methods.
397         * include/ext/memory (__uninitialized_copy_n_a): New function.
398         Like uninitialized_copy_n except that it takes an extra parameter,
399         an allocator, and uses it for construct and destroy operations.
400         * include/ext/rope: Use new forms defined in stl_construct.h,
401         stl_uninitialized.h, and ext/memory.  Replace use of single-argument 
402         _Construct and _Destroy with allocator construct and destroy methods.
403         * include/ext/ropeimpl.h: Likewise.
404         * include/ext/slist.h: Likewise.
405         * testsuite/testsuite_allocator.h (check_construct_destroy): New.
406         * testsuite/testsuite_allocator.cc (check_construct_destroy): New.
407         * testsuite/23_containers/deque/check_construct_destroy.cc: New.
408         * testsuite/23_containers/list/check_construct_destroy.cc: New.
409         * testsuite/23_containers/set/check_construct_destroy.cc: New.  
410         * testsuite/23_containers/vector/check_construct_destroy.cc: New. 
411         * testsuite/ext/hash_check_construct_destroy.cc: New.
412         * testsuite/ext/slist_check_construct_destroy.cc: New.
413         
414 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
415
416         2003-10-01  Eric Christopher  <echristo@redhat.com>
417         * config/cpu/sh/atomicity.h (__exchange_and_add): Remove 'm'
418         constraint.
419         2003-07-09  Alexandre Oliva  <aoliva@redhat.com>
420         * config/cpu/sh/atomicity.h: New.  Use movli and movco on SH4a.
421
422 2004-07-23  Benjamin Kosnik  <bkoz@redhat.com>
423
424         PR libstdc++/16678
425         * include/bits/locale_facets.tcc: Fix for -Werror.
426
427 2004-07-23  Jonathan Wakely  <redi@gcc.gnu.org>
428
429         * docs/html/debug.html: Say debug mode only available since 3.4.0.
430
431 2004-07-21  Benjamin Kosnik  <bkoz@redhat.com>
432
433         * docs/doxygen/mainpage.html: Clarify links.
434         * docs/doxygen/stdheader.cc: Add files.
435         * docs/doxygen/style.css: Remove bolds, add h2, h3 styles.
436         * docs/doxygen/user.cfg.in: New options, wrap.
437
438 2004-07-20  Danny Smith  <dannysmith@users.sourceforge.net>
439
440         * include/c_std/std_cwchar.h (wcsstr): Correct signature.
441
442 2004-07-19  Benjamin Kosnik  <bkoz@redhat.com>
443
444         PR libstdc++/15488
445         * testsuite/lib/libstdc++.exp (v3-copy-files): Revert.
446
447 2004-07-17  Richard Sandiford  <rsandifo@redhat.com>
448
449         PR bootstrap/16469
450         * scripts/create_testsuite_files: Pass -print to find.
451
452 2004-07-15  Paolo Carlini  <pcarlini@suse.de>
453
454         * docs/html/ext/lwg-active.html, lwg-defects.html: Import Revision 30.
455         * docs/html/ext/howto.html: Tweak entries for DRs 167/253/389/402.
456
457 2004-07-15  Jakub Jelinek  <jakub@redhat.com>
458
459         PR libstdc++/14697
460         * acinclude.m4 (glibcxx_shared_libgcc): Correct
461         glibcxx_shared_libgcc test for multilibs.
462         * configure: Rebuilt.
463
464 2004-07-14  Paolo Carlini  <pcarlini@suse.de>
465
466         PR libstdc++/16505
467         * include/bits/stl_uninitialized.h (uninitialized_fill_n): Fix
468         the signature to return void, as per 20.4.4.3.
469         * include/bits/stl_vector.h (vector::vector(size_type,
470         const value_type&, const allocator_type&), vector::vector(size_type),
471         vector::_M_initialize_dispatch): Adjust callers.
472         * include/bits/vector.tcc (vector<>::_M_fill_assign,
473         vector<>::_M_fill_insert): Likewise.
474         * testsuite/20_util/memory/16505.cc: New.
475
476 2004-07-14  Paolo Carlini  <pcarlini@suse.de>
477
478         * testsuite/22_locale/locale/cons/12658_thread-1.cc,
479         12658_thread-2.cc: Use __gnu_test::try_named_locale.
480
481 2004-07-13  Benjamin Kosnik  <bkoz@redhat.com>
482
483         * docs/html/ext/mt_allocator.html: Add docs for _Tune.
484         * include/ext/mt_allocator.h (__mt_alloc::_S_get_options): Make public.
485         (__mt_alloc::_S_set_options): Same.
486         Add to comments.
487
488 2004-07-13  Benjamin Kosnik  <bkoz@redhat.com>
489
490         * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Add allocator defaults
491         for linux.
492         * configure: Regenerated.
493
494 2004-07-13  Paolo Carlini  <pcarlini@suse.de>
495
496         * testsuite/22_locale/locale/cons/12658_thread.cc: Move/rename
497         to 12658_thread-1.cc and xfail.
498         * testsuite/22_locale/locale/cons/12658_thread-2.c: New, much
499         simpler version of 12658_thread-1.cc, still failing on 3_3 and
500         not failing on 3_4/mainline - both on single processor and
501         multiprocessor machines.
502
503 2004-07-12  Benjamin Kosnik  <bkoz@redhat.com>
504
505         * docs/html/abi.html: Remove non-public qualification.
506
507         * include/bits/concurrence.h: Tweak comments.
508
509 2004-07-11  Paolo Carlini  <pcarlini@suse.de>
510
511         Add wchar_t counterparts of the basic_streambbuf<char> tests.
512         * testsuite/27_io/basic_streambuf/cons/wchar_t/1.cc: New.
513         * testsuite/27_io/basic_streambuf/imbue/wchar_t/1.cc, 9322.cc:
514         Likewise.
515         * testsuite/27_io/basic_streambuf/in_avail/wchar_t/9701-3.cc: Likewise.
516         * testsuite/27_io/basic_streambuf/overflow/wchar_t/1.cc, 2.cc,
517         3599.cc: Likewise.
518         * testsuite/27_io/basic_streambuf/sgetc/wchar_t/1.cc: Likewise.
519         * testsuite/27_io/basic_streambuf/sgetn/wchar_t/1.cc: Likewise.
520         * testsuite/27_io/basic_streambuf/sputbackc/wchar_t/9538.cc: Likewise.
521         * testsuite/27_io/basic_streambuf/sputc/wchar_t/1057.cc: Likewise.
522         * testsuite/27_io/basic_streambuf/sputn/wchar_t/1.cc, 1057.cc:
523         Likewise.
524         * testsuite/27_io/basic_streambuf/sync/wchar_t/1057.cc: Likewise.
525
526         * testsuite/27_io/basic_streambuf/imbue/char/1.cc, 9322.cc: Minor
527         tweaks.
528         * testsuite/27_io/basic_streambuf/overflow/char/2.cc, 3599.cc:
529         Likewise.
530         * testsuite/27_io/basic_streambuf/sputn/char/1057.cc: Likewise.
531         * testsuite/27_io/basic_streambuf/sync/char/1057.cc: Likewise.
532
533 2004-07-11  Phil Edwards  <phil@codesourcery.com>
534
535         * acinclude.m4:  Cosmetic shell syntax fixes.
536         * configure.ac:  Bring comment inline with reality.
537         * configure.host:  Both of the above.  Move 'arm' case to right
538         place in host_cpu switch.
539         * aclocal.m4, configure:  Regenerate.
540
541 2004-07-09  Paolo Carlini  <pcarlini@suse.de>
542
543         Add wchar_t counterparts of the basic_stringbuf<char> tests.
544         * testsuite/27_io/basic_stringbuf/imbue/wchar_t/1.cc, 9322.cc: New.
545         * testsuite/27_io/basic_stringbuf/in_avail/wchar_t/1.cc: Likewise.
546         * testsuite/27_io/basic_stringbuf/overflow/wchar_t/1.cc, 2.cc,
547         3599.cc, 9988.cc: Likewise.
548         * testsuite/27_io/basic_stringbuf/sbumpc/wchar_t/1.cc, 9825.cc:
549         Likewise.
550         * testsuite/27_io/basic_stringbuf/seekoff/wchar_t/1.cc, 2.cc:
551         Likewise.
552         * testsuite/27_io/basic_stringbuf/seekoff/wchar_t/1.cc, 2.cc, 3.cc:
553         Likewise.
554         * testsuite/27_io/basic_stringbuf/setbuf/wchar_t/1.cc, 2.cc, 3.cc:
555         Likewise.
556         * testsuite/27_io/basic_stringbuf/sgetc/wchar_t/1.cc: Likewise.
557         * testsuite/27_io/basic_stringbuf/sgetn/wchar_t/1.cc: Likewise.
558         * testsuite/27_io/basic_stringbuf/snextc/wchar_t/1.cc: Likewise.
559         * testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/1.cc, 9425.cc:
560         Likewise.
561         * testsuite/27_io/basic_stringbuf/sputc/wchar_t/1.cc, 1057.cc,
562         9404-1.cc: Likewise.
563         * testsuite/27_io/basic_stringbuf/sputn/wchar_t/1.cc, 1057.cc,
564         9404-2.cc: Likewise.
565         * testsuite/27_io/basic_stringbuf/str/wchar_t/1.cc, 2.cc, 3.cc,
566         3955.cc: Likewise.
567         * testsuite/27_io/basic_stringbuf/sungetc/wchar_t/1.cc: Likewise.
568         * testsuite/27_io/basic_stringbuf/sync/wchar_t/1057.cc: Likewise.
569
570 2004-07-08  Paolo Carlini  <pcarlini@suse.de>
571
572         * include/bits/gslice.h: Trivial formatting fixes.
573         * include/bits/gslice_array.h: Likewise.
574         * include/bits/indirect_array.h: Likewise.
575         * include/bits/mask_array.h: Likewise.
576         * include/bits/slice_array.h: Likewise.
577         * include/bits/valarray_after.h: Likewise.
578         * include/bits/valarray_array.h: Likewise.
579         * include/bits/valarray_before.h: Likewise.
580         * include/std/std_valarray.h: Likewise.
581
582 2004-07-08  Benjamin Kosnik  <bkoz@redhat.com>
583
584         PR c++/16169
585         * include/bits/basic_string.h (basic_string::operator=): Revert.
586
587 2004-07-07  Benjamin Kosnik  <bkoz@redhat.com>
588
589         * configure.ac (libtool_VERSION): To 6:2:0.
590         * configure: Regenerated.
591
592         * testsuite/testsuite_abi.cc (check_version): Add 3.4.2.
593         
594 2004-07-07  Aaron W. LaFramboise  <aaronraolete36@aaronwl.com>
595
596         PR libstdc++/16411
597         * config/linker-map.gnu: Add stdio_sync_filebuf::file exports.
598
599 2004-07-07  Benjamin Kosnik  <bkoz@redhat.com>
600
601         * docs/html/abi.html: Updates for 3.4.1 release. Add summary of
602         -Weffc++ issues.
603
604 2004-07-07  Paolo Carlini  <pcarlini@suse.de>
605
606         PR libstdc++/16401
607         * include/bits/sstream.tcc (overflow): When reallocating _M_string
608         use an exponential grow policy.
609         * testsuite/27_io/basic_stringbuf/overflow/char/1.cc: New.
610         * testsuite/performance/27_io/stringbuf_overflow.cc: New.
611
612 2004-07-06  Anssi Hannula  <anssi.hannula@mbnet.fi>
613
614         PR libstdc++/15928
615         * crossconfig.m4: Add in bits for djgpp.
616         * configure: Regenerate.
617         
618 2004-07-05  Jonathan Wakely  <redi@gcc.gnu.org>
619
620         * testsuite/23_containers/{set,multiset}/14340.cc: Fix typos in
621         instantiation of set and multiset (functor param given as int).
622
623 2004-07-04  Paolo Carlini  <pcarlini@suse.de>
624
625         * include/bits/basic_string.h: Trivial formatting fixes and/or
626         const-ification of some variables.
627         * include/bits/deque.tcc: Likewise.
628         * include/bits/stl_algobase.h: Likewise.
629         * include/bits/stl_bvector.h: Likewise.
630         * include/bits/stl_construct.h: Likewise.
631         * include/bits/stl_deque.h: Likewise.
632         * include/bits/stl_pair.h: Likewise.
633         * include/bits/stl_vector.h: Likewise.
634         * include/bits/vector.tcc: Likewise.
635
636 2004-07-04  Paolo Carlini  <pcarlini@suse.de>
637
638         * testsuite/25_algorithms/copy/1.cc: Add instantiations for
639         systems with no COMDAT or weak support.
640         * testsuite/25_algorithms/copy/2.cc: Likewise.
641         * testsuite/25_algorithms/copy/3.cc: Likewise.
642         * testsuite/25_algorithms/copy/4.cc: Likewise.
643
644 2004-07-03  Paul Brook  <paul@codesourcery.com>
645
646         * configure.ac: Set ABI_TWEAKS_SRCDIR.
647         * configure.host: Set abi_tweaks_dir.  Check for atomicity.h when
648         setting atomicity_dir.  Override type_cpu for arm based targets.
649         * include/Makefile.am (host_headers): Add cxxabi_tweaks.h.
650         * libsupc++/cxxabi.h: Include bits/cxxabi.h. Don't declare __guard.
651         * libsupc++/guard.cc: Use definitions from cxxabi_tweaks.h.
652         * libsupc++/vec.cc: Ditto.
653         * config/cpu/arm/cxxabi_tweaks.h: New file.
654         * config/cpu/generic/cxxabi_tweaks.h: New file.
655         * */Makefile.in: Regenerate.
656         * configure: Regenerate.
657
658 2004-07-02  Paolo Carlini  <pcarlini@suse.de>
659
660         * include/bits/type_traits.h (_Is_normal_iterator): Move...
661         * include/bits/cpp_type_traits.h: ... here, renamed to
662         __is_normal_iterator and consistent with the other traits.
663         * include/bits/stl_algobase.h (__copy_ni1, __copy_ni2): Convert
664         to the struct __copy_normal and three specializations.
665         (__copy_backward_output_normal_iterator,
666         __copy_backward_input_normal_iterator): Likewise, convert to
667         the struct __copy_backward_normal and three specializations.
668         (copy, copy_backward): Use the latter.
669         (__copy_aux, __copy_backward_aux): Very minor tweaks.
670
671 2004-07-01  Paolo Carlini  <pcarlini@suse.de>
672
673         * include/bits/stl_algobase.h (__copy_trivial): Remove.
674         (__copy_aux2): Rewrite as __copy_aux to use __is_pointer,
675         __is_trivially_copyable, __are_same and __copy::copy.
676         (__copy): Rewrite as a class template and two specializations.
677         (__copy_ni2): Simplify, just call __copy_aux.
678         
679         * include/bits/stl_algobase.h (__copy_backward_aux): Add __are_same
680         check.
681         * testsuite/25_algorithms/copy/1.cc, 2.cc, 3.cc, 4.cc: Test also
682         for destination value type != source value type.
683
684 2004-07-01  Benjamin Kosnik  <bkoz@redhat.com>
685             Per Bothner  <per@bothner.com>
686             Mohan Embar  <gnustuff@thisiscool.com>
687
688         PR libstdc++/16248
689         * include/bits/concurrence.h (__glibcxx_mutex_type): New.
690         (__glibcxx_mutex): Encapsulate mutex init function into type for
691         threaded configurations without __GTHREAD_MUTEX_INIT.
692         (lock::lock): Make device member a reference.
693         (lock::~lock): Same.
694         * include/ext/pool_allocator.h (__pool_base::_M_get_mutex): Change
695         to mutex_type.
696         * src/allocator.cc: Same.
697         
698 2004-06-30  Brad Spencer  <spencer@infointeractive.com>
699
700         * include/ext/mt_allocator.h: Handle allocations at static
701         initialization that happen before _S_options is (automatically)
702         constructed; set _S_init even if _M_force_new is true.
703         
704 2004-06-30  Benjamin Kosnik  <bkoz@redhat.com>
705
706         * config/linker-map.gnu: Revert new exports.
707
708 2004-06-30  Benjamin Kosnik  <bkoz@redhat.com>
709             Stuart Anderson  <anderson@netsweng.com>
710         
711         * config/linker-map.gnu: Add destructor exports for abstract base
712         classes to conform to LSB.
713
714 2004-06-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
715             Paolo Carlini  <pcarlini@suse.de>
716
717         * include/bits/cpp_type_traits.h: Add __is_pointer and
718         __is_trivially_copyable.
719         * include/bits/stl_algobase.h (fill, fill_n): Slightly
720         tweak to use the latter.
721         (__copy_backward_dispatch): Remove.
722         (__copy_backward_aux): Rewrite to use __is_pointer and
723         __is_trivially_copyable and __copy_backward::copy_b.
724         (__copy_backward): Rewrite as a class template and two
725         specializations.
726
727 2004-06-30  Paolo Carlini  <pcarlini@suse.de>
728
729         * testsuite/25_algorithms/copy.cc: Move to...
730         * testsuite/25_algorithms/copy/1.cc: ... here, extend.
731         * testsuite/25_algorithms/copy/2.cc: New.
732         * testsuite/25_algorithms/copy/3.cc: New.
733         * testsuite/25_algorithms/copy/4.cc: New.
734
735 2004-06-29  Paul Brook  <paul@codesourcery.com>
736
737         * libsupc++/vec.cc (__cxa_vec_new2, __cxa_vec_new3): Store the
738         element size in the cookie.
739
740 2004-06-28  Paolo Carlini  <pcarlini@suse.de>
741
742         * include/bits/cpp_type_traits.h: Move the additions to
743         namespace __gnu_internal outside of namespace std; trivial
744         formatting fixes.
745
746 2004-06-28  Benjamin Kosnik  <bkoz@redhat.com>
747
748         * include/debug/safe_base.h (__gnu_debug::_Safe_sequence_base):
749         Revert -Weffc++ changes that defined copy ctory and or assignment
750         operator.
751         * libsupc++/tinfo.cc (__upcast_result): Same.
752         
753 2004-06-28  Paolo Carlini  <pcarlini@suse.de>
754
755         * src/localename.cc (locale::_Impl::_Impl): Slightly improve
756         the algorithm used to name the categories.
757
758 2004-06-28  Paolo Bonzini  <bonzini@gnu.org>
759
760         * include/Makefile.am: Give a .gch extension to
761         the PCH files, not only to the directory.
762         * include/Makefile.in: Regenerate.
763
764 2004-06-28  Paolo Carlini  <pcarlini@suse.de>
765
766         * config/locale/gnu/monetary_members.cc
767         (moneypunct<wchar_t>::_M_initialize_moneypunct): Clean up
768         assignments of _M_decimal_point and _M_thousands_sep.
769
770 2004-06-27  Paolo Carlini  <pcarlini@suse.de>
771
772         * docs/html/17_intro/contribute.html: Update some links.
773         * docs/html/17_intro/porting-howto.html: Likewise.
774         * docs/html/17_intro/porting-howto.xml: Likewise.
775         * docs/html/18_support/howto.html: Likewise.
776         * docs/html/21_strings/howto.html: Likewise.
777         * docs/html/27_io/howto.html: Likewise.
778         * docs/html/configopts.html: Likewise.
779         * docs/html/ext/howto.html: Likewise.
780         * docs/html/faq/index.html: Likewise.
781         * docs/html/install.html: Don't mention 2.x compilers.
782
783 2004-06-27  Paolo Carlini  <pcarlini@suse.de>
784
785         * include/ext/rope: Trivial formatting fixes.
786         * include/ext/ropeimpl.h: Likewise.
787
788 2004-06-26  Paolo Carlini  <pcarlini@suse.de>
789
790         PR libstdc++/16210
791         * acinclude.m4 (GLIBCXX_ENABLE_LONG_LONG): Do not check for the
792         availability of strto(u)ll, not used anymore in the iostreams.
793         * configure: Regenerate.
794
795 2004-06-25  Benjamin Kosnik  <bkoz@redhat.com>
796
797         PR libstdc++/16182      
798         * linkage.m4 (GLIBCXX_CHECK_BUILTIN_MATH_DEC): Revert to
799         AC_DEFINE_UNQUOTED.
800         * configure: Regenerate.
801
802 2004-06-25  Paul Brook  <paul@codesourcery.com>
803
804         * libsupc++/cxxabi.h: Define __ARM_EABI__
805         (__guard): Use it.
806         * libsupc++/guard.h (__cxa_guard_acquire, __cxa_guard_release): Ditto.
807
808 2004-06-25  Paul Brook  <paul@codesourcery.com>
809
810         * include/bits/concurrence.h: Still create mutex object when
811         single-threaded.
812
813 2004-06-25  Paolo Carlini  <pcarlini@suse.de>
814
815         * include/bits/stl_algobase.h (fill, fill_n): Revert last
816         change: actually we need to copy construct an object of type
817         _Tp, not of type iterator_traits<>::value_type, therefore the
818         code is ok.
819
820 2004-06-25  Paolo Carlini  <pcarlini@suse.de>
821
822         * include/bits/stl_algobase.h (fill, fill_n): Tighten the
823         dispatch: use iterator_traits<>::value_type, not _Tp.
824
825 2004-06-25  Paolo Carlini  <pcarlini@suse.de>
826
827         * testsuite/25_algorithms/fill/1.cc: Tweak instantiations.
828         * testsuite/25_algorithms/fill/2.cc: Likewise.
829
830 2004-06-25  Dan Nicolaescu  <dann@ics.uci.edu>
831             Paolo Carlini  <pcarlini@suse.de>
832
833         * include/bits/stl_algobase.h (__fill, __fill_n): New helpers
834         for fill and fill_n, respectively: when copying is cheap, use a
835         temporary to avoid a memory read in each iteration.
836
837 2004-06-25  Paolo Carlini  <pcarlini@suse.de>
838
839         * testsuite/25_algorithms/fill/1.cc: New.
840         * testsuite/25_algorithms/fill/2.cc: Likewise.
841
842 2004-06-25  Benjamin Kosnik  <bkoz@redhat.com>
843
844         * include/debug/formatter.h (__gnu_debug::_Error_formatter):
845         Remove copy constructor and assignment operator.
846
847 2004-06-24  Benjamin Kosnik  <bkoz@redhat.com>
848
849         * include/bits/concurrence.h (__gnu_cxx::lock): New.
850         * include/ext/pool_allocator.h (__pool_base::_Lock::_S_lock): Remove.
851         (__pool_base::_M_get_mutex): New.
852         * include/bits/allocator.h: Tweak.
853         * src/allocator.cc (__pool_base::_M_get_free_list): Correct offset.
854         * config/linker-map.gnu: Remove __pool_base::_Lock::_S_lock.
855         * include/bits/stl_threads.h: Remove.
856         * include/Makefile.am: Also here.
857         * include/Makefile.in: Regenerate.
858
859         * src/locale_init.cc: Use __gnu_cxx::lock.
860
861         * src/allocator.cc: Move all instantiations...
862         * src/allocator-inst.cc: ...here.
863         
864 2004-06-23  Andrew Pinski  <apinski@apple.com>
865
866         * linkage.m4: Remove check for libmx.   
867         * configure: Regenerate.
868
869 2004-06-23  Paolo Carlini  <pcarlini@suse.de>
870
871         PR libstdc++/16154
872         * include/bits/boost_concept_check.h (struct _TrivialIteratorConcept):
873         Don't require the _DefaultConstructibleConcept.
874         (struct _ForwardIteratorConcept): Require it here.
875
876 2004-06-22  Alexandre Oliva  <aoliva@redhat.com>
877
878         * include/bits/istream.tcc (getline): Make sure arguments passed
879         to min/max have the same type.
880         * include/bits/locale_facets.tcc (__verify_grouping): Likewise.
881         * include/bits/stl_deque.h (_Deque_base::_Deque_base): Likewise.
882
883 2004-06-22  Benjamin Kosnik  <bkoz@redhat.com>
884
885         * docs/html/abi.html: Update links.
886
887 2004-06-22  Paolo Carlini  <pcarlini@suse.de>
888
889         * testsuite/26_numerics/complex_inserters_extractors.cc,
890         complex_value.cc, buggy_complex.cc: Move to...
891         * testsuite/26_numerics/complex/: ... here.
892         * testsuite/26_numerics/c99_classification_macros_c++.cc,
893         c99_classification_macros_c.cc, c_math.cc, c_math_dynamic.cc,
894         fabs_inline.cc: Move to...
895         * testsuite/26_numerics/cmath/: ... here.
896         * testsuite/26_numerics/binary_closure.cc, slice.cc,
897         slice_array_assignment.cc, valarray.cc, valarray_const_bracket.cc,
898         valarray_name_lookup.cc, valarray_operators.cc,
899         valarray_subset_assignment.cc: Move to...
900         * testsuite/26_numerics/valarray/: ... here (new dir).
901         * testsuite/26_numerics/sum_diff.cc: Move to...
902         * testsuite/26_numerics/numeric/: ... here (new dir).
903
904 2004-06-22  Paolo Carlini  <pcarlini@suse.de>
905
906         * include/std/std_istream.h (ignore(streamsize __n = 1,
907         int_type __delim = traits_type::eof())): Split into...
908         (ignore(), ignore(streamsize __n), ignore(streamsize __n,
909         int_type __delim)): The first two can be much more simpler
910         and efficient than the fully general case; also, the last
911         two can take advantage of the same mechanism already used
912         for getline.
913         * include/bits/istream.tcc (ignore(streamsize __n = 1,
914         int_type __delim = traits_type::eof()): Remove.
915         (ignore(), ignore(streamsize __n), ignore(streamsize __n,
916         int_type __delim)): New.
917
918 2004-06-21  Loren J. Rittle  <ljrittle@acm.org>
919
920         * config/linker-map.gnu: Use wildcards for
921         __basic_file::sys_open(FILE*, _Ios_Openmode).
922
923 2004-06-20  Paolo Carlini  <pcarlini@suse.de>
924
925         * testsuite/27_io/basic_istream/ignore/char/3.cc: New.
926
927 2004-06-18  Paolo Carlini  <pcarlini@suse.de>
928
929         * include/ext/mt_allocator (__mt_alloc<>::_Tune): Add _M_align,
930         the alignment requested.
931         (__mt_alloc<>::_Tune::_Tune): Tweak consistently.
932         (__mt_alloc<>::allocate): Use it instead of sizeof(_Block_record).
933         (__mt_alloc<>::deallocate): Likewise.
934
935 2004-06-18  Paolo Carlini  <pcarlini@suse.de>
936
937         PR libstdc++/16020
938         * include/debug/safe_base.h
939         (_Safe_sequence_base::_Safe_sequence_base(const _Safe_sequence_base&),
940         _Safe_sequence_base::operator=): Provide definitions.
941         * testsuite/23_containers/bitset/cons/16020.cc: New.
942
943 2004-06-18  Benjamin Kosnik  <bkoz@redhat.com>
944
945         * include/ext/pool_allocator.h: Qualify __throw_bad_alloc.
946         (__pool_base): Remove unused template parameter.  Add
947         protected. Move lock data into __pool_base::_Lock. Remove static
948         on member functions.
949         (__pool_base::_M_get_free_list): New.
950         (__pool_alloc): Move _S_force new here.
951         * src/allocator.cc: Move out of line __pool_base definitions here.
952         * config/linker-map.gnu: Export bits from __pool_base.
953         
954 2004-06-18  Paolo Carlini  <pcarlini@suse.de>
955
956         * config/locale/gnu/numeric_members.cc
957         (numpunct<wchar_t>::_M_initialize_numpunct): Clean up
958         assignments of _M_decimal_point and _M_thousands_sep.
959         * config/locale/gnu/time_members.cc
960         (__timepunct<wchar_t>::_M_initialize_timepunct): Clean up
961         and reformat assignments of date and time fields.
962
963 2004-06-16  Paolo Carlini  <pcarlini@suse.de>
964
965         * include/ext/rope (rope(_CharT, const allocator_type&)): Fix
966         to use _Data_allocate.
967         * include/ext/ropeimpl.h (rope<>::_S_leaf_concat_char_iter): Likewise.
968         (rope<>::_S_substring): Likewise.
969         (rope<>::rope(size_t, _CharT, const allocator_type&)): Likewise.
970         (rope<>::c_str()): Likewise.
971         (rope<>::replace_with_c_str()): Likewise.
972
973         * include/ext/ropeimpl.h (_Rope_iterator_base<>::_S_setbuf):
974         Correctly qualify _S_leaf, _S_function, etc., with _Rope_constants::,
975         not _RopeRep.
976         (_Rope_iterator_base<>::_S_setcache): Likewise.
977         (_Rope_iterator_base<>::_S_setcache_for_incr): Likewise.
978         (rope<>::_S_substring): Likewise.
979         (rope<>::_S_dump): Likewise.
980         (rope<>::_S_fetch_ptr): Likewise.
981         (rope<>::_S_compare): Likewise.
982         (rope<>::replace_with_c_str()): Likewise.               
983
984         * testsuite/ext/rope.cc: Rename to testsuite/ext/rope/1.cc.
985         * testsuite/ext/rope/2.cc: New.
986
987 2004-06-16  Paolo Carlini  <pcarlini@suse.de>
988             Matt Austern  <austern@apple.com>
989
990         * testsuite/ext/rope/3.cc: New.
991
992 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
993
994         * acinclude.m4: Remove useless multilib configury.
995         * Makefile.am: Remove useless multilib rules.
996         * aclocal.m4: Regenerate.
997         * Makefile.in: Regenerate.
998         * configure: Regenerate.
999
1000 2004-06-15  Paolo Carlini  <pcarlini@suse.de>
1001
1002         * include/ext/hashtable.h: Trivial formatting fixes.
1003         * include/ext/rb_tree: Likewise.
1004
1005 2004-06-14  Paolo Carlini  <pcarlini@suse.de>
1006
1007         * include/ext/hash_map: Trivial formatting fixes.
1008         * include/ext/hash_set: Likewise.
1009         * include/ext/memory: Likewise.
1010         * include/ext/numeric: Likewise.
1011
1012 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
1013
1014         * Makefile.in: Regenerate with automake 1.8.5.
1015         * aclocal.m4: Same.
1016         * include/Makefile.in: Same.
1017         * libmath/Makefile.in: Same.
1018         * libsupc++/Makefile.in: Same.
1019         * po/Makefile.in: Same.
1020         * src/Makefile.in: Same.
1021         * testsuite/Makefile.in: Same.
1022
1023 2004-06-14  Paolo Carlini  <pcarlini@suse.de>
1024
1025         * include/ext/slist: Trivial formatting fixes.
1026
1027 2004-06-14  Paolo Carlini  <pcarlini@suse.de>
1028
1029         * include/bits/locale_facets.tcc (time_get<>::_M_extract_name):
1030         Don't use the 'magic number' 10 in the computation of __minlen;
1031         never access __name past __minlen; in the loop over __i3, don't
1032         decrease __nmatches and increase __i3 at once, only either of
1033         the two; tidy.
1034
1035 2004-06-13  Paolo Carlini  <pcarlini@suse.de>
1036
1037         * include/bits/locale_facets.tcc (time_get<>::do_get_time,
1038         time_get<>::do_get_date): Use only once _M_extract_via_format,
1039         instead of going through "%X"/"%x" and calling it two times
1040         (+ using widen).
1041
1042 2004-06-12  Paolo Carlini  <pcarlini@suse.de>
1043
1044         * include/ext/algorithm: Trivial formatting fixes.
1045         * include/ext/functional: Likewise.
1046         * include/ext/hash_fun.h: Likewise.
1047         * include/ext/iterator: Likewise.
1048
1049 2004-06-12  Paolo Carlini  <pcarlini@suse.de>
1050
1051         * include/bits/basic_string.tcc (find(const _CharT*, size_type,
1052         size_type)): Reimplement using std::search.
1053         * src/string-inst.cc: Instantiate std::search for char/wchar_t.
1054
1055 2004-06-12  Dhruv Matani  <dhruvbird@gmx.net>
1056
1057         * testsuite/performance/21_strings/string_find.cc: New.
1058
1059 2004-06-10  Aaron W. LaFramboise  <aaronraolete36@aaronwl.com>
1060
1061         * include/bits/istream.tcc (istream::ignore): Fix for -Wuninitialized.
1062
1063 2004-06-10  Jan van Dijk  <jan@etpmod.phys.tue.nl>
1064
1065         * include/std/std_complex.h (sin(const complex<_Tp>& __z)): Make
1066         this function return a value.
1067
1068 2004-06-09  Paolo Carlini  <pcarlini@suse.de>
1069
1070         PR libstdc++/15775
1071         * include/bits/stl_deque.h: Consistently with stl_set.h, define
1072         pointer as allocator's pointer, likewise for reference,
1073         const_pointer, and const_reference.
1074         * include/bits/stl_list.h: Likewise.
1075         * include/bits/stl_map.h: Likewise.
1076         * include/bits/stl_multimap.h: Likewise.
1077         * include/bits/stl_vector.h: Likewise.
1078
1079 2004-06-09  Benjamin Kosnik  <bkoz@redhat.com>
1080
1081         * crossconfig.m4: Remove signbit, signbitf, signbitl.   
1082         * linkage.m4: Comment LIBMATHOBJS, tweak others.  AC_DEFINES for
1083         builtin math functions instead of AC_DEFINE_UNQUOTED.
1084         * configure: Regenerate.
1085         
1086 2004-06-08  Benjamin Kosnik  <bkoz@redhat.com>
1087
1088         * docs/doxygen/filter.sed: Rename _GLIBCXX_STD to std.
1089         * docs/doxygen/mainpage.html: Remove links.
1090
1091 2004-06-08  Jason Merrill  <jason@redhat.com>
1092
1093         * config/linker-map.gnu: Use wildcards for
1094         __basic_file::{xsgetn,xsputn,seekoff,xsputn_2}.
1095
1096 2004-06-08  Paolo Carlini  <pcarlini@suse.de>
1097
1098         * include/ext/pool_allocator.h: Convert to a global free-list,
1099         as per the original SGI/HP design: move the implementation
1100         details to struct __pool_base, from which __pool_alloc derives.
1101         * src/allocator.cc: Instantiate __pool_base.
1102
1103 2004-06-07  Dhruv Matani  <dhruvbird@gmx.net>
1104             Paolo Carlini  <pcarlini@suse.de>
1105
1106         * testsuite/testsuite_performance.h
1107         (resource_counter::allocated_memory): Make it return the right
1108         number of bytes requested by the allocators/application. This is
1109         the sbrk+mmaped memory.
1110
1111 2004-06-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1112
1113         * include/std/std_complex.h (log): Tidy.
1114
1115 2004-05-31  Benjamin Kosnik  <bkoz@redhat.com>
1116
1117         * config/linker-map.gnu (GLIBCXX_3.4.1): Add.
1118         * testsuite/testsuite_abi.cc: Same.
1119         * configure.ac (libtool_VERSION): Bump to 6:1:0.
1120         * configure: Regenerate.
1121         * aclocal.m4: Regenerate.
1122         
1123 2004-05-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1124
1125         * include/std/std_complex.h (complex<_Tp>): Properly indent
1126         to follow C++STYLE. 
1127         (complex<>::__rep): New.
1128         (__complex_abs): New.  Dispatch to built-ins.
1129         (abs): Use them.
1130         (__complex_arg): New. Dispatch to built-ins.
1131         (arg): Use it.
1132         (__complex_cos): New. Dispatch to built-ins.
1133         (cos): Use it.
1134         (__complex_cosh): New. Dispatch to built-ins.
1135         (cosh): Use it.
1136         (__complex_exp): New. Dispatch to built-ins.
1137         (exp): Use it.
1138         (__complex_log): New. Dispatch to built-ins.
1139         (log): Use it.
1140         (__complex_sin): New. Dispatch to built-ins.
1141         (sin): Use it.
1142         (__complex_sinh): New. Dispatch to built-ins.
1143         (sinh): Use it.
1144         (__complex_sqrt): New. Dispatch to built-ins.
1145         (sqrt): Use it.
1146         (__complex_tan): New. Dispatch to built-ins.
1147         (tan): Use it.
1148         (__complex_tanh): New. Dispatch to built-ins.
1149         (tanh): Use it.
1150         (__complex_pow): New. Dispatch to built-ins.
1151         (pow): Use it.
1152
1153 2004-05-29  Richard B. Kreckel  <Richard.Kreckel@Framatome-ANP.com>
1154             Benjamin Kosnik  <bkoz@redhat.com>
1155         
1156         PR libstdc++/14600
1157         * include/ext/stdio_sync_filebuf.h (stdio_sync_filebuf::file): New.
1158         * include/ext/stdio_filebuf.h (stdio_filebuf::file): New.
1159         * config/io/basic_file_stdio.cc (__basic_file::file): New.
1160         * config/io/basic_file_stdio.h: Define.
1161
1162 2004-05-27  Benjamin Kosnik  <bkoz@redhat.com>
1163
1164         PR libstdc++/15675
1165         * docs/html/documentation.html: Update doxygen links for 3.4.0.
1166
1167 2004-05-27  Jan Beulich  <jbeulich@novell.com>
1168
1169         * scripts/create_testsuite_files: Tweak.
1170
1171 2004-05-25  Benjamin Kosnik  <bkoz@redhat.com>
1172
1173         PR libstdc++/15489
1174         * scripts/create_testsuite_files: Revert xtype change, add non-GNU
1175         bits to do the same thing.
1176
1177 2004-05-24  Paolo Carlini  <pcarlini@suse.de>
1178
1179         * include/bits/istream.tcc (ignore): Correctly deal with
1180         n == numeric_limits<streamsize>::max().
1181         * testsuite/27_io/basic_istream/ignore/char/2.cc: New.
1182
1183         * include/bits/istream.tcc (basic_istream<>::getline): Prefer
1184         '_M_gcount + 1 < __n' to '--__n; _M_gcount < __n', just in case
1185         __n == numeric_limits<>::min().
1186
1187         * include/bits/istream.tcc: Minor tweaks.
1188
1189         * testsuite/21_strings/basic_string/inserters_extractors/char/10.cc:
1190         Tighten.
1191         * testsuite/21_strings/basic_string/inserters_extractors/char/11.cc:
1192         Likewise.
1193         * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/10.cc:
1194         Likewise.
1195         * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/11.cc:
1196         Likewise.
1197         * testsuite/27_io/basic_istream/getline/char/5.cc: Likewise.
1198
1199 2004-05-22  Benjamin Kosnik  <bkoz@redhat.com>
1200
1201         PR libstdc++/12854
1202         Fixups for -Weffc++.    
1203         * include/bits/basic_string.h (basic_string::operator=): Return
1204         pointer to this instead of result of assign. Although redundant,
1205         this doesn't impact resultant codegen.
1206         
1207         * include/bits/locale_facets.h (__numpunct_cache): Declare
1208         assignment opxserator and copy constructor private.
1209         (__timepunct_cache): Same.
1210         (__moneypunct_cache): Same.
1211         (collate): Use member initialization list for _M_c_locale_collate.
1212         * config/locale/gnu/messages_members.h: Same.
1213         * config/locale/gnu/time_members.h (__timepunct): Same. 
1214         * src/codecvt.cc: Use member initialization list to initialize
1215         _M_c_locale_codecvt.    
1216         * src/ctype.cc: Same, with _M_c_locale_ctype and _M_narrow_ok.
1217         * config/os/gnu-linux/ctype_noninline.h: Same.
1218         * src/locale.cc (_Impl): Same.
1219         * src/locale_init.cc: Same.
1220         * src/localename.cc: Same.      
1221
1222         * include/bits/basic_ios.h (basic_ios): Complete member
1223         initialization list.
1224         * include/bits/istream.tcc (basic_istream::sentry): Same.
1225         * include/bits/ostream.tcc (basic_ostream::sentry): Same.
1226         * include/bits/fstream.tcc (basic_filebuf): Add _M_lock and
1227         _M_pback to member initialization list.
1228         * include/std/std_streambuf.h: Same.
1229         * include/std/std_sstream.h: Same, for _M_mode.
1230         * src/ios.cc (ios_base): Same.
1231         
1232         * include/ext/rope: Make derived classes match exception
1233
1234          specifications. Add copy constructors and assignment operators.
1235
1236         * include/debug/safe_base.h (_Safe_sequence_base): Declare copy
1237         constructor and assignment operator protected.
1238         (_Safe_iterator_base): Same.
1239         * include/debug/formatter.h (_Error_formatter): Define copy
1240         constructor and assignment operator.
1241
1242         * include/backward/strstream: Declare assignment operator and copy
1243         constructor private.
1244
1245 2004-05-22  Benjamin Kosnik  <bkoz@redhat.com>
1246
1247         * testsuite/testsuite_hooks.h (func_callback): Declare copy
1248         constructor and assignment operator private.    
1249         * testsuite/23_containers/deque/cons/clear_allocator.cc: Match
1250         exception specifications of base class.
1251         * testsuite/23_containers/list/cons/clear_allocator.cc: Same.
1252         * testsuite/23_containers/vector/cons/clear_allocator.cc: Same.
1253         * testsuite/23_containers/vector/bool/clear_allocator.cc: New.
1254                 
1255 2004-05-22  Benjamin Kosnik  <bkoz@redhat.com>
1256
1257         * libsupc++/cxxabi.h: Remove duplicated and useless public and
1258         private keywords in class declarations. Format. Use
1259         stddef.h. Expose declarations to "C" compilation.
1260         * libsupc++/tinfo.cc (__upcast_result): Add copy constructor and
1261         assignment operator.
1262         (__dyncast_result): Same.
1263         * libsupc++/vec.cc (uncatch_exception): Same, use member
1264         initialization list.
1265                  
1266 2004-05-22  Benjamin Kosnik  <bkoz@redhat.com>
1267
1268         * testsuite/abi_check.cc: Add unistd.h.
1269
1270 2004-05-22  Paolo Carlini  <pcarlini@suse.de>
1271
1272         PR libstdc++/15565
1273         * include/bits/locale_facets.tcc (__int_to_char(unsigned long),
1274         __int_to_char(unsigned long long)): Showpos is not relevant
1275         for unsigned types.
1276         * testsuite/22_locale/num_put/put/char/15565.cc: New.
1277         * testsuite/22_locale/num_put/put/wchar_t/15565.cc: New.
1278
1279         * testsuite/22_locale/num_put/put/wchar_t/1.cc: Use L for the fill
1280         char.
1281         * testsuite/22_locale/num_put/put/wchar_t/2.cc: Likewise.
1282         * testsuite/22_locale/num_put/put/wchar_t/3.cc: Likewise.
1283         * testsuite/22_locale/num_put/put/wchar_t/4.cc: Likewise.
1284         * testsuite/22_locale/num_put/put/wchar_t/5.cc: Likewise.
1285         * testsuite/22_locale/num_put/put/wchar_t/6.cc: Likewise.
1286         * testsuite/22_locale/num_put/put/wchar_t/8.cc: Likewise.
1287
1288 2004-05-21  Matthias Klose  <doko@debian.org>
1289  
1290         * docs/doxygen/run_doxygen:  Bump required version.
1291
1292 2004-05-21  Benjamin Kosnik  <bkoz@redhat.com>
1293
1294         * docs/html/abi.html (libgcc_s): Additions suggested by Matthias Klose.
1295         * docs/doxygen/Intro.3: Subtractions suggested by Phil Edwards.
1296
1297 2004-05-21  Paolo Carlini  <pcarlini@suse.de>
1298
1299         * include/bits/istream.tcc (ignore): Remove redundant line.
1300         (readsome): Tidy, closely following 27.6.1.3, p30.
1301
1302 2004-05-20  Paolo Carlini  <pcarlini@suse.de>
1303
1304         * include/bits/istream.tcc (operator>>(basic_istream<>&,
1305         basic_string<>&)): Use a temporary buffer, thus avoiding
1306         reallocation for common case.
1307         * testsuite/21_strings/basic_string/inserters_extractors/char/11.cc:
1308         New.
1309         * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/11.cc:
1310         Likewise.
1311
1312         * include/bits/istream.tcc: Const-ification of a few variables.
1313
1314         * include/bits/ostream.tcc: Trivial formatting fixes and
1315         const-ification of some variables.
1316
1317 2004-05-20  Benjamin Kosnik  <bkoz@redhat.com>
1318
1319         PR libstdc++/15123
1320         PR libstdc++/13928
1321         * docs/doxygen/Intro.3: Remove Allocators.3.
1322         Add new extension headers, extension namespace list.
1323         * docs/doxygen/run_doxygen (problematic): Remove Allocators.3
1324         Rename GLIBCXXSTD names to std::. Rename __gnu_debug to
1325         __gnu_debug::. Remove __policy_ renames.
1326         * docs/doxygen/guide.html: Add dot note.
1327         * docs/doxygen/stdheader.cc: Edit, add files.
1328         * docs/doxygen/user.cfg.in: Regenerate with Doxygen 1.3.7.
1329         
1330 2004-05-18  Jonathan Wakely  <redi@gcc.gnu.org>
1331
1332         * include/ext/stdio_filebuf.h: Update comments to reflect PR 11691.
1333
1334 2004-05-18  Jan Beulich  <jbeulich@novell.com>
1335  
1336         PR libstdc++/15489
1337         * scripts/create_testsuite_files: Also find source files through
1338           symbolic links.
1339
1340 2004-05-18  Jan Beulich  <jbeulich@novell.com>
1341
1342         PR libstdc++/15488
1343         * testsuite/lib/libstdc++.exp: Make test files writable.
1344
1345 2004-05-18  Paolo Carlini  <pcarlini@suse.de>
1346
1347         * include/ext/mt_allocator.h:(__mt_alloc::allocate): Minor
1348         tweaks.
1349
1350 2004-05-18  Dhruv Matani  <dhruvbird@gmx.net>
1351
1352         * include/ext/mt_allocator.h:(__mt_alloc::allocate): Re-write
1353         allocation loop which removes blocks from the global free list
1354         from O(N) to O(1) when the required blocks are <= the number
1355         available.
1356
1357 2004-05-18  Jonathan Wakely  <redi@gcc.gnu.org>
1358
1359         * include/ext/enc_filebuf.h: Move concept-check macro to class scope.
1360
1361 2004-05-17  Benjamin Kosnik  <bkoz@redhat.com>
1362
1363         * testsuite/testsuite_hooks.h (__gnu_test::conversion): New class.
1364         * testsuite/23_containers/deque/14340.cc: New.
1365         * testsuite/23_containers/list/14340.cc: New.
1366         * testsuite/23_containers/map/14340.cc: New.
1367         * testsuite/23_containers/multimap/14340.cc: New.
1368         * testsuite/23_containers/multiset/14340.cc: New.
1369         * testsuite/23_containers/set/14340.cc: New.
1370         * testsuite/23_containers/vector/14340.cc: New.
1371
1372 2004-05-17  Douglas Gregor   <gregod@cs.rpi.edu>
1373
1374         PR libstdc++/14340 
1375         * include/debug/safe_iterator.h (_Safe_iterator converting 
1376         constructor): Only allow declaration to instantiate when the 
1377         incoming _Safe_iterator has exactly the right iterator type.
1378
1379 2004-05-17  Jonathan Wakely  <redi@gcc.gnu.org>
1380
1381         * include/bits/boost_concept_check.h: Fix old attribute syntax.
1382         * testsuite/23_containers/map/modifiers/swap.cc: Define operator<
1383         to pass concept-checks.
1384         * testsuite/23_containers/multimap/modifiers/swap.cc: Same.
1385         * testsuite/23_containers/set/modifiers/swap.cc: Same.
1386         * testsuite/23_containers/multiset/modifiers/swap.cc: Same.
1387
1388 2004-05-16  Paolo Carlini  <pcarlini@suse.de>
1389
1390         * include/std/std_bitset.h: Minor formatting fixes.
1391
1392 2004-05-16  Paolo Carlini  <pcarlini@suse.de>
1393
1394         * include/ext/mt_allocator.h (__mt_alloc<>::deallocate):
1395         Consistently update __bin._M_free[0].
1396         (__mt_alloc<>::allocate): When __bin._M_first[0] != NULL use
1397         __bin._M_free[0] to simplify the while loop (i.e., the number
1398         of iterations becomes known at the outset).
1399
1400 2004-05-15  Paolo Carlini  <pcarlini@suse.de>
1401
1402         * include/std/std_bitset.h: Trivial formatting fixes.
1403
1404 2004-05-14  Paolo Carlini  <pcarlini@suse.de>
1405             Ivan Godard  <igodard@pacbell.net>
1406
1407         PR libstdc++/15361
1408         * include/std/std_bitset.h (_Base_bitset<_Nw>::_M_do_find_next): Fix.
1409         * testsuite/23_containers/bitset/ext/15361.cc: New.
1410
1411 2004-05-13  Benjamin Kosnik  <bkoz@redhat.com>
1412
1413         PR libstdc++/15046
1414         * crossconfig.m4: Add C99 math bits for linux crosses.
1415         * configure: Regenerate.
1416         
1417 2004-05-13  Simon Marshall <simon.marshall@misys.com>
1418             Benjamin Kosnik  <bkoz@redhat.com>
1419
1420         PR libstdc++/15090
1421         * include/bits/locale_facets.h: Fix for -fno-for-scope.
1422         * include/debug/safe_sequence.h: Same.
1423         * include/debug/safe_iterator.tcc: Same.
1424         * src/debug.cc: Same.
1425         * src/locale.cc: Same.
1426         * src/locale_init.cc: Same.
1427         * src/localename.cc: Same.
1428         * config/locale/gnu/ctype_members.cc: Same.
1429         * config/locale/gnu/numeric_members.cc: Same.
1430         * testsuite/testsuite_abi.cc: Same.
1431         * testsuite/testsuite_hooks.cc: Same.
1432         
1433 2004-05-13  Jonathan Wakely  <redi@gcc.gnu.org>
1434         
1435         * docs/html/abi.html: Document effect of -fabi-version on value
1436         of __GXX_ABI_VERSION, and that it's defined in c-cppbuiltin.c.
1437         Fix markup.
1438
1439 2004-05-13  Benjamin Kosnik  <bkoz@redhat.com>
1440
1441         PR libstdc++/15074      
1442         * docs/html/faq/index.html: Update docs for libsupc++ usage.
1443
1444 2004-05-13  Benjamin Kosnik  <bkoz@redhat.com>
1445
1446         PR libstdc++/15412
1447         * include/bits/stl_threads.h (_GLIBCXX_mutex): Move to namespace
1448         __gnu_internal.
1449         (_GLIBCXX_mutex_address): Same.
1450         (_GLIBCXX_once): Same.  
1451         (_GLIBCXX_mutex_init): Same.
1452         (_GLIBCXX_mutex_address_init): Same.
1453         
1454 2004-05-13  Benjamin Kosnik  <bkoz@redhat.com>
1455         
1456         * docs/html/abi.html: New.
1457         * docs/html/abi.txt: Remove.
1458         * docs/html/documentation.html: Add link.
1459         * testsuite/Makefile.am: Add files.
1460         * testsuite/Makefile.in: Regenerated.
1461         * testsuite/abi_check.cc: Move and modify code into...
1462         * testsuite/testsuite_abi.cc: Add.
1463         * testsuite/testsuite_abi.h: Add.
1464
1465         * docs/html/17_intro/TODO: Update.
1466         * include/bits/stl_pair.h: Format.
1467         
1468 2004-05-06  Matthias Klose  <doko@debian.org>
1469
1470         * include/backward/iterator.h:  Add GPL copyright info,
1471         with exception clause.
1472         * include/bits/boost_concept_check.h: Likewise.
1473         * include
1474         * libsupc++/tinfo.h: Likewise.
1475         * po/string_literals.cc: Likewise.
1476         
1477 2004-05-03  Andreas Tobler  <a.tobler@schweiz.ch>
1478
1479         * acinclude.m4: Replace -W with more speaking -Wextra.
1480         * configure: Rebuilt.
1481
1482 2004-05-03  Paolo Carlini  <pcarlini@suse.de>
1483
1484         Optimize locale::_M_impl->_M_names for the most common cases:
1485         !_M_names[0] means unnamed; !_M_names[1] means all the categories
1486         the same name (_M_names[0] && _M_names[1] means that the full set
1487         of _M_names must be processed, the general case).
1488         * include/bits/locale_classes.h (locale::_Impl::_M_check_same_name):
1489         Tweak, saving work when !_M_names[1].
1490         (locale::locale(const locale&, _Facet*): Simplify: now just setting
1491         _M_names[0] = 0 means unnamed.
1492         * src/locale.cc (locale::operator==): Deal first with the common,
1493         easy cases, otherwise fall back to locale::name().
1494         (locale::name()): Tweak, if !_M_names[0] just return "*".
1495         (locale::_Impl::_Impl(const _Impl&, size_t): Tweak, early stop
1496         copying __imp._M_names if !__imp._M_names[0] or !__imp._M_names[1].
1497         * src/locale_init.cc (locale::_Impl::_Impl(size_t)): Tweak.
1498         * src/localename.cc (locale::_Impl::_Impl(const char*, size_t):
1499         Simplify when !std::strchr, just updating _M_names[0]; clean up.
1500         (locale::_Impl::_M_replace_categories): When !_M_names[1] prepare
1501         for the general case (full set of names), then do the usual work;
1502         clean up.
1503
1504         * src/locale.cc (locale::name()): Reserve space in __ret.
1505         * src/locale_init.cc (locale::global(const locale&)): Save
1506         the name in a temporary.
1507         * src/localename.cc (locale::locale(const char*)): Reserve space
1508         in __str.
1509
1510 2004-04-29  Paolo Carlini  <pcarlini@suse.de>
1511
1512         * src/locale.cc (locale::operator==): Always avoid constructing
1513         locale::name(), directly compare pairs of _M_names.
1514
1515 2004-04-26  Paolo Carlini  <pcarlini@suse.de>
1516
1517         * include/bits/istream.tcc: Fix comment.
1518
1519 2004-04-26  Paolo Carlini  <pcarlini@suse.de>
1520
1521         * include/bits/stl_vector.h: Trivial formatting fixes.
1522         * include/bits/vector.tcc: Likewise.
1523
1524 2004-04-25  Paolo Carlini  <pcarlini@suse.de>
1525
1526         PR libstdc++/15002 (continued again)
1527         * include/bits/istream.tcc (getline(basic_istream<>&,
1528         basic_string<>&, _CharT)): Use a temporary buffer, thus
1529         avoiding reallocation for common case.
1530
1531         * include/bits/basic_string.tcc (_S_construct(_InIterator,
1532         _InIterator, const _Alloc&, input_iterator_tag)): Tweak size
1533         of temporary buffer to a power of two.
1534
1535         * testsuite/27_io/basic_istream/getline/char/4.cc: Add comment.
1536
1537 2004-04-25  Paolo Carlini  <pcarlini@suse.de>
1538
1539         * testsuite/21_strings/basic_string/inserters_extractors/char/10.cc:
1540         New.
1541         * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/10.cc:
1542         Likewise.
1543         * testsuite/27_io/basic_istream/getline/char/5.cc: Likewise.
1544
1545 2004-04-24  Paolo Carlini  <pcarlini@suse.de>
1546             Petur Runolfsson  <peturr02@ru.is>
1547
1548         PR libstdc++/15002 (continued)
1549         * include/bits/istream.tcc (basic_istream<>::getline(char_type*,
1550         streamsize, char_type)): Use traits::find/copy in a loop to speed
1551         up greatly the function in the common case (I/O buffer size >> 1).
1552
1553 2004-04-24  Paolo Carlini  <pcarlini@suse.de>
1554
1555         * testsuite/27_io/basic_istream/getline/char/4.cc: New. 
1556
1557         * include/bits/istream.tcc (getline(basic_istream<>&,
1558         basic_string<>&, _CharT)): Change to use sgetc()/snextc() instead
1559         of sbumpc(), consistently with the other functions, thus also
1560         dealing correctly with the case of exceeded string::max_size().
1561
1562 2004-04-24  Matthias Klose  <doko@debian.org>
1563
1564         Jonathan Wakely  <cow@compsoc.man.ac.uk>
1565         * docs/html/configopts.html: Fix reference to allocator config option.
1566
1567 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
1568
1569         * linkage.m4 (GLIBCXX_CHECK_MATH_SUPPORT): Check for libmx also.
1570         * configure: Regenerate.
1571
1572 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
1573
1574         PR libstdc++/15047, libstdc++/11610
1575         * testsuite/lib/libstdc++.exp (v3-copy-files): Use remote_download.
1576         (libstdc++_init): Don't pass outdir to v3-copy-files.
1577
1578 2004-04-21  Paolo Carlini  <pcarlini@suse.de>
1579
1580         * include/bits/deque.tcc: Trivial formatting fixes.
1581         * include/bits/stl_deque.h: Likewise.
1582         * include/bits/stl_list.h: Likewise.
1583         * include/bits/stl_tree.h: Likewise.
1584
1585 2004-04-21  Paolo Carlini  <pcarlini@suse.de>
1586             Andrew Pinski  <pinskia@physics.uc.edu>
1587
1588         * include/bits/basic_string.tcc (_M_mutate): Don't compute
1589         __src unnecessarily.
1590
1591 2004-04-19  Benjamin Kosnik  <bkoz@redhat.com>
1592
1593         * testsuite/27_io/basic_istream/extractors_character/char/9555-ic.cc: 
1594         Clarify assertion, set test variable to false before assert.
1595         * testsuite/27_io/basic_istringstream/str/char/1.cc: Same.
1596         * testsuite/27_io/basic_stringstream/str/char/1.cc: Same.
1597         * testsuite/27_io/ios_base/storage/2.cc: Same.
1598         
1599         * testsuite/27_io/basic_filebuf/imbue/char/13171-4.cc: Fix
1600         function returns.
1601         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Same.
1602         * testsuite/27_io/fpos/14320-3.cc: Same.
1603         
1604         * testsuite/27_io/basic_filebuf/2.cc: Instantiate in namespace std.
1605         * testsuite/27_io/fpos/1.cc: Same.
1606         * testsuite/27_io/basic_stringstream/2.cc: Same.
1607         * testsuite/27_io/basic_stringbuf/4.cc: Same.
1608         * testsuite/27_io/basic_stringbuf/1.cc: Same.
1609         * testsuite/27_io/basic_stringbuf/2.cc: Same.
1610         * testsuite/27_io/basic_streambuf/2.cc: Same.
1611         * testsuite/27_io/basic_ostringstream/2.cc: Same.
1612         * testsuite/27_io/basic_ostream/2.cc: Same.
1613         * testsuite/27_io/basic_ofstream/2.cc: Same.
1614         * testsuite/27_io/basic_istringstream/2.cc: Same.
1615         * testsuite/27_io/basic_istream/2.cc: Same.
1616         * testsuite/27_io/basic_iostream/2.cc: Same.
1617         * testsuite/27_io/basic_ios/2.cc: Same.
1618         * testsuite/27_io/basic_ifstream/2.cc: Same.
1619         * testsuite/27_io/basic_fstream/2.cc: Same.
1620         * testsuite/ext/stdio_filebuf/char/1.cc: Same, in namespace __gnu_cxx.
1621
1622         * testsuite/21_strings/basic_string/capacity/1.cc: Don't compare
1623         unsigned against zero.
1624         * testsuite/21_strings/basic_string/capacity/wchar_t/1.cc: Same.
1625         * testsuite/21_strings/basic_string/capacity/char/1.cc: Same.
1626
1627         * testsuite/18_support/new_delete_placement.cc: Initialize
1628         variables before first use.
1629         * testsuite/21_strings/char_traits/requirements/wchar_t/1.cc: Same.
1630         * testsuite/21_strings/char_traits/requirements/char/1.cc: Same.
1631         * testsuite/21_strings/char_traits/requirements/short/1.cc: Same.
1632         * testsuite/27_io/basic_istream/seekg/char/exceptions_badbit_throw.cc: 
1633         Same.
1634         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/exceptions_badbit_throw.cc: Same.
1635         * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc: 
1636         Same.
1637         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/exceptions_failbit_throw.cc: Same.
1638         * testsuite/27_io/types/2.cc: Same.
1639
1640         * testsuite/ext/stdio_sync_filebuf/wchar_t/12077.cc: Fix temporary
1641         file name.      
1642         * testsuite/27_io/fpos/14775.cc: Same.
1643         
1644 2004-04-19  Paolo Carlini  <pcarlini@suse.de>
1645
1646         PR libstdc++/15002 (partial)
1647         * include/bits/basic_string.h (_M_replace_aux, _M_replace_safe):
1648         Special case __n2 == 1, not calling traits_type::assign/copy. 
1649
1650 2004-04-17  Benjamin Kosnik  <bkoz@redhat.com>
1651
1652         * include/bits/stl_bvector.h: Use _M_impl._M_start.
1653         
1654 2004-04-16  Benjamin Kosnik  <bkoz@redhat.com>
1655         
1656         * include/bits/c++config (_GLIBCXX_STD): New.
1657         * src/list.cc: Use it.
1658         * include/std/std_bitset.h: Same.
1659         * include/bits/vector.tcc: Same.
1660         * include/bits/stl_set.h: Same.
1661         * include/bits/stl_multiset.h: Same.
1662         * include/bits/stl_multimap.h: Same.
1663         * include/bits/stl_map.h: Same.
1664         * include/bits/stl_list.h: Same.
1665         * include/bits/stl_vector.h: Same.
1666         * include/bits/stl_bvector.h: Same.
1667         * include/bits/stl_deque.h: Same.
1668         * include/bits/deque.tcc: Same.
1669         * include/bits/list.tcc: Same.
1670         * include/debug/vector: Same.
1671         * include/debug/set.h: Same.
1672         * include/debug/multiset.h: Same.
1673         * include/debug/multimap.h: Same.
1674         * include/debug/map.h: Same.
1675         * include/debug/list: Same.
1676         * include/debug/deque: Same.
1677         * include/debug/bitset: Same.   
1678         * include/debug/formatter.h (__gnu_debug): Remove using directive.
1679         Add using declaration for std::type_info.
1680         * include/debug/safe_iterator.h: Add using declaration for
1681         std::iterator_traits and std::pair.
1682         * src/debug_list.cc: New.
1683         * src/Makefile.am: Add debug_list.cc.
1684         * src/Makefile.in: Regenerate.
1685         * config/linker-map.gnu: Add _List_node_base exports for std and
1686         __gnu_norm.
1687
1688         * include/bits/stl_bvector.h (_Bvector_base): Use _Bvector_impl
1689         idiom that other containers use.
1690         * testsuite/23_containers/vector/bool/clear_allocator.cc: New.
1691                         
1692 2004-04-16  Paolo Carlini  <pcarlini@suse.de>
1693
1694         PR libstdc++/14975
1695         * include/bits/fstream.tcc (basic_filebuf::imbue): Zero _M_codecvt
1696         in case of error.
1697         * testsuite/27_io/basic_filebuf/imbue/char/14975-1.cc: New.
1698         * testsuite/27_io/basic_filebuf/imbue/wchar_t/14975-2.cc: New.
1699
1700 2004-04-16  Paolo Carlini  <pcarlini@suse.de>
1701
1702         * acconfig.h: Remove _GLIBCXX_USE_LONG_DOUBLE entry, not
1703         used anymore.
1704         * config.h.in: Regenerate.
1705
1706 2004-04-16  Paolo Carlini  <pcarlini@suse.de>
1707
1708         * config/locale/generic/monetary_members.cc
1709         (moneypunct<wchar_t>::_M_initialize_moneypunct): Avoid calling
1710         btowc unnecessarily, just cast to wchar_t (the concerned chars
1711         all belong to the basic character set).
1712         * config/locale/generic/numeric_members.cc
1713         (numpunct<wchar_t>::_M_initialize_numpunct): Likewise.
1714         * config/locale/gnu/monetary_members.cc
1715         (moneypunct<wchar_t>::_M_initialize_moneypunct): Likewise.
1716         * config/locale/gnu/numeric_members.cc
1717         (numpunct<wchar_t>::_M_initialize_numpunct): Likewise.
1718
1719 2004-04-15  Paolo Carlini  <pcarlini@suse.de>
1720
1721         * src/locale.cc (locale::operator==): When _M_impl == __rhs._M_impl
1722         avoid constructing unnecessarily this->name().
1723
1724 2004-04-14  Zack Weinberg  <zack@codesourcery.com>
1725
1726         * testsuite/Makefile.am: Add definition of AM_CXXFLAGS.
1727         Change definition of CXX to use $(shell) instead of backticks.
1728         * testsuite/Makefile.in: Regenerate.
1729
1730 2004-04-12  Dhruv Matani  <dhruvbird@gmx.net>
1731
1732         * testsuite/performance/20_util/allocator/list_sort_search.cc:
1733         Minor formatting fixes.
1734         * testsuite/performance/20_util/allocator/map_mt_find.cc:
1735         Likewise.
1736
1737 2004-04-12  Paolo Carlini <pcarlini@suse.de>
1738
1739         * config/locale/gnu/numeric_members.cc
1740         (numpunct<wchar_t>::_M_initialize_numpunct): No need to wrap
1741         in __uselocale, since btowc is called for chars belonging to
1742         the basic character set.
1743
1744 2004-04-09  Paolo Carlini  <pcarlini@suse.de>
1745
1746         * testsuite/22_locale/messages/members/char/1.cc: Remove junk.
1747         * testsuite/22_locale/messages/members/char/2.cc: Ditto.
1748         * testsuite/22_locale/messages/members/char/3.cc: Ditto.
1749         * testsuite/22_locale/num_get/get/char/1.cc: Ditto.
1750         * testsuite/22_locale/num_get/get/char/2.cc: Ditto.
1751         * testsuite/22_locale/num_get/get/char/3.cc: Ditto.
1752         * testsuite/22_locale/num_get/get/wchar_t/1.cc: Ditto.
1753         * testsuite/22_locale/num_get/get/wchar_t/2.cc: Ditto.
1754         * testsuite/22_locale/num_get/get/wchar_t/3.cc: Ditto.
1755         * testsuite/22_locale/num_put/put/char/1.cc: Ditto.
1756         * testsuite/22_locale/num_put/put/char/2.cc: Ditto.
1757         * testsuite/22_locale/num_put/put/char/3.cc: Ditto.
1758         * testsuite/22_locale/num_put/put/wchar_t/1.cc: Ditto.
1759         * testsuite/22_locale/num_put/put/wchar_t/2.cc: Ditto.
1760         * testsuite/22_locale/num_put/put/wchar_t/3.cc: Ditto.
1761         * testsuite/22_locale/numpunct/members/char/1.cc: Ditto.
1762         * testsuite/22_locale/numpunct/members/wchar_t/1.cc: Ditto.
1763
1764 2004-04-07  Paolo Carlini  <pcarlini@suse.de>
1765
1766         * config/locale/generic/time_members.cc
1767         (__timepunct<char>::_M_initialize_timepunct,
1768         __timepunct<wchar_t>::_M_initialize_timepunct): the correct
1769         _M_amonth07 in the "C" locale is "Jul" and L"Jul", respectively.
1770         * config/locale/gnu/time_members.cc
1771         (__timepunct<char>::_M_initialize_timepunct,
1772         __timepunct<wchar_t>::_M_initialize_timepunct): Ditto.
1773         * testsuite/22_locale/time_get/get_monthname/char/4.cc: New.
1774         * testsuite/22_locale/time_get/get_monthname/wchar_t/4.cc: New.
1775
1776         * testsuite/22_locale/time_get/date_order/char/1.cc: Remove junk.
1777         * testsuite/22_locale/time_get/date_order/wchar_t/1.cc: Ditto.
1778         * testsuite/22_locale/time_get/get_date/char/1.cc: Ditto.
1779         * testsuite/22_locale/time_get/get_date/char/2.cc: Ditto.
1780         * testsuite/22_locale/time_get/get_date/wchar_t/1.cc: Ditto.
1781         * testsuite/22_locale/time_get/get_date/wchar_t/2.cc: Ditto.
1782         * testsuite/22_locale/time_get/get_monthname/char/1.cc: Ditto.
1783         * testsuite/22_locale/time_get/get_monthname/char/2.cc: Ditto.
1784         * testsuite/22_locale/time_get/get_monthname/wchar_t/1.cc: Ditto.
1785         * testsuite/22_locale/time_get/get_monthname/wchar_t/2.cc: Ditto.
1786         * testsuite/22_locale/time_get/get_time/char/1.cc: Ditto.
1787         * testsuite/22_locale/time_get/get_time/char/2.cc: Ditto.
1788         * testsuite/22_locale/time_get/get_time/wchar_t/1.cc: Ditto.
1789         * testsuite/22_locale/time_get/get_time/wchar_t/2.cc: Ditto.
1790         * testsuite/22_locale/time_get/get_weekday/char/1.cc: Ditto.
1791         * testsuite/22_locale/time_get/get_weekday/char/2.cc: Ditto.
1792         * testsuite/22_locale/time_get/get_weekday/wchar_t/1.cc: Ditto.
1793         * testsuite/22_locale/time_get/get_weekday/wchar_t/2.cc: Ditto.
1794         * testsuite/22_locale/time_get/get_year/char/1.cc: Ditto.
1795         * testsuite/22_locale/time_get/get_year/wchar_t/1.cc: Ditto.
1796         * testsuite/22_locale/time_put/put/char/1.cc: Ditto.
1797         * testsuite/22_locale/time_put/put/char/2.cc: Ditto.
1798         * testsuite/22_locale/time_put/put/char/3.cc: Ditto.
1799         * testsuite/22_locale/time_put/put/char/4.cc: Ditto.
1800         * testsuite/22_locale/time_put/put/char/5.cc: Ditto.
1801         * testsuite/22_locale/time_put/put/char/6.cc: Ditto.
1802         * testsuite/22_locale/time_put/put/char/7.cc: Ditto.
1803         * testsuite/22_locale/time_put/put/char/8.cc: Ditto.
1804         * testsuite/22_locale/time_put/put/wchar_t/1.cc: Ditto.
1805         * testsuite/22_locale/time_put/put/wchar_t/2.cc: Ditto.
1806         * testsuite/22_locale/time_put/put/wchar_t/3.cc: Ditto.
1807         * testsuite/22_locale/time_put/put/wchar_t/4.cc: Ditto.
1808         * testsuite/22_locale/time_put/put/wchar_t/5.cc: Ditto.
1809         * testsuite/22_locale/time_put/put/wchar_t/6.cc: Ditto.
1810         * testsuite/22_locale/time_put/put/wchar_t/7.cc: Ditto.
1811         * testsuite/22_locale/time_put/put/wchar_t/8.cc: Ditto.
1812
1813         * testsuite/22_locale/time_put/put/char/9780-1.cc: Fix typos.
1814
1815 2004-04-07  Paolo Carlini  <pcarlini@suse.de>
1816
1817         * config/locale/gnu/monetary_members.cc
1818         (moneypunct<wchar_t>::_M_initialize_moneypunct): Prefer
1819         _NL_MONETARY_DECIMAL_POINT_WC, _NL_MONETARY_THOUSANDS_SEP_WC,
1820         and __MON_GROUPING to _NL_NUMERIC_DECIMAL_POINT_WC,
1821         _NL_NUMERIC_THOUSANDS_SEP_WC, and GROUPING.
1822         * config/locale/gnu/numeric_members.cc
1823         (numpunct<char>::_M_initialize_numpunct): Prefer DECIMAL_POINT
1824         and THOUSANDS_SEP to the deprecated RADIXCHAR and THOUSEP.
1825
1826 2004-04-06  Benjamin Kosnik  <bkoz@redhat.com>
1827
1828         Fixups for EDG front end.
1829         * include/ext/rope: Instead of non-existent function
1830         _Data_allocate, use allocator's allocate. Use this.
1831         (namespace _Rope_constants): Move _S_max_rope_depth, and _Tag
1832         enumerations from _Rope_RopeRep here.
1833         * include/ext/ropeimpl.h: Same.
1834         * src/ext-inst.cc (_S_min_len): Fix up definition.
1835
1836         * config/locale/gnu/ctype_members.cc: Qualify base class members
1837         with this.
1838         * config/locale/generic/ctype_members.cc: Same.
1839         * config/locale/gnu/messages_members.h: Same.
1840         * config/locale/generic/messages_members.h: Same.
1841         * src/ctype.cc: Same.
1842         * include/bits/codecvt.h: Same.
1843
1844         * include/bits/boost_concept_check.h: Declare.
1845         (__error_type_must_be_an_unsigned_integer_type): Remove this.
1846         (__error_type_must_be_an_integer_type): Remove this.
1847         (__error_type_must_be_a_signed_integer_type): Remove this.
1848
1849         * config/io/basic_file_stdio.cc (__basic_file::sys_open): Remove cast.
1850
1851         * libsupc++/eh_alloc.cc (__cxa_free_exception): Add exception
1852         specification to definition.
1853         (__cxa_allocate_exception): Same.
1854         * libsupc++/eh_catch.cc (__cxa_begin_catch): Same.
1855         * libsupc++/eh_globals.cc (__cxa_get_globals_fast): Same.
1856         (__cxa_get_globals): Same.
1857
1858         * libsupc++/del_op.cc: Add comment about freestanding.
1859
1860 2004-04-05  Paolo Carlini  <pcarlini@suse.de>
1861
1862         * include/ext/mt_allocator.h (__mt_alloc<>::deallocate):
1863         The critical section is actually very small, only two assignments.
1864
1865 2004-04-04  Paolo Carlini  <pcarlini@suse.de>
1866             Petur Runolfsson  <peturr02@ru.is>
1867
1868         * testsuite/performance/27_io/filebuf_sputn_unbuf.cc: New,
1869         adapted from libstdc++/11378.
1870
1871 2004-04-03  Paolo Carlini  <pcarlini@suse.de>
1872
1873         * include/ext/mt_allocator.h (__mt_alloc<>::allocate): Factor out
1874         some duplicated code.
1875         (__mt_alloc<>::_Bin_record): Spare the space of _M_free and _M_used
1876         in the single threaded case.
1877         * testsuite/performance/20_util/allocator/list_sort_search.cc:
1878         Reorder and renumber the tests consistently with the other testfiles.
1879         * testsuite/performance/20_util/allocator/map_mt_find.cc: Ditto.
1880         * testsuite/performance/20_util/allocator/map_thread.cc: Ditto.
1881         * testsuite/performance/20_util/allocator/producer_consumer.cc: Ditto.
1882
1883 2004-04-02  Paolo Carlini  <pcarlini@suse.de>
1884
1885         * include/ext/mt_allocator.h (__mt_alloc<>::deallocate):
1886         Rearrange arithmetic to avoid computing two divisions at
1887         each deallocation.
1888
1889 2004-04-01  Paolo Carlini  <pcarlini@suse.de>
1890
1891         * include/ext/mt_allocator.h (__mt_alloc<>::_S_initialize):
1892         Streamline the second half, wrapping it in a single
1893         '#ifdef __GTHREADS if (__gthread_active_p())' and avoiding
1894         conditionals inside loops.
1895
1896 2004-04-01  Paolo Carlini  <pcarlini@suse.de>
1897
1898         PR libstdc++/14775
1899         * acconfig.h: Rename _GLIBCXX_MEM_LIMITS to _GLIBCXX_RES_LIMITS.
1900         * acinclude.m4 (GLIBCXX_CHECK_SETRLIMIT): Call
1901         GLIBCXX_CHECK_SETRLIMIT_ancilliary for FSIZE too, adjust define
1902         to _GLIBCXX_RES_LIMITS.
1903         (GLIBCXX_CHECK_SETRLIMIT_ancilliary): Rename HAVE_MEMLIMIT_* to
1904         HAVE_LIMIT_*.
1905         * testsuite/testsuite_hooks.h: Declare set_file_limit.
1906         * testsuite/testsuite_hooks.cc: Define it, using getrlimit
1907         and setrlimit(RLIMIT_FSIZE).
1908         * testsuite/27_io/fpos/14775.cc: New.
1909         * config.h.in: Regenerate.
1910         * configure: Likewise.
1911
1912 2004-03-31  Paolo Carlini  <pcarlini@suse.de>
1913
1914         * config/locale/generic/c_locale.cc (__convert_to_v(long double&)):
1915         In v3 uses of sscanf, the special floating-point numbers INF,
1916         INFINITY, etc., cannot occur in input, therefore, if the latter
1917         is too large, ERANGE is always stored in errno, no need of finitel.
1918
1919 2004-03-30  Benjamin Kosnik  <bkoz@redhat.com>
1920
1921         PR libstdc++/14783
1922         * include/bits/stl_tree.h: Adjust initialization list order.
1923
1924 2004-03-29  Loren J. Rittle  <ljrittle@acm.org>
1925
1926         * testsuite/thread/pthread7-rope.cc: Update comment to reflect test.
1927
1928 2004-03-29  Paolo Carlini  <pcarlini@suse.de>
1929
1930         * testsuite/thread/pthread7-rope.cc: Fix, unpredictably, depending
1931         on allocator behavior, the memory pointed by data2 may well be not
1932         trashed.
1933
1934 2004-03-28  Chavdar Botev  <cbotev@yahoo.com>
1935
1936         PR libstdc++/14245
1937         * include/bits/basic_string.tcc
1938         (basic_string::basic_string(const basic_string&)): Pass to
1939         _Rep::_M_grab the actual allocator of the string being constructed
1940         not the default constructed one.
1941
1942 2004-03-27  Benjamin Kosnik  <bkoz@redhat.com>
1943
1944         libstdc++ PR/13598
1945         * config/locale/ieee_1003.1-2001/codecvt_specializations.h
1946         (__enc_traits::_M_destroy): New.
1947         (__enc_traits::~__enc_traits): Use it.
1948         (__enc_traits::operator=): Use _M_destroy, _M_init.
1949         (__enc_traits::__enc_traits): Same.
1950
1951 2004-03-27  Petur Runolfsson  <peturr02@ru.is>
1952
1953         * testsuite/ext/enc_filebuf/char/13598.cc: New.
1954
1955 2004-03-27  Paolo Carlini  <pcarlini@suse.de>
1956
1957         * include/ext/mt_allocator.h: Uglify consistently names of
1958         variables, members and classes; tidy.
1959
1960 2004-03-27  Dhruv Matani  <dhruvbird@gmx.net>
1961
1962         * include/ext/mt_allocator.h (__mt_alloc<>::deallocate):
1963         Deallocation loop rewrote.
1964
1965 2004-03-26  Paolo Carlini  <pcarlini@suse.de>
1966
1967         * include/ext/mt_allocator.h (__mt_alloc<>::allocate,
1968         __mt_alloc<>::deallocate): Protect two instances of
1969         block->thread_id with __GTHREADS.
1970
1971 2004-03-25  Gawain Bolton  <gp.bolton@computer.org>
1972
1973         * include/bits/stl_tree.h (_Rb_tree_impl): Add _Node_allocator
1974         default argument in constructors.
1975         (_Rb_tree::_M_empty_initialize): Remove.
1976
1977 2004-03-25  Benjamin Kosnik  <bkoz@redhat.com>
1978
1979         * testsuite/23_containers/map/operators/1_neg.cc: Adjust line numbers.
1980         * testsuite/23_containers/set/operators/1_neg.cc: Same.
1981
1982 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
1983
1984         * include/bits/cpp_type_traits.h: Changed __is_pod
1985         completely. Now, it does not use any of the previous type_traits
1986         to detect the pod types, and it also detects function pointers as
1987         POD types.
1988
1989         * include/bits/stl_tree.h: Introduced a new class _Rb_tree_impl,
1990         which encapsulates the internal implementation of an rb_tree. Made
1991         the allocator a base class of this class instead of the rb_tree,
1992         which was not conforming. This _Rb_tree_impl class is also
1993         specialized on whether the _Compare parameter is a POD type or
1994         not. If so, then it maintains the comparison function as a data
1995         member, otherwise it makes the _Compare parameter a base class of
1996         itself. Also, _M_key_compare is now a function instead of a data
1997         member, so that the above trick can work properly. Delegated the
1998         initialization of the other data members to this newly created
1999         class. Also, now other member functions of rb_tree must refer to
2000         _M_key_compare as _M_impl._M_key_compare(). The other data members
2001         (*) can be referenced to as _M_impl.(*), where
2002         (*) includes _M_header, and _M_node_count.
2003
2004 2004-03-25  Paolo Carlini  <pcarlini@suse.de>
2005
2006         * include/ext/mt_allocator.h (__mt_alloc<>::tune):
2007         Add _M_min_bin, the size in bytes of the smallest bin.
2008         (__mt_alloc<>::tune()): Tweak accordingly.
2009         (__mt_alloc<>::tune(size_t, ...)): Likewise.
2010         (__mt_alloc<>::block_record): Change to a union: members next
2011         and thread_id are never used at the same time.
2012         (__mt_alloc<>::allocate): Update consistently.
2013         (__mt_alloc<>::deallocate): Likewise.
2014         (__mt_alloc<>::_S_initialize): Update setups of _S_binmap and
2015         _S_bin_size for the configurable _M_min_size.
2016
2017 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
2018
2019         * include/bits/stl_list.h: Created a _List_impl class and made it
2020         derive from the allocator, instead of the list deriving from the
2021         allocator class, which was not conformant. Changed all references
2022         from this->_M_node to this->_M_impl._M_node * bits/list.tcc: Same
2023         as above (changed all references to the concerned variables).
2024
2025 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
2026
2027         * include/bits/stl_deque.h: Created a _Deque_impl class and made
2028         it derive from the allocator, instead of the deque deriving from
2029         the allocator class, which was not conformant. Changed all
2030         references to the _M_start, _M_finish, _M_map, and _M_map_size to
2031         _M_impl.*.
2032         (_Deque_base<_Tp,_Alloc>::~_Deque_base()): Added this->
2033         qualification in 2 places where it was missing.
2034         (_Deque_base<_Tp,_Alloc>::_M_initialize_map(size_t)): Same as
2035         above.
2036         * include/bits/deque.tcc: Same as above (changed all references to
2037         the concerned variables).
2038
2039 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
2040
2041         * include/bits/stl_vector.h: Created a _Vector_impl class and made
2042         it derive from the allocator, instead of the _Vector_base class,
2043         deriving from the allocator which was not conformant. Changed all
2044         references to the _M_start, _M_finish, and _M_end_of_storage to
2045         _M_impl.*.
2046         * include/bits/vector.tcc: Same as above (changed all references
2047         to the concerned variables).
2048
2049 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
2050
2051         * testsuite/23_containers/deque/cons/clear_allocator.cc: New.
2052         * testsuite/23_containers/list/cons/clear_allocator.cc: New.
2053         * testsuite/23_containers/vector/cons/clear_allocator.cc: New.
2054
2055 2004-03-24  Dhruv Matani  <dhruvbird@gmx.net>
2056
2057         * include/ext/malloc_allocator.h: Fixed the construct function to
2058         call global placement new instead of assignment. Added a check
2059         after the return from malloc to check whether returned pointer is
2060         NULL, and if so, throw std::bad_alloc().
2061         * include/ext/debug_allocator.h: Added a check in the deallocate
2062         function to check whether the user has passed a NULL pointer or
2063         not.
2064
2065 2004-03-24  Benjamin Kosnik  <bkoz@redhat.com>
2066
2067         * docs/html/20_util/allocator.html: Add bitmap_allocator links.
2068
2069 2004-03-24  Andreas Schwab  <schwab@suse.de>
2070
2071         * testsuite/lib/prune.exp (prune_g++_output): Ignore errata
2072         warning from IA64 assembler.
2073
2074 2004-03-24  Dhruv Matani  <dhruvbird@gmx.net>
2075
2076         * include/ext/bitmap_allocator.h: (_Bit_scan_forward) -> Made this
2077         function call __builtin_ctz instead of the while loop.
2078         (allocate) -> If condition has __builtin_expect.
2079         (deallocate) -> Ditto.
2080         Renamed a few left-over variables and typedefs according to the
2081         C++STYLE mentioned in the documentation.
2082         Protected calls to __gthread* by __gthread_active_p(), whose value
2083         is cached in the local variable __threads_active.
2084
2085 2004-03-24  Felix Yen  <fwy@alumni.brown.edu>
2086
2087         * testsuite/performance/20_util/allocator/producer_consumer.cc:
2088         Use linear algorithm for producer.
2089
2090 2004-03-24  Paolo Carlini  <pcarlini@suse.de>
2091
2092         * include/ext/mt_allocator.h (__mt_alloc<>::allocate,
2093         __mt_alloc<>::deallocate): Avoid redundant conditionals.
2094
2095 2004-03-23  Benjamin Kosnik  <bkoz@redhat.com>
2096
2097         * include/bits/locale_facets.h: Tweaks for 80 column.
2098         (__numpunct_cache::_M_cache): Move to locale_facets.tcc.
2099         (__moneypunct_cache::_M_cache): Same.
2100         (num_get): Don't inherit from __num_base.
2101         (num_put): Same.
2102         (money_get): Don't inherit from money_base.
2103         (money_put): Same.
2104         (__timepunct::_M_am_pm_format): New.
2105         (time_get::_M_extract_num): Return iterator, use ios_base as argument.
2106         (time_get::_M_extract_name): Same.
2107         (time_get::_M_extract_via_format): Same.
2108         * include/bits/locale_facets.tcc: Tweaks for 80 column.
2109         Use _M_getloc instead of getloc.
2110         * testsuite/22_locale/money_put/put/char/9780-3.cc: New.
2111         * testsuite/22_locale/num_put/put/char/9780-2.cc: New.
2112         * testsuite/22_locale/time_put/put/char/9780-1.cc: New.
2113
2114 2004-03-22  Paolo Carlini  <pcarlini@suse.de>
2115
2116         * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Add pool_allocator.
2117         * configure: Regenerate.
2118         * config/allocator/pool_allocator_base.h: New.
2119         * include/ext/pool_allocator.h: Convert to a standard-conforming
2120         allocator.
2121         * src/allocator.cc: Tweak instantiations.
2122         * testsuite/performance/20_util/allocator/insert.cc: Add __pool_alloc.
2123         * testsuite/performance/20_util/allocator/insert_insert.cc: Ditto.
2124         * testsuite/performance/20_util/allocator/list_sort_search.cc: Ditto.
2125         * testsuite/performance/20_util/allocator/map_mt_find.cc: Ditto.
2126         * testsuite/performance/20_util/allocator/map_thread.cc: Ditto.
2127         * testsuite/performance/20_util/allocator/producer_consumer.cc: Ditto.
2128
2129 2004-03-22  Hans-Peter Nilsson  <hp@axis.com>
2130
2131         * config/cpu/cris/atomicity.h (__atomic_add): Remove "static
2132         inline" and attribute-unused.  Qualify parameter __mem with
2133         "volatile".
2134         (__exchange_and_add): Ditto.  Add back memory clobber to asm.
2135
2136 2004-03-20  Paolo Carlini  <pcarlini@suse.de>
2137
2138         * testsuite/27_io/basic_istream/extractors_arithmetic/char/2.cc:
2139         Remove junk.
2140         * testsuite/27_io/basic_istream/extractors_arithmetic/char/3.cc:
2141         Likewise.
2142         * testsuite/27_io/basic_istream/extractors_arithmetic/char/6.cc:
2143         Likewise.
2144         * testsuite/27_io/basic_istream/extractors_arithmetic/char/7.cc:
2145         Likewise.
2146         * testsuite/27_io/basic_istream/extractors_arithmetic/char/8.cc:
2147         Likewise.
2148         * testsuite/27_io/basic_istream/extractors_arithmetic/char/9.cc:
2149         Likewise.
2150         * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
2151         Likewise.
2152         * testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc:
2153         Likewise.
2154         * testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
2155         Likewise.
2156         * testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc:
2157         Likewise.
2158
2159 2004-03-20  Paolo Carlini  <pcarlini@suse.de>
2160
2161         * include/std/std_valarray.h: Document DR389 [Ready].
2162         * docs/html/ext/howto.html: Add an entry for DR389.
2163
2164 2004-03-19  Michael Eager  <eager@mvista.com>
2165
2166         * config/cpu/mips/atomicity.h:  Prevent reg loads between LL and
2167         SC instructions.
2168
2169 2004-03-19  Paolo Carlini  <pcarlini@suse.de>
2170
2171         * testsuite/22_locale/num_get/get/char/11.cc: Remove redundant
2172         static_cast-s.
2173         * testsuite/22_locale/num_get/get/char/12.cc: Likewise.
2174         * testsuite/22_locale/num_get/get/char/13.cc: Likewise.
2175         * testsuite/22_locale/num_get/get/char/14.cc: Likewise.
2176         * testsuite/22_locale/num_get/get/char/15.cc: Likewise.
2177         * testsuite/22_locale/num_get/get/wchar_t/11.cc: Likewise.
2178         * testsuite/22_locale/num_get/get/wchar_t/12.cc: Likewise.
2179         * testsuite/22_locale/num_get/get/wchar_t/13.cc: Likewise.
2180         * testsuite/22_locale/num_get/get/wchar_t/14.cc: Likewise.
2181         * testsuite/22_locale/num_get/get/wchar_t/15.cc: Likewise.
2182
2183 2004-03-19  Paolo Carlini  <pcarlini@suse.de>
2184             Petur Runolfsson  <peturr02@ru.is>
2185
2186         PR libstdc++/12077
2187         * include/ext/stdio_sync_filebuf.h (showmanyc): Remove, there's
2188         no way to find out the conversion used by the underlying FILE*.
2189         * testsuite/ext/stdio_sync_filebuf/wchar_t/12077.cc: New.
2190         * testsuite/27_io/objects/char/9.cc: Tweak.
2191
2192 2004-03-19  Paolo Carlini  <pcarlini@suse.de>
2193
2194         PR libstdc++/14648
2195         * include/ext/ropeimpl.h (rope<>::_S_apply_to_pieces): Fix
2196         memory allocation/deallocation calls.
2197         * testsuite/ext/14648.cc: New.
2198
2199 2004-03-19  Peter Schmid  <schmid@snake.iap.physik.tu-darmstadt.de>
2200
2201         PR libstdc++/14647
2202         * include/backward/bvector.h (bit_vector): Allocator is in std
2203         namespace.
2204
2205 2004-03-19  Phil Edwards  <phil@codesourcery.com>
2206
2207         * acinclude.m4 (GLIBCXX_CHECK_WCHAR_T_SUPPORT):  Set LIBICONV,
2208         not libiconv.  SUBST this variable as well.
2209         * testsuite/Makefile.am (site.exp):  New target, based on that
2210         created by automake.  Also set libiconv.
2211
2212         * configure, Makefile.in, include/Makefile.in, libmath/Makefile.in,
2213         libsupc++/Makefile.in, po/Makefile.in, src/Makefile.in,
2214         testsuite/Makefile.in:  Regenerate.
2215
2216 2004-03-16  Benjamin Kosnik  <bkoz@redhat.com>
2217
2218         * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Default setting is
2219         new_allocator for all hosts.
2220         * configure: Regenerate.
2221
2222 2004-03-16  Paolo Carlini  <pcarlini@suse.de>
2223
2224         * testsuite/22_locale/num_put/put/char/4.cc: Fix for 64-bit pointers.
2225         * testsuite/22_locale/num_put/put/wchar_t/4.cc: Likewise.
2226
2227 2004-03-15  Paolo Carlini  <pcarlini@suse.de>
2228
2229         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
2230         Adjust the logic underlying the parsing of symbol to deal
2231         correctly with an optional sign component (i.e., when either
2232         negative_sign or positive_sign is empty)
2233         * testsuite/22_locale/money_get/get/char/19.cc: New.
2234         * testsuite/22_locale/money_get/get/wchar_t/19.cc: New.
2235
2236 2004-03-15  Paolo Carlini  <pcarlini@suse.de>
2237
2238         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
2239         Do not accept an incomplete currency symbol.
2240         * testsuite/22_locale/money_get/get/char/18.cc: New.
2241         * testsuite/22_locale/money_get/get/wchar_t/18.cc: New.
2242
2243 2004-03-13  Benjamin Kosnik  <bkoz@redhat.com>
2244
2245         * config/allocator: New.
2246         * config/allocator/bitmap_allocator_base.h: New.
2247         * config/allocator/malloc_allocator_base.h: New.
2248         * config/allocator/mt_allocator_base.h: New.
2249         * config/allocator/new_allocator_base.h: New.
2250         * include/bits/allocator.h: Include c++allocator.h.
2251         * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): New.
2252         * aclocal.m4: Regenerate.
2253         * configure.ac: Use GLIBCXX_ENABLE_ALLOCATOR.
2254         * configure: Regenerate.
2255         * include/Makefile.am (host_headers_extra): Add c++allocator.h.
2256         * include/Makefile.in: Regenerate.
2257         * docs/html/configopts.html: Add enable-libstdcxx-allocator.
2258
2259 2004-03-12  Benjamin Kosnik  <bkoz@redhat.com>
2260
2261         * include/bits/allocator.h: Revert.
2262
2263 2004-03-12  Paolo Carlini  <pcarlini@suse.de>
2264
2265         * docs/html/ext/howto.html: Add entry for DR 253 [Ready].
2266         * include/bits/gslice_array.h: Add comment about DR 253.
2267         * include/bits/indirect_array.h: Likewise.
2268         * include/bits/mask_array.h: Likewise.
2269         * include/bits/slice_array.h: Likewise.
2270
2271 2004-03-12  Benjamin Kosnik  <bkoz@redhat.com>
2272
2273         * testsuite/20_util/allocator/14176.cc: New.
2274         * include/ext/mt_allocator.h: Formatting fixes.
2275
2276 2004-03-11  Dhruv Matani  <dhruvbird@HotPOP.com>
2277
2278         * include/Makefile.am (ext_headers): Add
2279         ${ext_srcdir}/bitmap_allocator.h .
2280         * include/Makefile.in: Regenerate.
2281         * docs/html/ext/ballocator_doc.txt: New file.
2282         * include/ext/bitmap_allocator.h: New file.
2283         * testsuite/performance/20_util/allocator/list_sort_search.cc: Add
2284         test.
2285         * testsuite/performance/20_util/allocator/map_mt_find.cc: Likewise.
2286         * testsuite/performance/20_util/allocator/producer_consumer.cc: Add
2287         test for the bitmap_allocator<>.
2288         * testsuite/performance/20_util/allocator/insert.cc: Likewise.
2289         * testsuite/performance/20_util/allocator/insert_insert.cc: Likewise.
2290         * testsuite/performance/20_util/allocator/map_thread.cc: Likewise.
2291
2292 2004-03-11  Paolo Carlini  <pcarlini@suse.de>
2293
2294         * include/std/std_complex.h (pow(const complex&, const _Tp&),
2295         pow(const _Tp&, const complex&), pow(const complex&,
2296         const complex&)): Fully qualify with std:: a few calls.
2297         * testsuite/26_numerics/complex/13450.cc: Minor tweak.
2298
2299 2004-03-11  Steven Bosscher  <stevenb@suse.de>
2300
2301         PR libstdc++/11706
2302         * include/c_std/cmath.tcc (__cmath_power): Define inline.
2303
2304 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
2305
2306         * configure.ac: Bump AC_PREREQ to 2.59.
2307
2308 2004-03-10  Paolo Carlini  <pcarlini@suse.de>
2309
2310         * testsuite/26_numerics/valarray_subset_assignment.cc: Fix typos.
2311
2312 2004-03-10  Paul Kienzle  <pkienzle@nist.gov>
2313             Paolo Carlini  <pcarlini@suse.de>
2314
2315         PR libstdc++/13450
2316         * include/std/std_complex.h (pow(const complex&, const _Tp&),
2317         pow(const _Tp&, const complex&)): Use cmath pow only when safe.
2318         * testsuite/26_numerics/complex/13450.cc: New.
2319
2320         * testsuite/26_numerics/cmath/overloads.C: Rename to overloads.cc.
2321         * testsuite/26_numerics/complex/pow.C: Rename to pow.cc and fix.
2322
2323 2004-03-10  Jerry Quinn  <jlquinn@optonline.net>
2324
2325         PR libstdc++/3247
2326         * include/bits/gslice_array.h (gslice_array()): Make public.
2327         (operator=(gslice_array)): Make public.  Implement.
2328         * include/bits/indirect_array.h (indirect_array()): Make public.
2329         * include/bits/mask_array.h (mask_array()): Make public.
2330         (operator=(mask_array)): Make public.  Implement.
2331         * include/bits/valarray_array.tcc (__valarray_copy):
2332         Comment.  Add versions for gslice_array and mask_array.
2333         * testsuite/26_numerics/valarray_subset_assignment.cc:  New test.
2334
2335 2004-03-09  Benjamin Kosnik  <bkoz@redhat.com>
2336
2337         * testsuite/23_containers/deque/modifiers/swap.cc: Add in bits for
2338         non-weak systems.
2339         * testsuite/23_containers/vector/modifiers/swap.cc: Same.
2340         * testsuite/23_containers/set/modifiers/swap.cc: Same.
2341         * testsuite/23_containers/multiset/modifiers/swap.cc: Same.
2342         * testsuite/23_containers/multimap/modifiers/swap.cc: Same.
2343         * testsuite/23_containers/map/modifiers/swap.cc: Same.
2344         * testsuite/23_containers/list/modifiers/swap.cc: Same.
2345
2346         * testsuite/22_locale/locale/cons/12658_thread.cc: Catch exceptions.
2347
2348 2004-03-08  Benjamin Kosnik  <bkoz@redhat.com>
2349
2350         PR c++/13658
2351         * testsuite/23_containers/deque/modifiers/swap.cc: New.
2352         * testsuite/23_containers/list/modifiers/swap.cc: New.
2353         * testsuite/23_containers/map/modifiers/swap.cc: New.
2354         * testsuite/23_containers/multimap/modifiers/swap.cc: New.
2355         * testsuite/23_containers/multiset/modifiers/swap.cc: New.
2356         * testsuite/23_containers/set/modifiers/swap.cc: New.
2357         * testsuite/23_containers/vector/modifiers/swap.cc: New.
2358
2359 2004-03-08  Petur Runolfsson  <peturr02@ru.is>
2360
2361         PR libstdc++/12658
2362         * testsuite/22_locale/locale/cons/12658_thread.cc: New.
2363
2364 2004-03-08  Paolo Carlini  <pcarlini@suse.de>
2365
2366         * docs/html/ext/howto.html: Add entry for DR 103 [WP].
2367         * include/bits/stl_multiset.h: Add comment about DR 103.
2368         * include/bits/stl_set.h: Likewise.
2369
2370 2004-03-08  Paolo Carlini  <pcarlini@suse.de>
2371
2372         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
2373         The value _space_ indicates that at least one space is required
2374         at that position.
2375         * testsuite/22_locale/money_get/get/char/17.cc: New.
2376         * testsuite/22_locale/money_get/get/wchar_t/17.cc: New.
2377
2378         * testsuite/22_locale/money_get/get/char/7.cc: Minor tweaks.
2379         * testsuite/22_locale/money_get/get/wchar_t/7.cc: Likewise.
2380
2381         * include/bits/locale_facets.tcc (money_get<>::do_get(long_double&)):
2382         Remove redundant conditional on __str.size().
2383
2384 2004-03-08  Benjamin Kosnik  <bkoz@redhat.com>
2385
2386         * include/bits/allocator.h: Switch defaults to mt_alloc.
2387
2388 2004-03-06  Benjamin Kosnik  <bkoz@redhat.com>
2389
2390         * include/ext/mt_allocator.h (_S_initialize): If
2391         !__GTHREAD_MUTEX_INIT, then initialize _S_thread_freelist_mutex.
2392
2393 2004-03-06  Benjamin Kosnik  <bkoz@redhat.com>
2394
2395         PR libstdc++/12658
2396         * src/locale_init.cc (locale::locale): Lock critical regions with
2397         external mutexes.
2398         (locale::global): Same.
2399         * include/bits/concurrence.h (__glibcxx_mutex_define_initialized):
2400         Add in once bits for cases without __GTHREAD_MUTEX_INIT.
2401         (__glibcxx_mutex_lock): Same.
2402
2403         * config/cpu/generic/atomicity.h: Remove
2404         _GLIBCXX_NEED_GENERIC_MUTEX, use concurrence.h.
2405         * src/misc-inst.cc: Move all locking bits out of this file.
2406
2407         * config/os/hpux/os_defines.h: Remove _GLIBCXX_INST_ATOMICITY_LOCK.
2408         * src/misc-inst.cc: Same.
2409         * config/cpu/hppa/atomicity.h: Same.
2410
2411         * config/linker-map.gnu: Remove types in the signature of atomic
2412         exports, as they may vary.
2413
2414 2004-03-06  Paolo Carlini  <pcarlini@suse.de>
2415
2416         * include/bits/locale_facets.tcc: Tweak the comment preceding
2417         has_facet: doesn't throw.
2418
2419 2004-03-06  Paolo Carlini  <pcarlini@suse.de>
2420
2421         * testsuite/22_locale/money_get/get/char/1.cc: Clean up.
2422         * testsuite/22_locale/money_get/get/char/2.cc: Likewise.
2423         * testsuite/22_locale/money_get/get/char/3.cc: Likewise.
2424         * testsuite/22_locale/money_get/get/char/4.cc: Likewise.
2425         * testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise.
2426         * testsuite/22_locale/money_get/get/wchar_t/2.cc: Likewise.
2427         * testsuite/22_locale/money_get/get/wchar_t/3.cc: Likewise.
2428         * testsuite/22_locale/money_get/get/wchar_t/4.cc: Likewise.
2429
2430 2004-03-06  Paolo Carlini  <pcarlini@suse.de>
2431
2432         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
2433         num_get<>::_M_extract_int, num_get<>::do_get(bool&),
2434         __pad<>::_S_pad): Prefer plain operator== to traits::eq().
2435         * testsuite/testsuite_character.h (struct __gnu_test::character):
2436         Provide operator==.
2437         * testsuite/testsuite_hooks.h (struct __gnu_test::pod_char):
2438         Likewise.
2439
2440 2004-03-05  Paolo Carlini  <pcarlini@suse.de>
2441
2442         * testsuite/27_io/fpos/14320-2.cc: Remove xfail.
2443
2444 2004-03-04  Benjamin Kosnik  <bkoz@redhat.com>
2445
2446         * testsuite/23_containers/multiset/insert/1.cc: Test result string.
2447
2448         * testsuite/23_containers/bitset/invalidation/1.cc: Main always
2449         returns 0.
2450         * testsuite/23_containers/deque/invalidation/4.cc: Same.
2451         * testsuite/23_containers/list/invalidation/1.cc: Same.
2452         * testsuite/23_containers/list/invalidation/2.cc: Same.
2453         * testsuite/23_containers/list/invalidation/3.cc: Same.
2454         * testsuite/23_containers/list/invalidation/4.cc: Same.
2455         * testsuite/23_containers/map/invalidation/2.cc: Same.
2456         * testsuite/23_containers/multimap/invalidation/1.cc: Same.
2457         * testsuite/23_containers/multimap/invalidation/2.cc: Same.
2458         * testsuite/23_containers/multiset/invalidation/1.cc: Same.
2459         * testsuite/23_containers/multiset/invalidation/2.cc: Same.
2460         * testsuite/23_containers/set/invalidation/1.cc: Same.
2461         * testsuite/23_containers/set/invalidation/2.cc: Same.
2462         * testsuite/23_containers/vector/invalidation/1.cc: Same.
2463         * testsuite/23_containers/vector/invalidation/2.cc: Same.
2464         * testsuite/23_containers/vector/invalidation/3.cc: Same.
2465         * testsuite/23_containers/vector/invalidation/4.cc: Same.
2466
2467 2004-03-04  Paolo Carlini  <pcarlini@suse.de>
2468
2469         * scripts/testsuite_flags.in: Add "-D_GLIBCXX_ASSERT" to
2470         CXXFLAGS_save.
2471         * testsuite/lib/libstdc++.exp: Don't add it conditionally to
2472         DEFAULT_CXXFLAGS.
2473         * testsuite/18_support/numeric_limits.cc: Remove "-D_GLIBCXX_ASSERT"
2474         from the dg-options.
2475         * testsuite/23_containers/vector/invalidation/1.cc: Likewise.
2476         * testsuite/23_containers/vector/invalidation/2.cc: Likewise.
2477         * testsuite/23_containers/vector/invalidation/3.cc: Likewise.
2478         * testsuite/23_containers/vector/invalidation/4.cc: Likewise.
2479         * testsuite/23_containers/vector/resize/1.cc: Likewise.
2480         * testsuite/26_numerics/complex_value.cc: Likewise.
2481         * testsuite/27_io/ios_base/storage/1.cc: Likewise.
2482         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
2483         * testsuite/27_io/ios_base/storage/3.cc: Likewise.
2484         * testsuite/27_io/manipulators/standard/char/2.cc: Likewise.
2485         * testsuite/27_io/objects/char/5.cc: Likewise.
2486         * testsuite/27_io/objects/wchar_t/5.cc: Likewise.
2487         * testsuite/backward/11460.cc: Likewise.
2488         * testsuite/thread/pthread7-rope.cc: Likewise.
2489
2490         * testsuite/21_strings/basic_string/compare/char/1.cc: Add
2491         missing test variable.
2492         * testsuite/21_strings/basic_string/compare/wchar_t/1.cc: Add
2493         missing test variable.
2494
2495 2004-03-04  Benjamin Kosnik  <bkoz@redhat.com>
2496
2497         * testsuite/20_util/allocator/1.cc: Provide explicit
2498         instantiations for non-weak systems.
2499         * testsuite/20_util/binders.cc: Same.
2500         * testsuite/20_util/allocator/8230.cc: Same.
2501         * testsuite/20_util/allocator/10378.cc: Same.
2502         * testsuite/22_locale/ctype/is/wchar_t/2.cc: Same.
2503         * testsuite/22_locale/ctype/is/char/2.cc: Same.
2504         * testsuite/thread/pthread7-rope.cc: Same.
2505         * testsuite/thread/pthread6.cc: Same.
2506         * testsuite/thread/pthread5.cc: Same.
2507         * testsuite/thread/pthread4.cc: Same.
2508         * testsuite/thread/pthread1.cc: Same.
2509         * testsuite/ext/rope.cc: Same.
2510         * testsuite/ext/hash_set.cc: Same.
2511         * testsuite/ext/hash_map.cc: Same.
2512         * testsuite/ext/concept_checks.cc: Same.
2513         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc: Same.
2514         * testsuite/25_algorithms/unique/2.cc: Same.
2515         * testsuite/25_algorithms/unique/1.cc: Same.
2516         * testsuite/25_algorithms/rotate.cc: Same.
2517         * testsuite/25_algorithms/min_max.cc: Same.
2518         * testsuite/25_algorithms/equal.cc: Same.
2519         * testsuite/24_iterators/rel_ops.cc: Same.
2520         * testsuite/24_iterators/iterator.cc: Same.
2521         * testsuite/24_iterators/insert_iterator.cc: Same.
2522         * testsuite/24_iterators/front_insert_iterator.cc: Same.
2523         * testsuite/24_iterators/back_insert_iterator.cc: Same.
2524         * testsuite/23_containers/vector/resize/1.cc: Same.
2525         * testsuite/23_containers/vector/modifiers/2.cc: Same.
2526         * testsuite/23_containers/vector/modifiers/1.cc: Same.
2527         * testsuite/23_containers/vector/invalidation/4.cc: Same.
2528         * testsuite/23_containers/vector/invalidation/3.cc: Same.
2529         * testsuite/23_containers/vector/invalidation/2.cc: Same.
2530         * testsuite/23_containers/vector/invalidation/1.cc: Same.
2531         * testsuite/23_containers/vector/element_access/1.cc: Same.
2532         * testsuite/23_containers/vector/cons/6513.cc: Same.
2533         * testsuite/23_containers/vector/cons/3.cc: Same.
2534         * testsuite/23_containers/vector/cons/2.cc: Same.
2535         * testsuite/23_containers/vector/cons/1.cc: Same.
2536         * testsuite/23_containers/vector/capacity/8230.cc: Same.
2537         * testsuite/23_containers/vector/capacity/1.cc: Same.
2538         * testsuite/23_containers/vector/bool/6886.cc: Same.
2539         * testsuite/23_containers/stack/members/7158.cc: Same.
2540         * testsuite/23_containers/set/invalidation/2.cc: Same.
2541         * testsuite/23_containers/set/invalidation/1.cc: Same.
2542         * testsuite/23_containers/queue/members/7157.cc: Same.
2543         * testsuite/23_containers/priority_queue/members/7161.cc: Same.
2544         * testsuite/23_containers/multiset/invalidation/2.cc: Same.
2545         * testsuite/23_containers/multiset/invalidation/2.cc: Same.
2546         * testsuite/23_containers/multiset/insert/1.cc: Same.
2547         * testsuite/23_containers/multimap/invalidation/2.cc: Same.
2548         * testsuite/23_containers/multimap/invalidation/2.cc: Same.
2549         * testsuite/23_containers/map/operators/1.cc: Same.
2550         * testsuite/23_containers/map/invalidation/2.cc: Same.
2551         * testsuite/23_containers/map/invalidation/1.cc: Same.
2552         * testsuite/23_containers/map/insert/1.cc: Same.
2553         * testsuite/23_containers/list/operators/4.cc: Same.
2554         * testsuite/23_containers/list/operators/3.cc: Same.
2555         * testsuite/23_containers/list/operators/2.cc: Same.
2556         * testsuite/23_containers/list/operators/1.cc: Same.
2557         * testsuite/23_containers/list/modifiers/3.cc: Same.
2558         * testsuite/23_containers/list/modifiers/2.cc: Same.
2559         * testsuite/23_containers/list/modifiers/1.cc: Same.
2560         * testsuite/23_containers/list/invalidation/4.cc: Same.
2561         * testsuite/23_containers/list/invalidation/3.cc: Same.
2562         * testsuite/23_containers/list/invalidation/2.cc: Same.
2563         * testsuite/23_containers/list/invalidation/1.cc: Same.
2564         * testsuite/23_containers/list/cons/9.cc: Same.
2565         * testsuite/23_containers/list/cons/8.cc: Same.
2566         * testsuite/23_containers/list/cons/7.cc: Same.
2567         * testsuite/23_containers/list/cons/6.cc: Same.
2568         * testsuite/23_containers/list/cons/5.cc: Same.
2569         * testsuite/23_containers/list/cons/4.cc: Same.
2570         * testsuite/23_containers/list/cons/3.cc: Same.
2571         * testsuite/23_containers/list/cons/2.cc: Same.
2572         * testsuite/23_containers/list/cons/1.cc: Same.
2573         * testsuite/23_containers/list/capacity/1.cc: Same.
2574         * testsuite/23_containers/deque/operators/1.cc: Same.
2575         * testsuite/23_containers/deque/invalidation/4.cc: Same.
2576         * testsuite/23_containers/deque/invalidation/3.cc: Same.
2577         * testsuite/23_containers/deque/invalidation/2.cc: Same.
2578         * testsuite/23_containers/deque/invalidation/1.cc: Same.
2579         * testsuite/23_containers/deque/cons/2.cc: Same.
2580         * testsuite/23_containers/deque/cons/1.cc: Same.
2581
2582         * src/allocator.cc: Add char, wchar_t instantiations
2583         to match extern template declarations in memory.h.
2584
2585 2004-03-03  Paolo Carlini  <pcarlini@suse.de>
2586
2587         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
2588         Fix warning regression.
2589
2590 2004-03-03  Paolo Carlini  <pcarlini@suse.de>
2591
2592         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
2593         Deal properly with empty __digits and negative frac_digits,
2594         clean-up a bit.
2595
2596 2004-03-03  Jonathan Wakely  <redi@gcc.gnu.org>
2597
2598         * docs/html/documentation.html: Regenerate.
2599
2600 2004-03-02  Paolo Carlini  <pcarlini@suse.de>
2601
2602         PR libstdc++/14320
2603         * include/bits/postypes.h (class streamoff): Remove, now
2604         streamoff is just typedef a 64 bit signed integer type.
2605         (class fpos): Tweak consistently.
2606         * testsuite/27_io/fpos/14320-1.cc: New.
2607         * testsuite/27_io/fpos/14320-2.cc: New.
2608         * testsuite/27_io/fpos/14320-3.cc: New.
2609         * testsuite/27_io/fpos/14320-4.cc: New.
2610         * testsuite/27_io/fpos/14320-5.cc: New.
2611         * testsuite/27_io/fpos/mbstate_t/4_neg.cc: xfail for now.
2612
2613 2004-03-02  Paolo Carlini  <pcarlini@suse.de>
2614
2615         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
2616         Reorganize a bit the main parsing loop, thus early detecting
2617         an empty value component.
2618         * testsuite/22_locale/money_get/get/char/16.cc: New.
2619         * testsuite/22_locale/money_get/get/wchar_t/16.cc: New.
2620
2621 2004-03-02  Benjamin Kosnik  <bkoz@redhat.com>
2622
2623         Support automake 1.8.2
2624         * configure.ac (AM_INIT_AUTOMAKE): Add -Wno-override.
2625         * po/Makefile.am (EXTRA_DIST): New.
2626         * po/Makefile.in: Regenerate.
2627         * Makefile.in: Same.
2628         * include/Makefile.in: Same.
2629         * libmath/Makefile.in: Same.
2630         * libsupc++/Makefile.in: Same.
2631         * src/Makefile.in: Same.
2632         * testsuite/Makefile.in: Same.
2633
2634         * include/Makefile.am (${host_builddir}/gthr-posix.h): Use
2635         __GXX_WEAK__ instead of SUPPORTS_WEAK.
2636         (${host_builddir}/gthr-default.h): Same.
2637         (${host_builddir}/gthr.h): Same.
2638         * acinclude.m4 (GLIBCXX_ENABLE_THREAD): Remove
2639         _GLIBCXX_SUPPORTS_WEAK, as this behavior can be modified via
2640         -fno-weak.
2641         * aclocal.m4: Regenerate.
2642         * acconfig.h: Remove _GLIBCXX_SUPPORTS_WEAK.
2643         * config.h.in: Regenerate.
2644         * configure: Same.
2645
2646 2004-03-01  Benjamin Kosnik  <bkoz@redhat.com>
2647
2648         Support autoconf 2.59
2649         * acinclude.m4: Quote correctly.
2650         * aclocal.m4: Regenerate.
2651         * linkage.m4: Same.
2652
2653 2004-03-01  Benjamin Kosnik  <bkoz@redhat.com>
2654
2655         * docs/html/test.html: Add multilib RUNTESTFLAGS example.
2656
2657         * docs/html/18_support/howto.html: Add bit about writing to
2658         stderr, mostly by Zack.
2659
2660 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
2661
2662         * include/bits/locale_facets.tcc (money_get<>::_M_extract,
2663         money_get<>::do_get(string_type&)): ... and two more.
2664
2665 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
2666
2667         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
2668         Fix thinkos in the switch from string_type& to string& as last
2669         argument.
2670
2671 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
2672
2673         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float):
2674         Also when parsing exponent sign, first look for thousands_sep
2675         and decimal_point; tweak a bit.
2676         * testsuite/22_locale/num_get/get/char/15.cc: New.
2677         * testsuite/22_locale/num_get/get/wchar_t/15.cc: New.
2678
2679         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
2680         num_get<>::_M_extract_int): Reorder some conditionals.
2681
2682 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
2683
2684         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
2685         Consistently with numpunct, enforce the requirements in
2686         22.2.6.3, p3 for the thousands separators; tweak a bit.
2687         * testsuite/22_locale/money_get/get/char/15.cc: New.
2688         * testsuite/22_locale/money_get/get/wchar_t/15.cc: New.
2689
2690 2004-03-01  David Billinghurst <David.Billinghurst@riotinto.com>
2691
2692         * testsuite/lib/libstdc++.exp (v3-list-tests): Use
2693         testsuite_files from correct multilib blddir when running
2694         testsuite.
2695
2696 2004-02-29  Phil Edwards  <phil@codesourcery.com>
2697
2698         * testsuite/Makefile.am (check-abi, check-abi-verbose):  Copy
2699         the summary file to the logfile.
2700         * testsuite/Makefile.in:  Regenerate.
2701
2702 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2703
2704         * config/cpu/hppa/atomicity.h (__atomic_add): Make first argument
2705         volatile.
2706         * config/os/hpux/os_defines.h (_GLIBCXX_INST_ATOMICITY_LOCK): Use
2707         __GXX_WEAK__ instead of _GLIBCXX_SUPPORTS_WEAK.
2708
2709 2004-02-28  Paolo Carlini  <pcarlini@suse.de>
2710
2711         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float):
2712         According to 22.2.3.1, p2, 'units' may be followed by 'e' with
2713         no 'decimal-point' in the middle: in this case too we must fix
2714         up __found_grouping; slightly tweak.
2715         * testsuite/22_locale/num_get/get/char/14.cc: New.
2716         * testsuite/22_locale/num_get/get/wchar_t/14.cc: New.
2717
2718 2004-02-27  Eric Christopher  <echristo@redhat.com>
2719             Phil Edwards  <phil@codesourcery.com>
2720
2721         * testsuite/22_locale/collate/compare/wchar_t/2.cc,
2722         testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc,
2723         testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc,
2724         testsuite/22_locale/collate/hash/wchar_t/2.cc,
2725         testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc,
2726         testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc,
2727         testsuite/22_locale/collate/transform/wchar_t/2.cc,
2728         testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc,
2729         testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc:
2730         Use dg-require-iconv.
2731         * testsuite/lib/libstdc++.exp:  Load target-supports.exp.
2732
2733 2004-02-27  Phil Edwards  <phil@codesourcery.com>
2734             Eric Christopher  <echristo@redhat.com>
2735
2736         * testsuite/config/default.exp:  Update with comments.
2737         (${tool}_target_compile):  New wrapper routine.
2738         * testsuite/lib/dg-options.exp:  New file, with dg-require-iconv.
2739         * testsuite/lib/libstdc++.exp:  Update with comments and cosmetic
2740         fixes.
2741         (load_gcc_lib, v3track):  New routines.
2742         (v3-init):  Rename to libstdc++_init.
2743         * testsuite/libstdc++-dg/normal.exp:  No longer call v3-init.
2744         Move DEFAULT_CXXFLAGS handling into libstdc++_init.
2745
2746 2004-02-27  Benjamin Kosnik  <bkoz@redhat.com>
2747
2748         * config/cpu/hppa/atomicity.h: Include c++config.h to get defines.
2749
2750         * src/misc-inst.cc (_S_atomicity_lock): Move to __gnu_cxx.
2751
2752         * config/os/irix/irix5.2/atomicity.h: Merge..
2753         * config/os/irix/irix6.5/atomicity.h: Merge..
2754         * config/os/irix/atomicity.h: ...into this.
2755         * config/os/irix/atomic_word.h: New.
2756         * configure.host: Set atomic_word_dir for irix.
2757
2758         * hppa/atomicity.h: Change __Atomicity_lock to _Atomicity_lock.
2759         * i386/atomicity.h: Same.
2760         * m68k/atomicity.h: Same.
2761         * sparc/atomicity.h: Same.
2762
2763 2004-02-27  David Edelsohn  <edelsohn@gnu.org>
2764
2765         * config/os/aix/atomicity.h: Use __gnu_cxx namespace. Remove
2766         static, and inline keywords.
2767
2768 2004-02-27  Paolo Carlini  <pcarlini@suse.de>
2769
2770         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
2771         num_get<>::_M_extract_int, money_get<>::_M_extract): If appropriate,
2772         call reserve on the __tmp_gruping string.
2773         (num_get<>::_M_extract_float): Don't append unnecessarily a
2774         char() to the returned string.
2775         * include/bits/locale_facets.tcc: Trivial reformattings.
2776
2777 2004-02-27  Paolo Carlini  <pcarlini@suse.de>
2778
2779         * include/bits/locale_facets.h (money_get<>::_M_extract):
2780         Change signature: now takes a plain string&.
2781         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
2782         Update consistently the definition; use the moneypunct cache
2783         to parse the value; use swap to change __units.
2784         (money_get<>::do_get(long double&)): Update call of _M_extract,
2785         avoid ctype::narrow, not correct wrt the standard.
2786         (money_get<>::do_get(string_type&)): Likewise, update call
2787         of _M_extract, use ctype::widen.
2788         * src/locale-inst.cc: Tweak instantiations of _M_extract.
2789
2790 2004-02-26  Ian Lance Taylor  <ian@wasabisystems.com>
2791
2792         * testsuite/demangle/abi_examples/01.cc: Expect error -2.
2793         * testsuite/demangle/abi_examples/02.cc: Likewise.
2794         * testsuite/demangle/regression/cw-11.cc: Likewise.
2795         * testsuite/demangle/regression/cw-16.cc: Change two expected
2796         results to match libiberty demangler output.
2797
2798 2004-02-26  Benjamin Kosnik  <bkoz@redhat.com>
2799
2800         PR libstdc++/10246
2801         * libsupc++/Makefile.am: Use libiberty demangler.
2802         (c_sources): Add cp-demangle.c.
2803         * libsupc++/Makefile.in: Regenerate.
2804         * src/Makefile.am (sources): Remove demangle.cc.
2805         * src/Makefile.in: Regenerate.
2806         * include/Makefile.am (bits_headers): Move demangle.h.
2807         (ext_headers): ...here.
2808         * include/Makefile.in: Regenerate.
2809         * include/bits/demangle.h: Move...
2810         * include/ext/demangle.h: ...here.
2811         * src/demangle.cc: Remove.
2812
2813 2004-02-26  Benjamin Kosnik  <bkoz@redhat.com>
2814
2815         * include/bits/demangle.h: Add type template parameter to all
2816         templates with just an Allocator template parameter.
2817
2818 2004-02-25  Benjamin Kosnik  <bkoz@redhat.com>
2819
2820         * include/bits/atomicity.h: New, forward declarations for __atomic_add
2821         and __exchange_and_add.
2822         * config/cpu/generic/atomic_word.h: New, typdef for atomic word.
2823         * config/cpu/cris/atomic_word.h: Same.
2824         * config/cpu/sparc/atomic_word.h: Same.
2825         * include/bits/ios_base.h (_Callback_list::_M_remove_reference):
2826         Qualifiy with __gnu_cxx.
2827         (_Callback_list::_M_add_reference): Same.
2828         * include/bits/locale_classes.h (locale::facet::_M_add_reference): Add.
2829         (locale::facet::_M_remove_reference): Same.
2830         (locale::_Impl::_M_add_reference): Add.
2831         (locale::_Impl::_M_remove_reference): Same.
2832         * include/bits/basic_string.h (basic_string::_Rep::_M_refcopy): Same.
2833         (basic_string::_Rep::_M_dispose): Same.
2834         * src/ios.cc (ios_base::xalloc): Same.
2835         * src/ios_init.cc (ios_base::Init::Init): Same.
2836         (ios_base::Init::~Init): Same.
2837         * src/locale.cc (locale::id::_M_id): Same.
2838         * config/cpu/i486/atomicity.h: Use __gnu_cxx namespace. Remove
2839         static, and inline keywords.
2840         * config/cpu/alpha/atomicity.h: Same.
2841         * config/cpu/cris/atomicity.h: Same.
2842         * config/cpu/generic/atomicity.h: Same.
2843         * config/cpu/hppa/atomicity.h: Same.
2844         * config/cpu/i386/atomicity.h: Same.
2845         * config/cpu/ia64/atomicity.h: Same.
2846         * config/cpu/m68k/atomicity.h: Same.
2847         * config/cpu/mips/atomicity.h: Same.
2848         * config/cpu/powerpc/atomicity.h: Same.
2849         * config/cpu/s390/atomicity.h: Same.
2850         * config/cpu/sparc/atomicity.h: Same.
2851
2852         * src/Makefile.am (host_sources): Add atomicity.cc.
2853         (atomicity.cc): New rule.
2854         * src/Makefile.in: Regenerate.
2855         * include/Makefile.am (host_headers): Remove host atomicity.h.
2856         (host_headers): Add atomic_word.h.
2857         (bits_headers): Add bits atomicity.h.
2858         Change ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR.
2859         * include/Makefile.in: Regenerate.
2860         * configure.host (atomic_word_dir): Add.
2861         * configure.ac: Substitute ATOMIC_WORD_SRCDIR. Change
2862         ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR.
2863         * configure: Regenerate.
2864         * config/linker-map.gnu: Export __exchange_and_add, and __atomic_add.
2865
2866         * testsuite/27_io/ios_base/cons/assign_neg.cc: Adjust line numbers.
2867         * testsuite/27_io/ios_base/cons/copy_neg.cc: Same.
2868
2869 2004-02-25  Jonathan Wakely  <redi@gcc.gnu.org>
2870
2871         * docs/html/20_util/howto.html, docs/html/20_util/allocator.html,
2872         docs/html/ext/howto.html, docs/html/ext/mt_allocator.html:
2873         Fix markup, more <link> tags.
2874
2875 2004-02-25  Carlo Wood  <carlo@alinoe.com>
2876
2877         * bits/demangle.h
2878         namespace __gnu_cxx::demangler
2879         (session<Allocator>::qualifier_list_Allocator): Add
2880         (session<Allocator>::M_qualifier_list_alloc): Add
2881         (session<Allocator>::decode_type_with_postfix):
2882         Use M_qualifier_list_alloc instead of calling operator new/delete.
2883
2884 2004-02-24  Paolo Carlini  <pcarlini@suse.de>
2885
2886         PR libstdc++/14252
2887         * include/bits/postypes.h (class streamoff): Add operator++(),
2888         operator++(int), operator--() and operator--(int).
2889         * testsuite/27_io/fpos/14252.cc: New.
2890
2891 2004-02-24  Richard Sandiford  <rsandifo@redhat.com>
2892
2893         * include/bits/locale_facets.tcc (num_get::_M_extract_int): Fix bounds
2894         error in handling of hex constants.
2895
2896 2004-02-24  Paolo Carlini  <pcarlini@suse.de>
2897
2898         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
2899         Prefer basic_string::append to operator+= and a temporary.
2900
2901 2004-02-23  Benjamin Kosnik  <bkoz@redhat.com>
2902
2903         * libsupc++/vterminate.cc (__gnu_cxx::__verbose_terminate_handler):
2904         Only use fputs, not write.
2905
2906 2004-02-23  Benjamin Kosnik  <bkoz@redhat.com>
2907
2908         * include/ext/malloc_allocator.h: Add operators ==, !=.
2909         * include/ext/new_allocator.h: Add operators ==, !=.
2910         * include/ext/mt_allocator.h (__mt_alloc::tune): New.
2911         (__mt_alloc::_S_get_options): New.
2912         (__mt_alloc::_S_set_options): New.
2913         (__mt_alloc::_S_thread_key_destr): To _S_destroy_thread_key.
2914         (__mt_alloc::_S_no_of_bins): To _S_bin_size.
2915         Move functions out of line, simplify, format.
2916         * src/allocator.cc: Simplify explicit instantiations.
2917         * include/bits/allocator.h: Tweak.
2918
2919 2004-02-22  Paolo Carlini  <pcarlini@suse.de>
2920
2921         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
2922         Restructure formatting of value component, first dealing with
2923         the non-decimal digits; use reserve.
2924
2925 2004-02-22  Paolo Carlini  <pcarlini@suse.de>
2926
2927         * include/bits/locale_facets.h (class money_get): Inherit
2928         from money_base too; tweak declaration of _M_extract, now
2929         parameterized on _Intl too.
2930         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
2931         Update definition to use the cache; call reserve on __res to
2932         avoid multiple reallocations; fix parsing of sign component
2933         according to 22.2.6.1.2, p3.
2934         (money_get<>::do_get(long double&),
2935         money_get<>::do_get(string_type&)): Update calls of _M_extract.
2936         * src/locale-inst.cc:  Add instantiations of
2937         money_get::_M_extract<false> and money_get::_M_extract<true>.
2938         * testsuite/22_locale/money_get/get/char/14.cc: New.
2939         * testsuite/22_locale/money_get/get/wchar_t/14.cc: Ditto.
2940
2941 2004-02-21  Mark Mitchell  <mark@codesourcery.com>
2942
2943         * libsupc++/vterminate.cc
2944         (__gnu_cxx::__verbose_terminate_handler): Guard against recursive
2945         calls to terminate.
2946         * src/demangle.cc (__cxa_demangle): Wrap in try-catch block.
2947
2948         * testsuite/testsuite_hooks.cc (__gnu_test::set_memory_limits): Do
2949         not set RLIMIT_AS on HP-UX.
2950
2951 2004-02-21  Mark Mitchell  <mark@codesourcery.com>
2952
2953         * testsuite/testsuite_hooks.cc (__gnu_test::set_memory_limits): Do
2954         not set RLIMIT_AS on HP-UX.
2955
2956 2004-02-21  Paolo Carlini  <pcarlini@suse.de>
2957
2958         * include/bits/locale_facets.h (class money_base): Add { _S_minus,
2959         _S_zero, _S_end } enum, _S_atoms.
2960         (struct __moneypunct_cache<>): Parameterize on _Intl too; add
2961         _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size,
2962         _M_negative_sign_size, _M_atoms; tweak constructor consistently.
2963         (__moneypunct_cache<>::~__moneypunct_cache): Update.
2964         (__moneypunct_cache<>::_M_cache): Fill the cache.
2965         (class moneypunct): Tweak __cache_type typedef.
2966         (class money_put): Inherit from money_base too; tweak declaration
2967         of _M_insert, now parameterized on _Intl.
2968         * include/bits/locale_facets.tcc
2969         (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New.
2970         (money_put<>::_M_insert): Update definition to use the cache;
2971         call reserve on __res to avoid multiple reallocations.
2972         (money_put<>::do_put(long double),
2973         money_put<>::do_put(const string_type&): Update calls of _M_insert.
2974         * config/locale/generic/monetary_members.cc
2975         (moneypunct<char, true>::_M_initialize_moneypunct,
2976         moneypunct<char, false>::_M_initialize_moneypunct,
2977         moneypunct<wchar_t, true>::_M_initialize_moneypunct,
2978         moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update.
2979         * config/locale/gnu/monetary_members.cc: Likewise.
2980         * config/locale/gnu/monetary_members.cc
2981         (moneypunct<wchar_t, true>::~moneypunct(),
2982         moneypunct<wchar_t, false>::~moneypunct()): Likewise.
2983         * src/globals_locale.cc: Tweak fake_money_cache_c.
2984         * src/locale-inst.cc: Add instantiations for
2985         money_put::_M_insert<false> and money_put::_M_insert<true> and
2986         __moneypunct_cache<C, false>, __moneypunct_cache<C, true>.
2987         * src/locale_facets.cc: Define money_base::_S_atoms.
2988         * src/locale_init.cc: Update placement new of
2989         __moneypunct_cache<char, false>, __moneypunct_cache<char, true>,
2990         __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>.
2991
2992         * config/locale/generic/numeric_members.cc: Clean up.
2993         * config/locale/gnu/numeric_members.cc: Likewise.
2994         * testsuite/22_locale/money_put/put/char/1.cc: Likewise.
2995         * testsuite/22_locale/money_put/put/char/2.cc: Likewise.
2996         * testsuite/22_locale/money_put/put/char/3.cc: Likewise.
2997         * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise.
2998         * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise.
2999         * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise.
3000
3001 2004-02-20  Mark Mitchell  <mark@codesourcery.com>
3002
3003         * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc: Open
3004         FIFO for writing with ios_base::in|ios_base::out.
3005         * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise.
3006         * testsuite/27_io/objects/char/7.cc: Likewise.
3007         * testsuite/27_io/objects/char/9661-1.cc: Open FIFO for writing
3008         with "r+".
3009
3010 2004-02-19  David Edelsohn  <edelsohn@gnu.org>
3011
3012         * 22_locale/collate/compare/wchar_t/2.cc: Change input-charset
3013         from iso-8859-1 to ISO8859-1.
3014         * 22_locale/collate/compare/wchar_t/wrapped_env.cc: Same.
3015         * 22_locale/collate/compare/wchar_t/wrapped_locale.cc: Same.
3016         * 22_locale/collate/hash/wchar_t/2.cc: Same.
3017         * 22_locale/collate/hash/wchar_t/wrapped_env.cc: Same.
3018         * 22_locale/collate/hash/wchar_t/wrapped_locale.cc: Same.
3019         * 22_locale/collate/transform/wchar_t/2.cc: Same.
3020         * 22_locale/collate/transform/wchar_t/wrapped_env.cc: Same.
3021         * 22_locale/collate/transform/wchar_t/wrapped_locale.cc: Same.
3022
3023 2004-02-18  Paolo Carlini  <pcarlini@suse.de>
3024
3025         * include/bits/locale_facets.h (money_get<>::_M_extract):
3026         New, helper for do_get.
3027         (money_put<>::_M_insert): Likewise, for do_put.
3028         * include/bits/locale_facets.tcc (money_get<>::_M_extract,
3029         money_put<>::_M_insert): Define.
3030         (money_get<>::do_get(long double&), money_get<>::do_get(
3031         string_type&), money_put::do_put(long double),
3032         money_put::do_put(const string_type&)): Use the helpers.
3033
3034 2004-02-18  Paolo Carlini  <pcarlini@suse.de>
3035
3036         * config/io/basic_file_stdio.cc (__gnu_internal::xwritev):
3037         Rewrite, avoiding recursion.
3038         (__gnu_internal::xwrite): Minor tweaks.
3039
3040 2004-02-17  Stefan Olsson  <stefan@xapa.se>
3041
3042         * include/ext/mt_allocator.h: Removed the last
3043         pointer. Deallocated blocks are now added to the front of
3044         freelists as proposed by Felix Yen.  This gives roughly 10%
3045         performance boost and saves some memory.
3046         * docs/html/ext/mt_allocator.html: Change due to that deallocated
3047         blocks now are added to the front of freelists. The reason to this
3048         approach is also explained.
3049
3050 2004-02-17  Paolo Carlini  <pcarlini@suse.de>
3051
3052         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
3053         num_get<>::_M_extract_int, money_get<>::do_get): Simplify
3054         grouping fidelity conditional.
3055
3056 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
3057
3058         * testsuite/27_io/basic_filebuf/overflow/char/13858.cc:
3059         Qualify exception with std::.
3060         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Ditto.
3061         * testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc: Ditto.
3062         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
3063         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
3064         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
3065
3066 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
3067
3068         * testsuite/ext/enc_filebuf/char/13189.cc: Don't check
3069         for now that the catch block is not reached.
3070         * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Likewise.
3071
3072 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
3073
3074         * include/bits/locale_facets.tcc (money_get::do_get(string_type&)):
3075         Fix parsing of the remaining sign characters.
3076         * 22_locale/money_get/get/char/2.cc: Tweak: now, correctly,
3077         the input is scanned 'til eof.
3078         * 22_locale/money_get/get/char/4.cc: Likewise.
3079         * 22_locale/money_get/get/wchar_t/2.cc: Likewise.
3080         * 22_locale/money_get/get/wchar_t/4.cc: Likewise.
3081         * 22_locale/money_get/get/char/8.cc: Tweak: override do_neg_format,
3082         not do_pos_format: the former is the only one that matters during
3083         input.
3084         * 22_locale/money_get/get/wchar_t/8.cc: Likewise.
3085
3086         * 22_locale/money_get/get/char/6.cc: Minor tweak.
3087         * 22_locale/money_get/get/wchar_t/6.cc: Likewise.
3088
3089 2004-02-15  David Asher  <david.asher@cavium.com>
3090
3091         PR libstdc++/11352
3092         * include/bits/locale_facets.tcc (__pad<>::_S_pad): Don't
3093         access __olds beyond __oldlen.
3094
3095 2004-02-14  Paolo Carlini  <pcarlini@suse.de>
3096
3097         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Make
3098         sure the exception is actually thrown.
3099         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
3100         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
3101         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
3102
3103 2004-02-14  Paolo Carlini  <pcarlini@suse.de>
3104
3105         PR libstdc++/13858
3106         * include/bits/fstream.tcc (basic_filebuf<>::_M_convert_to_external):
3107         In case of conversion errors, throw ios_failure; simplify.
3108         * testsuite/27_io/basic_filebuf/overflow/char/13858.cc: New.
3109         * testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc: Ditto.
3110         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Tweak,
3111         previously we didn't throw in case of conversion errors, instead
3112         just returned eof().
3113         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
3114         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
3115         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
3116
3117         * include/bits/fstream.tcc (basic_filebuf<>::overflow):
3118         Trivial simplification of a conditional.
3119
3120 2004-02-12  Paolo Carlini  <pcarlini@suse.de>
3121
3122         PR libstdc++/13731 (final part: writev)
3123         * config/io/basic_file_stdio.cc (__gnu_internal::xwritev):
3124         New, a wrapper around writev() handling partial writes.
3125         (__basic_file<char>::xwrite): Move to __gnu_internal and make
3126         static.
3127         (__basic_file<char>::xsputn): Update call.
3128         (__basic_file<char>::xsputn_2): Likewise.
3129         * config/io/basic_file_stdio.h (__basic_file<char>::xwrite):
3130         Don't declare, now static.
3131
3132 2004-02-11  Stefan Olsson  <stefan@xapa.se>
3133
3134         * docs/html/ext/mt_allocator.html: New.
3135
3136 2004-02-11  Benjamin Kosnik  <bkoz@redhat.com>
3137
3138         * docs/html/20_util/allocator.html: New file, consolidate
3139         allocator information here. Revamp.
3140         * docs/html/documentation.html: Change links.
3141         * docs/html/20_util/howto.html: Same.
3142         * docs/html/ext/howto.html: Same.
3143
3144 2004-02-11  Paolo Carlini  <pcarlini@suse.de>
3145
3146         PR libstdc++/13731 (first part: write)
3147         * config/io/basic_file_stdio.h (__basic_file<char>::xwrite):
3148         New, declare.
3149         * config/io/basic_file_stdio.cc (__basic_file<char>::xwrite):
3150         Define it: a wrapper around write() handling partial write.
3151         (__basic_file<char>::xsputn): Use it.
3152         (__basic_file<char>::xsputn_2): Likewise.
3153
3154 2004-02-11  Paolo Carlini  <pcarlini@suse.de>
3155             Petur Runolfsson  <peturr02@ru.is>
3156
3157         PR libstdc++/14078
3158         * include/std/std_istream.h (operator>>(__istream_type& (*)
3159         (__istream_type&)), operator>>(__ios_type& (*)(__ios_type&)),
3160         operator>>(ios_base& (*)(ios_base&))): Declare inline.
3161         * include/std/std_ostream.h (operator<<(__ostream_type& (*)
3162         (__ostream_type&)), operator<<(__ios_type& (*)(__ios_type&)),
3163         operator<<(ios_base& (*) (ios_base&))): Likewise.
3164         * testsuite/performance/27_io/fmtflags_manipulators.cc: New.
3165
3166 2004-02-10  Loren J. Rittle  <ljrittle@acm.org>
3167
3168         PR libstdc++/14098
3169         * config/linker-map.gnu: Add typeinfo and typeinfo name for
3170         __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> >.
3171
3172         PR libstdc++/14097
3173         * config/linker-map.gnu: Add typeinfo and typeinfo name for
3174         __gnu_cxx::stdio_filebuf<char, std::char_traits<char> >.
3175
3176 2004-02-09  Loren J. Rittle  <ljrittle@acm.org>
3177
3178         * include/ext/pool_allocator.h: Include c++config.h.
3179
3180 2004-02-09  Stefan Olsson  <stefan@xapa.se>
3181
3182         * include/ext/mt_allocator.h: thread_id is unused in non threaded
3183         applications and now has a ifdef to remove it completely on
3184         compilers without thread support. Include stdlib.h due to a
3185         compiler warning on getenv().
3186
3187 2004-02-09  Paul Brook  <paul@codesourcery.com>
3188
3189         * libstdc++-v3/configure.host: Explicitly check for atomicity.h file.
3190
3191 2004-02-09  Paolo Carlini  <pcarlini@suse.de>
3192
3193         PR libstdc++/14071
3194         * src/locale_init.cc (locale::global(const locale&)): Use
3195         locale::name() in order to decide whether calling setlocale.
3196         * testsuite/22_locale/locale/global_locale_objects/14071.cc: New.
3197
3198         * include/bits/locale_classes.h (locale::_Impl::_M_check_same_name()):
3199         Avoid computing &= unnecessarily.
3200
3201 2004-02-09  James E Wilson  <wilson@specifixinc.com>
3202
3203         PR libstdc++/5625
3204         * libsuspc++/eh_personality.cc (PERSONALITY_FUNCTION): Use
3205         __builtin_extend_pointer.
3206
3207 2004-02-09  Paolo Carlini  <pcarlini@suse.de>
3208
3209         PR libstdc++/14072
3210         * include/bits/basic_ios.tcc (basic_ios<>::_M_cache_locale):
3211         Don't leave dangling pointers.
3212         * testsuite/27_io/basic_ios/imbue/14072.cc: New.
3213         * testsuite/22_locale/numpunct/members/pod/2.cc: Tweak, the num_put
3214         facet is needed in the final test.
3215
3216 2004-02-09  Bernardo Innocenti  <bernie@develer.com>
3217
3218         * crossconfig.m4: Don't enable _GLIBCXX_USE_LFS on *-uclinux*.
3219         * configure: Regenerate.
3220
3221 2004-02-08  Richard Henderson  <rth@redhat.com>
3222
3223         PR libstdc++/14026
3224         * libsupc++/eh_catch.cc (__cxa_begin_catch): Don't adjust
3225         uncaughtExceptions during nested catch rethrow.
3226         * testsuite/18_support/14026.cc: New.
3227
3228 2004-02-08  Paolo Carlini  <pcarlini@suse.de>
3229
3230         * include/bits/basic_string.tcc (assign(const _CharT*, size_type)):
3231         When working in place remember to set the state to sharable
3232         (otherwise, _M_mutate does it).
3233
3234 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
3235
3236         * include/bits/allocator.h, include/bits/basic_ios.h,
3237         include/bits/basic_ios.tcc, include/bits/basic_string.h,
3238         include/bits/basic_string.tcc, include/bits/boost_concept_check.h,
3239         include/bits/char_traits.h, include/bits/codecvt.h,
3240         include/bits/concurrence.h, include/bits/cpp_type_traits.h,
3241         include/bits/demangle.h, include/bits/deque.tcc,
3242         include/bits/fstream.tcc, include/bits/functexcept.h,
3243         include/bits/gslice.h, include/bits/gslice_array.h,
3244         include/bits/indirect_array.h, include/bits/ios_base.h,
3245         include/bits/istream.tcc, include/bits/list.tcc,
3246         include/bits/locale_classes.h, include/bits/locale_facets.h,
3247         include/bits/locale_facets.tcc, include/bits/localefwd.h,
3248         include/bits/mask_array.h, include/bits/ostream.tcc,
3249         include/bits/postypes.h, include/bits/slice_array.h,
3250         include/bits/sstream.tcc, include/bits/stl_algo.h,
3251         include/bits/stl_algobase.h, include/bits/stl_bvector.h,
3252         include/bits/stl_construct.h, include/bits/stl_deque.h,
3253         include/bits/stl_function.h, include/bits/stl_heap.h,
3254         include/bits/stl_iterator.h, include/bits/stl_iterator_base_funcs.h,
3255         include/bits/stl_list.h, include/bits/stl_map.h,
3256         include/bits/stl_multimap.h, include/bits/stl_multiset.h,
3257         include/bits/stl_numeric.h, include/bits/stl_pair.h,
3258         include/bits/stl_queue.h, include/bits/stl_raw_storage_iter.h,
3259         include/bits/stl_relops.h, include/bits/stl_set.h,
3260         include/bits/stl_stack.h, include/bits/stl_tempbuf.h,
3261         include/bits/stl_threads.h, include/bits/stl_tree.h,
3262         include/bits/stl_uninitialized.h, include/bits/stl_vector.h,
3263         include/bits/stream_iterator.h, include/bits/streambuf.tcc,
3264         include/bits/streambuf_iterator.h,include/bits/stringfwd.h,
3265         include/bits/type_traits.h, include/bits/valarray_after.h,
3266         include/bits/valarray_array.h, include/bits/valarray_array.tcc,
3267         include/bits/valarray_before.h, include/bits/vector.tcc: Remove
3268         trailing whitespace.
3269
3270 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
3271
3272         * include/bits/basic_string.h: Fix comment.
3273
3274 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
3275
3276         * include/bits/stl_construct.h: Wrap overlong lines, reformat
3277         according to the coding standards.
3278         * include/bits/stl_pair.h: Likewise.
3279         * include/bits/stl_raw_storage_iter.h: Likewise.
3280         * include/bits/stl_stack.h: Likewise.
3281         * include/bits/stl_uninitialized.h: Likewise.
3282         * include/bits/stream_iterator.h: Likewise.
3283         * include/bits/streambuf_iterator.h: Likewise.
3284         * include/bits/type_traits.h: Likewise.
3285
3286 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
3287
3288         * testsuite/27_io/basic_filebuf/open/char/9507.cc:
3289         Adjust timings.
3290
3291 2004-02-05  Loren J. Rittle  <ljrittle@acm.org>
3292
3293         * scripts/check_performance: Support PCH.
3294
3295         * scripts/check_performance (CXX): Add -DNOTHREAD.
3296         * testsuite/performance/20_util/allocator/insert.cc: Integrate
3297         threaded tests from insert_insert.cc.  Tweak iterations,
3298         remove special cases.
3299         * testsuite/performance/20_util/allocator/insert_insert.cc:
3300         Make all tests single-threaded. Tweak iterations.
3301         * testsuite/performance/20_util/allocator/map_thread.cc:
3302         Tweak iterations.
3303         * testsuite/performance/20_util/allocator/producer_consumer.cc:
3304         Likewise.
3305
3306 2004-02-05  Geoffrey Keating  <geoffk@apple.com>
3307
3308         PR 12179
3309         * .cvsignore: New.
3310         * acinclude.m4 (GLIBCXX_EXPORT_INSTALL_INFO): Use 'gcc', not
3311         'gcc-lib'.  Add comment about poorly-named variables.
3312         * aclocal.m4: Regenerate.
3313         * configure: Regenerate.
3314
3315 2004-02-05  Paolo Carlini  <pcarlini@suse.de>
3316
3317         * include/bits/locale_facets.tcc (money_get::do_get(string_type&)):
3318         Thousands-sep are always optional; thousands-sep are not allowed
3319         after the decimal_point.
3320         * testsuite/22_locale/money_get/get/char/12.cc: New.
3321         * testsuite/22_locale/money_get/get/char/13.cc: New.
3322         * testsuite/22_locale/money_get/get/wchar_t/12.cc: New.
3323         * testsuite/22_locale/money_get/get/wchar_t/13.cc: New.
3324
3325         * testsuite/22_locale/money_get/get/char/1.cc: Clean-up.
3326         * testsuite/22_locale/money_get/get/char/2.cc: Likewise.
3327         * testsuite/22_locale/money_get/get/char/3.cc: Likewise.
3328         * testsuite/22_locale/money_get/get/char/4.cc: Likewise.
3329         * testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise.
3330         * testsuite/22_locale/money_get/get/wchar_t/2.cc: Likewise.
3331         * testsuite/22_locale/money_get/get/wchar_t/3.cc: Likewise.
3332         * testsuite/22_locale/money_get/get/wchar_t/4.cc: Likewise.
3333
3334         * testsuite/22_locale/money_get/get/char/9.cc: Fix citation from
3335         the standard.
3336         * testsuite/22_locale/money_get/get/wchar_t/9.cc: Likewise.
3337
3338 2004-02-05  Richard Sandiford  <rsandifo@redhat.com>
3339
3340         * config/os/irix/irix6.5/os_defines.h (_GLIBCXX_FIONREAD_TAKES_OFF_T):
3341         Define.
3342         * config/io/basic_file_stdio.cc (__basic_file<char>::showmanyc): Use
3343         it to decide whether FIONREAD should take an off_t or int argument.
3344
3345 2004-02-05  Paolo Carlini  <pcarlini@suse.de>
3346
3347         * include/bits/stl_function.h: Minor formatting changes.
3348
3349 2004-02-04  Zack Weinberg  <zack@codesourcery.com>
3350
3351         Revert previous change to config/abi/*/baseline_symbols.txt.
3352
3353 2004-02-04  Benjamin Kosnik  <bkoz@redhat.com>
3354             Zack Weinberg  <zack@codesourcery.com>
3355
3356         * config/io/basic_file_stdio.cc (__gnu_internal::fopen_mode):
3357         New function.
3358         (__basic_file<char>::sys_open, __basic_file<char>::open): Use it.
3359         (__basic_file<char>::_M_open_mode): Delete.
3360         * config/io/basic_file_stdio.cc: Delete declaration of _M_open_mode.
3361
3362         * testsuite/27_io/basic_filebuf/close/char/9964.cc
3363         * testsuite/27_io/basic_filebuf/open/char/9507.cc:
3364         Correct flags to filebuf::open calls.
3365
3366         * config/abi/alpha-freebsd5/baseline_symbols.txt
3367         * config/abi/alpha-linux-gnu/baseline_symbols.txt
3368         * config/abi/hppa-linux-gnu/baseline_symbols.txt
3369         * config/abi/i386-freebsd4/baseline_symbols.txt
3370         * config/abi/i386-freebsd5/baseline_symbols.txt
3371         * config/abi/i486-linux-gnu/baseline_symbols.txt
3372         * config/abi/ia64-linux-gnu/baseline_symbols.txt
3373         * config/abi/mips-linux-gnu/baseline_symbols.txt
3374         * config/abi/sparc-freebsd5/baseline_symbols.txt
3375         * config/abi/sparc-linux-gnu/baseline_symbols.txt
3376         * config/abi/x86_64-linux-gnu/baseline_symbols.txt:
3377         Remove entry for __basic_file<char>::_M_open_mode.
3378
3379 2004-02-04  Loren J. Rittle  <ljrittle@acm.org>
3380
3381         * testsuite/performance/20_util/allocator/insert.cc (main): Tweak.
3382
3383 2004-02-04  Felix Yen  <fwy@alumni.brown.edu>
3384
3385         * testsuite/performance/20_util/producer_consumer.cc: New.
3386         * testsuite/performance/20_util/allocator/insert_insert.cc: Two loops.
3387
3388 2004-02-04  Benjamin Kosnik  <bkoz@redhat.com>
3389
3390         * testsuite/performance/20_util/allocator.cc: Move to..
3391         * testsuite/performance/20_util/allocator/insert.cc: ...here.
3392         * testsuite/performance/20_util/allocator_thread.cc: Move to...
3393         * testsuite/performance/20_util/allocator/insert_insert.cc: ...here.
3394         * testsuite/performance/20_util/allocator_map_thread.cc: Move to...
3395         * testsuite/performance/20_util/allocator/map_thread.cc: ...here.
3396
3397 2004-02-04  Jonathan Wakely  <redi@gcc.gnu.org>
3398
3399         * docs/html/faq/index.html: Recommend using LD_LIBRARY_PATH.
3400         * docs/html/faq/index.txt: Regenerate.
3401
3402 2004-02-04  Dhruv Matani  <dhruvbird@gmx.net>
3403
3404         * include/ext/debug_allocator.h: _M_extra now stands for the
3405         number of extra objects instead of the number of extra bytes.
3406         (debug_allocator::allocate): Adjust.
3407         (debug_allocator::deallocate): Adjust.
3408
3409         * include/ext/pool_allocator.h: Fix typo.
3410
3411 2004-02-03  Felix Yen  <fwy@alumni.brown.edu>
3412             Benjamin Kosnik  <bkoz@redhat.com>
3413
3414         * testsuite/performance/20_util/allocator.cc: Add map,
3415         deque, set tests.
3416         * testsuite/performance/20_util/allocator_thread.cc: Same.
3417
3418 2004-02-03  Paolo Carlini  <pcarlini@suse.de>
3419
3420         * include/bits/basic_string.h (insert(iterator)): Remove,
3421         non-standard and already scheduled for removal.
3422
3423 2004-02-03  Paolo Carlini  <pcarlini@suse.de>
3424
3425         * include/bits/stl_iterator_base_funcs.h: Minor formatting
3426         and indentation tweaks.
3427         * include/bits/stl_iterator_base_types.h: Likewise.
3428         * include/bits/stl_list.h: Likewise.
3429         * include/bits/stl_map.h: Likewise.
3430         * include/bits/stl_tempbuf.h: Likewise.
3431
3432 2004-02-02  Jerry Quinn  <jlquinn@optonline.net>
3433
3434         * include/bits/gslice.h, include/bits/gslice_array.h,
3435         include/bits/indirect_array.h, include/bits/mask_array.h,
3436         include/bits/slice_array.h, include/bits/stl_numeric.h,
3437         include/std/std_valarray.h:  Update copyright years.
3438
3439 2004-02-02  Jerry Quinn  <jlquinn@optonline.net>
3440
3441         * include/bits/gslice.h (gslice):  Document.
3442         * include/bits/gslice_array.h (gslice_array):  Document.
3443         * include/bits/indirect_array (indirect_array):  Document.
3444         * include/bits/mask_array (mask_array):  Document.
3445         * include/bits/slice_array.h (slice,slice_array):  Document.
3446         * include/bits/stl_numeric.h (accumulate, inner_product, partial_sum,
3447         adjacent_difference):  Document
3448         * include/std/std_valarray.h (valarray):  Document.
3449
3450 2004-02-02  Benjamin Kosnik  <bkoz@redhat.com>
3451
3452         * docs/html/19_diagnostics/howto.html: Move verbose terminate
3453         documentation...
3454         * docs/html/18_support/howto.html: Here.
3455         * docs/html/documentation.html: Add reference here.
3456
3457 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
3458
3459         * config/locale/gnu/c++locale_internal.h: Remove prototypes
3460         of no longer used GLIBC thread locale functions.
3461
3462 2004-02-02  Eric Christopher  <echristo@redhat.com>
3463             Zack Weinberg  <zack@codesourcery.com>
3464
3465         * testsuite/22_locale/collate/compare/wchar_t/2.cc: Remove xfail. Use
3466         -finput-charset.
3467         * testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc: Ditto.
3468         * testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc: Ditto
3469         * testsuite/22_locale/collate/hash/wchar_t/2.cc: Ditto.
3470         * testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc: Ditto.
3471         * testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc: Ditto.
3472         * testsuite/22_locale/collate/transform/wchar_t/2.cc: Ditto.
3473         * testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc: Ditto.
3474         * testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc:
3475         Ditto.
3476
3477 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
3478
3479         * include/bits/stl_function.h: Additional minor tweaks.
3480         * include/bits/stl_multiset.h: Likewise.
3481
3482         * include/bits/stl_queue.h: Minor tweaks.
3483
3484 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
3485
3486         PR libstdc++/13976 (continued)
3487         * include/ext/malloc_allocator.h (malloc_allocator::deallocate):
3488         Make the second parameter unnamed, to void unused parameter
3489         warnings.
3490         * include/ext/new_allocator.h (new_allocator::deallocate): Ditto.
3491
3492 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
3493
3494         PR libstdc++/13976
3495         * include/ext/malloc_allocator.h (malloc_allocator::allocate):
3496         Make the second parameter unnamed, to void unused parameter
3497         warnings.
3498         * include/ext/mt_allocator.h (__mt_alloc::allocate): Ditto.
3499         * include/ext/new_allocator.h (new_allocator::allocate): Ditto.
3500
3501 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
3502
3503         * include/bits/stl_algo.h: Additional minor tweaks.
3504         * include/bits/stl_map.h: Likewise.
3505         * include/bits/stl_multimap.h: Likewise.
3506         * include/bits/stl_multiset.h: Likewise.
3507         * include/bits/stl_set.h: Likewise.
3508         * include/bits/stl_tree.h: Likewise.
3509
3510 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
3511
3512         * include/bits/vector.tcc (vector::_M_insert_aux(iterator)):
3513         Remove, unused.
3514
3515 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
3516
3517         * include/bits/stl_function.h: Additional minor tweaks.
3518
3519 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
3520
3521         * include/bits/deque.tcc: Wrap overlong lines, constify
3522         a few variables, reformat according to the coding standards.
3523         * include/bits/list.tcc: Likewise.
3524         * include/bits/stl_deque.h: Likewise.
3525         * include/bits/stl_function.h: Likewise.
3526         * include/bits/stl_iterator.h: Likewise.
3527         * include/bits/stl_iterator_base_funcs.h: Likewise.
3528         * include/bits/stl_iterator_base_types.h: Likewise.
3529         * include/bits/stl_list.h: Likewise.
3530         * include/bits/stl_map.h: Likewise.
3531         * include/bits/stl_multimap.h: Likewise.
3532         * include/bits/stl_multiset.h: Likewise.
3533         * include/bits/stl_relops.h: Likewise.
3534         * include/bits/stl_set.h: Likewise.
3535
3536 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
3537
3538         * include/bits/stl_bvector.h: Wrap overlong lines, constify
3539         a few variables, reformat according to the coding standards.
3540         * include/bits/stl_tree.h: Likewise.
3541
3542 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
3543
3544         * include/bits/stl_algo.h: Minor additional reformat, add
3545         copyright year.
3546         * include/bits/stl_algobase.h: Add copyright year.
3547
3548 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
3549
3550         * include/bits/stl_algo.h: Wrap overlong lines, constify
3551         a few variables, reformat according to the coding standards.
3552         * include/bits/stl_algobase.h: Likewise.
3553         * include/bits/stl_heap.h: Likewise.
3554
3555 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
3556
3557         * include/bits/basic_string.h (_Rep::operator[]): Remove, unused.
3558
3559         * include/bits/basic_string.h: Fix two comments.
3560
3561 2004-01-31  Per Bothner  <per@bothner.com>
3562
3563         * include/ext/mt_allocator.h
3564         (__mt_alloc::_S_thread_freelist_mutex): Guard with
3565         __GTHREAD_MUTEX_INIT.
3566
3567 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
3568
3569         * include/bits/basic_string.tcc (_Rep::_S_create): Minor tweak.
3570
3571 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
3572
3573         * testsuite/21_strings/basic_string/cons/char/6.cc: New.
3574         * testsuite/21_strings/basic_string/cons/wchar_t/6.cc: New.
3575         * testsuite/performance/21_strings/string_cons_input_iterator.cc: New.
3576
3577 2004-01-30  Felix Yen  <fwy@alumni.brown.edu>
3578
3579         * testsuite/performance/20_util/allocator_thread.cc (do_loop):
3580         Don't use clear, but instead assign. Use insert.
3581
3582 2004-01-30  Benjamin Kosnik  <bkoz@redhat.com>
3583
3584         * src/demangle.cc: Add instantiations.
3585         * src/Makefile.am: Remove special rules for demangle.lo, demangle.o.
3586         * src/Makefile.in: Regenerate.
3587
3588 2004-01-30  David Edelsohn  <edelsohn@gnu.org>
3589
3590         * src/allocator.cc: Protect _S_get_thread_id() and
3591         _S_thread_key_destr() with #ifdef __GTHREADS.
3592
3593 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
3594
3595         Reshuffle performance testsuite.
3596         * testsuite/performance/allocator.cc, allocator_map_thread.cc,
3597         allocator_thread.cc, complex_norm.cc, container_benchmark.cc,
3598         cout_insert_int.cc, filebuf_copy.cc, filebuf_sputc.cc,
3599         fstream_seek_write.cc, ifstream_extract_float.cc,
3600         ifstream_extract_int.cc, ifstream_getline.cc, is_wchar_t.cc,
3601         list_create_fill_sort.cc, map_create_fill.cc,
3602         narrow_widen_char.cc, narrow_widen_wchar_t.cc,
3603         ofstream_insert_float.cc, ofstream_insert_int.cc,
3604         string_append.cc, wchar_t_in.cc, wchar_t_length.cc,
3605         wchar_t_out.cc: Split into...
3606         * testsuite/performance/20_util/allocator.cc: New.
3607         * testsuite/performance/20_util/allocator_map_thread.cc: New.
3608         * testsuite/performance/20_util/allocator_thread.cc: New.
3609         * testsuite/performance/21_strings/string_append: New.
3610         * testsuite/performance/22_locale/is_wchar_t.cc: New.
3611         * testsuite/performance/22_locale/narrow_widen_char.cc: New.
3612         * testsuite/performance/22_locale/narrow_widen_wchar_t.cc: New.
3613         * testsuite/performance/22_locale/wchar_t_in.cc: New.
3614         * testsuite/performance/22_locale/wchar_t_length.cc: New.
3615         * testsuite/performance/22_locale/wchar_t_out.cc: New.
3616         * testsuite/performance/23_containers/container_benchmark.cc: New.
3617         * testsuite/performance/23_containers/list_create_fill_sort.cc: New.
3618         * testsuite/performance/23_containers/map_create_fill.cc: New.
3619         * testsuite/performance/26_numerics/complex_norm.cc: New.
3620         * testsuite/performance/27_io/cout_insert_int.cc: New.
3621         * testsuite/performance/27_io/filebuf_copy.cc: New.
3622         * testsuite/performance/27_io/filebuf_sputc.cc: New.
3623         * testsuite/performance/27_io/fstream_seek_write.cc: New.
3624         * testsuite/performance/27_io/ifstream_extract_float.cc: New.
3625         * testsuite/performance/27_io/ifstream_extract_int.cc: New.
3626         * testsuite/performance/27_io/ifstream_getline.cc: New.
3627         * testsuite/performance/27_io/ofstream_insert_float.cc: New.
3628         * testsuite/performance/27_io/ofstream_insert_int.cc: New.
3629
3630 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
3631
3632         * include/bits/basic_string.tcc (_Rep::_S_create):
3633         Never allocate a string bigger than max_size(); always keep
3634         __capacity and __size in sync to avoid memory leaks at
3635         deallocation time.
3636
3637 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
3638
3639         * include/bits/basic_string.tcc (_S_construct(_InIterator,
3640         _InIterator, const _Alloc&, input_iterator_tag)): Simplify
3641         the double loop, streamline.
3642
3643         * include/bits/basic_string.tcc: Very minor tweaks.
3644
3645 2004-01-30  Loren J. Rittle  <ljrittle@acm.org>
3646
3647         * scripts/check_performance: Only compile with $THREAD_FLAG
3648         when test is marked to require it.  Allow multiple
3649         compilations/executions of marked tests.
3650         * testsuite/testsuite_performance.h (report_performance):
3651         Report dynamic thread support status.
3652         (report_header): Likewise.
3653         * testsuite/performance/allocator.cc: Stabilize iteration
3654         count.  Support more allocators.  Mark each allocator test to
3655         run and report independently.
3656         * testsuite/performance/allocator_map_thread.cc: Likewise.
3657         * testsuite/performance/allocator_thread.cc: Likewise.
3658
3659 2004-01-29  Stephen M. Webb  <stephen.webb@bregmasoft.com>
3660
3661         * config/local/generic/c_locale.h: Change ::malloc() to new char[].
3662         * config/local/gnu/c_locale.h: Change ::malloc() to new char[].
3663         * include/bits/stl_tempbuf.h: Convert _Temporary_buffer to use
3664         std::get_temporary_buffer() instead of duplicating its code.
3665         Update to C++STYLE conventions.
3666         * include/std/std_memory.h (get_temporary_buffer): Use ::operator
3667         new() instead of std::malloc().
3668         (return_temporary_buffer): Use ::operator delete() instead of
3669         std::free().
3670
3671 2004-01-29  Benjamin Kosnik  <bkoz@redhat.com>
3672
3673         * include/bits/allocator.h: Temporary switch to new_allocator as
3674         the default to unjam bootstraps.
3675
3676 2004-01-28  Benjamin Kosnik  <bkoz@redhat.com>
3677
3678         * include/Makefile.am (bits_headers): Remove allocator_traits.h.
3679         * include/Makefile.in: Regenerate.
3680         * include/bits/allocator_traits.h: Remove.
3681         * include/bits/allocator.h: Remove allocator_traits.h include, and
3682         relevant comments.
3683         (allocator): Empty base class, inherit from the underlying allocator.
3684         * src/allocator-inst.cc: Move __pool_alloc instantiation to...
3685         * src/allocator.cc: ...here. New. For the underlying allocators.
3686         Add __mt_alloc, __pool_alloc, new_allocator, malloc_allocator bits.
3687         * config/linker-map.gnu: Remove __pool_alloc bits.
3688         * src/Makefile.am (sources): Add allocator.cc.
3689         * src/Makefile.in: Regenerate.
3690         * testsuite/20_util/allocator/1.cc: Split second test into...
3691         * testsuite/20_util/allocator/8230.cc: ...this.
3692         * include/bits/stl_bvector.h (__gnu_norm): Change bit_vector
3693         typedef to use std::allocatore. Format.
3694         * include/ext/pool_allocator.h: Remove allocator_traits.h include,
3695         _Alloc_traits.
3696         * include/ext/mt_allocator.h (__gnu_cxx): Qualify
3697         __throw_bad_alloc calls. Don't include <memory>.
3698         * include/ext/malloc_allocator.h: Remove <memory> include.
3699         * include/ext/new_allocator.h (new_allocator): Same.
3700         * include/ext/ropeimpl.h (__gnu_cxx): Remove __alloc using
3701         declaration. Switch __alloc to _Alloc.
3702         * include/ext/hashtable.h: Remove __alloc.
3703         * include/backward/alloc.h: Only inject allocator, not
3704         implementation details.
3705
3706         * include/ext/mt_allocator.h: Replace free with delete.
3707
3708 2004-01-28  Benjamin Kosnik  <bkoz@redhat.com>
3709
3710         * src/globals_io.cc: Change to __gnu_internal namespace.
3711         * src/globals_locale.cc: Same.
3712         * src/locale_init.cc: Same.
3713         * src/ios_init.cc: Same.
3714
3715 2004-01-28  Stefan Olsson  <stefan@snon.net>
3716
3717         * include/ext/mt_allocator.h: Replaced all malloc() calls with
3718         operator new(). Added support for the env variable
3719         GLIBCXX_FORCE_NEW (this required the _S_init call to be the first
3720         one in allocate() as well). Fix typos.
3721
3722 2004-01-28  Paolo Carlini  <pcarlini@suse.de>
3723
3724         * include/bits/basic_string.h (_S_create(size_t,
3725         const _Alloc&): Change signature to take two size_type
3726         arguments.
3727         * include/bits/basic_string.tcc (_S_construct(_InIterator,
3728         _InIterator, const _Alloc&, input_iterator_tag)): Update
3729         call, tweak a bit.
3730         (_S_construct(_InIterator, _InIterator, const _Alloc&,
3731         forward_iterator_tag)): Likewise.
3732         (_S_construct(size_type, _CharT, const _Alloc&)): Likewise.
3733         (_M_mutate(size_type, size_type, size_type)): Don't
3734         implement the exponential growth policy, demand it to
3735         _S_create, update call and simplify.
3736         (_M_clone(const _Alloc&, size_type)): Likewise.
3737         (_S_create(size_type, size_type, const _Alloc&)): Implement
3738         the growth policy, simplify otherwise.
3739
3740         * include/bits/basic_string.h (_Rep::operator[]): Tweak
3741         signature to take a size_type, consistently with the other
3742         members.
3743
3744 2004-01-27  Benjamin Kosnik  <bkoz@redhat.com>
3745
3746         * testsuite/27_io/ios_base/storage/11584.cc: Correct new and
3747         delete declarations, add include and test variable.
3748
3749 2003-01-27  Jerry Quinn  <jlquinn@optonline.net>
3750
3751         * include/bits/codecvt.h, include/bits/locale_facets.h,
3752         include/bits/postypes.h, include/bits/stl_bvector.h,
3753         include/bits/stl_multiset.h, include/bits/stl_set.h,
3754         include/bits/stream_iterator.h, include/bits/streambuf_iterator.h,
3755         include/std/std_complex.h:  Document.
3756
3757 2004-01-27  Jerry Quinn  <jlquinn@optonline.net>
3758
3759         PR libstdc++/11584
3760         * include/bits/ios_base.h (ios_base::_M_grow_words):  Add
3761         iword/pword selector.
3762         (ios_base::iword, ios_base::pword):  Use it.
3763         * src/ios.cc (ios_base::_M_grow_words):  Clear _M_word_zero
3764         iword or pword member on alloc failure.
3765         * testsuite/27_io/ios_base/storage/11584.cc:  New test.
3766
3767 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
3768             PJ Darcy  <darcypj@us.ibm.com>
3769
3770         * configure.host: Add support for *-tpf.
3771         * crossconfig.m4: Likewise.
3772         * configure: Regenerate.
3773         * config/os/tpf: New directory.
3774         * config/os/tpf/os_defines.h: New file.
3775         * config/os/tpf/ctype_base.h: Likewise.
3776         * config/os/tpf/ctype_inline.h: Likewise.
3777         * config/os/tpf/ctype_noninline.h: Likewise.
3778
3779 2004-01-27  Paolo Carlini  <pcarlini@suse.de>
3780
3781         PR libstdc++/13884
3782         * include/bits/sstream.tcc: Guard use of extern template.
3783
3784 2004-01-27  Paolo Carlini  <pcarlini@suse.de>
3785
3786         * include/bits/basic_string.tcc
3787         (basic_string(const basic_string&, size_type, size_type),
3788         basic_string(const basic_string&, size_type, size_type,
3789         const _Alloc&)): Avoid unnecessarily constructing iterators.
3790
3791 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
3792
3793         * config/locale/generic/c_locale.cc: Fix throw messages
3794         to use the __N marker.
3795         * config/locale/gnu/c_locale.cc: Likewise.
3796         * config/locale/ieee_1003.1-2001/codecvt_specializations.h:
3797         Likewise.
3798         * docs/html/17_intro/C++STYLE: Likewise.
3799         * include/bits/basic_ios.tcc: Likewise.
3800         * include/bits/fstream.tcc: Likewise.
3801         * include/bits/vector.tcc: Likewise.
3802         * include/ext/ropeimpl.h: Likewise.
3803         * include/std/std_bitset.h: Likewise.
3804         * src/ios.cc: Likewise.
3805         * src/locale.cc: Likewise.
3806         * src/localename.cc: Likewise.
3807
3808 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
3809
3810         * include/bits/basic_string.h (_M_replace_aux): Use the
3811         __N marker in throw message.
3812         * include/bits/basic_string.tcc (assign(const _CharT*,
3813         size_type), insert(size_type, const _CharT*, size_type),
3814         replace(size_type, size_type, const _CharT*, size_type),
3815         reserve, _Rep::_S_create, resize, _M_replace_dispatch):
3816         Likewise.
3817
3818         * include/bits/basic_string.h, include/bits/basic_string.tcc:
3819         Fold overlong lines, minor formatting changes.
3820
3821 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
3822
3823         * include/bits/basic_string.h (replace(iterator, iterator,
3824         const basic_string&)): Remove _GLIBCXX_DEBUG_PEDASSERT.
3825         (replace(iterator, iterator, const _CharT*)): Ditto.
3826         (replace(iterator, iterator, const _CharT*, size_type)):
3827         Add missing _GLIBCXX_DEBUG_PEDASSERT.
3828
3829 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
3830
3831         * include/bits/basic_string.tcc (replace(size_type,
3832         size_type, const _CharT*, size_type)): Implement optimized
3833         in-place algorithm for non-overlapping ranges.
3834         * testsuite/21_strings/basic_string/replace/char/6.cc: New.
3835         * testsuite/21_strings/basic_string/replace/wchar_t/6.cc: New.
3836
3837         * include/bits/basic_string.tcc (insert(size_type,
3838         const _CharT*, size_type)): Tweak slightly.
3839
3840 2004-01-26  Andreas Schwab  <schwab@suse.de>
3841
3842         * config/locale/gnu/monetary_members.cc: Restore locale before
3843         rethrowing exception.
3844
3845 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
3846
3847         * include/bits/basic_string.h (_M_replace_aux, _M_replace_safe):
3848         Define inline here.
3849         * include/bits/basic_string.tcc (_M_replace_aux, _M_replace_safe):
3850         Move inline.
3851
3852         * include/bits/basic_string.tcc: Very minor tweaks.
3853
3854 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
3855
3856         * testsuite/performance/string_append.cc: Increase number
3857         of iterations.
3858
3859 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
3860
3861         * include/bits/basic_string.h (erase(size_type, size_type),
3862         erase(iterator), erase(iterator, iterator)): Call _M_replace_safe
3863         instead, thus avoiding redundant check for length_error.
3864
3865         * include/bits/basic_string.h: Tweak some comments.
3866
3867 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
3868
3869         * include/bits/basic_string.tcc (operator+(const _CharT*,
3870         const basic_string&)): No need to go through the append
3871         taking two iterators.
3872
3873 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
3874
3875         * include/bits/basic_string.tcc (rfind(_CharT, size_type)):
3876         Revert last change to use std::min: machine language is worse.
3877         (find_last_of(const _CharT*, size_type, size_type)): Ditto.
3878         (find_last_not_of(const _CharT*, size_type, size_type)): Ditto.
3879         (find_last_not_of(_CharT, size_type)): Ditto.
3880
3881         * include/bits/basic_string.tcc (insert(size_type, const _CharT*,
3882         size_type)): Discard the value returned by _M_check.
3883         (replace(size_type, size_type, const _CharT*, size_type)): Ditto.
3884         (append(const basic_string&, size_type, size_type)): Ditto.
3885         (copy(_CharT*, size_type, size_type)): Ditto.
3886         (compare(size_type, size_type, const basic_string&)): Ditto.
3887         (compare(size_type, size_type, const basic_string&,
3888         size_type, size_type)): Ditto.
3889         (compare(size_type, size_type, const _CharT*)): Ditto.
3890         (compare(size_type, size_type, const _CharT*, size_type)): Ditto.
3891
3892 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
3893
3894         * include/bits/basic_string.h (insert(size_type,
3895         const basic_string&, size_type, size_type)): Define inline here.
3896         * include/bits/basic_string.tcc (insert(size_type,
3897         const basic_string&, size_type, size_type)): Move inline.
3898
3899 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
3900
3901         * include/bits/basic_string.h (assign(const basic_string&,
3902         size_type, size_type)): Define inline here.
3903         (replace(size_type, size_type, const basic_string&,
3904         size_type, size_type)): Ditto.
3905         (_M_replace_dispatch(iterator, iterator, _InputIterator,
3906         _InputIterator, __false_type)): Only declare.
3907         (_M_replace(iterator, iterator, _InputIterator,
3908         _InputIterator)): Remove.
3909         * include/bits/basic_string.tcc (assign(const basic_string&,
3910         size_type, size_type)): Move inline.
3911         (replace(size_type, size_type, const basic_string&,
3912         size_type, size_type)): Ditto.
3913         (_M_replace_dispatch(iterator, iterator, _InputIterator,
3914         _InputIterator, __false_type)): Define, now does also what
3915         _M_replace did before.
3916         * src/string-inst.cc (_M_replace): Don't instantiate.
3917
3918         * include/bits/basic_string.tcc (find(const _CharT*,
3919         size_type, size_type)): Tidy.
3920         (rfind(_CharT, size_type)): Ditto.
3921         (find_first_not_of(const _CharT*, size_type, size_type)): Ditto.
3922         (find_first_not_of(_CharT, size_type)): Ditto.
3923         (find_last_not_of(const _CharT*, size_type, size_type)): Ditto.
3924         (find_last_not_of(_CharT, size_type)): Ditto.
3925
3926 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
3927
3928         PR libstdc++/13838
3929         * include/debug/bitset (operator|=): Fix typo.
3930         * testsuite/23_containers/bitset/operations/13838.cc: New.
3931
3932 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
3933
3934         * include/bits/basic_string.tcc (insert(size_type,
3935         const _CharT*, size_type __n)): Fix length_error check.
3936         (replace(size_type, size_type, const _CharT*, size_type):
3937         Ditto; call _M_replace_safe.
3938         (_M_replace_aux(size_type, size_type, size_type, _CharT):
3939         Fix length_error check.
3940         (_M_replace(iterator, iterator, _InputIterator,
3941         _InputIterator)): Ditto, tweak.
3942         (_M_replace_safe(size_type, size_type, const _CharT*,
3943         size_type)): Remove length_error check.
3944
3945         * include/bits/basic_string.tcc (append(const basic_string&),
3946         append(const basic_string&, size_type, size_type)): Tweak
3947         comment.
3948
3949         * include/bits/basic_string.tcc (copy(_CharT*, size_type,
3950         size_type)): If __n == 0 don't call traits::copy.
3951
3952 2004-01-23  Stefan Olsson  <stefan@snon.net>
3953
3954         * include/ext/mt_allocator.h: Reduce lock contention.
3955
3956 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
3957
3958         PR libstdc++/13831
3959         * include/bits/fstream.tcc (underflow): Remove unused
3960         variable.
3961         * include/bits/streambuf_iterator.h (equal): Ditto.
3962         * include/bits/locale_facets.h (_M_convert_from_char):
3963         Ditto.
3964
3965 2004-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3966
3967         PR c/13814
3968         * config/linker-map.gnu (nan): Delete.
3969         * libmath/mathconf.h (NAN, nan): Delete.
3970         * linkage.m4 (nan): Don't check for it.
3971         * libmath/nan.c: Delete file.
3972
3973         * config.h.in, configure: Regenerate.
3974
3975 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
3976
3977         * include/bits/basic_string.h (push_back(_CharT)):
3978         Call _M_replace_aux.
3979         (insert(size_type, const basic_string&)): Trivial tweak.
3980         (insert(size_type, size_type, _CharT)): Call _M_replace_aux.
3981         (insert(iterator, _CharT)): Ditto.
3982         (erase(size_type, size_type)): Ditto.
3983         (erase(iterator)): Ditto.
3984         (erase(iterator, iterator)): Ditto.
3985         (replace(size_type, size_type, size_type, _CharT)): Ditto.
3986
3987 2004-01-23  Loren J. Rittle  <ljrittle@acm.org>
3988
3989         libstdc++/13823
3990         * testsuite/performance/allocator_map_thread.cc: New test.
3991
3992 2004-01-22  Paolo Carlini  <pcarlini@suse.de>
3993
3994         * include/bits/locale_facets.tcc
3995         (money_put::do_put(..., long double)): Use the basic_string
3996         constructor for char arrays, not that for C-strings, to pass
3997         __digits to do_put(..., const string_type&): __ws isn't
3998         null-terminated.
3999
4000 2004-01-22  Paolo Carlini  <pcarlini@suse.de>
4001
4002         * include/bits/basic_string.h (_M_replace_safe): Change
4003         signatures to take size_types and const _CharT*.
4004         (_M_replace_aux): Likewise, takes size_types instead of
4005         iterators.
4006         (append(size_type, _CharT)): Update call.
4007         (assign(size_type, _CharT)): Ditto.
4008         (replace(iterator, iterator, size_type, _CharT)): Ditto.
4009         (_M_replace_dispatch(iterator, iterator, _Integer,
4010         _Integer, __true_type)): Ditto.
4011         * include/bits/basic_string.tcc (assign(const _CharT*,
4012         size_type)): Ditto.
4013         (insert(size_type, const _CharT*, size_type)): Ditto.
4014         (replace(size_type, size_type, const _CharT*,
4015         size_type)): Ditto.
4016         (_M_replace(iterator, iterator, _InputIterator,
4017         _InputIterator)): Ditto.
4018         (append(const basic_string&)): Ditto.
4019         (append(const basic_string&, size_type, size_type): Ditto.
4020         (append(const _CharT*, size_type): Ditto.
4021         (_M_replace_safe, _M_replace_safe): Change definitions
4022         accordingly, simplify.
4023         * string-inst.cc (_M_replace_safe): Don't instantiate.
4024
4025 2004-01-21  Paolo Carlini  <pcarlini@suse.de>
4026
4027         * include/bits/basic_string.tcc (append(const basic_string&)):
4028         Revert previous change.
4029         (append(const basic_string&, size_type, size_type)): Revert
4030         previous change, use _M_check and _M_limit.
4031
4032 2004-01-21  Paolo Carlini  <pcarlini@suse.de>
4033
4034         * include/bits/basic_string.h (_M_check): Change to return
4035         a checked __pos and take an additional const char* argument.
4036         (_M_fold): Rename to _M_limit, change to return a size_type,
4037         corresponding to the __off limited to the actual length.
4038         (insert(size_type, size_type, _CharT)): Update call, call
4039         replace.
4040         (insert(iterator, _CharT)): Call replace(iterator, iterator,
4041         size_type, _CharT) instead.
4042         (erase(size_type, size_type)): Update calls.
4043         (replace(size_type, size_type, size_type, _CharT)): Ditto.
4044         (substr(size_type, size_type)): Use _M_check.
4045         * include/bits/basic_string.tcc (basic_string(const basic_string&,
4046         size_type, size_type)): Update calls.
4047         (basic_string(const basic_string&, size_type, size_type,
4048         const _Alloc&)): Ditto.
4049         (assign(const basic_string&, size_type, size_type)): Use the
4050         new _M_check and _M_limit.
4051         (insert(size_type, const basic_string&, size_type, size_type):
4052         Ditto.
4053         (insert(size_type, const _CharT*, size_type)): Ditto.
4054         (replace(size_type, size_type, const _CharT*, size_type): Ditto.
4055         (replace(size_type, size_type, const basic_string&,
4056         size_type, size_type)): Ditto.
4057         (append(const basic_string&)): Ditto.
4058         (append(const basic_string&, size_type, size_type)): Ditto.
4059         (copy(_CharT*, size_type, size_type)): Ditto.
4060         (compare(size_type, size_type, const basic_string&)): Ditto.
4061         (compare(size_type, size_type, const basic_string&,size_type,
4062         size_type)): Ditto.
4063         (compare(size_type, size_type, const _CharT*)): Ditto.
4064         (compare(size_type, size_type, const _CharT*, size_type)): Ditto.
4065
4066 2004-01-19  Stefan Olsson  <stefan@snon.net>
4067
4068         * include/ext/mt_allocator.h: If a thread, when it dies, still has
4069         memory on it's freelist this memory is not returned to global
4070         list. Simplification of deallocate so that memory is always
4071         returned to the calling thread id's freelist instead of to
4072         global. Fix typos. Add volatile where appropriate.
4073
4074 2004-01-19  Loren J. Rittle  <ljrittle@acm.org>
4075
4076         * testsuite/ext/stdio_filebuf/char/10063-2.cc: Treat unbuffered.
4077         * testsuite/ext/stdio_filebuf/char/10063-3.cc: New test.  Like -2 but
4078         use __gnu_cxx::stdio_sync_filebuf<char> instead; allow buffered stream.
4079
4080 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
4081
4082         * src/debug.cc: Make sure all the names are prefixed with
4083         double (or single) underscore.
4084
4085 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
4086
4087         * src/debug.cc: Trivial formatting change.
4088
4089 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
4090
4091         * include/bits/basic_string.tcc (_S_construct(size_type,
4092         _CharT, const _Alloc&)): Remove redundant try/catch.
4093         (_M_mutate(size_type, size_type, size_type)): Ditto.
4094         (_M_clone(const _Alloc&, size_type)): Ditto.
4095
4096 2004-01-18  Paolo Carlini  <pcarlini@suse.de>
4097
4098         * include/bits/basic_string.h (c_str()): Simplify, due to
4099         21.3.4 the internal representation is always kept null-terminated.
4100         * include/bits/basic_string.tcc (_M_clone): Null-terminate.
4101         * testsuite/21_strings/basic_string/element_access/char/4.cc: New.
4102         * testsuite/21_strings/basic_string/element_access/wchar_t/4.cc:
4103         Ditto.
4104
4105 2004-01-18  Paolo Carlini  <pcarlini@suse.de>
4106
4107         * include/bits/basic_string.h (append(size_type, _CharT)):
4108         Moved inline, just call _M_replace_aux, no source iterators at
4109         risk of being clobbered.
4110         (assign(size_type, _CharT)): Call directly _M_replace_aux.
4111         (_M_replace(iterator, iterator, _InputIterator, _InputIterator,
4112         input_iterator_tag)): Remove fifth unused argument.
4113         (_M_replace_dispatch(iterator, iterator, _InputIterator,
4114         _InputIterator, __false_type)): Update call.
4115         * include/bits/basic_string.tcc (replace(size_type, size_type,
4116         const _CharT*, size_type)): Update call.
4117         (_M_replace_aux(iterator, iterator, size_type, _CharT)): Tweak
4118         throw string literal.
4119         (_M_replace_safe(iterator, iterator, _ForwardIterator,
4120         _ForwardIterator)): Likewise.
4121         (_M_replace(iterator, iterator, _InputIterator, _InputIterator,
4122         input_iterator_tag)): Remove fifth unused argument.
4123         (append(size_type __n, _CharT __c)): Move inline.
4124         * src/string-inst.cc (S::_M_replace(S::iterator, S::iterator,
4125         const C*, const C*, input_iterator_tag)): Remove fifth unused
4126         argument.
4127
4128 2004-01-16  Benjamin Kosnik  <bkoz@redhat.com>
4129
4130         * testsuite/ext/enc_filebuf/char/13189.cc: Fix guards.
4131         * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Same.
4132
4133 2004-01-16  Danny Smith  <dannysmith@users.sourceforge.net>
4134
4135         * testsuite/testsuite_hooks.cc (try_mkfifo): Avoid calling
4136         mkfifo for mingw32.
4137
4138 2004-01-15  Stefan Olsson  <stefan@snon.net>
4139
4140         * include/ext/mt_allocator.h: Reuse thread id's as soon as
4141         possible by changing the behaviour of thread_freelist to do
4142         push_front when threads die instead of push_back.
4143
4144 2004-01-14  Paolo Carlini  <pcarlini@suse.de>
4145
4146         * include/bits/locale_facets.h (struct __numpunct_cache):
4147         Add member _M_grouping_size, caching the length of _M_grouping.
4148         (__numpunct_cache<>::_M_cache): Assign the latter.
4149         (__verify_grouping): Move declaration...
4150         * include/bits/locale_facets.tcc (__verify_grouping):
4151         ... here, change signature to take a const char* and a size_t
4152         for the grouping; not a template anymore.
4153         (__add_grouping, num_put::_M_group_int, num_put::_M_group_float):
4154         Likewise change signature and tweak consistently.
4155         (num_get::_M_extract_float, num_get::_M_extract_int,
4156         num_put::_M_insert_int, num_put::_M_insert_float,
4157         money_get::do_get(string_type&), money_get::do_put(string_type)):
4158         Update callers.
4159         * config/locale/generic/numeric_members.cc
4160         (numpunct<>::_M_initialize_numpunct): Assign the new member.
4161         * config/locale/gnu/numeric_members.cc
4162         (numpunct<>::_M_initialize_numpunct): Likewise.
4163         * src/locale-inst.cc (__add_grouping): Tweak signature.
4164         (__verify_grouping): Don't instantiate, not a template anymore.
4165
4166         * include/bits/locale_facets.h: Rename _M_truename_len ->
4167         _M_truename_size, _M_falsename_len -> _M_falsename_size.
4168         * include/bits/locale_facets.tcc: Likewise.
4169         * config/locale/generic/numeric_members.cc: Likewise.
4170         * config/locale/gnu/numeric_members.cc: Likewise.
4171
4172 2004-01-14  Stefan Olsson  <stefan@snon.net>
4173
4174         * include/ext/mt_allocator.h: Fixups.
4175         * testsuite/performance/allocator.cc: Enable __mt_alloc tests.
4176         * testsuite/performance/allocator_thread.cc: Same.
4177
4178 2004-01-13  Benjamin Kosnik  <bkoz@redhat.com>
4179
4180         * testsuite/performance/ifstream_extract_float.cc: Add higher
4181         precision tests.
4182         * testsuite/performance/ofstream_insert_float.cc: Same.
4183
4184 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
4185
4186         * src/locale-misc-inst.cc (__convert_from_v(long),
4187         __convert_from_v(unsigned long), __convert_from_v(long long),
4188         __convert_from_v(unsigned long long)): Remove, unused.
4189
4190 2004-01-13  Benjamin Kosnik  <bkoz@redhat.com>
4191
4192         * testsuite/performance/ifstream_extract_float.cc: New.
4193         * testsuite/performance/ofstream_insert_float.cc: Float generation
4194         matches above.
4195
4196         * 20_util/auto_ptr.cc, auto_ptr_neg.cc: Break into...
4197         * 20_util/auto_ptr/1.cc: ...this.
4198         * 20_util/auto_ptr/2.cc: Same.
4199         * 20_util/auto_ptr/3.cc: Same.
4200         * 20_util/auto_ptr/3946.cc: Same.
4201         * 20_util/auto_ptr/4.cc: Same.
4202         * 20_util/auto_ptr/5.cc: Same.
4203         * 20_util/auto_ptr/6.cc: Same.
4204         * 20_util/auto_ptr/7.cc: Same.
4205         * 20_util/auto_ptr/assign_neg.cc
4206         * 20_util/pairs.cc: Break into...
4207         * 20_util/pair/1.cc: ...this.
4208         * 20_util/pair/2.cc: Same.
4209         * 20_util/pair/3.cc: Same.
4210         * 20_util/pair/4.cc: Same.
4211
4212 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
4213
4214         * include/bits/locale_facets.tcc (num_get::do_get(void*&)):
4215         Set correctly just basefield, the only group that matters.
4216
4217 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
4218
4219         * include/ext/rope (_Rope_rep_alloc_base): Eliminate.
4220         (_Rope_rep_base): Inherit directly from the rope allocator;
4221         use rebinding instead of _Alloc_traits; pick up data member
4222         from _Rope_rep_alloc_base.
4223         (_Rope_alloc_base): Eliminate.
4224         (_Rope_base): Inherit directly from the rope allocator; use
4225         rebinding instead of _Alloc_traits; pick up data member from
4226         _Rope_alloc_base.
4227         (rope::_S_new_RopeLeaf, rope::_S_new_RopeConcatenation,
4228         rope::_S_new_RopeFunction, rope::_S_new_RopeSubstring): Tweak.
4229
4230 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
4231
4232         PR libstdc++/13650
4233         * include/bits/basic_string.tcc (compare(size_type, size_type,
4234         const _CharT*, size_type)): Implement correctly the resolution
4235         of DR 5: basically, s is a char array, -not- a C string.
4236         * include/bits/basic_string.h: Tweak some comments.
4237         * testsuite/21_strings/basic_string/compare/char/13650.cc: New.
4238         * testsuite/21_strings/basic_string/compare/wchar_t/13650.cc: New.
4239
4240 2004-01-12  Andreas Tobler  <a.tobler@schweiz.ch>
4241
4242         * testsuite/lib/libstdc++.exp: Set LD_LIBRARY_PATH_32 for
4243         Solaris.
4244
4245 2004-01-12  Paolo Carlini  <pcarlini@suse.de>
4246
4247         * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc:
4248         Use try_mkfifo.
4249         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc:
4250         Likewise.
4251
4252 2004-01-12  Paolo Carlini  <pcarlini@suse.de>
4253
4254         * include/bits/locale_facets.h (struct __numpunct_cache):
4255         Add members _M_truename_len and _M_falsename_len, caching
4256         the lengths of _M_truename and _M_falsename.
4257         (__numpunct_cache<>::_M_cache): Assign the latter.
4258         * include/bits/locale_facets.tcc (num_get::do_get(bool&),
4259         num_put::do_put(bool)): Use the new members, thus avoiding
4260         computing string lengths again and again.
4261         * config/locale/generic/numeric_members.cc
4262         (numpunct<>::_M_initialize_numpunct): Assign the new members.
4263         * config/locale/gnu/numeric_members.cc
4264         (numpunct<>::_M_initialize_numpunct): Likewise.
4265
4266 2004-01-12  Mark Mitchell  <mark@codesourcery.com>
4267
4268         * testsuite/testsuite_hooks.h (__gnu_test::try_mkfifo): Declare it.
4269         * testsuite/testsuite_hooks.cc (__gnu_test::try_mkfifo): Define
4270         it.
4271         * testsuite/27_io/basic_filebuf/close/char/4879.cc: Use try_mkfifo
4272         and remove Cygwin XFAIL.
4273         * testsuite/27_io/basic_filebuf/close/char/9964.cc: Likewise.
4274         * testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc: Likewise.
4275         * testsuite/27_io/basic_filebuf/open/char/9507.cc: Likewise.
4276         * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc:
4277         Likewise.
4278         * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise.
4279         * testsuite/27_io/objects/char/7.cc: Likewise.
4280         * testsuite/27_io/objects/char/9661-1.cc: Likewise.
4281         * testsuite/27_io/objects/wchar_t/7.cc: Likewise.
4282         * testsuite/27_io/objects/wchar_t/9661-1.cc: Likewise.
4283
4284 2004-01-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
4285
4286         * include/std/std_complex.h (std::complex<>::real): Return a
4287         reference. Add non-const overload.
4288         (std::complex<>::real): Likewise.
4289         (std::real): Likewise.
4290         (std::imag): Likewise.
4291         (std::operator+): Tidy.
4292         (std::operator-): Likewise.
4293         (std::operator*): Likewise.
4294         (std::operator/): Likewise.
4295         (std::operator>>): Likewise.
4296
4297 2004-01-11  Paolo Carlini  <pcarlini@suse.de>
4298
4299         PR libstdc++/13582
4300         * include/bits/fstream.tcc (imbue): Exploit the external
4301         buffer to imbue 'on the fly' a new locale and convert its
4302         remainder with the new codecvt facet.
4303         (underflow): Tweak slightly to deal with this special case.
4304         * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc: New.
4305         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc: Ditto.
4306         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Ditto.
4307         * testsuite/27_io/objects/wchar_t/13582-1_xin.cc: Ditto.
4308         * testsuite/27_io/objects/wchar_t/13582-1_xin.in: Ditto.
4309
4310 2004-01-10  Paolo Carlini  <pcarlini@suse.de>
4311
4312         * docs/html/ext/lwg-active.html, docs/html/ext/lwg-defects.html:
4313         Import Revision 28.
4314
4315 2004-01-10  Paolo Carlini  <pcarlini@suse.de>
4316
4317         PR libstdc++/13630
4318         * include/bits/locale_classes.h (class locale): Fix category
4319         typedef.
4320         * testsuite/22_locale/locale/13630.cc: Add.
4321
4322 2004-01-10  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
4323
4324         * include/bits/locale_facets.h: Make a name really dependent. This
4325         will be needed when Core Issue 224 is implemented.
4326
4327 2004-01-09  Paolo Carlini  <pcarlini@suse.de>
4328
4329         * testsuite/performance/allocator.cc: Demangle typeid(obj).name().
4330         * testsuite/performance/allocator_thread.cc: Likewise.
4331
4332 2004-01-07  Benjamin Kosnik  <bkoz@redhat.com>
4333
4334         * crossconfig.m4: Add LFS, io bits to linux cross config.
4335         * acconfig.h: Remove obsolete bits, reorder.
4336         * config.h.in: Regenerate.
4337         * aclocal.m4: Same.
4338         * configure: Same.
4339
4340 2004-01-07  Gawain Bolton  <gp.bolton@computer.org>
4341
4342         * include/bits/stl_list.h:
4343         * include/bits/list.tc:
4344         * src/list.cc:
4345         Performance enhancements for destructor, push_front(),
4346         push_back(), pop_front(), pop_back(), sort()
4347         Eliminated static_casts where possible.
4348         Moved code out of header files into new src/list.cc
4349         implementation file for library where possible.
4350         Remove inheritance from iterator class and create separate
4351         classes for non-constant and constant iterators.
4352         * include/bits/stl_tree.h (_Rb_tree class):
4353         * src/tree.cc:
4354         Only erase contents in destructor.
4355         Eliminate unnecessary initialization in assignment operator.
4356         Optimize for the nominal case by not checking whether
4357         container is empty in clear().
4358         Re-order test in _M_insert() to improve performance.
4359         Move initialization of new node's left & right pointers to
4360         src/tree.cc to where new node's colour is initialized
4361         and to reduce the amount of inline code.
4362         Use  _M_leftmost() and _M_end() to improve readability where
4363         appropriate.
4364         Create separate classes for non-constant and constant
4365         iterators to clarify code, avoid extra template parameters and
4366         casting away constness.
4367
4368 2004-01-07  Benjamin Kosnik  <bkoz@redhat.com>
4369
4370         * src/Makefile.am (sources): Add list.cc, tree.cc.
4371         * src/stl_tree.cc: Move to...
4372         * src/tree.cc: ...here.
4373         * src/list.cc: Add.
4374         * config/linker-map.gnu: Tweaks.
4375         * testsuite/23_containers/map/operators/1_neg.cc: Add excess errors.
4376         * testsuite/23_containers/set/operators/1_neg.cc: Add excess errors.
4377
4378         * bits/stl_vector.h: Column wrap comments.
4379
4380 2004-01-07  Loren J. Rittle  <ljrittle@acm.org>
4381
4382         (re-open) PR libstdc++/12658
4383         * src/locale_init.cc (locale::locale): Remove ill-scoped mutex.
4384         (locale::global): Likewise.
4385
4386 2004-01-07  Paolo Carlini  <pcarlini@suse.de>
4387
4388         * testsuite/27_io/basic_istream/extractors_other/char/9318-in.cc:
4389         Remove redundant #include.
4390         * testsuite/27_io/basic_ostream/endl/char/1.cc: Likewise.
4391         * testsuite/27_io/basic_ostream/ends/char/1.cc: Likewise,
4392         re-enable normal testing.
4393         * testsuite/27_io/basic_ostream/ends/char/2.cc: Remove redundant
4394         #include.
4395         * testsuite/27_io/basic_ostream/flush/char/1.cc: Likewise.
4396         * testsuite/27_io/basic_ostream/inserters_character/char/1.cc:
4397         Likewise.
4398         * testsuite/27_io/basic_ostream/inserters_character/char/2.cc:
4399         Likewise.
4400         * testsuite/27_io/basic_ostream/inserters_character/char/3.cc:
4401         Likewise.
4402         * testsuite/27_io/basic_ostream/inserters_character/char/4.cc:
4403         Likewise.
4404         * testsuite/27_io/basic_ostream/inserters_character/char/5.cc:
4405         Likewise.
4406         * testsuite/27_io/basic_ostream/inserters_character/char/6.cc:
4407         Likewise.
4408         * testsuite/27_io/basic_ostream/inserters_character/char/8.cc:
4409         Likewise.
4410         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/7.cc:
4411         More properly, #include <locale>.
4412         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/8.cc:
4413         Remove redundant #include.
4414         * testsuite/27_io/basic_ostream/inserters_other/char/2.cc: Likewise.
4415         * testsuite/27_io/basic_ostream/inserters_other/char/3.cc: Remove
4416         redundant DejaGnu directive.
4417         * testsuite/27_io/basic_ostream/inserters_other/char/4.cc: Remove
4418         redundant #include.
4419
4420 2004-01-06  Benjamin Kosnik  <bkoz@redhat.com>
4421             Stefan Olsson  <stefan@snon.net>
4422
4423         * scripts/check_performance: Use -pthread.
4424         * testsuite/performance/allocator.cc: Tweaks, add list.
4425         * testsuite/performance/allocator_thread.cc: New.
4426
4427 2004-01-06  Jerry Quinn  <jlquinn@optonline.net>
4428
4429         * include/bits/locale_facets.h: Document public classes and
4430         functions.
4431         * include/bits/locale_facets.tcc (time_get::_M_extract_via_format):
4432         Add comment.
4433
4434 2004-01-06  Paolo Carlini  <pcarlini@suse.de>
4435
4436         * testsuite/27_io/basic_istream/extractors_other/char/1.cc:
4437         Remove redundant #includes.
4438         * testsuite/27_io/basic_istream/extractors_other/char/2.cc:
4439         Likewise.
4440         * testsuite/27_io/basic_istream/extractors_other/char/3.cc:
4441         Likewise.
4442         * testsuite/27_io/basic_istream/get/char/1.cc: Likewise.
4443         * testsuite/27_io/basic_istream/get/char/2.cc: Likewise.
4444         * testsuite/27_io/basic_istream/getline/char/1.cc: Likewise.
4445         * testsuite/27_io/basic_istream/getline/char/2.cc: Likewise.
4446         * testsuite/27_io/basic_istream/getline/char/3.cc: Likewise.
4447         * testsuite/27_io/basic_istream/ignore/char/1.cc: Likewise.
4448         * testsuite/27_io/basic_istream/ignore/char/6360.cc: Likewise.
4449         * testsuite/27_io/basic_istream/ignore/char/7220.cc: Likewise.
4450         * testsuite/27_io/basic_istream/peek/char/1.cc: Likewise.
4451         * testsuite/27_io/basic_istream/peek/char/6414.cc: Likewise.
4452         * testsuite/27_io/basic_istream/putback/char/1.cc: Likewise.
4453         * testsuite/27_io/basic_istream/read/char/1.cc: Likewise.
4454         * testsuite/27_io/basic_istream/read/char/2.cc: Likewise.
4455         * testsuite/27_io/basic_istream/read/char/3.cc: Likewise.
4456         * testsuite/27_io/basic_istream/readsome/char/6746-1.cc:
4457         Likewise.
4458         * testsuite/27_io/basic_istream/readsome/char/6746-2.cc:
4459         Likewise.
4460         * testsuite/27_io/basic_istream/readsome/char/8258.cc:
4461         Likewise.
4462         * testsuite/27_io/basic_istream/seekg/char/2346-fstream.cc:
4463         Likewise.
4464         * testsuite/27_io/basic_istream/seekg/char/2346-sstream.cc:
4465         Likewise.
4466         * testsuite/27_io/basic_istream/seekg/char/8348-1.cc: Likewise.
4467         * testsuite/27_io/basic_istream/seekg/char/8348-2.cc: Likewise.
4468         * testsuite/27_io/basic_istream/tellg/char/8348.cc: Likewise.
4469
4470 2004-01-04  Paolo Carlini  <pcarlini@suse.de>
4471
4472         * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc:
4473         Remove redundant #includes.
4474         * testsuite/27_io/basic_istream/extractors_arithmetic/char/02.cc:
4475         Likewise.
4476         * testsuite/27_io/basic_istream/extractors_arithmetic/char/03.cc:
4477         Likewise.
4478         * testsuite/27_io/basic_istream/extractors_arithmetic/char/06.cc:
4479         Likewise.
4480         * testsuite/27_io/basic_istream/extractors_arithmetic/char/07.cc:
4481         Likewise.
4482         * testsuite/27_io/basic_istream/extractors_arithmetic/char/08.cc:
4483         Likewise.
4484         * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc:
4485         Likewise.
4486         * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
4487         Likewise.
4488         * testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc:
4489         Likewise.
4490         * testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc:
4491         Likewise.
4492         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/1.cc:
4493         Likewise.
4494         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc:
4495         Likewise.
4496         * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/1.cc:
4497         Likewise.
4498
4499 2004-01-04  Mark Mitchell  <mark@codesourcery.com>
4500
4501         PR c++/12226
4502         * testsuite/27_io/basic_filebuf/4.cc: Remove use of invalid copy
4503         constructor.
4504         * testsuite/27_io/basic_fstream/4.cc: Likewise.
4505         * testsuite/27_io/basic_ifstream/4.cc: Likewise.
4506         * testsuite/27_io/basic_ios/4.cc: Likewise.
4507         * testsuite/27_io/basic_iostream/4.cc: Likewise.
4508         * testsuite/27_io/basic_istream/4.cc: Likewise.
4509         * testsuite/27_io/basic_istingstream/4.cc: Likewise.
4510         * testsuite/27_io/basic_ofstream/4.cc: Likewise.
4511         * testsuite/27_io/basic_ostream/4.cc: Likewise.
4512         * testsuite/27_io/basic_ostringstream/4.cc: Likewise.
4513         * testsuite/27_io/basic_stringbuf/5.cc: Likewise.
4514         * testsuite/27_io/basic_stringstream/4.cc: Likewise.
4515
4516 2004-01-04  Paolo Carlini  <pcarlini@suse.de>
4517
4518         * config/locale/generic/numeric_members.cc (_M_initialize_numpunct):
4519         Avoid unnecessarily zero terminating _M_atoms_out and _M_atoms_in;
4520         always use double underscored names.
4521         * config/locale/gnu/numeric_members.cc (_M_initialize_numpunct):
4522         Likewise.
4523         * include/bits/locale_facets.h (struct __numpunct_cache):
4524         Dimension _M_atoms_out and _M_atoms_in one position smaller.
4525         (__numpunct_cache<>::_M_cache): Don't zero terminate _M_atoms_out
4526         and _M_atoms_in.