OSDN Git Service

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