OSDN Git Service

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