OSDN Git Service

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