OSDN Git Service

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