OSDN Git Service

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