OSDN Git Service

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