OSDN Git Service

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