OSDN Git Service

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