OSDN Git Service

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