OSDN Git Service

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