OSDN Git Service

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