OSDN Git Service

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