OSDN Git Service

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