PR target/18444
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob6158511a8064354462550f634740c2716a5f45da
1 2004-11-19  Jonathan Wakely  <redi@gcc.gnu.org>
3         * include/bits/basic_string.h, include/bits/locale_classes.h,
4         include/bits/valarray_after.h, include/bits/valarray_before.h,
5         include/ext/stdio_sync_filebuf.h, include/std/std_algorithm.h,
6         include/std/std_functional.h, include/std/std_memory.h,
7         include/std/std_numeric.h: Doxygen fixes.
9 2004-11-19  Paolo Carlini  <pcarlini@suse.de>
11         * testsuite/22_locale/time_get/get_date/char/1.cc: In the checks
12         use, more correctly (and consistently with other testcases) the
13         return value of the facet (the iterator arguments are by value).
14         * testsuite/22_locale/time_get/get_date/char/12791.cc: Likewise.
15         * testsuite/22_locale/time_get/get_date/wchar_t/1.cc: Likewise.
16         * testsuite/22_locale/time_get/get_date/wchar_t/12791.cc: Likewise.
17         * testsuite/22_locale/time_get/get_monthname/char/1.cc: Likewise.
18         * testsuite/22_locale/time_get/get_monthname/wchar_t/1.cc: Likewise.
19         * testsuite/22_locale/time_get/get_time/char/1.cc: Likewise.
20         * testsuite/22_locale/time_get/get_time/wchar_t/1.cc: Likewise.
21         * testsuite/22_locale/time_get/get_weekday/char/1.cc: Likewise.
22         * testsuite/22_locale/time_get/get_weekday/wchar_t/1.cc: Likewise.
23         * testsuite/22_locale/time_get/get_year/char/1.cc: Likewise.
24         * testsuite/22_locale/time_get/get_year/wchar_t/1.cc: Likewise.
26 2004-11-19  Jonathan Wakely  <redi@gcc.gnu.org>
28         * Makefile.am (doxygen, doxygen-maint, doxygen-man): Remove extra '$'
29         from host_alias variable.
30         * Makefile.in: Regenerate.
32 2004-11-19  Chris Jefferson  <chris@bubblescope.net>
34         * include/bits/stl_list.h (list::back, list::back const):
35         Don't decrement temporary.
37 2004-11-19  Paolo Carlini  <pcarlini@suse.de>
39         * include/bits/stl_deque.h (deque::front, deque::front const,
40         deque::back, deque::back const): Slightly tweak for stylistic
41         consistency.
43 2004-11-18  Paolo Carlini  <pcarlini@suse.de>
45         * testsuite/26_numerics/numeric/sum_diff.cc: Use VERIFY.
46         * testsuite/ext/array_allocator/1.cc: Likewise.
47         * testsuite/ext/array_allocator/2.cc: Likewise.
48         * testsuite/ext/array_allocator/3.cc: Likewise.
49         * testsuite/ext/enc_filebuf/char/13598.cc: Likewise.
51 2004-11-18  Paolo Carlini  <pcarlini@suse.de>
53         * include/bits/locale_facets.tcc (num_get<>::do_get(void*&)):
54         If the failbit is set, don't set it again.
55         (money_get<>::_M_extract): Minor stylistic tweak: consistently
56         with the other functions, take care of eofbit at the end.
58 2004-11-18  Paolo Carlini  <pcarlini@suse.de>
60         DR 434. bitset::to_string() hard to use [Ready]
61         * include/std/std_bitset.h (to_string): Add three overloads, taking
62         fewer template arguments.
63         * docs/html/ext/howto.html: Add an entry for DR 434.
64         * testsuite/23_containers/bitset/to_string/1.cc: New.
66 2004-11-17  Paolo Carlini  <pcarlini@suse.de>
68         * include/bits/istream.tcc (getline(basic_istream<>&, basic_string<>&,
69         _CharT)): Remove temporary kludge for libstdc++/15002.
70         * include/std/std_streambuf.h (class basic_streambuf): Declare
71         getline(basic_istream<>&, basic_string<>&, _CharT) as friend.
72         * include/bits/basic_string.h (getline(basic_istream<>&,
73         basic_string<>&, _CharT)): Declare optimized specializations for
74         char and wchar_t, using protected members of basic_streambuf.
75         * src/istream.cc: Define the latter.
77 2004-11-16  Jonathan Wakely  <redi@gcc.gnu.org>
79         * docs/html/19_diagnostics/howto.html: Document change from
80         _GLIBCPP_CONCEPT_CHECKS to _GLIBCXX_CONCEPT_CHECKS in 3.4.
82 2004-11-16  Matthias Klose  <doko@debian.org>
84         * docs/doxygen/user.cfg.in: Set HAVE_DOT to NO.
86 2004-11-16  Matthias Klose  <doko@debian.org>
88         * Makefile.am (doxygen, doxygen-maint, doxygen-man): Use host_alias
89         instead of build_alias.
90         * docs/doxygen/run_doxygen: Likewise.
91         * docs/doxygen/user.cfg.in: Likewise.
92         * Makefile.in: Regenerate.
94 2004-11-15  Paolo Carlini  <pcarlini@suse.de>
96         * include/bits/streambuf.tcc (__copy_streambufs): Provide
97         a generic version of the function, not using the protected
98         members of basic_streambuf.
99         * include/std/std_streambuf.h (__copy_streambufs): Declare
100         optimized specializations for char and wchar_t.
101         * src/streambuf.cc: New file, define the latter.
102         * src/Makefile.am: Add.
103         * src/Makefile.in: Regenerate.
105 2004-11-15  Matthias Klose  <doko@debian.org>
107         * docs/doxygen/run_doxygen: Add --build_alias option,
108         substitute it in docs/doxygen/user.cfg.in.
109         * docs/doxygen/user.cfg.in: Use build_alias.
110         * Makefile.am: Pass --build_alias to run_doxygen
111         * Makefile.in: Regenerate.
113 2004-11-15  Benjamin Kosnik  <bkoz@redhat.com>
115         * testsuite/testsuite_abi.cc (check_version): Add GLIBCXX_3.4.4.
117 2004-11-15  Paolo Carlini  <pcarlini@suse.de>
119         * docs/html/ext/lwg-active.html, lwg-defects.html: Import Revision 33.
121 2004-11-14  Paolo Carlini  <pcarlini@suse.de>
123         * include/bits/streambuf_iterator.h (istreambuf_iterator::_M_get):
124         Slightly tweak for clarity (also leads to measurably better code).
126 2004-11-12  Andrew Pinski  <pinskia@physics.uc.edu>
128         PR other/14264
129         * testsuite/lib/libstdc++.exp: Set LC_ALL and LANG to C.
131 2004-11-09  Paolo Carlini  <pcarlini@suse.de>
133         * include/bits/locale_facets.tcc (time_get<>::do_get_weekday,
134         time_get<>::do_get_monthname): Absolutely avoid dereferencing
135         end iterators.
137         * include/bits/locale_facets.tcc (time_get<>::_M_extract_name):
138         Minor tweak.    
140 2004-11-08  Benjamin Kosnik  <bkoz@redhat.com>
141             Doug Gregor  <dgregor@cs.indiana.edu>
143         PR libstdc++/17664
144         * src/debug.cc : Just use one mutex.
146 2004-11-08  Benjamin Kosnik  <bkoz@redhat.com>
148         * configure.ac (libtool_VERSION): To 6:4:0.
149         * configure: Regenerate.
151         * config/linker-map.gnu: Slide new symbols into GLIBCXX_3.4.4.
153         * docs/doxygen/user.cfg.in: Add more extension files.
155 2004-11-08  Paolo Carlini  <pcarlini@suse.de>
157         * include/bits/streambuf_iterator.h (class istreambuf_iterator):
158         Consistently use _M_c to cache the current char, i.e., not only
159         when operator++(int) is involved; change _M_c to mutable.
160         (_M_get()): Always save the return value of _M_sbuf->sgetc() into
161         _M_c.
162         * testsuite/22_locale/time_get/get_monthname/char/1.cc: Fix
163         (long standing) typo.
164         * testsuite/22_locale/time_get/get_monthname/wchar_t/1.cc: Likewise.
165         * testsuite/22_locale/time_get/get_weekday/char/1.cc: Likewise.
166         * testsuite/22_locale/time_get/get_weekday/wchar_t/1.cc: Likewise.
168 2004-11-08  Paolo Carlini  <pcarlini@suse.de>
170         * include/bits/istream.tcc (getline(char_type*, streamsize,
171         char_type), ignore(streamsize), ignore(streamsize, int_type)):
172         Restore a generic version of the functions, not using the
173         protected members of basic_streambuf.
174         * include/std/std_istream.h (getline(char_type*, streamsize,
175         char_type), ignore(streamsize), ignore(streamsize, int_type)):
176         Declare optimized specializations for char and wchar_t.
177         * src/istream.cc: New file, define the latter.
178         * src/Makefile.am: Add.
179         * src/Makefile.in: Regenerate.
181 2004-11-07  Paolo Carlini  <pcarlini@suse.de>
183         * testsuite/performance/27_io/ifstream_getline-2.cc: New.
185 2004-11-05  Benjamin Kosnik  <bkoz@redhat.com>
187         PR libstdc++/17218
188         PR libstdc++/17223
189         * docs/doxygen/filter: Remove.
190         * docs/doxygen/filter.sed: Remove.
191         * docs/doxygen/mainpage.html: Add link to functions.
192         * docs/doxygen/run_doxygen: Changes due to new source filtering.
193         * docs/doxygen/user.cfg.in: Update to doxygen 1.3.9.1, tweak.
194         * include/bits/allocator.h: Tweaks for doxygen.
195         * include/bits/char_traits.h: Same.
196         * include/bits/codecvt.h: Same.
197         * include/bits/concurrence.h: Same.
198         * include/bits/locale_facets.h: Same.
199         * include/ext/array_allocator.h: Same.
200         * include/ext/debug_allocator.h: Same.
201         * include/ext/malloc_allocator.h: Same.
202         * include/ext/mt_allocator.h: Same.
203         * include/ext/new_allocator.h: Same.
204         * include/ext/pool_allocator.h: Same.
205         * include/ext/stdio_sync_filebuf.h: Same.
206         * include/std/std_memory.h: Same.
207         * include/tr1/array: Same.
208         * include/tr1/tuple: Same.
209         * config/locale/ieee_1003.1-2001/codecvt_specializations.h: Same.
210         * config/os/gnu-linux/ctype_base.h: Same.
212 2004-11-04  Paolo Carlini  <pcarlini@suse.de>
214         * include/bits/locale_facets.tcc (num_get<>::do_get(bool&)):
215         Evaluate __beg == __end the exact strict minimum number of times.
217 2004-11-03  Jonathan Wakely  <redi@gcc.gnu.org>
219         * include/bits/stl_numeric.h (partial_sum, adjacent_difference):
220         Avoid dereferencing two times __first in the prologue.
222 2004-11-03  Paolo Carlini  <pcarlini@suse.de>
224         * include/bits/stl_numeric.h: Trivial formatting fixes.
226 2004-11-03  Benjamin Kosnik  <bkoz@redhat.com>
228         * include/bits/c++config: Spacing.
229         * libsupc++/del_op.cc: Include c++config.h.
230         * libsupc++/del_opnt.cc: Same.
231         * libsupc++/del_opv.cc: Same.
232         * libsupc++/del_opvnt.cc: Same.
233         * libsupc++/new_op.cc: Same.
234         * libsupc++/new_opnt.cc: Same.
235         * libsupc++/new_opv.cc: Same.
236         * libsupc++/new_opvnt.cc: Same.
238 2004-11-03  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
240         * config/os/bsd/darwin/os_defines.h
241         (_GLIBCXX_WEAK_DEFINITION): Define.
242         * include/bits/c++config (_GLIBCXX_WEAK_DEFINITION): Define.
243         * libsupc++/del_op.cc (operator delete(void *)): Use
244         _GLIBCXX_WEAK_DEFINITION.
245         * libsupc++/del_opnt.cc
246         (operator delete(void *, const std::nothrow_t&)): Same.
247         * libsupc++/del_opv.cc (operator delete[](void *)): Same.
248         * libsupc++/del_opvnt.cc
249         (operator delete[](void *, const std::nothrow_t&)): Same.
250         * libsupc++/new_op.cc (operator new(std::size_t)): Same.
251         * libsupc++/new_opnt.cc
252         (operator new(std::size_t, const std::nothrow_t&)): Same
253         * libsupc++/new_opv.cc (operator new[](std::size_t)): Same.
254         * libsupc++/new_opvnt.cc
255         (operator new[](std::size_t, const std::nothrow_t&)): Same.
257 2004-11-02  Paolo Carlini  <pcarlini@suse.de>
259         * include/bits/locale_facets.tcc (num_get<>::_M_extract_int):
260         Evaluate *__beg the exact strict minimum number of times; likewise
261         for __beg != __end; slightly simplify main parsing loop.
263 2004-11-02  Benjamin Kosnik  <bkoz@redhat.com>
264             Lothar Werzinger  <lothar@xcerla.com>
265         
266         PR libstdc++/17664
267         * src/debug.cc: Include concurrence, use mutexes.
268         (_Safe_iterator_base::_M_attach): Here. 
269         (_Safe_iterator_base::_M_detach): Here. 
270         
271 2004-11-02  Benjamin Kosnik  <bkoz@redhat.com>
273         PR libstdc++/17922
274         * include/bits/ios_base.h : Add enum values.
275         * testsuite/testsuite_hooks.h (bitmask_operators): Add function.
276         * testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc: New.
277         * testsuite/27_io/ios_base/types/fmtflags/case_label.cc: New.
278         * testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc: New.
279         * testsuite/27_io/ios_base/types/iostate/case_label.cc: New.
280         * testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc: New.
281         * testsuite/27_io/ios_base/types/openmode/case_label.cc: New.
282         * testsuite/27_io/ios_base/types/seekdir/case_label.cc: New.
284         * config/io/c_io_stdio.h (__ios_flags): Mark deprecated.
285         * src/ios.cc: Same.
287         * testsuite/27_io/ios_base/cons/assign_neg.cc: Adjust line numbers.
288         * testsuite/27_io/ios_base/cons/copy_neg.cc: Same.
290 2004-11-01  Momchil Velikov  <velco@fadata.bg>
292         PR libstdc++/18185
293         * libsupc++/eh_globals.cc (get_globals_dtor): Delete unhandled
294         exceptions.
295         * testsuite/thread/18185.cc: New.
296         
297 2004-11-01  Chris Jefferson  <chris@bubblescope.net>
299         PR libstdc++/18159
300         * include/tr1/tuple (get(pair)): Change occurrences of _I to _Int.
301         (get(const pair)): Likewise.
303 2004-11-01  Paolo Carlini  <pcarlini@suse.de>
305         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float):
306         Evaluate *__beg the exact strict minimum number of times; likewise
307         for __beg != __end; in the main parsing loop, call ++__beg in two
308         places only. The former is also a correctness issue, because,
309         according to the standard (22.2.2.1.2, Stage 2), 'in' shall be
310         dereferenced only one time for each increment.
312 2004-10-31  Benjamin Kosnik  <bkoz@redhat.com>
314         PR c++/16728
315         * testsuite/23_containers/set/modifiers/16728.cc: New.
317 2004-10-30  Paolo Carlini  <pcarlini@suse.de>
319         * include/ext/bitmap_allocator.h (allocate(size_type)): Minor tweak.
321         * testsuite/ext/bitmap_allocator/check_delete.cc: New.
322         * testsuite/ext/bitmap_allocator/check_new.cc: Likewise.
324 2004-10-29  Geoffrey Keating  <geoffk@apple.com>
326         * configure.host (darwin*): Set os_include_dir to a separate directory
327         for Darwin.
328         * acinclude.m4 (GLIBCXX_ENABLE_CLOCALE): Add a new C locale kind,
329         'darwin'.
330         * config/locale/darwin/ctype_members.cc: New.
331         * config/os/bsd/darwin/ctype_base.h: New.
332         * config/os/bsd/darwin/ctype_inline.h: New.
333         * config/os/bsd/darwin/ctype_noninline.h: New.
334         * config/os/bsd/darwin/os_defines.h: New.
336         * testsuite/22_locale/locale/cons/12658_thread-1.cc: Only xfail
337         on Linux.
339 2004-10-29  Chris Jefferson  <chris@bubblescope.net>
341         * include/bit/stl_algo.h (find_first_of(,,,,pred)):
342         Remove invalid EqualOpConcept.
343         * testsuite/25_algorithms/find_first_of/concept_check_1.cc: New.
345 2004-10-29  Benjamin Kosnik  <bkoz@redhat.com>
347         * testsuite/testsuite_allocator.h (check_delete): New.
348         (check_new): Simplify.
349         * testsuite/ext/array_allocator/check_delete.cc: New.
350         * testsuite/ext/array_allocator/check_new.cc: Simplify.
351         * testsuite/ext/debug_allocator/check_delete.cc: New.
352         * testsuite/ext/debug_allocator/check_new.cc: Simplify.
353         * testsuite/ext/malloc_allocator/check_delete.cc: New.
354         * testsuite/ext/malloc_allocator/check_new.cc: Simplify.
355         * testsuite/ext/mt_allocator/check_delete.cc: New.
356         * testsuite/ext/mt_allocator/check_new.cc: Simplify.
357         * testsuite/ext/new_allocator/check_delete.cc: New.
358         * testsuite/ext/new_allocator/check_new.cc: Simplify.
359         * testsuite/ext/pool_allocator/check_delete.cc: New.
360         * testsuite/ext/pool_allocator/check_new.cc: Simplify.
362 2004-10-28  Chris Jefferson  <chris@bubblescope.net>
364         PR libstdc++/18159
365         * include/tr1/tuple: Fix, change formatting.
367 2004-10-28  Benjamin Kosnik  <bkoz@redhat.com>
369         * include/ext/mt_allocator.h (__common_pool_policy): Add template
370         template parameter for pool class type.
371         (__per_type_pool_policy): Same.
372         (__mt_allocator): Don't inherit policy. Qualify policy_type calls.
373         * testsuite/ext/mt_allocator/check_deallocate_null.cc: Fix.
374         * testsuite/ext/mt_allocator/check_deallocate_null_thread.cc: Same.
375         * testsuite/ext/mt_allocator/deallocate_global-2.cc: Same.
376         * testsuite/ext/mt_allocator/deallocate_global-4.cc: Same.
377         * testsuite/ext/mt_allocator/deallocate_global_thread-1.cc: Same.
378         * testsuite/ext/mt_allocator/deallocate_global_thread-3.cc: Same.
379         * testsuite/ext/mt_allocator/deallocate_local-2.cc: Same.
380         * testsuite/ext/mt_allocator/deallocate_local-4.cc: Same.
381         * testsuite/ext/mt_allocator/deallocate_local_thread-1.cc: Same.
382         * testsuite/ext/mt_allocator/deallocate_local_thread-3.cc: Same.
383         * testsuite/ext/mt_allocator/instantiate.cc: Same.
384         * testsuite/ext/mt_allocator/tune-1.cc: Same.
385         * testsuite/ext/mt_allocator/tune-2.cc: Same.
386         * testsuite/ext/mt_allocator/tune-3.cc: Same.
387         * testsuite/ext/mt_allocator/tune-4.cc: Same.
389 2004-10-28  Paolo Carlini  <pcarlini@suse.de>
391         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float):
392         Cache *__beg in __c when parsing exponent sign too.
393         (num_get<>::do_get(..., bool&)): Cache *__beg.
394         (money_get<>::_M_extract)): Likewise, in money_base::value.
396 2004-10-27  Paolo Carlini  <pcarlini@suse.de>
398         * include/bits/basic_string.h (assign(const basic_string&)):
399         Move out of line...
400         * include/bits/basic_string.tcc: ... here.
402 2004-10-27  Paolo Carlini  <pcarlini@suse.de>
404         * include/bits/basic_string.h (_M_replace_aux, _M_replace_safe):
405         Move out of line...
406         * include/bits/basic_string.tcc: ... here.
408 2004-10-26  Paolo Carlini  <pcarlini@suse.de>
410         * include/bits/basic_string.h (append(const basic_string&),
411         append(size_type, _CharT)): Move out of line...
412         * include/bits/basic_string.tcc: ... here.
414 2004-10-26  Paolo Carlini  <pcarlini@suse.de>
416         * include/bits/basic_string.h (erase(size_type, size_type),
417         erase(iterator), erase(iterator, iterator)): Call _M_mutate
418         instead of _M_replace_safe, equivalent when the fourth argument
419         is zero and simpler.
421 2004-10-26  Benjamin Kosnik  <bkoz@redhat.com>
423         * include/ext/array_allocator.h (array::allocate): Check for valid
424         array object, use its size member function directly.
425         * testsuite/ext/array_allocator/3.cc: New.
426         * docs/html/20_util/allocator.html: Add docs.
427         
428 2004-10-25  Geoffrey Keating  <geoffk@apple.com>
430         * configure.host (darwin*): Build libstdc++ single module
431         and flat namespace.
432         * libsupc++/new_op.cc (new): Make weak.
433         * libsupc++/new_opnt.cc (new): Make weak.
434         * libsupc++/new_opv.cc (new): Make weak.
435         * libsupc++/new_opvnt.cc (new): Make weak.
436         * libsupc++/delete_op.cc (delete): Make weak.
437         * libsupc++/delete_opnt.cc (delete): Make weak.
438         * libsupc++/delete_opv.cc (delete): Make weak.
439         * libsupc++/delete_opvnt.cc (delete): Make weak.
441 2004-10-25  Benjamin Kosnik  <bkoz@redhat.com>
443         * testsuite/Makefile.am (GLIBCXX_INCLUDES): Add.
444         (AUTOMAKE_OPTIONS): Add nostdinc.
445         * testsuite/Makefile.in: Regenerate.
446         * scripts/testsuite_flags.in (build-includes): Remove redundant
447         search for libsupc++.
448         * fragment.am: Clean.
449         
450 2004-10-25  Benjamin Kosnik  <bkoz@redhat.com>
452         * include/Makefile.am (tr1_headers): Add tuple.
453         * include/Makefile.in: Regenerate.
455 2004-10-25  Chris Jefferson  <chris@bubblescope.net>
457         * include/tr1/tuple: Implementation of tuple from library TR.
458         * testsuite/tr1/6_containers/tuple/tuple_element.cc: New.
459         * testsuite/tr1/6_containers/tuple/tuple_size.cc: New.
460         * testsuite/tr1/6_containers/tuple/comparison_operators/comparisons.cc:
461         New.
462         * testsuite/tr1/6_containers/tuple/cons/assignment.cc: New.
463         * testsuite/tr1/6_containers/tuple/cons/big_tuples.cc: New.
464         * testsuite/tr1/6_containers/tuple/cons/constructor.cc: New.
465         * testsuite/tr1/6_containers/tuple/creation_functions/make_tuple.cc: 
466         New.
467         * testsuite/tr1/6_containers/tuple/creation_functions/tie.cc: New.
468         * testsuite/tr1/6_containers/tuple/element_access/get.cc: New.
470 2004-10-25  Paolo Carlini  <pcarlini@suse.de>
471         
472         * include/bits/basic_string.h (_Rep::_M_is_safe): Move to
473         basic_string as _M_disjunct, adjust to take only __s.
474         * include/bits/basic_string.tcc: Adjust consistently callers. 
476 2004-10-25  Paolo Carlini  <pcarlini@suse.de>
478         * include/bits/basic_string.tcc (assign(const _CharT*, size_type)):
479         Adjust bit missing from the previous commit.
481 2004-10-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
483         PR other/18138
484         * testsuite/lib/libstdc++.exp: Accept more than one multilib libgcc.
486 2004-10-25  Paolo Carlini  <pcarlini@suse.de>
488         * include/bits/basic_string.h (_Rep::_M_is_safe, _M_check_length,
489         _M_move, _M_copy, _M_assign): New, use througout.
490         (operator+=(_CharT)): Define in terms of push_back.
491         (append(const basic_string&)): Define here, inline, and simplify,
492         don't use the full _M_replace_safe.
493         (append(size_type, _CharT)): Likewise, don't use _M_replace_aux.
494         (push_back): Likewise.
495         (assign(const basic_string&)): Define here, inline.
496         * include/bits/basic_string.tcc (append(const _CharT* s, size_type):
497         Fix: when s points inside the _Rep, upon reallocation (reserve) we
498         were copying from deallocated memory.
499         (append(const basic_string&, size_type, size_type)): Simplify,
500         don't use _M_replace_safe.
501         (replace(size_type, size_type, const _CharT*, size_type)): Slightly
502         tweak.
503         (reserve): Likewise.
504         * testsuite/21_strings/basic_string/append/char/2.cc: New.
505         * testsuite/21_strings/basic_string/append/char/3.cc: Likewise.
506         * testsuite/21_strings/basic_string/append/wchar_t/2.cc: Likewise.
507         * testsuite/21_strings/basic_string/append/wchar_t/3.cc: Likewise.
509         * testsuite/21_strings/basic_string/assign/char/3.cc: Remove junk.
510         * testsuite/21_strings/basic_string/assign/wchar_t/3.cc: Likewise.
512 2004-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
514         * testsuite/ext/mt_allocator/deallocate_global-2.c:
515         s/value_t/value_type/. s/traits_t/traits_type/.
516         s/policy_t/policy_type/. s/allocator_t/allocator_type/.
517         s/string_t/string_type/. s/list_t/list_type/.
518         * testsuite/ext/mt_allocator/deallocate_global-4.cc: Likewise.
519         * testsuite/ext/mt_allocator/deallocate_global_thread-1.cc: Likewise.
520         * testsuite/ext/mt_allocator/deallocate_global_thread-3.cc: Likewise.
521         * testsuite/ext/mt_allocator/deallocate_local-2.cc: Likewise.
522         * testsuite/ext/mt_allocator/deallocate_local-4.cc: Likewise.
523         * testsuite/ext/mt_allocator/deallocate_local_thread-1.cc: Likewise.
524         * testsuite/ext/mt_allocator/deallocate_local_thread-3.cc: Likewise.
526 2004-10-21  Benjamin Kosnik  <bkoz@redhat.com>
528         * include/tr1/array (array): Make safe for zero-sized arrays.
529         (array::end): Return one past the end.
530         (array::at): Use __throw_out_of_range, include functexcept.h.
531         (operator==): Implement.
532         (operator!=): Same.
533         (operator<): Same.
534         (operator>): Same.
535         (operator>=): Same.
536         (operator<=): Same.
537         * testsuite/tr1/6_containers/array/capacity/(empty.cc,
538         max_size.cc, size.cc): New.
539         * testsuite/tr1/6_containers/array/comparison_operators/(equal.cc,
540         greater.cc, greater_or_equal.cc, less.cc, less_or_equal.cc,
541         not_equal): New.
542         * testsuite/tr1/6_containers/array/cons/aggregate_initialization.cc: 
543         New.
544         * testsuite/tr1/6_containers/array/element_access/at_out_of_range.cc: 
545         New.
546         * testsuite/tr1/6_containers/array/iterators/end_is_one_past.cc: New.
547         * testsuite/tr1/6_containers/array/requirements/(contiguous.cc,
548         instantiate, typedefs, zero_size_arrays): New.
550 2004-10-21  Paolo Carlini  <pcarlini@suse.de>
551             Benjamin Kosnik  <bkoz@redhat.com>
553         * include/bits/basic_string.h (_M_set_length_and_sharable): New.
554         * include/bits/basic_string.tcc (_S_construct, assign(const _CharT*,
555         size_type), _M_mutate, _M_clone): Use it.
556         (_Rep::_S_create): Don't set/call _M_length/_M_set_sharable here.
558 2004-10-21  Paolo Carlini  <pcarlini@suse.de>
559             Dhruv Matani  <dhruvbird@gmx.net>
560             Nathan Myers  <ncm@cantrip.org>
562         * include/bits/vector.tcc (_M_insert_aux, _M_fill_insert,
563         _M_range_insert): Check at the outset that we are not trying
564         to exceed max_size, then deal properly with __len overflows.
565         * testsuite/23_containers/vector/modifiers/insert/1.cc: New.
566         
567         * testsuite/testsuite_allocator.h: Remove redundant include.
569 2004-10-20  Paolo Carlini  <pcarlini@suse.de>
571         * include/ext/bitmap_allocator.h (allocate): Throw std::bad_alloc
572         when n > max_size().
573         * include/ext/malloc_allocator.h (allocate): Likewise.
574         * include/ext/mt_allocator.h (allocate): Likewise.
575         * include/ext/new_allocator.h (allocate): Likewise.
576         * include/ext/array_allocator.h: Use __throw_bad_alloc().
577         * include/ext/pool_allocator.h: Use __builtin_expect.
578         * testsuite/ext/array_allocator/check_allocate_max_size.cc: New.
579         * testsuite/ext/bitmap_allocator/check_allocate_max_size.cc: Likewise.
580         * testsuite/ext/malloc_allocator/check_allocate_max_size.cc: Likewise.
581         * testsuite/ext/mt_allocator/check_allocate_max_size.cc: Likewise.
582         * testsuite/ext/new_allocator/check_allocate_max_size.cc: Likewise.
583         * testsuite/ext/pool_allocator/check_allocate_max_size.cc: Likewise.
584         * testsuite/testsuite_allocator.h (check_allocate_max_size): New test.
586 2004-10-19  Paolo Carlini  <pcarlini@suse.de>
588         * testsuite/performance/20_util/allocator/list_sort_search.cc:
589         Include <ext/new_allocator.h>.
590         * testsuite/performance/20_util/allocator/map_mt_find.cc: Likewise.
592 2004-10-18  Paolo Carlini  <pcarlini@suse.de>
594         * include/bits/basic_string.tcc (_M_mutate): Do not reallocate
595         unnecessarily when _M_rep() == &_S_empty_rep() and __new_size
596         == capacity() (== 0): is ok to just leave everything unchanged.
598         * include/bits/basic_string.h: Minor formatting fixes.
599         * include/bits/basic_string.tcc: Likewise.
601 2004-10-17  Benjamin Kosnik  <bkoz@redhat.com>
603         * include/ext/mt_allocator.h (__pool::_M_get_align): New.
604         (__mt_alloc::allocate): Use it.
605         * src/mt_allocator.cc (__pool::_M_reclaim_block): Use it.
606         (__pool::_M_reserve_block): Simplify block allocation.
607         
608 2004-10-17  Dhruv Matani  <dhruvbird@gmx.net>
609             Paolo Carlini  <pcarlini@suse.de>
610                 
611         * include/ext/bitmap_allocator.h: Change unsigned int -> size_t: this
612         makes the code 64-bit correct and also fixes (together with using at
613         the beginning a bitmap 2 * size_t bytes wide) alignment issues: now
614         8 is guaranteed, easily tunable to 16 via _BALLOC_ALIGN_BYTES.
615         Fix pthread-rope7.cc fail by nulling out __mini_vector<> destructor.
616         * src/bitmap_allocator.cc: Change to size_t.
617         * config/linker-map.gnu: Adjust.
619 2004-10-16  Benjamin Kosnik  <bkoz@redhat.com>
621         * include/tr1/array: Don't use layout_type.
623 2004-10-16  Sashan Govender  <sashang@gmail.com>
625         * include/tr1/array (array::end const): Fix casting from iterator
626         to const_iterator.
627         
628 2004-10-15  Paolo Carlini  <pcarlini@suse.de>
630         * include/ext/bitmap_allocator.h: Qualify ::operator delete.
631         * src/bitmap_allocator.cc: Likewise.
632         * src/mt_allocator.cc: Use ::operator delete, not delete,
633         consistently with ::operator new.
635         * include/ext/bitmap_allocator.h (deallocate): Check for null
636         pointer.
637         * testsuite/ext/bitmap_allocator/check_deallocate_null.cc: New.
638         * testsuite/testsuite_allocator.h (check_deallocate_null): Add test.
640 2004-10-14  Benjamin Kosnik  <bkoz@redhat.com>
642         * include/ext/mt_allocator.h (__mt_alloc::deallocate): Check for
643         null pointer.
644         * include/ext/pool_allocator.h (debug_allocator::deallocate):
645         Check pointer value.
646         * include/ext/debug_allocator.h (debug_allocator::deallocate):
647         Throw exceptions, don't abort.
648         * include/ext/array_allocator.h
649         (array_allocator_base::deallocate): Remove unused parameters.
650         * testsuite/testsuite_allocator.h (check_deallocate_null): New.
651         * testsuite/ext/mt_allocator/check_deallocate_null.cc: New.
652         * testsuite/ext/mt_allocator/check_deallocate_null_thread.cc: New.
653         * testsuite/ext/array_allocator/check_deallocate_null.cc: New.
654         * testsuite/ext/debug_allocator/check_deallocate_null.cc: New.
655         * testsuite/ext/malloc_allocator/check_deallocate_null.cc: New.
656         * testsuite/ext/new_allocator/check_deallocate_null.cc: New.
657         * testsuite/ext/pool_allocator/check_deallocate_null.cc: New.
659         * testsuite/testsuite_allocator.h (check_new): Add instance argument.
660         * testsuite/ext/array_allocator/check_new.cc: New.
661         
662 2004-10-14  Paolo Carlini  <pcarlini@suse.de>
664         * include/ext/bitmap_allocator.h (bitmap_allocator::_Alloc_block):
665         Rename __unused to __M_unused.
667 2004-10-14  Benjamin Kosnik  <bkoz@redhat.com>
669         * testsuite/ext/headers.cc: Add includes, compile only.
670         * testsuite/ext/hash_map.cc: Move to...
671         * testsuite/ext/hash_map/1.cc: ...here.
672         * testsuite/ext/14648.cc: Move to...
673         * testsuite/ext/hash_map/14648.cc: ...here.
674         * testsuite/ext/hash_map/instantiate.cc: Add.
675         * testsuite/ext/hash_set.cc: Move to...
676         * testsuite/ext/hash_set/1.cc: ...here.
677         * testsuite/ext/hash_set_explicit_instantiation.cc: Move to...
678         * testsuite/ext/hash_set/instantiate.cc: ...here.
679         * testsuite/ext/hash_check_construct_destroy.cc: Move to...
680         * testsuite/ext/hash_set/check_construct_destroy.cc: ...here.
681         * testsuite/ext/slist_check_construct_destroy.cc: Move to...
682         * testsuite/ext/slist/check_construct_destroy.cc: ...here.
683         * testsuite/ext/slist_explicit_instantiation.cc: Move to...
684         * testsuite/ext/slist/instantiate.cc: ...here.
685         
686 2004-10-14  Benjamin Kosnik  <bkoz@redhat.com>
688         * include/ext/mt_allocator.h: Tweaks.
689         * src/mt_allocator.cc: Same.
691 2004-10-14  Dhruv Matani  <dhruvbird@gmx.net>
693         * ext/bitmap_allocator.h: Clean-up add/remove functions.
694         * src/bitmap_allocator.cc: New file. Contains the out-of-line
695         function definitions, static initialization of variables, and
696         explicit instantiations needed for the allocator.
697         * src/Makefile.am: Add.
698         * src/Makefile.in: Regenerate.
699         * config/linker.map.gnu: Add the necessary symbols.
701 2004-10-13  Paolo Carlini  <pcarlini@suse.de>
703         * include/bits/basic_string.tcc (_S_create): Use consistently
704         the exponential policy, simplify.
705         * testsuite/performance/21_strings/string_append_2.cc: New.
707         * include/ext/array_allocator.h (allocate): Fix bad_alloc check.
708         * testsuite/ext/array_allocator/2.cc: Fix wrt 64-bit archs (in
709         that case sizeof(_Rep) == 24).
711 2004-10-12  Paolo Carlini  <pcarlini@suse.de>
713         PR libstdc++/17948
714         * include/bits/stl_tree.h (erase(iterator, iterator)): Revert
715         wrong commit of 2004-10-07.
716         
717 2004-10-12  Scott Snyder  <snyder@fnal.gov>
719         PR libstdc++/17948
720         * testsuite/23_containers/set/modifiers/17948.cc: New.
722 2004-10-11  Benjamin Kosnik  <bkoz@redhat.com>
724         * include/bits/stl_deque.h: Correct for over-long lines.
726 2004-10-11  Benjamin Kosnik  <bkoz@redhat.com>
728         PR libstdc++/17937
729         * include/ext/mt_allocator.h (__pool::_M_destroy): New.
730         * src/mt_allocator.cc (__pool::~__pool): Change definitions to
731         _M_destroy.
732         * acconfig.h: Remove _GLIBCXX_USE___CXA_ATEXIT.
733         * acinclude.m4 (GLIBCXX_ENABLE_CXA_ATEXIT): Remove.
734         * configure.ac: Remove call to GLIBCXX_ENABLE_CXA_EXIT.
735         * configure: Regenerate.
736         * config/linker-map.gnu: Tweak exports.
737         * docs/html/ext/mt_allocator.html: Update docs.
738         * testsuite/ext/mt_allocator/deallocate_global-2.cc: Fix.
739         * testsuite/ext/mt_allocator/deallocate_global-4.cc: Fix.       
740         * testsuite/ext/mt_allocator/deallocate_global_thread-1.cc: Fix.
741         * testsuite/ext/mt_allocator/deallocate_global_thread-3.cc: Fix.
742         * testsuite/ext/mt_allocator/deallocate_local-2.cc: Fix.
743         * testsuite/ext/mt_allocator/deallocate_local-4.cc: Fix.
744         * testsuite/ext/mt_allocator/deallocate_local_thread-3.cc: Fix.
745         * testsuite/ext/mt_allocator/deallocate_local_thread-1.cc: Fix.
747 2004-10-11  Benjamin Kosnik  <bkoz@redhat.com>
749         PR libstdc++/16614 continued.
750         * include/ext/mt_allocator.h
751         (__per_type_pool_policy::_S_get_pool): Use saner defaults based on
752         specific type characteristics.
753         (__pool_base): Add constructor that takes a _Tune argument.
754         (__pool): Same.
755         * testsuite/ext/mt_allocator/tune-2.cc: Adjust default.
756         * testsuite/ext/mt_allocator/tune-4.cc: Same.
757         * testsuite/ext/mt_allocator/tune-3.cc: Same.
759 2004-10-11  Joachim Kuebart  <kuebart@mathematik.uni-ulm.de>
760             Paolo Carlini  <pcarlini@suse.de>
762         * src/pool_allocator.cc (__pool_alloc_base::_M_allocate_chunk):
763         Deal properly with exceptions thrown by ::operator new(size_t).
764         * testsuite/ext/pool_allocator/allocate_chunk.cc: New.
766         * include/ext/pool_allocator.h: Include <cstdlib>.
768 2004-10-10  Benjamin Kosnik  <bkoz@redhat.com>
770         * include/bits/functexcept.h: Add guards.
772         * acinclude.m4 (GLIBCXX_ENABLE_THREADS): Tweak test.
773         * configure: Regenerate.
774         
775 2004-10-10  Paolo Carlini  <pcarlini@suse.de>
777         * config/locale/gnu/monetary_members.cc (_S_construct_pattern):
778         Give __ret a default value, thus avoiding spurious warnings.
780         * testsuite/performance/27_io/filebuf_sgetn_unbuf.cc: Open either
781         words or linux.words, otherwise exit.
782         * testsuite/performance/27_io/ifstream_getline.cc: Slighlty tweak.
784 2004-10-09  Paolo Carlini  <pcarlini@suse.de>
786         * include/std/std_memory.h (__get_temporary_buffer): Don't use
787         INT_MAX, prefer numeric_limits<ptrdiff_t>::max(), ok on 64-bit
788         platforms too.
789         * testsuite/20_util/memory/auto_ptr/assign_neg.cc: Adjust dg-error
790         line numbers.
792 2004-10-08  Benjamin Kosnik  <bkoz@redhat.com>
794         * acconfig.h: Add _GLIBCXX_USE___CXA_ATEXIT.
795         * acinclude.m4 (GLIBCXX_ENABLE_CXA_ATEXIT): New.
796         * configure.ac: Call GLIBCXX_ENABLE_CXA_EXIT.
797         * configure: Regenerate.
798         * src/mt_allocator.cc (__pool::~__pool): Make conditional on
799         _GLIBCXX_USE___CXA_ATEXIT macro.
800         * docs/html/ext/mt_allocator.html: Add note about deallocation.
801         * testsuite/ext/mt_allocator/deallocate_local-2.cc: Guard checks
802         with _GLIBCXX_USE___CXA_ATEXIT.
803         * testsuite/ext/mt_allocator/deallocate_global_thread-3.cc: Same.
804         * testsuite/ext/mt_allocator/deallocate_global_thread-1.cc: Same.
805         * testsuite/ext/mt_allocator/deallocate_global-4.cc: Same.
806         * testsuite/ext/mt_allocator/deallocate_global-2.cc: Same.
807         * testsuite/ext/mt_allocator/deallocate_local_thread-3.cc: Same.
808         * testsuite/ext/mt_allocator/deallocate_local_thread-1.cc: Same.
809         * testsuite/ext/mt_allocator/deallocate_local-4.cc: Same.
810         
811 2004-10-07  Phil Edwards  <phil@codesourcery.com>
813         * testsuite/lib/libstdc++.exp:  Update list of undefined functions.
815 2004-10-07  Paolo Carlini  <pcarlini@suse.de>
817         * include/bits/list.tcc (operator=): Avoid iterator postincrement.
818         * include/bits/stl_tree.h (erase(iterator, iterator)): Likewise.
820 2004-10-07  Benjamin Kosnik  <bkoz@redhat.com>
822         * include/tr1: New.
823         * include/tr1/array: New.
824         * include/Makefile.am (tr1_headers): New.
825         (stamp-tr1): New.
826         (install-headers): New.
827         (allstamped): Add stamp-tr1.
829         * include/ext/array_allocator.h: New.
830         * include/Makefile.am: Add.
831         * include/Makefile.in: Regenerate.
832         * testsuite/ext/array_allocator/1.cc: New.
833         * testsuite/ext/array_allocator/2.cc: New.
835 2004-10-07  Richard Earnshaw  <rearnsha@arm.com>
837         * testsuite/lib/libstdc++.exp (libstdc++_exit): New proc.
839 2004-10-07  Roger Sayle  <roger@eyesopen.com>
841         PR libstdc++/17850
842         * configure.ac: Newlib does not provide strtold.
843         * configure: Regenerate.
845 2004-10-06  Benjamin Kosnik  <bkoz@redhat.com>
847         * acinclude.m4 (GLIBCXX_ENABLE_THREADS): Set enable_thread.
848         (GLIBCXX_CONFIGURE_TESTSUITE): Use it.
849         * configure: Regenerated.
850         * testsuite/Makefile.am (CLEANFILES): Add TEST for
851         check-performance executables.
852         (stamp_thread): New.
853         (all-local): Use it.
854         * testsuite/Makefile.in: Regenerate.
855         * scripts/create_testsuite_files: Filter thread tests.
857         * testsuite/thread/pthread1.cc: Remove macro conditionals: this
858         file will only be run by thread enabled configurations.
859         * testsuite/thread/pthread7-rope.cc: Same, add rope_type typedef.
860         * testsuite/thread/pthread6.cc: Same.
861         * testsuite/thread/pthread5.cc: Same.
862         * testsuite/thread/pthread4.cc: Same.
863         * testsuite/thread/pthread3.cc: Same.
864         * testsuite/thread/pthread2.cc: Same.
866         * testsuite/ext/mt_allocator/instantiate.cc: Add in __GTHREADS guard.
867         * testsuite/ext/mt_allocator/deallocate_global-1.cc: Move to...
868         * testsuite/ext/mt_allocator/deallocate_global_thread-1.cc: ...here.
869         * testsuite/ext/mt_allocator/deallocate_global-3.cc: Move to...
870         * testsuite/ext/mt_allocator/deallocate_global_thread-3.cc: ...here. 
871         * testsuite/ext/mt_allocator/deallocate_local-1.cc: Move to...
872         * testsuite/ext/mt_allocator/deallocate_local_thread-1.cc: ...here.
873         * testsuite/ext/mt_allocator/deallocate_local-3.cc: Move to...
874         * testsuite/ext/mt_allocator/deallocate_local_thread-3.cc: ...here.
876 2004-10-06  Benjamin Kosnik  <bkoz@redhat.com>
877             Paolo Carlini  <pcarlini@suse.de>
879         PR libstdc++/17780
880         * src/mt_allocator.cc (__pool<true>::_M_reserve_block): Revert
881         to old locking order.
883 2004-10-06  Paolo Carlini  <pcarlini@suse.de>
885         * include/std/std_sstream.h (_M_sync): When the caller is
886         setbuf, don't trust _M_string.capacity() to be the size of
887         the buffer area, use _M_string.size() in this case.
888         * testsuite/27_io/basic_stringbuf/setbuf/char/4.cc: New.
889         * testsuite/27_io/basic_stringbuf/setbuf/wchar_t/4.cc: Likewise.
891         * include/bits/sstream.tcc (overflow): Avoid calling string::assign
892         unnecessarily when the current _M_string is empty.
894 2004-10-06  Paolo Carlini  <pcarlini@suse.de>
896         * include/bits/stl_algo.h (__reverse(bidirectional_iterator_tag)):
897         Avoid iterator postincrement.
898         (__rotate): Likewise.
900         * include/bits/stl_algo.h: Minor formatting tweaks.
902 2004-10-06  Christopher Jefferson <caj@cs.york.ac.uk>
904         * include/bits/stl_algo.h (__reverse(random_access_iterator_tag)):
905         Avoid iterator postincrement; fix swapping middle element with
906         itself on odd-length inputs.
908 2004-10-05  Benjamin Kosnik  <bkoz@redhat.com>
910         PR libstdc++/17780
911         * include/ext/mt_allocator.h (__pool_base::_Tune): Add default
912         options as compile-time constant enums.
913         (__pool_base::_Tune::is_default): New.
914         (__pool_base::_Block_address): New.
915         (__pool_base): Rearrange data members.
916         (__pool::_M_reserve_memory): To _M_reserve_block.
917         (__pool::_M_reclaim_memory): To _M_reclaim_block.       
918         (__pool::_Bin_record): Add _Block_address data member.
919         (__pool<false>): Add _M_thread_freelist_initial.
920         (__pool::~__pool): Declare.     
921         (__common_pool_policy): Move static data member to...
922         (__common_pool_policy::_S_get_pool): ...here, make static local.
923         (__per_type_pool_policy): Move static data member to...
924         (__per_type_pool_policy::_S_get_pool): ...here, make static local.
925         (__mt_alloc::__mt_alloc): Call __policy_type::_S_get_pool.
926         Remove static member definitions. Use define for __default_policy.
927         * src/mt_allocator.cc: Same.
928         * config/linker-map.gnu: Don't export _S_get_pool. Renames.
929         * testsuite/ext/new_allocator: New.
930         * testsuite/ext/new_allocator/instantiate.cc: New.
931         * testsuite/ext/new_allocator/check_new.cc: New.
932         * testsuite/ext/new_allocator/deallocate_global.cc: New.
933         * testsuite/ext/new_allocator/deallocate_local.cc: New.
934         * testsuite/ext/mt_allocator/instantiate.cc: Instantiate all
935         template arguments.
936         * testsuite/ext/mt_allocator/deallocate_global-1.cc: New.
937         * testsuite/ext/mt_allocator/deallocate_global-2.cc: New.
938         * testsuite/ext/mt_allocator/deallocate_global-3.cc: New.
939         * testsuite/ext/mt_allocator/deallocate_global-4.cc: New.
940         * testsuite/ext/mt_allocator/deallocate_local-1.cc: New.
941         * testsuite/ext/mt_allocator/deallocate_local-2.cc: New.
942         * testsuite/ext/mt_allocator/deallocate_local-3.cc: New.
943         * testsuite/ext/mt_allocator/deallocate_local-4.cc: New.
944         * testsuite/ext/mt_allocator/deallocate.cc: New.
945         * testsuite/ext/malloc_allocator/deallocate.cc: New.    
946         * testsuite/ext/malloc_allocator/deallocate_global.cc: New.
947         * testsuite/ext/malloc_allocator/deallocate_local.cc: New.
948         
949 2004-10-05  Ulrich Weigand  <uweigand@de.ibm.com>
951         * configure.host (abi_baseline_pair): Define for s390-*-linux* and
952         s390x-*-linux*.
953         * config/abi/s390-linux-gnu/baseline_symbols.txt: Add missing symbols.
954         * config/abi/s390x-linux-gnu/baseline_symbols.txt: New file.
956 2004-10-05  Christopher Jefferson  <caj@cs.york.ac.uk>
958         * include/bits/stl_algobase.h (iter_swap): delegate to swap via
959         __iter_swap when iterator's value_types are equal.
960         (struct __iter_swap): New.
962 2004-10-04  Benjamin Kosnik  <bkoz@redhat.com>
964         * configure.ac (libtool_VERSION): To 6:3:0.
965         * configure: Regnerate.
966         * testsuite/testsuite_abi.cc (check_version): Add 3.4.3.
968 2004-10-04  Roger Sayle  <roger@eyesopen.com>
969             Eric Botcazou  <ebotcazou@libertysurf.fr>
971         PR libstdc++/17505
972         * config/linker-map.gnu: Synchronize the current list of stub
973         functions from libmath.
975 2004-10-03  Roger Sayle  <roger@eyesopen.com>
977         * config/locale/generic/c_locale.cc (__convert_to_v): Use
978         _GLIBCXX_HAVE_STRTOF instead _GLIBCXX_USE_C99 to check for strtof.
979         Likewise, use _GLIBCXX_HAVE_STRTOLD instead of _GLIBCXX_USE_C99
980         to check for presence of strtold.
982 2004-10-03  Paolo Carlini  <pcarlini@suse.de>
984         * include/bits/stl_list.h: Trivial formatting fixes.
985         * include/bits/stl_tree.h: Likewise.
987 2004-10-03  Paolo Carlini  <pcarlini@suse.de>
989         * include/bits/sstream.tcc (seekpos): In case of success, just
990         return __sp.
992 2004-10-01  Paolo Carlini  <pcarlini@suse.de>
994         * include/bits/sstream.tcc (pbackfail): Implement correctly
995         27.7.1.3/2, bullet 2: if mode & ios_base::out is false do not
996         write in the buffer.
997         * testsuite/27_io/basic_stringbuf/pbackfail/char/1.cc: New.
998         * testsuite/27_io/basic_stringbuf/pbackfail/char/2.cc: Likewise.
999         * testsuite/27_io/basic_stringbuf/pbackfail/wchar_t/1.cc: Likewise.
1000         * testsuite/27_io/basic_stringbuf/pbackfail/wchar_t/2.cc: Likewise.
1001         * testsuite/27_io/basic_istream/putback/char/1.cc: Tweak consistently.
1003 2004-10-01  Paolo Carlini  <pcarlini@suse.de>
1005         * include/bits/sstream.tcc (seekpos): Minor rearrangement of two
1006         conditionals consistently with seekoff.
1007         * include/std/std_sstream.h (setbuf): Avoid a string temporary.
1008         (_M_sync): Simplify a bit, clean-up comment.
1010 2004-09-30  Paolo Carlini  <pcarlini@suse.de>
1012         PR libstdc++/10975 (DR 453)
1013         * include/bits/sstream.tcc (seekoff): Don't fail if __beg == 0
1014         and __off == 0.
1015         * docs/html/ext/howto.html: Add an entry for DR 453.
1016         * testsuite/27_io/basic_stringbuf/seekoff/char/10975.cc: New.
1017         * testsuite/27_io/basic_stringbuf/seekoff/wchar_t/10975.cc: Likewise.
1018         * testsuite/27_io/basic_istream/tellg/char/1.cc: Tweak consistently.
1019         * testsuite/27_io/basic_ostream/tellp/char/1.cc: Likewise.
1020         * testsuite/27_io/basic_ostream/tellp/char/2.cc: Likewise.
1021         * testsuite/27_io/basic_istream/seekg/char/2346-fstream.cc: Fix and
1022         move to...
1023         * testsuite/27_io/basic_istream/seekp/char/2346-fstream.cc: ... here.
1024         * testsuite/27_io/basic_istream/seekg/char/2346-sstream.cc: Fix and
1025         move to...
1026         * testsuite/27_io/basic_istream/seekp/char/2346-sstream.cc: ... here.
1028 2004-09-29  Paolo Carlini  <pcarlini@suse.de>
1030         * include/std/std_sstream.h (basic_stringbuf(ios_base::openmode)):
1031         Don't use _M_stringbuf_init, keep the pointers null, per 27.7.1.1.
1032         (str()): Slightly tweak, protect from pptr() == 0.
1033         (_M_update_egptr()): Likewise.
1034         * include/bits/sstream.tcc (ssekoff, seekpos): In order to check
1035         for an empty buffer use __beg instead of _M_string.capacity().
1036         * testsuite/27_io/basic_stringbuf/cons/char/1.cc: New.
1037         * testsuite/27_io/basic_stringbuf/cons/wchar_t/1.cc: Likewise.
1039         * testsuite/27_io/basic_filebuf/cons/char/1.cc: New.
1040         * testsuite/27_io/basic_filebuf/cons/wchar_t/1.cc: Likewise.
1041         * testsuite/27_io/basic_streambuf/cons/char/1.cc: Update.
1042         * testsuite/27_io/basic_streambuf/cons/wchar_t/1.cc: Likewise.
1044 2004-09-29  Paolo Carlini  <pcarlini@suse.de>
1045             Benjamin Kosnik  <bkoz@redhat.com>
1046         
1047         * testsuite/testsuite_io.h (class constraint_buf): New, extended
1048         and templatized version of constraint_filebuf; add typedefs for
1049         streambuf/stringbuf/filebuf and wchar_t counterparts.
1051 2004-09-28  Paolo Carlini  <pcarlini@suse.de>
1053         PR libstdc++/16612
1054         * include/bits/basic_string.h (_M_dispose, _M_refcopy,
1055         basic_string()): When _GLIBCXX_FULLY_DYNAMIC_STRING is defined,
1056         don't deal with _S_empty_rep.
1057         * include/bits/basic_string.tcc (_S_construct, _M_destroy,
1058         _M_leak_hard, _M_mutate): Likewise.
1059         * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): New.
1060         * acconfig.h: Add corresponding undef.  
1061         * configure.ac: Use GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING.
1062         * docs/html/configopts.html: Document --enable-fully-dynamic-string.
1063         * configure: Regenerate.
1064         * config.h.in: Likewise.
1066 2004-09-28  Benjamin Kosnik  <bkoz@redhat.com>
1067             Paolo Carlini  <pcarlini@suse.de>
1069         * testsuite/21_strings/basic_string/operations/char/1.cc: New.
1070         * testsuite/21_strings/basic_string/operations/wchar_t/1.cc: New.
1071         * testsuite/21_strings/basic_string/element_access/char/empty.cc: New.
1072         * testsuite/21_strings/basic_string/element_access/wchar_t/empty.cc: 
1073         New.
1075 2004-09-28  Paolo Carlini  <pcarlini@suse.de>
1077         * README: Remove obsolete entry about include/c_shadow.
1079 2004-09-24  H.J. Lu  <hongjiu.lu@intel.com>
1081         PR libstdc++/17469
1082         * testsuite/lib/libstdc++.exp: Don't use global ld_library_path.
1084 2004-09-24  Paolo Carlini  <pcarlini@suse.de>
1086         * src/localename.cc (locale::locale(const char*)): Minor tweaks:
1087         rename a variable, move an assignment.
1088         (locale::_Impl::_Impl(const char*, size_t)): Likewise, minor tweak.
1090 2004-09-24  Paul Brook  <paul@codesourcery.com>
1092         * testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc: XFAIL more arm
1093         simulator targets.
1094         * testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc: Ditto.
1095         * testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc: Ditto.
1096         * testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc: Ditto.
1097         * testsuite/27_io/basic_istream/readsome/char/6746-2.cc: Ditto.
1098         * testsuite/ext/stdio_filebuf/char/10063-2.cc: Ditto.
1099         * testsuite/ext/stdio_filebuf/char/10063-3.cc: Ditto.
1101 2004-09-23  Zack Weinberg  <zack@codesourcery.com>
1103         * testsuite/20_util/memory/auto_ptr/assign_neg.cc
1104         * testsuite/23_containers/map/operators/1_neg.cc
1105         * testsuite/23_containers/set/operators/1_neg.cc:
1106         Update locations and/or regexps of dg-error markers.
1108 2004-09-23  P.J. Darcy  <darcypj@us.ibm.com>
1110         * include/Makefile.am (thread_host_headers): Add gthr-tpf.h.
1111         Add rule to build ${host_builddir}/gthr-tpf.h.
1112         * include/Makefile.in: Regenerate.
1114 2004-09-23  Paolo Carlini  <pcarlini@suse.de>
1115             Magnus Fromreide  <magfr@lysator.liu.se>
1117         * include/bits/boost_concept_check.h (struct _SequenceConcept):
1118         Remove wrong requirement, i.e., not present in Table 67.
1120 2004-09-21  Paolo Carlini  <pcarlini@suse.de>
1122         PR libstdc++/12882 (cont)
1123         * acinclude.m4 (GLIBCXX_CHECK_LFS): Check for fstat64 too.
1124         * configure: Regenerate.
1125         * config/io/basic_file_stdio.cc (__basic_file<>::showmanyc): When
1126         _GLIBCXX_USE_LFS use fstat64 and lseek64, thus providing a non
1127         trivial showmanyc for large files too.
1129 2004-09-17  Jonathan Wakely  <redi@gcc.gnu.org>
1131         * include/bits/stl_algo.h (remove): Remove too restrictive
1132         concept-check.
1134 2004-09-17  Paolo Carlini  <pcarlini@suse.de>
1136         * include/bits/fstream.tcc (xsgetn): Slightly tweak conditional,
1137         as per Nathan's original suggestion.
1139 2004-09-17  Paolo Carlini  <pcarlini@suse.de>
1141         * testsuite/ext/mt_allocator/tune-1.cc: Use VERIFY, clean
1142         up a bit.
1143         * testsuite/ext/mt_allocator/tune-2.cc: Likewise.
1144         * testsuite/ext/mt_allocator/tune-3.cc: Likewise.
1145         * testsuite/ext/mt_allocator/tune-4.cc: Likewise.
1147 2004-09-17  Paolo Carlini  <pcarlini@suse.de>
1148             Andrea Arcangeli  <andrea@suse.de>
1150         * config/io/basic_file_stdio.cc (__basic_file<>::close)): Don't
1151         call unnecessarily sync, that is fflush: the library, since 3.4.0
1152         does not use buffered fread/fwrite.
1153         * include/bits/fstream.tcc (basic_filebuf<>::overflow): Likewise.
1155 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
1157         * config/cpu/arm/cxxabi_tweaks.h (__cxa_cdtor_return_type):
1158         Define.
1159         * config/cpu/generic/cxxabi_tweaks.h (__cxa_cdtor_return_type):
1160         Define.
1161         * libsupc++/cxxabi.h (__cxa_cdtor_return_type): New type.
1162         (__cxa_vec_new): Use it.
1163         (__cxa_vec_new2): Likewise.
1164         (__cxa_vec_new3): Likewise.
1165         (__cxa_vec_cdtor): Likewise.
1166         (__cxa_vec_cctor): Likeiwse.
1167         (__cxa_vec_dtor): Likewise.
1168         (__cxa_vec_cleanup): Likewise.
1169         (__cxa_vec_delete2): Likewise.
1170         (__cxa_vec_delete3): Likewise.
1171         * libsupc++/vec.cc (__cxa_vec_new): Likewise.
1172         (__cxa_vec_new2): Likewise.
1173         (__cxa_vec_new3): Likewise.
1174         (__cxa_vec_cdtor): Likewise.
1175         (__cxa_vec_cctor): Likeiwse.
1176         (__cxa_vec_dtor): Likewise.
1177         (__cxa_vec_cleanup): Likewise.
1178         (__cxa_vec_delete2): Likewise.
1179         (__cxa_vec_delete3): Likewise.
1180         (__aeabi_vec_ctor_nocookie_nodtor): New function.
1181         (__aeabi_vec_ctor_cookie_nodtor): Likewise.
1182         (__aeabi_vec_cctor_nocookie_nodtor): Likewise.
1183         (__aeabi_vec_new_cookie_noctor): Likewise.
1184         (__aeabi_vec_new_nocookie): Likewise.
1185         (__aeabi_vec_new_cookie_nodtor): Likewise.
1186         (__aeabi_vec_new_cookie): Likewise.
1187         (__aeabi_vec_dtor): Likewise.
1188         (__aeabi_vec_dtor_cookie): Likewise.
1189         (__aeabi_vec_delete): Likewise.
1190         (__aeabi_vec_delete3): Likewise.
1191         (__aeabi_vec_delete3_nodtor): Likewise.
1192         (__aeabi_atexit): Likewise.
1194 2004-09-14  Nathan Myers  <ncm@cantrip.org>
1196         * include/bits/fstream.tcc (xsgetn): Slightly tweak the recent fix
1197         for 11722: copy can replace move; the common case is __avail == 0.
1199 2004-09-14  Paolo Carlini  <pcarlini@suse.de>
1201         * include/bits/cpp_type_traits.h: Rename __is_trivially_copyable
1202         to __is_scalar, more clear and consistent with "tr1" naming.
1203         * include/bits/stl_algobase.h: Update consistently throughout.
1205 2004-09-13  Paolo Carlini  <pcarlini@suse.de>
1207         PR libstdc++/11722
1208         * include/std/std_fstream.h (xsgetn): Declare only.
1209         * include/bits/fstream.tcc (xsgetn): Define, optimize for the
1210         always_noconv() case: when __n > __buflen, copy the available
1211         buffer and issue a direct read.
1212         * testsuite/performance/27_io/filebuf_sgetn_unbuf.cc: New.
1214         * include/bits/fstream.tcc (xsputn): Minor tweak, reorder a
1215         conditional.
1217 2004-09-13  Hans-Peter Nilsson  <hp@bitrange.com>
1219         * testsuite/lib/libstdc++.exp: Use gcc wrapper.exp and call
1220         libstdc++_maybe_build_wrapper instead of using local code.
1222 2004-09-08  Benjamin Kosnik  <bkoz@redhat.com>
1224         * config/linker-map.gnu (GLIBCXX_3.4.3): New, adjust symbol exports.
1226 2004-09-03  Jan Beulich  <jbeulich@novell.com>
1228         * crossconfig.m4: Add NetWare as a target.
1229         * configure: Regenerate.
1231 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
1233         * libsupc++/typeinfo: Honor __GXX_MERGED_TYPEINFO_NAMES if already
1234         defined.
1236 2004-09-02  Benjamin Kosnik  <bkoz@redhat.com>
1237             Simon Richter  <Simon.Richter@hogyros.de>
1239         PR libstdc++/16715
1240         * include/bits/istream.tcc: Add extern template for iostream
1241         char and wchar_t instantiations.
1243 2004-09-02  Benjamin Kosnik  <bkoz@redhat.com>
1244             Leland Wang  <llwang@infor.org>
1246         PR libstdc++/17259
1247         * include/ext/ropeimpl.h (rope::_S_compare): Use
1248         _Rope_constants::_S_leaf.
1250 2004-09-02  Benjamin Kosnik  <bkoz@redhat.com>
1252         PR libstdc++/16848
1253         * include/Makefile.am (ext_headers): Remove demangle.h.
1254         * include/Makefile.in: Regenerate.
1255         * include/ext/demangle.h: Remove.
1257 2004-09-01  Benjamin Kosnik  <bkoz@redhat.com>
1259         PR libstdc++/16614
1260         * include/ext/mt_allocator.h (__mt_base): Not type dependent,
1261         split into..
1262         (__pool): New, specialize.
1263         (__common_pool): New, static bits here.
1264         (__per_type_pool): New, and here.
1265         (__mt_alloc_base): New.
1266         (__mt_alloc): Add template parameter, inherit from it.
1267         * src/allocator.cc: Split this...
1268         * src/allocator-inst.cc: And this...
1269         * src/pool_allocator.cc: ...into this.
1270         * src/mt_allocator.cc: ... and this. Add definitions for
1271         __mt_base.
1272         * src/Makefile.am (sources): Split allocator.cc to
1273         pool_allocator.cc and mt_allocator.cc.
1274         * src/Makefile.in: Regenerate.
1275         * config/linker-map.gnu: Add symbols.
1276         * docs/html/ext/mt_allocator.html: Document new design.
1277         * testsuite/ext/mt_allocator/tune-1.cc: New.
1278         * testsuite/ext/mt_allocator/tune-2.cc: New.
1279         * testsuite/ext/mt_allocator/tune-3.cc: New.
1280         * testsuite/ext/mt_allocator/tune-4.cc: New.
1282         * testsuite/testsuite_allocator.h (__gnu_test::check_new): New.
1283         * testsuite/ext/allocators.cc: Use check_new, split into...
1284         * testsuite/ext/mt_allocator/check_new.cc: this.
1285         * testsuite/ext/pool_allocator/check_new.cc: this.
1286         * testsuite/ext/malloc_allocator/check_new.cc: this.
1287         * testsuite/ext/debug_allocator/check_new.cc: this.
1288         * testsuite/ext/mt_allocator/instantiate.cc: this.
1289         * testsuite/ext/pool_allocator/instantiate.cc: this.
1290         * testsuite/ext/malloc_allocator/instantiate.cc: this.
1291         * testsuite/ext/debug_allocator/instantiate.cc: this.
1293 2004-08-30  Phil Edwards  <phil@codesourcery.com>
1295         * docs/html/install.html:  Update locales list (from Paolo).
1296         Remove other redundant information and point to the GCC install
1297         documentation.
1299 2004-08-30  Benjamin Kosnik  <bkoz@redhat.com>
1301         * include/ext/pool_allocator.h: Rename __pool_base to
1302         __pool_alloc_base.
1303         * src/allocator.cc: Same.
1304         * config/linker-map.gnu: Same.
1306 2004-08-30  Paolo Carlini  <pcarlini@suse.de>
1307             Kenneth C. Schalk  <ken@xorian.net>
1309         PR libstdc++/17215
1310         * config/io/basic_file_stdio.cc (__basic_file<char>::close()):
1311         Check the return value of fclose/sync, loop on EINTR.
1312         (__basic_file<char>::sys_open): Likewise, for sync.
1314 2004-08-29  Paolo Carlini  <pcarlini@suse.de>
1316         * include/bits/locale_facets.tcc (time_get<>::_M_extract_via_format,
1317         case 'S'): Allow for at least one leap-second (as per C99, 7.23.1
1318         and 7.23.3.5), two if !_GLIBCXX_USE_C99.
1319         * testsuite/22_locale/time_get/get_time/char/4.cc: New.
1320         * testsuite/22_locale/time_get/get_time/wchar_t/4.cc: Likewise.
1322 2004-08-27  Jason Merrill  <jason@redhat.com>
1324         PR c++/13684
1325         * libsupc++/guard.cc (static_mutex): Internal class implementing a
1326         recursive mutex which controls initialization of local statics.
1327         (__gnu_cxx::recursive_init): New exception class.
1328         (__cxa_guard_acquire): Deal with locking and recursion detection.
1329         (acquire_1, __cxa_guard_abort, __cxa_guard_release): Likewise.
1331 2004-08-27  Matthias Klose  <doko@debian.org>
1333         * configure.host: For mips*-*-linux* update cpu_include_dir
1334         after atomicity_dir is set.
1336 2004-08-27  Matthias Klose  <doko@debian.org>
1338         * config/abi/arm-linux-gnu/baseline_symbols.txt: New.
1339         * config/abi/mips-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
1340         * configure.host: Set abi_baseline_pair for arm*-*-linux* and
1341         mips*-*-linux*.
1343 2004-08-27  Paolo Carlini  <pcarlini@suse.de>
1345         * testsuite/27_io/manipulators/adjustfield/wchar_t/1.cc: New.
1346         * testsuite/27_io/manipulators/adjustfield/wchar_t/2.cc: Likewise.
1347         * testsuite/27_io/manipulators/basefield/wchar_t/1.cc: Likewise.
1348         * testsuite/27_io/manipulators/standard/wchar_t/1.cc: Likewise.
1349         * testsuite/27_io/manipulators/standard/wchar_t/2.cc: Likewise.
1351         * testsuite/27_io/manipulators/adjustfield/char/1.cc: Minor
1352         formatting fixes.
1353         * testsuite/27_io/manipulators/adjustfield/char/2.cc: Likewise.
1354         * testsuite/27_io/manipulators/basefield/char/1.cc: Likewise.
1355         * testsuite/27_io/manipulators/standard/char/1.cc: Likewise.
1356         * testsuite/27_io/manipulators/standard/char/2.cc: Likewise.
1358 2004-08-25  Paolo Carlini  <pcarlini@suse.de>
1360         PR libstdc++/17038 (partial)
1361         * include/bits/locale_facets.tcc (time_put<>::do_put): Increase
1362         __maxlen to 128.
1363         * include/bits/locale_facets.h (class __timepunct): Add FIXME
1364         comment about _M_put.
1365         * config/locale/generic/time_members.cc (_M_put): Always null
1366         terminate __s.
1367         * config/locale/gnu/time_members.cc (_M_put): Likewise.
1368         * testsuite/22_locale/time_put/put/char/17038.cc: New.
1369         * testsuite/22_locale/time_put/put/wchar_t/17038.cc: New.
1371 2004-08-24  Paolo Carlini  <pcarlini@suse.de>
1373         * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc: New.
1374         * testsuite/27_io/basic_istringstream/str/wchar_t/1.cc: Likewise.
1375         * testsuite/27_io/basic_ostringstream/cons/wchar_t/3.cc: Likewise.
1376         * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc: Likewise.
1377         * testsuite/27_io/basic_ostringstream/str/wchar_t/1.cc: Likewise.
1378         * testsuite/27_io/basic_ostringstream/str/wchar_t/2.cc: Likewise.
1380         * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Trim excess
1381         newlines.
1382         * testsuite/27_io/basic_istringstream/str/char/1.cc: Likewise.
1384 2004-08-22  Matthias Klose  <doko@debian.org>
1386         * config/abi/m68k-linux-gnu/baseline_symbols.txt: New.
1387         * config/abi/sparc-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
1389 2004-08-23  Paolo Carlini  <pcarlini@suse.de>
1391         * configure.ac: Specify version 1.9.1 in AM_INIT_AUTOMAKE.
1392         * aclocal.m4: Regenerate with automake-1.9.1.
1393         * configure: Regenerate.
1394         * Makefile.in: Likewise.
1395         * include/Makefile.in: Likewise.
1396         * libmath/Makefile.in: Likewise.
1397         * libsupc++/Makefile.in: Likewise.
1398         * po/Makefile.in: Likewise.
1399         * src/Makefile.in: Likewise.
1400         * testsuite/Makefile.in: Likewise.
1402 2004-08-22  Paolo Carlini  <pcarlini@suse.de>
1404         * include/bits/locale_facets.tcc (num_put<>::do_put(bool)): Cast
1405         to a signed type, long according to the resolution of DR 359.
1406         * testsuite/22_locale/num_put/put/char/9.cc: New.
1407         * testsuite/22_locale/num_put/put/wchar_t/9.cc: New.
1409         * include/bits/locale_facets.tcc (num_put<>::do_put(const void*)):
1410         Simplify a bit: no need to clear showpos.
1412 2004-08-21  Paolo Carlini  <pcarlini@suse.de>
1414         * include/bits/char_traits.h (struct _Char_traits_match): Remove,
1415         unused.
1417 2004-08-21  Paolo Carlini  <pcarlini@suse.de>
1419         * testsuite/22_locale/money_put/put/wchar_t/1.cc: Use proper
1420         wchar_t type for the fill argument; minor formatting tweaks.
1421         * testsuite/22_locale/money_put/put/wchar_t/12971.cc: Likewise.
1422         * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise.
1423         * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise.
1424         * testsuite/22_locale/money_put/put/wchar_t/4.cc: Likewise.
1425         * testsuite/22_locale/money_put/put/wchar_t/5.cc: Likewise.
1426         * testsuite/22_locale/money_put/put/wchar_t/6.cc: Likewise.
1428 2004-08-21  Paolo Carlini  <pcarlini@suse.de>
1430         * include/bits/basic_ios.tcc (basic_ios<>::copyfmt): Don't deal
1431         with _M_word != _M_local_word two times, redundantly.
1433 2004-08-20  Jason Merrill  <jason@redhat.com>
1435         * include/Makefile.am (${host_builddir}/gthr.h): Don't add
1436         _GLIBCXX_ to #pragma lines.
1437         * include/Makefile.in: Update.
1439 2004-08-20  Paolo Carlini  <pcarlini@suse.de>
1441         PR libstdc++/7219 (continued)
1442         * include/bits/ios_base.h (class ios_base): Expose Annex D.6
1443         typedefs by default.
1444         * testsuite/27_io/types/1.cc: Remove #if _GLIBCXX_DEPRECATED.
1445         * testsuite/27_io/ios_base/cons/assign_neg.cc: Tweak dg-error
1446         line number.
1447         * testsuite/27_io/ios_base/cons/copy_neg.cc: Likewise.
1449 2004-08-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1451         * cpu/hppa/atomicity.h (__exchange_and_add, __atomic_add): Add memory
1452         barrier to locking asm.
1454 2004-08-20  Paolo Carlini  <pcarlini@suse.de>
1456         * include/c_std/cmath.tcc (__cmath_power): Revert previous commit:
1457         actually the warning is a front-end bug (c++/17120).
1459 2004-08-20  Matthias Klose  <doko@debian.org>
1461         * config/abi/s390-linux-gnu/baseline_symbols.txt: New.
1463 2004-08-20  Paolo Carlini  <pcarlini@suse.de>
1465         * include/c_std/cmath.tcc (__cmath_power): Suppress assignment
1466         used as truth value warning.
1468 2004-08-20  Paolo Carlini  <pcarlini@suse.de>
1470         * config/abi/x86_64-linux-gnu/32/baseline_symbols.txt: Add 32 bit
1471         baseline.
1473 2004-08-20  Paolo Carlini  <pcarlini@suse.de>
1475         * config/abi/x86_64-linux-gnu/baseline_symbols.txt: Fix it.
1477 2004-08-19  Benjamin Kosnik  <bkoz@redhat.com>
1479         * testsuite/22_locale/time_put/put/char/3.cc (test03): Don't check
1480         timezone.
1481         * testsuite/22_locale/time_put/put/wchar_t/3.cc (test03): Same.
1483 2004-08-19  Paolo Carlini  <pcarlini@suse.de>
1485         * testsuite/performance/20_util/allocator/insert.cc: For std::map
1486         instantiate the allocator for a correct pair type.
1487         * testsuite/performance/20_util/allocator/insert_insert.cc: Likewise.
1488         * testsuite/performance/20_util/allocator/map_thread.cc: Likewise.
1489         * testsuite/performance/20_util/allocator/producer_consumer.cc:
1490         Likewise.
1492         * testsuite/performance/20_util/allocator/list_sort_search.cc: Very
1493         minor formatting fixes.
1494         * testsuite/performance/20_util/allocator/map_mt_find.cc: Likewise.
1496 2004-08-19  Paolo Carlini  <pcarlini@suse.de>
1498         * testsuite/22_locale/time_put/put/char/1.cc: Add VERIFY on the
1499         results.
1500         * testsuite/22_locale/time_put/put/char/2.cc: Likewise.
1501         * testsuite/22_locale/time_put/put/char/3.cc: Likewise.
1502         * testsuite/22_locale/time_put/put/char/4.cc: Likewise.
1503         * testsuite/22_locale/time_put/put/wchar_t/1.cc: Likewise.
1504         * testsuite/22_locale/time_put/put/wchar_t/2.cc: Likewise.
1505         * testsuite/22_locale/time_put/put/wchar_t/3.cc: Likewise.
1506         * testsuite/22_locale/time_put/put/wchar_t/4.cc: Likewise.
1508 2004-08-19  Paolo Carlini  <pcarlini@suse.de>
1510         * config/abi/x86_64-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
1512 2004-08-18  Matthias Klose  <doko@debian.org>
1514         * config/abi/hppa-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
1515         * config/abi/i386-linux-gnu/baseline_symbols.txt: New.
1516         * config/abi/powerpc-linux-gnu/baseline_symbols.txt: New.
1518 2004-08-17  Paolo Carlini  <pcarlini@suse.de>
1520         * config/abi/alpha-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
1522 2004-08-17  Paolo Carlini  <pcarlini@suse.de>
1524         * config/abi/ia64-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
1526 2004-08-17  Benjamin Kosnik  <bkoz@redhat.com>
1528         * config/abi/i486-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
1530 2004-08-16  Paolo Carlini  <pcarlini@suse.de>
1532         * include/bits/indirect_array.h: Trivial formatting fixes.
1533         * include/bits/valarray_after.h: Likewise.
1534         * include/bits/valarray_array.h: Likewise.
1535         * src/valarray-inst.cc: Likewise.
1537 2004-08-15  Paolo Carlini  <pcarlini@suse.de>
1539         * testsuite/27_io/basic_stringstream/rdbuf/char/2832.cc: Remove junk.
1540         * testsuite/27_io/basic_stringstream/str/char/1.cc: Likewise.
1541         * testsuite/27_io/basic_stringstream/str/char/3.cc: Likewise.
1543         * testsuite/27_io/basic_stringstream/rdbuf/wchar_t/2832.cc: New.
1544         * testsuite/27_io/basic_stringstream/str/wchar_t/1.cc: Likewise.
1545         * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc: Likewise.
1546         * testsuite/27_io/basic_stringstream/str/wchar_t/3.cc: Likewise.
1547         * testsuite/27_io/basic_stringstream/str/wchar_t/4.cc: Likewise.
1549 2004-08-15  Paolo Carlini  <pcarlini@suse.de>
1551         * include/bits/deque.tcc: Trivial formatting fixes.
1553 2004-08-15  Paolo Carlini  <pcarlini@suse.de>
1555         * include/bits/deque.tcc: Trivial formatting fixes.
1557         * include/bits/locale_facets.tcc (num_get<>::do_get(&bool)):
1558         Remove unneded typedef.
1560         * include/bits/locale_facets.tcc: Very minor tweaks.
1562         * testsuite/22_locale/time_put/put/wchar_t/1.cc: Use proper
1563         type for the fill argument.
1564         * testsuite/22_locale/time_put/put/wchar_t/10.cc: Likewise.
1565         * testsuite/22_locale/time_put/put/wchar_t/2.cc: Likewise.
1566         * testsuite/22_locale/time_put/put/wchar_t/3.cc: Likewise.
1567         * testsuite/22_locale/time_put/put/wchar_t/4.cc: Likewise.
1568         * testsuite/22_locale/time_put/put/wchar_t/5.cc: Likewise.
1569         * testsuite/22_locale/time_put/put/wchar_t/6.cc: Likewise.
1570         * testsuite/22_locale/time_put/put/wchar_t/7.cc: Likewise.
1571         * testsuite/22_locale/time_put/put/wchar_t/8.cc: Likewise.
1573 2004-08-13  Paolo Carlini  <pcarlini@suse.de>
1575         * src/debug.cc (_Error_formatter::_M_print_string): Fix thinko,
1576         memmove is not needed, memcpy suffices.
1578 2004-08-13  Paolo Carlini  <pcarlini@suse.de>
1580         * include/std/std_fstream.h (class basic_ifstream,
1581         class basic_ofstream, class basic_fstream): Add const overloads
1582         of is_open, as per DR 365 [WP].
1583         * docs/html/ext/howto.html: Add an entry for DR 365.
1585 2004-08-12  Paolo Carlini  <pcarlini@suse.de>
1587         * configure.ac: Specify version 1.8.5 in AM_INIT_AUTOMAKE.
1589 2004-08-12  Paolo Carlini  <pcarlini@suse.de>
1591         PR libstdc++/16956
1592         * include/bits/sstream.tcc (basic_stringbuf<>::seekoff): Add __off
1593         to the returned value, reorganize a bit.
1594         * testsuite/27_io/basic_stringbuf/seekoff/char/16956.cc: New.
1595         * testsuite/27_io/basic_stringbuf/seekoff/wchar_t/16956.cc: New.
1597         * testsuite/27_io/basic_stringbuf/seekoff/char/1.cc: Remove junk.
1598         * testsuite/27_io/basic_stringbuf/seekoff/wchar_t/1.cc: Likewise.
1599         * testsuite/27_io/basic_stringbuf/seekpos/char/1.cc: Likewise.
1600         * testsuite/27_io/basic_stringbuf/seekpos/wchar_t/1.cc: Likewise.
1602 2004-08-12  Paul Brook  <paul@codesourcery.com>
1604         * config/cpu/arm/cxxabi_tweaks.h: Define __cxa_vec_ctor_return and
1605         _GLIBCXX_CXA_VEC_CTOR_RETURN.
1606         * config/cpu/generic/cxxabi_tweaks.h: Ditto.
1607         * libsupc++/cxxabi.h (__cxa_vec_ctor, __cxa_vec_cctor): Use
1608         __cxa_vec_ctor_return.
1609         * libsupc++/vec.cc (__cxa_vec_ctor, __cxa_vec_cctor): Ditto.
1610         Use _GLIBCXX_CXA_VEC_CTOR_RETURN.
1612 2004-08-12  Kelley Cook  <kcook@gcc.gnu.org>
1614         * Makefile.in, aclocal.m4, configure, include/Makefile.in,
1615         libmath/Makefile.in, libsupc++/Makefile.in, po/Makefile.in,
1616         src/Makefile.in, testsuite/Makefile.in: Regenerate
1618 2004-08-12  Jan Beulich  <jbeulich@novell.com>
1620         * config/locale/generic/ctype_members.cc
1621         (ctype<wchar_t>::_M_convert_to_wmask): Default case must not use 0 as
1622         initializer for return value, as that is invalid for enumerated types.
1623         * config/locale/gnu/ctype_members.cc
1624         (ctype<wchar_t>::_M_convert_to_wmask): Likewise.
1626 2004-08-11  Paolo Carlini  <pcarlini@suse.de>
1628         * testsuite/27_io/basic_stringbuf/sbumpc/wchar_t/1.cc: Fix typo.
1630 2004-08-11  Paolo Carlini  <pcarlini@suse.de>
1632         * testsuite/27_io/basic_stringbuf/imbue/char/1.cc: Declare test
1633         variable.
1634         * testsuite/27_io/basic_stringbuf/imbue/wchar_t/1.cc: Ditto.
1635         * testsuite/27_io/basic_stringbuf/in_avail/char/1.cc: Remove junk.
1636         * testsuite/27_io/basic_stringbuf/in_avail/wchar_t/1.cc: Ditto.
1637         * testsuite/27_io/basic_stringbuf/sbumpc/char/1.cc: Ditto.
1638         * testsuite/27_io/basic_stringbuf/sbumpc/wchar_t/1.cc: Ditto.
1639         * testsuite/27_io/basic_stringbuf/setbuf/char/1.cc: Ditto.
1640         * testsuite/27_io/basic_stringbuf/setbuf/wchar_t/1.cc: Ditto.
1641         * testsuite/27_io/basic_stringbuf/sgetc/char/1.cc: Ditto.
1642         * testsuite/27_io/basic_stringbuf/sgetc/wchar_t/1.cc: Ditto.
1643         * testsuite/27_io/basic_stringbuf/sgetn/char/1.cc: Ditto.
1644         * testsuite/27_io/basic_stringbuf/sgetn/wchar_t/1.cc: Ditto.
1645         * testsuite/27_io/basic_stringbuf/snextc/char/1.cc: Ditto.
1646         * testsuite/27_io/basic_stringbuf/snextc/wchar_t/1.cc: Ditto.
1647         * testsuite/27_io/basic_stringbuf/sputbackc/char/1.cc: Ditto.
1648         * testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/1.cc: Ditto.
1649         * testsuite/27_io/basic_stringbuf/sputc/char/1.cc: Ditto.
1650         * testsuite/27_io/basic_stringbuf/sputc/wchar_t/1.cc: Ditto.
1651         * testsuite/27_io/basic_stringbuf/sputn/char/1.cc: Ditto.
1652         * testsuite/27_io/basic_stringbuf/sputn/wchar_t/1.cc: Ditto.
1653         * testsuite/27_io/basic_stringbuf/sungetc/char/1.cc: Ditto.
1654         * testsuite/27_io/basic_stringbuf/sungetc/wchar_t/1.cc: Ditto.
1656 2004-08-11  Paolo Carlini  <pcarlini@suse.de>
1657             Petur Runolfsson  <peturr02@ru.is>
1659         PR libstdc++/16959
1660         * src/ios_init.cc (ios_base::sync_with_stdio): Make sure the
1661         standard streams are constructed.
1662         * testsuite/27_io/ios_base/sync_with_stdio/16959.cc: New.
1664 2004-08-09  Paolo Carlini  <pcarlini@suse.de>
1666         * include/bits/stl_bvector.h: Trivial formatting fixes.
1668 2004-08-09  Paolo Carlini  <pcarlini@suse.de>
1670         * src/ios.cc (ios_base::_M_grow_words): Uglify the names.
1672 2004-08-07  Jonathan Wakely  <redi@gcc.gnu.org>
1673             Paolo Carlini  <pcarlini@suse.de>
1675         * src/debug.cc (_Error_formatter::_M_print_string): In order
1676         to print individual words from __string, _M_format_word can't
1677         be called since may be just sprintf, thus ignoring completely
1678         __n: instead, use memmove and append '\0' by hand.
1680 2004-08-07  Paolo Carlini  <pcarlini@suse.de>
1682         * config/locale/generic/c_locale.h (__convert_from_v): Don't
1683         use a default for __prec, assume __prec >= 0 and simplify.
1684         * config/locale/gnu/c_locale.h (__convert_from_v): Likewise.
1685         * include/bits/locale_facets.tcc (money_put<>::do_put(long double)):
1686         Pass format "%.*Lf" + precision == 0, equivalent to "%.0Lf".
1688 2004-08-04  Phil Edwards  <phil@codesourcery.com>
1690         * docs/html/configopts.html:  Emphasize that options change.
1691         * docs/html/17_intro/configury.html:  Update links.
1693 2004-08-03  Paolo Carlini  <pcarlini@suse.de>
1695         * include/bits/list.tcc: Trivial formatting fixes.
1697 2004-08-03  Mark Mitchell  <mark@codesourcery.com>
1699         * libsupc++/new_op.cc: Update comments.
1700         * libsupc++/del_op.cc: Likewise.
1702 2004-08-02  Mark Mitchell  <mark@codesourcery.com>
1704         * libsupc++/cxxabi.h: Make all declarations have default
1705         visibility.
1706         * libsupc++/exception: Likewise.
1707         * libsupc++/new: Likewise.
1708         * libsupc++/typeinfo: Likewise.
1709         * libsupc++/unwind-cxx.h: Likewise.
1710         * libsupc++/eh_alloc.cc (__cxa_allocate_exception): Put it into
1711         the __cxxabiv1 namespace.
1712         (__cxa_free_exception): Likewise.
1713         * libsupc++/eh_aux_runtime.cc (__cxa_bad_cast): Likewise.
1714         (__cxa_bad_typeid): Likewise.
1715         * libsupc++/eh_catch.cc (__cxa_begin_catch): Likewise.
1716         (__cxa_end_catch): Likewise.
1717         * libsupc++/eh_globals.cc (__cxa_get_globals_fast): Likewise.
1718         (__cxa_get_globals): Likewise.
1719         * libsupc++/eh_throw.cc (__cxa_throw): Likewise.
1720         (__cxa_rethrow): Likewise.
1721         * libsupc++/pure.cc (__cxa_pure_virtual): Likewise.
1722         * libsupc++/eh_type.cc: Include <cxxabi.h>.
1724         * Makefile.am (hosted_source): Add libmath and testsuite.
1725         (SUBDIRS): Remove them.
1726         * acinclude.m4: (GLIBCXX_ENABLED_HOSTED): Default to freestanding
1727         on arm*-*-symbianelf*.
1728         * crossconfig.m4: Add arm*-*-symbianelf* support.
1729         * include/c_std/std/std_cstdlib.h (stdlib.h): Do not include it
1730         when freestanding.  Do not bring names into std:: namespace with
1731         "using" when freestanding.  Declare required functions and macros
1732         when freestanding.
1733         * libsupc++/Makefile.am (c_sources): Do not include cp-demangle.c
1734         when freestanding.
1735         * libsupc++/del_op.cc: Declare "free" only when freestanding.
1736         * libsupc++/eh_alloc.cc (cstring): Include it only when hosted.
1737         (malloc): Declare when freestanding.
1738         (free): Likewise.
1739         (memset): Likewise.
1740         (__cxa_allocate_exception): Call malloc, not std::malloc.  Likewise
1741         for memset.
1742         (__cxa_free_exception): Likewise for free.
1743         * libsupc++/new_op.cc: Declare "malloc" when freestanding.
1744         * libsupc++/pure.cc (writestr): Define to nothing when
1745         freestanding.
1746         * libsupc++/vterminate.cc: Do not define anything when
1747         freestanding.
1748         * Makefile.in: Regenerated.
1749         * aclocal.m4: Likewise.
1750         * configure: Likewise.
1751         * include/Makefile.in: Likewise.
1752         * libmath/Makefile.in: Likewise.
1753         * libsupc++/Makefile.in: Likewise.
1754         * po/Makefile.in: Likewise.
1755         * src/Makefile.in: Likewise.
1756         * testsuite/Makefile.in: Likewise.
1758 2004-08-01  Matt Austern  <austern@apple.com>
1760         PR libstdc++/16844
1761         * include/bits/stl_list.h (_M_create_node): Remove unused
1762         zero-argument version.
1763         * include/ext/slist (_M_create_node): Pass two arguments to
1764         allocator's construct() member function.
1765         * testsuite/23_containers/deque/explicit_instantiation.cc: New.
1766         * testsuite/23_containers/list/explicit_instantiation.cc: New.
1767         * testsuite/23_containers/vector/explicit_instantiation.cc: New.
1768         * testsuite/23_containers/map/explicit_instantiation.cc: New.
1769         * testsuite/23_containers/set/explicit_instantiation.cc: New.
1770         * testsuite/23_containers/multimap/explicit_instantiation.cc: New.
1771         * testsuite/23_containers/multiset/explicit_instantiation.cc: New.
1772         * testsuite/ext/hash_set_explicit_instantiation.cc: New.
1773         * testsuite/ext/slist_explicit_instantiation.cc: New.
1775 2004-07-30  Paolo Carlini  <pcarlini@suse.de>
1777         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
1778         num_get<>::_M_extract_int): In the main parsing loop delay the
1779         life of __q to the actual use point.
1781 2004-07-29  Paolo Carlini  <pcarlini@suse.de>
1783         PR libstdc++/14220
1784         * include/bits/locale_facets.tcc (num_put<>::_M_insert_float):
1785         Don't clip the precision passed down to __convert_from_v:
1786         22.2.2.2.2 nowhere says so.
1787         * testsuite/22_locale/num_put/put/char/14220.cc: New.
1788         * testsuite/22_locale/num_put/put/wchar_t/14220.c: Likewise.
1790 2004-07-29  Paolo Carlini  <pcarlini@suse.de>
1792         * docs/html/ext/lwg-active.html, lwg-defects.html: Import Revision 31.
1794 2004-07-29  Paolo Carlini  <pcarlini@suse.de>
1795             Petur Runolfsson  <peturr02@ru.is>
1797         PR libstdc++/12658 (continued)
1798         * src/locale_init.cc (locale::locale, locale::global): Use
1799         a single locale_mutex instead of two separate mutexes.
1801 2004-07-29  Paolo Carlini  <pcarlini@suse.de>
1803         PR libstdc++/16813
1804         * include/debug/map.h (insert(_InputIterator, _InputIterator)):
1805         Fix typo.
1806         * testsuite/23_containers/map/insert/16813.cc: New.
1808 2004-07-29  Phil Edwards  <phil@codesourcery.com>
1810         * docs/html/faq/index.html:  Update version references.  Make
1811         clear that code from SGI has diverged greatly.  Remove references
1812         to library snapshots and what's-new sections.
1813         * docs/html/faq/index.txt:  Regenerate.
1815 2004-07-28  Matt Austern  <austern@apple.com>
1817         * include/bits/stl_construct.h (_Destroy): New three-argument
1818         overload that takes an allocator argument.  Another inline
1819         three-argument overload that takes std::allocator and dispatches
1820         to the two-argument version.
1821         * include/bits/stl_uninitialized.h (__uninitialized_fill_n_aux):
1822         Change return type to void to match uninitialized_fill_n.
1823         (__uninitialized_copy_a_): New function.  Like uninitialized_copy
1824         except that it takes an allocator and uses it for construct and
1825         destroy.  If the allocator is std::allocator, dispatches to
1826         uninitialized_copy.
1827         (__uninitialized_fill_a): Likewise.
1828         (__uninitialized_fill_n_a): Likewise.
1829         (__uninitialized_copy_copy): Give it an allocator argument.
1830         (__uninitialized_fill_copy): Likewise.
1831         (__uninitialized_copy_fill): Likewise.
1832         * include/bits/deque.tcc: Use new forms defined in stl_construct.h
1833         and stl_uninitialized.h.  Replace use of single-argument _Construct
1834         and _Destroy with use of allocator's construct and destroy methods.
1835         * include/bits/list.tcc: Likewise.
1836         * include/bits/stl_deque.h: Likewise.
1837         * include/bits/stl_list.h: Likewise.
1838         * include/bits/stl_tree.h: Likewise.
1839         * include/bits/stl_vector.h: Likewise.
1840         * include/bits/vector.tcc: Likewise.
1841         * include/ext/hashtable.h: Use rebind so that allocator_type
1842         has correct type for a container's allocator.  Replace use of
1843         single-argument _Construct and _Destroy with use of allocator's
1844         construct and destroy methods.
1845         * include/ext/memory (__uninitialized_copy_n_a): New function.
1846         Like uninitialized_copy_n except that it takes an extra parameter,
1847         an allocator, and uses it for construct and destroy operations.
1848         * include/ext/rope: Use new forms defined in stl_construct.h,
1849         stl_uninitialized.h, and ext/memory.  Replace use of single-argument
1850         _Construct and _Destroy with allocator construct and destroy methods.
1851         * include/ext/ropeimpl.h: Likewise.
1852         * include/ext/slist.h: Likewise.
1853         * testsuite/testsuite_allocator.h (check_construct_destroy): New.
1854         * testsuite/testsuite_allocator.cc (check_construct_destroy): New.
1855         * testsuite/23_containers/deque/check_construct_destroy.cc: New.
1856         * testsuite/23_containers/list/check_construct_destroy.cc: New.
1857         * testsuite/23_containers/set/check_construct_destroy.cc: New.
1858         * testsuite/23_containers/vector/check_construct_destroy.cc: New.
1859         * testsuite/ext/hash_check_construct_destroy.cc: New.
1860         * testsuite/ext/slist_check_construct_destroy.cc: New.
1862 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
1864         2003-10-01  Eric Christopher  <echristo@redhat.com>
1865         * config/cpu/sh/atomicity.h (__exchange_and_add): Remove 'm'
1866         constraint.
1867         2003-07-09  Alexandre Oliva  <aoliva@redhat.com>
1868         * config/cpu/sh/atomicity.h: New.  Use movli and movco on SH4a.
1870 2004-07-23  Benjamin Kosnik  <bkoz@redhat.com>
1872         PR libstdc++/16678
1873         * include/bits/locale_facets.tcc: Fix for -Werror.
1875 2004-07-23  Jonathan Wakely  <redi@gcc.gnu.org>
1877         * docs/html/debug.html: Say debug mode only available since 3.4.0.
1879 2004-07-21  Benjamin Kosnik  <bkoz@redhat.com>
1881         * docs/doxygen/mainpage.html: Clarify links.
1882         * docs/doxygen/stdheader.cc: Add files.
1883         * docs/doxygen/style.css: Remove bolds, add h2, h3 styles.
1884         * docs/doxygen/user.cfg.in: New options, wrap.
1886 2004-07-20  Danny Smith  <dannysmith@users.sourceforge.net>
1888         * include/c_std/std_cwchar.h (wcsstr): Correct signature.
1890 2004-07-19  Benjamin Kosnik  <bkoz@redhat.com>
1892         PR libstdc++/15488
1893         * testsuite/lib/libstdc++.exp (v3-copy-files): Revert.
1895 2004-07-17  Richard Sandiford  <rsandifo@redhat.com>
1897         PR bootstrap/16469
1898         * scripts/create_testsuite_files: Pass -print to find.
1900 2004-07-15  Paolo Carlini  <pcarlini@suse.de>
1902         * docs/html/ext/lwg-active.html, lwg-defects.html: Import Revision 30.
1903         * docs/html/ext/howto.html: Tweak entries for DRs 167/253/389/402.
1905 2004-07-15  Jakub Jelinek  <jakub@redhat.com>
1907         PR libstdc++/14697
1908         * acinclude.m4 (glibcxx_shared_libgcc): Correct
1909         glibcxx_shared_libgcc test for multilibs.
1910         * configure: Rebuilt.
1912 2004-07-14  Paolo Carlini  <pcarlini@suse.de>
1914         PR libstdc++/16505
1915         * include/bits/stl_uninitialized.h (uninitialized_fill_n): Fix
1916         the signature to return void, as per 20.4.4.3.
1917         * include/bits/stl_vector.h (vector::vector(size_type,
1918         const value_type&, const allocator_type&), vector::vector(size_type),
1919         vector::_M_initialize_dispatch): Adjust callers.
1920         * include/bits/vector.tcc (vector<>::_M_fill_assign,
1921         vector<>::_M_fill_insert): Likewise.
1922         * testsuite/20_util/memory/16505.cc: New.
1924 2004-07-14  Paolo Carlini  <pcarlini@suse.de>
1926         * testsuite/22_locale/locale/cons/12658_thread-1.cc,
1927         12658_thread-2.cc: Use __gnu_test::try_named_locale.
1929 2004-07-13  Benjamin Kosnik  <bkoz@redhat.com>
1931         * docs/html/ext/mt_allocator.html: Add docs for _Tune.
1932         * include/ext/mt_allocator.h (__mt_alloc::_S_get_options): Make public.
1933         (__mt_alloc::_S_set_options): Same.
1934         Add to comments.
1936 2004-07-13  Benjamin Kosnik  <bkoz@redhat.com>
1938         * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Add allocator defaults
1939         for linux.
1940         * configure: Regenerated.
1942 2004-07-13  Paolo Carlini  <pcarlini@suse.de>
1944         * testsuite/22_locale/locale/cons/12658_thread.cc: Move/rename
1945         to 12658_thread-1.cc and xfail.
1946         * testsuite/22_locale/locale/cons/12658_thread-2.c: New, much
1947         simpler version of 12658_thread-1.cc, still failing on 3_3 and
1948         not failing on 3_4/mainline - both on single processor and
1949         multiprocessor machines.
1951 2004-07-12  Benjamin Kosnik  <bkoz@redhat.com>
1953         * docs/html/abi.html: Remove non-public qualification.
1955         * include/bits/concurrence.h: Tweak comments.
1957 2004-07-11  Paolo Carlini  <pcarlini@suse.de>
1959         Add wchar_t counterparts of the basic_streambbuf<char> tests.
1960         * testsuite/27_io/basic_streambuf/cons/wchar_t/1.cc: New.
1961         * testsuite/27_io/basic_streambuf/imbue/wchar_t/1.cc, 9322.cc:
1962         Likewise.
1963         * testsuite/27_io/basic_streambuf/in_avail/wchar_t/9701-3.cc: Likewise.
1964         * testsuite/27_io/basic_streambuf/overflow/wchar_t/1.cc, 2.cc,
1965         3599.cc: Likewise.
1966         * testsuite/27_io/basic_streambuf/sgetc/wchar_t/1.cc: Likewise.
1967         * testsuite/27_io/basic_streambuf/sgetn/wchar_t/1.cc: Likewise.
1968         * testsuite/27_io/basic_streambuf/sputbackc/wchar_t/9538.cc: Likewise.
1969         * testsuite/27_io/basic_streambuf/sputc/wchar_t/1057.cc: Likewise.
1970         * testsuite/27_io/basic_streambuf/sputn/wchar_t/1.cc, 1057.cc:
1971         Likewise.
1972         * testsuite/27_io/basic_streambuf/sync/wchar_t/1057.cc: Likewise.
1974         * testsuite/27_io/basic_streambuf/imbue/char/1.cc, 9322.cc: Minor
1975         tweaks.
1976         * testsuite/27_io/basic_streambuf/overflow/char/2.cc, 3599.cc:
1977         Likewise.
1978         * testsuite/27_io/basic_streambuf/sputn/char/1057.cc: Likewise.
1979         * testsuite/27_io/basic_streambuf/sync/char/1057.cc: Likewise.
1981 2004-07-11  Phil Edwards  <phil@codesourcery.com>
1983         * acinclude.m4:  Cosmetic shell syntax fixes.
1984         * configure.ac:  Bring comment inline with reality.
1985         * configure.host:  Both of the above.  Move 'arm' case to right
1986         place in host_cpu switch.
1987         * aclocal.m4, configure:  Regenerate.
1989 2004-07-09  Paolo Carlini  <pcarlini@suse.de>
1991         Add wchar_t counterparts of the basic_stringbuf<char> tests.
1992         * testsuite/27_io/basic_stringbuf/imbue/wchar_t/1.cc, 9322.cc: New.
1993         * testsuite/27_io/basic_stringbuf/in_avail/wchar_t/1.cc: Likewise.
1994         * testsuite/27_io/basic_stringbuf/overflow/wchar_t/1.cc, 2.cc,
1995         3599.cc, 9988.cc: Likewise.
1996         * testsuite/27_io/basic_stringbuf/sbumpc/wchar_t/1.cc, 9825.cc:
1997         Likewise.
1998         * testsuite/27_io/basic_stringbuf/seekoff/wchar_t/1.cc, 2.cc:
1999         Likewise.
2000         * testsuite/27_io/basic_stringbuf/seekoff/wchar_t/1.cc, 2.cc, 3.cc:
2001         Likewise.
2002         * testsuite/27_io/basic_stringbuf/setbuf/wchar_t/1.cc, 2.cc, 3.cc:
2003         Likewise.
2004         * testsuite/27_io/basic_stringbuf/sgetc/wchar_t/1.cc: Likewise.
2005         * testsuite/27_io/basic_stringbuf/sgetn/wchar_t/1.cc: Likewise.
2006         * testsuite/27_io/basic_stringbuf/snextc/wchar_t/1.cc: Likewise.
2007         * testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/1.cc, 9425.cc:
2008         Likewise.
2009         * testsuite/27_io/basic_stringbuf/sputc/wchar_t/1.cc, 1057.cc,
2010         9404-1.cc: Likewise.
2011         * testsuite/27_io/basic_stringbuf/sputn/wchar_t/1.cc, 1057.cc,
2012         9404-2.cc: Likewise.
2013         * testsuite/27_io/basic_stringbuf/str/wchar_t/1.cc, 2.cc, 3.cc,
2014         3955.cc: Likewise.
2015         * testsuite/27_io/basic_stringbuf/sungetc/wchar_t/1.cc: Likewise.
2016         * testsuite/27_io/basic_stringbuf/sync/wchar_t/1057.cc: Likewise.
2018 2004-07-08  Paolo Carlini  <pcarlini@suse.de>
2020         * include/bits/gslice.h: Trivial formatting fixes.
2021         * include/bits/gslice_array.h: Likewise.
2022         * include/bits/indirect_array.h: Likewise.
2023         * include/bits/mask_array.h: Likewise.
2024         * include/bits/slice_array.h: Likewise.
2025         * include/bits/valarray_after.h: Likewise.
2026         * include/bits/valarray_array.h: Likewise.
2027         * include/bits/valarray_before.h: Likewise.
2028         * include/std/std_valarray.h: Likewise.
2030 2004-07-08  Benjamin Kosnik  <bkoz@redhat.com>
2032         PR c++/16169
2033         * include/bits/basic_string.h (basic_string::operator=): Revert.
2035 2004-07-07  Benjamin Kosnik  <bkoz@redhat.com>
2037         * configure.ac (libtool_VERSION): To 6:2:0.
2038         * configure: Regenerated.
2040         * testsuite/testsuite_abi.cc (check_version): Add 3.4.2.
2042 2004-07-07  Aaron W. LaFramboise  <aaronraolete36@aaronwl.com>
2044         PR libstdc++/16411
2045         * config/linker-map.gnu: Add stdio_sync_filebuf::file exports.
2047 2004-07-07  Benjamin Kosnik  <bkoz@redhat.com>
2049         * docs/html/abi.html: Updates for 3.4.1 release. Add summary of
2050         -Weffc++ issues.
2052 2004-07-07  Paolo Carlini  <pcarlini@suse.de>
2054         PR libstdc++/16401
2055         * include/bits/sstream.tcc (overflow): When reallocating _M_string
2056         use an exponential grow policy.
2057         * testsuite/27_io/basic_stringbuf/overflow/char/1.cc: New.
2058         * testsuite/performance/27_io/stringbuf_overflow.cc: New.
2060 2004-07-06  Anssi Hannula  <anssi.hannula@mbnet.fi>
2062         PR libstdc++/15928
2063         * crossconfig.m4: Add in bits for djgpp.
2064         * configure: Regenerate.
2066 2004-07-05  Jonathan Wakely  <redi@gcc.gnu.org>
2068         * testsuite/23_containers/{set,multiset}/14340.cc: Fix typos in
2069         instantiation of set and multiset (functor param given as int).
2071 2004-07-04  Paolo Carlini  <pcarlini@suse.de>
2073         * include/bits/basic_string.h: Trivial formatting fixes and/or
2074         const-ification of some variables.
2075         * include/bits/deque.tcc: Likewise.
2076         * include/bits/stl_algobase.h: Likewise.
2077         * include/bits/stl_bvector.h: Likewise.
2078         * include/bits/stl_construct.h: Likewise.
2079         * include/bits/stl_deque.h: Likewise.
2080         * include/bits/stl_pair.h: Likewise.
2081         * include/bits/stl_vector.h: Likewise.
2082         * include/bits/vector.tcc: Likewise.
2084 2004-07-04  Paolo Carlini  <pcarlini@suse.de>
2086         * testsuite/25_algorithms/copy/1.cc: Add instantiations for
2087         systems with no COMDAT or weak support.
2088         * testsuite/25_algorithms/copy/2.cc: Likewise.
2089         * testsuite/25_algorithms/copy/3.cc: Likewise.
2090         * testsuite/25_algorithms/copy/4.cc: Likewise.
2092 2004-07-03  Paul Brook  <paul@codesourcery.com>
2094         * configure.ac: Set ABI_TWEAKS_SRCDIR.
2095         * configure.host: Set abi_tweaks_dir.  Check for atomicity.h when
2096         setting atomicity_dir.  Override type_cpu for arm based targets.
2097         * include/Makefile.am (host_headers): Add cxxabi_tweaks.h.
2098         * libsupc++/cxxabi.h: Include bits/cxxabi.h. Don't declare __guard.
2099         * libsupc++/guard.cc: Use definitions from cxxabi_tweaks.h.
2100         * libsupc++/vec.cc: Ditto.
2101         * config/cpu/arm/cxxabi_tweaks.h: New file.
2102         * config/cpu/generic/cxxabi_tweaks.h: New file.
2103         * */Makefile.in: Regenerate.
2104         * configure: Regenerate.
2106 2004-07-02  Paolo Carlini  <pcarlini@suse.de>
2108         * include/bits/type_traits.h (_Is_normal_iterator): Move...
2109         * include/bits/cpp_type_traits.h: ... here, renamed to
2110         __is_normal_iterator and consistent with the other traits.
2111         * include/bits/stl_algobase.h (__copy_ni1, __copy_ni2): Convert
2112         to the struct __copy_normal and three specializations.
2113         (__copy_backward_output_normal_iterator,
2114         __copy_backward_input_normal_iterator): Likewise, convert to
2115         the struct __copy_backward_normal and three specializations.
2116         (copy, copy_backward): Use the latter.
2117         (__copy_aux, __copy_backward_aux): Very minor tweaks.
2119 2004-07-01  Paolo Carlini  <pcarlini@suse.de>
2121         * include/bits/stl_algobase.h (__copy_trivial): Remove.
2122         (__copy_aux2): Rewrite as __copy_aux to use __is_pointer,
2123         __is_trivially_copyable, __are_same and __copy::copy.
2124         (__copy): Rewrite as a class template and two specializations.
2125         (__copy_ni2): Simplify, just call __copy_aux.
2127         * include/bits/stl_algobase.h (__copy_backward_aux): Add __are_same
2128         check.
2129         * testsuite/25_algorithms/copy/1.cc, 2.cc, 3.cc, 4.cc: Test also
2130         for destination value type != source value type.
2132 2004-07-01  Benjamin Kosnik  <bkoz@redhat.com>
2133             Per Bothner  <per@bothner.com>
2134             Mohan Embar  <gnustuff@thisiscool.com>
2136         PR libstdc++/16248
2137         * include/bits/concurrence.h (__glibcxx_mutex_type): New.
2138         (__glibcxx_mutex): Encapsulate mutex init function into type for
2139         threaded configurations without __GTHREAD_MUTEX_INIT.
2140         (lock::lock): Make device member a reference.
2141         (lock::~lock): Same.
2142         * include/ext/pool_allocator.h (__pool_base::_M_get_mutex): Change
2143         to mutex_type.
2144         * src/allocator.cc: Same.
2146 2004-06-30  Brad Spencer  <spencer@infointeractive.com>
2148         * include/ext/mt_allocator.h: Handle allocations at static
2149         initialization that happen before _S_options is (automatically)
2150         constructed; set _S_init even if _M_force_new is true.
2152 2004-06-30  Benjamin Kosnik  <bkoz@redhat.com>
2154         * config/linker-map.gnu: Revert new exports.
2156 2004-06-30  Benjamin Kosnik  <bkoz@redhat.com>
2157             Stuart Anderson  <anderson@netsweng.com>
2159         * config/linker-map.gnu: Add destructor exports for abstract base
2160         classes to conform to LSB.
2162 2004-06-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2163             Paolo Carlini  <pcarlini@suse.de>
2165         * include/bits/cpp_type_traits.h: Add __is_pointer and
2166         __is_trivially_copyable.
2167         * include/bits/stl_algobase.h (fill, fill_n): Slightly
2168         tweak to use the latter.
2169         (__copy_backward_dispatch): Remove.
2170         (__copy_backward_aux): Rewrite to use __is_pointer and
2171         __is_trivially_copyable and __copy_backward::copy_b.
2172         (__copy_backward): Rewrite as a class template and two
2173         specializations.
2175 2004-06-30  Paolo Carlini  <pcarlini@suse.de>
2177         * testsuite/25_algorithms/copy.cc: Move to...
2178         * testsuite/25_algorithms/copy/1.cc: ... here, extend.
2179         * testsuite/25_algorithms/copy/2.cc: New.
2180         * testsuite/25_algorithms/copy/3.cc: New.
2181         * testsuite/25_algorithms/copy/4.cc: New.
2183 2004-06-29  Paul Brook  <paul@codesourcery.com>
2185         * libsupc++/vec.cc (__cxa_vec_new2, __cxa_vec_new3): Store the
2186         element size in the cookie.
2188 2004-06-28  Paolo Carlini  <pcarlini@suse.de>
2190         * include/bits/cpp_type_traits.h: Move the additions to
2191         namespace __gnu_internal outside of namespace std; trivial
2192         formatting fixes.
2194 2004-06-28  Benjamin Kosnik  <bkoz@redhat.com>
2196         * include/debug/safe_base.h (__gnu_debug::_Safe_sequence_base):
2197         Revert -Weffc++ changes that defined copy ctory and or assignment
2198         operator.
2199         * libsupc++/tinfo.cc (__upcast_result): Same.
2201 2004-06-28  Paolo Carlini  <pcarlini@suse.de>
2203         * src/localename.cc (locale::_Impl::_Impl): Slightly improve
2204         the algorithm used to name the categories.
2206 2004-06-28  Paolo Bonzini  <bonzini@gnu.org>
2208         * include/Makefile.am: Give a .gch extension to
2209         the PCH files, not only to the directory.
2210         * include/Makefile.in: Regenerate.
2212 2004-06-28  Paolo Carlini  <pcarlini@suse.de>
2214         * config/locale/gnu/monetary_members.cc
2215         (moneypunct<wchar_t>::_M_initialize_moneypunct): Clean up
2216         assignments of _M_decimal_point and _M_thousands_sep.
2218 2004-06-27  Paolo Carlini  <pcarlini@suse.de>
2220         * docs/html/17_intro/contribute.html: Update some links.
2221         * docs/html/17_intro/porting-howto.html: Likewise.
2222         * docs/html/17_intro/porting-howto.xml: Likewise.
2223         * docs/html/18_support/howto.html: Likewise.
2224         * docs/html/21_strings/howto.html: Likewise.
2225         * docs/html/27_io/howto.html: Likewise.
2226         * docs/html/configopts.html: Likewise.
2227         * docs/html/ext/howto.html: Likewise.
2228         * docs/html/faq/index.html: Likewise.
2229         * docs/html/install.html: Don't mention 2.x compilers.
2231 2004-06-27  Paolo Carlini  <pcarlini@suse.de>
2233         * include/ext/rope: Trivial formatting fixes.
2234         * include/ext/ropeimpl.h: Likewise.
2236 2004-06-26  Paolo Carlini  <pcarlini@suse.de>
2238         PR libstdc++/16210
2239         * acinclude.m4 (GLIBCXX_ENABLE_LONG_LONG): Do not check for the
2240         availability of strto(u)ll, not used anymore in the iostreams.
2241         * configure: Regenerate.
2243 2004-06-25  Benjamin Kosnik  <bkoz@redhat.com>
2245         PR libstdc++/16182
2246         * linkage.m4 (GLIBCXX_CHECK_BUILTIN_MATH_DEC): Revert to
2247         AC_DEFINE_UNQUOTED.
2248         * configure: Regenerate.
2250 2004-06-25  Paul Brook  <paul@codesourcery.com>
2252         * libsupc++/cxxabi.h: Define __ARM_EABI__
2253         (__guard): Use it.
2254         * libsupc++/guard.h (__cxa_guard_acquire, __cxa_guard_release): Ditto.
2256 2004-06-25  Paul Brook  <paul@codesourcery.com>
2258         * include/bits/concurrence.h: Still create mutex object when
2259         single-threaded.
2261 2004-06-25  Paolo Carlini  <pcarlini@suse.de>
2263         * include/bits/stl_algobase.h (fill, fill_n): Revert last
2264         change: actually we need to copy construct an object of type
2265         _Tp, not of type iterator_traits<>::value_type, therefore the
2266         code is ok.
2268 2004-06-25  Paolo Carlini  <pcarlini@suse.de>
2270         * include/bits/stl_algobase.h (fill, fill_n): Tighten the
2271         dispatch: use iterator_traits<>::value_type, not _Tp.
2273 2004-06-25  Paolo Carlini  <pcarlini@suse.de>
2275         * testsuite/25_algorithms/fill/1.cc: Tweak instantiations.
2276         * testsuite/25_algorithms/fill/2.cc: Likewise.
2278 2004-06-25  Dan Nicolaescu  <dann@ics.uci.edu>
2279             Paolo Carlini  <pcarlini@suse.de>
2281         * include/bits/stl_algobase.h (__fill, __fill_n): New helpers
2282         for fill and fill_n, respectively: when copying is cheap, use a
2283         temporary to avoid a memory read in each iteration.
2285 2004-06-25  Paolo Carlini  <pcarlini@suse.de>
2287         * testsuite/25_algorithms/fill/1.cc: New.
2288         * testsuite/25_algorithms/fill/2.cc: Likewise.
2290 2004-06-25  Benjamin Kosnik  <bkoz@redhat.com>
2292         * include/debug/formatter.h (__gnu_debug::_Error_formatter):
2293         Remove copy constructor and assignment operator.
2295 2004-06-24  Benjamin Kosnik  <bkoz@redhat.com>
2297         * include/bits/concurrence.h (__gnu_cxx::lock): New.
2298         * include/ext/pool_allocator.h (__pool_base::_Lock::_S_lock): Remove.
2299         (__pool_base::_M_get_mutex): New.
2300         * include/bits/allocator.h: Tweak.
2301         * src/allocator.cc (__pool_base::_M_get_free_list): Correct offset.
2302         * config/linker-map.gnu: Remove __pool_base::_Lock::_S_lock.
2303         * include/bits/stl_threads.h: Remove.
2304         * include/Makefile.am: Also here.
2305         * include/Makefile.in: Regenerate.
2307         * src/locale_init.cc: Use __gnu_cxx::lock.
2309         * src/allocator.cc: Move all instantiations...
2310         * src/allocator-inst.cc: ...here.
2312 2004-06-23  Andrew Pinski  <apinski@apple.com>
2314         * linkage.m4: Remove check for libmx.
2315         * configure: Regenerate.
2317 2004-06-23  Paolo Carlini  <pcarlini@suse.de>
2319         PR libstdc++/16154
2320         * include/bits/boost_concept_check.h (struct _TrivialIteratorConcept):
2321         Don't require the _DefaultConstructibleConcept.
2322         (struct _ForwardIteratorConcept): Require it here.
2324 2004-06-22  Alexandre Oliva  <aoliva@redhat.com>
2326         * include/bits/istream.tcc (getline): Make sure arguments passed
2327         to min/max have the same type.
2328         * include/bits/locale_facets.tcc (__verify_grouping): Likewise.
2329         * include/bits/stl_deque.h (_Deque_base::_Deque_base): Likewise.
2331 2004-06-22  Benjamin Kosnik  <bkoz@redhat.com>
2333         * docs/html/abi.html: Update links.
2335 2004-06-22  Paolo Carlini  <pcarlini@suse.de>
2337         * testsuite/26_numerics/complex_inserters_extractors.cc,
2338         complex_value.cc, buggy_complex.cc: Move to...
2339         * testsuite/26_numerics/complex/: ... here.
2340         * testsuite/26_numerics/c99_classification_macros_c++.cc,
2341         c99_classification_macros_c.cc, c_math.cc, c_math_dynamic.cc,
2342         fabs_inline.cc: Move to...
2343         * testsuite/26_numerics/cmath/: ... here.
2344         * testsuite/26_numerics/binary_closure.cc, slice.cc,
2345         slice_array_assignment.cc, valarray.cc, valarray_const_bracket.cc,
2346         valarray_name_lookup.cc, valarray_operators.cc,
2347         valarray_subset_assignment.cc: Move to...
2348         * testsuite/26_numerics/valarray/: ... here (new dir).
2349         * testsuite/26_numerics/sum_diff.cc: Move to...
2350         * testsuite/26_numerics/numeric/: ... here (new dir).
2352 2004-06-22  Paolo Carlini  <pcarlini@suse.de>
2354         * include/std/std_istream.h (ignore(streamsize __n = 1,
2355         int_type __delim = traits_type::eof())): Split into...
2356         (ignore(), ignore(streamsize __n), ignore(streamsize __n,
2357         int_type __delim)): The first two can be much more simpler
2358         and efficient than the fully general case; also, the last
2359         two can take advantage of the same mechanism already used
2360         for getline.
2361         * include/bits/istream.tcc (ignore(streamsize __n = 1,
2362         int_type __delim = traits_type::eof()): Remove.
2363         (ignore(), ignore(streamsize __n), ignore(streamsize __n,
2364         int_type __delim)): New.
2366 2004-06-21  Loren J. Rittle  <ljrittle@acm.org>
2368         * config/linker-map.gnu: Use wildcards for
2369         __basic_file::sys_open(FILE*, _Ios_Openmode).
2371 2004-06-20  Paolo Carlini  <pcarlini@suse.de>
2373         * testsuite/27_io/basic_istream/ignore/char/3.cc: New.
2375 2004-06-18  Paolo Carlini  <pcarlini@suse.de>
2377         * include/ext/mt_allocator (__mt_alloc<>::_Tune): Add _M_align,
2378         the alignment requested.
2379         (__mt_alloc<>::_Tune::_Tune): Tweak consistently.
2380         (__mt_alloc<>::allocate): Use it instead of sizeof(_Block_record).
2381         (__mt_alloc<>::deallocate): Likewise.
2383 2004-06-18  Paolo Carlini  <pcarlini@suse.de>
2385         PR libstdc++/16020
2386         * include/debug/safe_base.h
2387         (_Safe_sequence_base::_Safe_sequence_base(const _Safe_sequence_base&),
2388         _Safe_sequence_base::operator=): Provide definitions.
2389         * testsuite/23_containers/bitset/cons/16020.cc: New.
2391 2004-06-18  Benjamin Kosnik  <bkoz@redhat.com>
2393         * include/ext/pool_allocator.h: Qualify __throw_bad_alloc.
2394         (__pool_base): Remove unused template parameter.  Add
2395         protected. Move lock data into __pool_base::_Lock. Remove static
2396         on member functions.
2397         (__pool_base::_M_get_free_list): New.
2398         (__pool_alloc): Move _S_force new here.
2399         * src/allocator.cc: Move out of line __pool_base definitions here.
2400         * config/linker-map.gnu: Export bits from __pool_base.
2402 2004-06-18  Paolo Carlini  <pcarlini@suse.de>
2404         * config/locale/gnu/numeric_members.cc
2405         (numpunct<wchar_t>::_M_initialize_numpunct): Clean up
2406         assignments of _M_decimal_point and _M_thousands_sep.
2407         * config/locale/gnu/time_members.cc
2408         (__timepunct<wchar_t>::_M_initialize_timepunct): Clean up
2409         and reformat assignments of date and time fields.
2411 2004-06-16  Paolo Carlini  <pcarlini@suse.de>
2413         * include/ext/rope (rope(_CharT, const allocator_type&)): Fix
2414         to use _Data_allocate.
2415         * include/ext/ropeimpl.h (rope<>::_S_leaf_concat_char_iter): Likewise.
2416         (rope<>::_S_substring): Likewise.
2417         (rope<>::rope(size_t, _CharT, const allocator_type&)): Likewise.
2418         (rope<>::c_str()): Likewise.
2419         (rope<>::replace_with_c_str()): Likewise.
2421         * include/ext/ropeimpl.h (_Rope_iterator_base<>::_S_setbuf):
2422         Correctly qualify _S_leaf, _S_function, etc., with _Rope_constants::,
2423         not _RopeRep.
2424         (_Rope_iterator_base<>::_S_setcache): Likewise.
2425         (_Rope_iterator_base<>::_S_setcache_for_incr): Likewise.
2426         (rope<>::_S_substring): Likewise.
2427         (rope<>::_S_dump): Likewise.
2428         (rope<>::_S_fetch_ptr): Likewise.
2429         (rope<>::_S_compare): Likewise.
2430         (rope<>::replace_with_c_str()): Likewise.
2432         * testsuite/ext/rope.cc: Rename to testsuite/ext/rope/1.cc.
2433         * testsuite/ext/rope/2.cc: New.
2435 2004-06-16  Paolo Carlini  <pcarlini@suse.de>
2436             Matt Austern  <austern@apple.com>
2438         * testsuite/ext/rope/3.cc: New.
2440 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2442         * acinclude.m4: Remove useless multilib configury.
2443         * Makefile.am: Remove useless multilib rules.
2444         * aclocal.m4: Regenerate.
2445         * Makefile.in: Regenerate.
2446         * configure: Regenerate.
2448 2004-06-15  Paolo Carlini  <pcarlini@suse.de>
2450         * include/ext/hashtable.h: Trivial formatting fixes.
2451         * include/ext/rb_tree: Likewise.
2453 2004-06-14  Paolo Carlini  <pcarlini@suse.de>
2455         * include/ext/hash_map: Trivial formatting fixes.
2456         * include/ext/hash_set: Likewise.
2457         * include/ext/memory: Likewise.
2458         * include/ext/numeric: Likewise.
2460 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
2462         * Makefile.in: Regenerate with automake 1.8.5.
2463         * aclocal.m4: Same.
2464         * include/Makefile.in: Same.
2465         * libmath/Makefile.in: Same.
2466         * libsupc++/Makefile.in: Same.
2467         * po/Makefile.in: Same.
2468         * src/Makefile.in: Same.
2469         * testsuite/Makefile.in: Same.
2471 2004-06-14  Paolo Carlini  <pcarlini@suse.de>
2473         * include/ext/slist: Trivial formatting fixes.
2475 2004-06-14  Paolo Carlini  <pcarlini@suse.de>
2477         * include/bits/locale_facets.tcc (time_get<>::_M_extract_name):
2478         Don't use the 'magic number' 10 in the computation of __minlen;
2479         never access __name past __minlen; in the loop over __i3, don't
2480         decrease __nmatches and increase __i3 at once, only either of
2481         the two; tidy.
2483 2004-06-13  Paolo Carlini  <pcarlini@suse.de>
2485         * include/bits/locale_facets.tcc (time_get<>::do_get_time,
2486         time_get<>::do_get_date): Use only once _M_extract_via_format,
2487         instead of going through "%X"/"%x" and calling it two times
2488         (+ using widen).
2490 2004-06-12  Paolo Carlini  <pcarlini@suse.de>
2492         * include/ext/algorithm: Trivial formatting fixes.
2493         * include/ext/functional: Likewise.
2494         * include/ext/hash_fun.h: Likewise.
2495         * include/ext/iterator: Likewise.
2497 2004-06-12  Paolo Carlini  <pcarlini@suse.de>
2499         * include/bits/basic_string.tcc (find(const _CharT*, size_type,
2500         size_type)): Reimplement using std::search.
2501         * src/string-inst.cc: Instantiate std::search for char/wchar_t.
2503 2004-06-12  Dhruv Matani  <dhruvbird@gmx.net>
2505         * testsuite/performance/21_strings/string_find.cc: New.
2507 2004-06-10  Aaron W. LaFramboise  <aaronraolete36@aaronwl.com>
2509         * include/bits/istream.tcc (istream::ignore): Fix for -Wuninitialized.
2511 2004-06-10  Jan van Dijk  <jan@etpmod.phys.tue.nl>
2513         * include/std/std_complex.h (sin(const complex<_Tp>& __z)): Make
2514         this function return a value.
2516 2004-06-09  Paolo Carlini  <pcarlini@suse.de>
2518         PR libstdc++/15775
2519         * include/bits/stl_deque.h: Consistently with stl_set.h, define
2520         pointer as allocator's pointer, likewise for reference,
2521         const_pointer, and const_reference.
2522         * include/bits/stl_list.h: Likewise.
2523         * include/bits/stl_map.h: Likewise.
2524         * include/bits/stl_multimap.h: Likewise.
2525         * include/bits/stl_vector.h: Likewise.
2527 2004-06-09  Benjamin Kosnik  <bkoz@redhat.com>
2529         * crossconfig.m4: Remove signbit, signbitf, signbitl.
2530         * linkage.m4: Comment LIBMATHOBJS, tweak others.  AC_DEFINES for
2531         builtin math functions instead of AC_DEFINE_UNQUOTED.
2532         * configure: Regenerate.
2534 2004-06-08  Benjamin Kosnik  <bkoz@redhat.com>
2536         * docs/doxygen/filter.sed: Rename _GLIBCXX_STD to std.
2537         * docs/doxygen/mainpage.html: Remove links.
2539 2004-06-08  Jason Merrill  <jason@redhat.com>
2541         * config/linker-map.gnu: Use wildcards for
2542         __basic_file::{xsgetn,xsputn,seekoff,xsputn_2}.
2544 2004-06-08  Paolo Carlini  <pcarlini@suse.de>
2546         * include/ext/pool_allocator.h: Convert to a global free-list,
2547         as per the original SGI/HP design: move the implementation
2548         details to struct __pool_base, from which __pool_alloc derives.
2549         * src/allocator.cc: Instantiate __pool_base.
2551 2004-06-07  Dhruv Matani  <dhruvbird@gmx.net>
2552             Paolo Carlini  <pcarlini@suse.de>
2554         * testsuite/testsuite_performance.h
2555         (resource_counter::allocated_memory): Make it return the right
2556         number of bytes requested by the allocators/application. This is
2557         the sbrk+mmaped memory.
2559 2004-06-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2561         * include/std/std_complex.h (log): Tidy.
2563 2004-05-31  Benjamin Kosnik  <bkoz@redhat.com>
2565         * config/linker-map.gnu (GLIBCXX_3.4.1): Add.
2566         * testsuite/testsuite_abi.cc: Same.
2567         * configure.ac (libtool_VERSION): Bump to 6:1:0.
2568         * configure: Regenerate.
2569         * aclocal.m4: Regenerate.
2571 2004-05-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2573         * include/std/std_complex.h (complex<_Tp>): Properly indent
2574         to follow C++STYLE.
2575         (complex<>::__rep): New.
2576         (__complex_abs): New.  Dispatch to built-ins.
2577         (abs): Use them.
2578         (__complex_arg): New. Dispatch to built-ins.
2579         (arg): Use it.
2580         (__complex_cos): New. Dispatch to built-ins.
2581         (cos): Use it.
2582         (__complex_cosh): New. Dispatch to built-ins.
2583         (cosh): Use it.
2584         (__complex_exp): New. Dispatch to built-ins.
2585         (exp): Use it.
2586         (__complex_log): New. Dispatch to built-ins.
2587         (log): Use it.
2588         (__complex_sin): New. Dispatch to built-ins.
2589         (sin): Use it.
2590         (__complex_sinh): New. Dispatch to built-ins.
2591         (sinh): Use it.
2592         (__complex_sqrt): New. Dispatch to built-ins.
2593         (sqrt): Use it.
2594         (__complex_tan): New. Dispatch to built-ins.
2595         (tan): Use it.
2596         (__complex_tanh): New. Dispatch to built-ins.
2597         (tanh): Use it.
2598         (__complex_pow): New. Dispatch to built-ins.
2599         (pow): Use it.
2601 2004-05-29  Richard B. Kreckel  <Richard.Kreckel@Framatome-ANP.com>
2602             Benjamin Kosnik  <bkoz@redhat.com>
2604         PR libstdc++/14600
2605         * include/ext/stdio_sync_filebuf.h (stdio_sync_filebuf::file): New.
2606         * include/ext/stdio_filebuf.h (stdio_filebuf::file): New.
2607         * config/io/basic_file_stdio.cc (__basic_file::file): New.
2608         * config/io/basic_file_stdio.h: Define.
2610 2004-05-27  Benjamin Kosnik  <bkoz@redhat.com>
2612         PR libstdc++/15675
2613         * docs/html/documentation.html: Update doxygen links for 3.4.0.
2615 2004-05-27  Jan Beulich  <jbeulich@novell.com>
2617         * scripts/create_testsuite_files: Tweak.
2619 2004-05-25  Benjamin Kosnik  <bkoz@redhat.com>
2621         PR libstdc++/15489
2622         * scripts/create_testsuite_files: Revert xtype change, add non-GNU
2623         bits to do the same thing.
2625 2004-05-24  Paolo Carlini  <pcarlini@suse.de>
2627         * include/bits/istream.tcc (ignore): Correctly deal with
2628         n == numeric_limits<streamsize>::max().
2629         * testsuite/27_io/basic_istream/ignore/char/2.cc: New.
2631         * include/bits/istream.tcc (basic_istream<>::getline): Prefer
2632         '_M_gcount + 1 < __n' to '--__n; _M_gcount < __n', just in case
2633         __n == numeric_limits<>::min().
2635         * include/bits/istream.tcc: Minor tweaks.
2637         * testsuite/21_strings/basic_string/inserters_extractors/char/10.cc:
2638         Tighten.
2639         * testsuite/21_strings/basic_string/inserters_extractors/char/11.cc:
2640         Likewise.
2641         * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/10.cc:
2642         Likewise.
2643         * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/11.cc:
2644         Likewise.
2645         * testsuite/27_io/basic_istream/getline/char/5.cc: Likewise.
2647 2004-05-22  Benjamin Kosnik  <bkoz@redhat.com>
2649         PR libstdc++/12854
2650         Fixups for -Weffc++.
2651         * include/bits/basic_string.h (basic_string::operator=): Return
2652         pointer to this instead of result of assign. Although redundant,
2653         this doesn't impact resultant codegen.
2655         * include/bits/locale_facets.h (__numpunct_cache): Declare
2656         assignment opxserator and copy constructor private.
2657         (__timepunct_cache): Same.
2658         (__moneypunct_cache): Same.
2659         (collate): Use member initialization list for _M_c_locale_collate.
2660         * config/locale/gnu/messages_members.h: Same.
2661         * config/locale/gnu/time_members.h (__timepunct): Same.
2662         * src/codecvt.cc: Use member initialization list to initialize
2663         _M_c_locale_codecvt.
2664         * src/ctype.cc: Same, with _M_c_locale_ctype and _M_narrow_ok.
2665         * config/os/gnu-linux/ctype_noninline.h: Same.
2666         * src/locale.cc (_Impl): Same.
2667         * src/locale_init.cc: Same.
2668         * src/localename.cc: Same.
2670         * include/bits/basic_ios.h (basic_ios): Complete member
2671         initialization list.
2672         * include/bits/istream.tcc (basic_istream::sentry): Same.
2673         * include/bits/ostream.tcc (basic_ostream::sentry): Same.
2674         * include/bits/fstream.tcc (basic_filebuf): Add _M_lock and
2675         _M_pback to member initialization list.
2676         * include/std/std_streambuf.h: Same.
2677         * include/std/std_sstream.h: Same, for _M_mode.
2678         * src/ios.cc (ios_base): Same.
2680         * include/ext/rope: Make derived classes match exception
2682          specifications. Add copy constructors and assignment operators.
2684         * include/debug/safe_base.h (_Safe_sequence_base): Declare copy
2685         constructor and assignment operator protected.
2686         (_Safe_iterator_base): Same.
2687         * include/debug/formatter.h (_Error_formatter): Define copy
2688         constructor and assignment operator.
2690         * include/backward/strstream: Declare assignment operator and copy
2691         constructor private.
2693 2004-05-22  Benjamin Kosnik  <bkoz@redhat.com>
2695         * testsuite/testsuite_hooks.h (func_callback): Declare copy
2696         constructor and assignment operator private.
2697         * testsuite/23_containers/deque/cons/clear_allocator.cc: Match
2698         exception specifications of base class.
2699         * testsuite/23_containers/list/cons/clear_allocator.cc: Same.
2700         * testsuite/23_containers/vector/cons/clear_allocator.cc: Same.
2701         * testsuite/23_containers/vector/bool/clear_allocator.cc: New.
2703 2004-05-22  Benjamin Kosnik  <bkoz@redhat.com>
2705         * libsupc++/cxxabi.h: Remove duplicated and useless public and
2706         private keywords in class declarations. Format. Use
2707         stddef.h. Expose declarations to "C" compilation.
2708         * libsupc++/tinfo.cc (__upcast_result): Add copy constructor and
2709         assignment operator.
2710         (__dyncast_result): Same.
2711         * libsupc++/vec.cc (uncatch_exception): Same, use member
2712         initialization list.
2714 2004-05-22  Benjamin Kosnik  <bkoz@redhat.com>
2716         * testsuite/abi_check.cc: Add unistd.h.
2718 2004-05-22  Paolo Carlini  <pcarlini@suse.de>
2720         PR libstdc++/15565
2721         * include/bits/locale_facets.tcc (__int_to_char(unsigned long),
2722         __int_to_char(unsigned long long)): Showpos is not relevant
2723         for unsigned types.
2724         * testsuite/22_locale/num_put/put/char/15565.cc: New.
2725         * testsuite/22_locale/num_put/put/wchar_t/15565.cc: New.
2727         * testsuite/22_locale/num_put/put/wchar_t/1.cc: Use L for the fill
2728         char.
2729         * testsuite/22_locale/num_put/put/wchar_t/2.cc: Likewise.
2730         * testsuite/22_locale/num_put/put/wchar_t/3.cc: Likewise.
2731         * testsuite/22_locale/num_put/put/wchar_t/4.cc: Likewise.
2732         * testsuite/22_locale/num_put/put/wchar_t/5.cc: Likewise.
2733         * testsuite/22_locale/num_put/put/wchar_t/6.cc: Likewise.
2734         * testsuite/22_locale/num_put/put/wchar_t/8.cc: Likewise.
2736 2004-05-21  Matthias Klose  <doko@debian.org>
2738         * docs/doxygen/run_doxygen:  Bump required version.
2740 2004-05-21  Benjamin Kosnik  <bkoz@redhat.com>
2742         * docs/html/abi.html (libgcc_s): Additions suggested by Matthias Klose.
2743         * docs/doxygen/Intro.3: Subtractions suggested by Phil Edwards.
2745 2004-05-21  Paolo Carlini  <pcarlini@suse.de>
2747         * include/bits/istream.tcc (ignore): Remove redundant line.
2748         (readsome): Tidy, closely following 27.6.1.3, p30.
2750 2004-05-20  Paolo Carlini  <pcarlini@suse.de>
2752         * include/bits/istream.tcc (operator>>(basic_istream<>&,
2753         basic_string<>&)): Use a temporary buffer, thus avoiding
2754         reallocation for common case.
2755         * testsuite/21_strings/basic_string/inserters_extractors/char/11.cc:
2756         New.
2757         * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/11.cc:
2758         Likewise.
2760         * include/bits/istream.tcc: Const-ification of a few variables.
2762         * include/bits/ostream.tcc: Trivial formatting fixes and
2763         const-ification of some variables.
2765 2004-05-20  Benjamin Kosnik  <bkoz@redhat.com>
2767         PR libstdc++/15123
2768         PR libstdc++/13928
2769         * docs/doxygen/Intro.3: Remove Allocators.3.
2770         Add new extension headers, extension namespace list.
2771         * docs/doxygen/run_doxygen (problematic): Remove Allocators.3
2772         Rename GLIBCXXSTD names to std::. Rename __gnu_debug to
2773         __gnu_debug::. Remove __policy_ renames.
2774         * docs/doxygen/guide.html: Add dot note.
2775         * docs/doxygen/stdheader.cc: Edit, add files.
2776         * docs/doxygen/user.cfg.in: Regenerate with Doxygen 1.3.7.
2778 2004-05-18  Jonathan Wakely  <redi@gcc.gnu.org>
2780         * include/ext/stdio_filebuf.h: Update comments to reflect PR 11691.
2782 2004-05-18  Jan Beulich  <jbeulich@novell.com>
2784         PR libstdc++/15489
2785         * scripts/create_testsuite_files: Also find source files through
2786         symbolic links.
2788 2004-05-18  Jan Beulich  <jbeulich@novell.com>
2790         PR libstdc++/15488
2791         * testsuite/lib/libstdc++.exp: Make test files writable.
2793 2004-05-18  Paolo Carlini  <pcarlini@suse.de>
2795         * include/ext/mt_allocator.h:(__mt_alloc::allocate): Minor
2796         tweaks.
2798 2004-05-18  Dhruv Matani  <dhruvbird@gmx.net>
2800         * include/ext/mt_allocator.h:(__mt_alloc::allocate): Re-write
2801         allocation loop which removes blocks from the global free list
2802         from O(N) to O(1) when the required blocks are <= the number
2803         available.
2805 2004-05-18  Jonathan Wakely  <redi@gcc.gnu.org>
2807         * include/ext/enc_filebuf.h: Move concept-check macro to class scope.
2809 2004-05-17  Benjamin Kosnik  <bkoz@redhat.com>
2811         * testsuite/testsuite_hooks.h (__gnu_test::conversion): New class.
2812         * testsuite/23_containers/deque/14340.cc: New.
2813         * testsuite/23_containers/list/14340.cc: New.
2814         * testsuite/23_containers/map/14340.cc: New.
2815         * testsuite/23_containers/multimap/14340.cc: New.
2816         * testsuite/23_containers/multiset/14340.cc: New.
2817         * testsuite/23_containers/set/14340.cc: New.
2818         * testsuite/23_containers/vector/14340.cc: New.
2820 2004-05-17  Douglas Gregor   <gregod@cs.rpi.edu>
2822         PR libstdc++/14340
2823         * include/debug/safe_iterator.h (_Safe_iterator converting
2824         constructor): Only allow declaration to instantiate when the
2825         incoming _Safe_iterator has exactly the right iterator type.
2827 2004-05-17  Jonathan Wakely  <redi@gcc.gnu.org>
2829         * include/bits/boost_concept_check.h: Fix old attribute syntax.
2830         * testsuite/23_containers/map/modifiers/swap.cc: Define operator<
2831         to pass concept-checks.
2832         * testsuite/23_containers/multimap/modifiers/swap.cc: Same.
2833         * testsuite/23_containers/set/modifiers/swap.cc: Same.
2834         * testsuite/23_containers/multiset/modifiers/swap.cc: Same.
2836 2004-05-16  Paolo Carlini  <pcarlini@suse.de>
2838         * include/std/std_bitset.h: Minor formatting fixes.
2840 2004-05-16  Paolo Carlini  <pcarlini@suse.de>
2842         * include/ext/mt_allocator.h (__mt_alloc<>::deallocate):
2843         Consistently update __bin._M_free[0].
2844         (__mt_alloc<>::allocate): When __bin._M_first[0] != NULL use
2845         __bin._M_free[0] to simplify the while loop (i.e., the number
2846         of iterations becomes known at the outset).
2848 2004-05-15  Paolo Carlini  <pcarlini@suse.de>
2850         * include/std/std_bitset.h: Trivial formatting fixes.
2852 2004-05-14  Paolo Carlini  <pcarlini@suse.de>
2853             Ivan Godard  <igodard@pacbell.net>
2855         PR libstdc++/15361
2856         * include/std/std_bitset.h (_Base_bitset<_Nw>::_M_do_find_next): Fix.
2857         * testsuite/23_containers/bitset/ext/15361.cc: New.
2859 2004-05-13  Benjamin Kosnik  <bkoz@redhat.com>
2861         PR libstdc++/15046
2862         * crossconfig.m4: Add C99 math bits for linux crosses.
2863         * configure: Regenerate.
2865 2004-05-13  Simon Marshall <simon.marshall@misys.com>
2866             Benjamin Kosnik  <bkoz@redhat.com>
2868         PR libstdc++/15090
2869         * include/bits/locale_facets.h: Fix for -fno-for-scope.
2870         * include/debug/safe_sequence.h: Same.
2871         * include/debug/safe_iterator.tcc: Same.
2872         * src/debug.cc: Same.
2873         * src/locale.cc: Same.
2874         * src/locale_init.cc: Same.
2875         * src/localename.cc: Same.
2876         * config/locale/gnu/ctype_members.cc: Same.
2877         * config/locale/gnu/numeric_members.cc: Same.
2878         * testsuite/testsuite_abi.cc: Same.
2879         * testsuite/testsuite_hooks.cc: Same.
2881 2004-05-13  Jonathan Wakely  <redi@gcc.gnu.org>
2883         * docs/html/abi.html: Document effect of -fabi-version on value
2884         of __GXX_ABI_VERSION, and that it's defined in c-cppbuiltin.c.
2885         Fix markup.
2887 2004-05-13  Benjamin Kosnik  <bkoz@redhat.com>
2889         PR libstdc++/15074
2890         * docs/html/faq/index.html: Update docs for libsupc++ usage.
2892 2004-05-13  Benjamin Kosnik  <bkoz@redhat.com>
2894         PR libstdc++/15412
2895         * include/bits/stl_threads.h (_GLIBCXX_mutex): Move to namespace
2896         __gnu_internal.
2897         (_GLIBCXX_mutex_address): Same.
2898         (_GLIBCXX_once): Same.
2899         (_GLIBCXX_mutex_init): Same.
2900         (_GLIBCXX_mutex_address_init): Same.
2902 2004-05-13  Benjamin Kosnik  <bkoz@redhat.com>
2904         * docs/html/abi.html: New.
2905         * docs/html/abi.txt: Remove.
2906         * docs/html/documentation.html: Add link.
2907         * testsuite/Makefile.am: Add files.
2908         * testsuite/Makefile.in: Regenerated.
2909         * testsuite/abi_check.cc: Move and modify code into...
2910         * testsuite/testsuite_abi.cc: Add.
2911         * testsuite/testsuite_abi.h: Add.
2913         * docs/html/17_intro/TODO: Update.
2914         * include/bits/stl_pair.h: Format.
2916 2004-05-06  Matthias Klose  <doko@debian.org>
2918         * include/backward/iterator.h:  Add GPL copyright info,
2919         with exception clause.
2920         * include/bits/boost_concept_check.h: Likewise.
2921         * include
2922         * libsupc++/tinfo.h: Likewise.
2923         * po/string_literals.cc: Likewise.
2925 2004-05-03  Andreas Tobler  <a.tobler@schweiz.ch>
2927         * acinclude.m4: Replace -W with more speaking -Wextra.
2928         * configure: Rebuilt.
2930 2004-05-03  Paolo Carlini  <pcarlini@suse.de>
2932         Optimize locale::_M_impl->_M_names for the most common cases:
2933         !_M_names[0] means unnamed; !_M_names[1] means all the categories
2934         the same name (_M_names[0] && _M_names[1] means that the full set
2935         of _M_names must be processed, the general case).
2936         * include/bits/locale_classes.h (locale::_Impl::_M_check_same_name):
2937         Tweak, saving work when !_M_names[1].
2938         (locale::locale(const locale&, _Facet*): Simplify: now just setting
2939         _M_names[0] = 0 means unnamed.
2940         * src/locale.cc (locale::operator==): Deal first with the common,
2941         easy cases, otherwise fall back to locale::name().
2942         (locale::name()): Tweak, if !_M_names[0] just return "*".
2943         (locale::_Impl::_Impl(const _Impl&, size_t): Tweak, early stop
2944         copying __imp._M_names if !__imp._M_names[0] or !__imp._M_names[1].
2945         * src/locale_init.cc (locale::_Impl::_Impl(size_t)): Tweak.
2946         * src/localename.cc (locale::_Impl::_Impl(const char*, size_t):
2947         Simplify when !std::strchr, just updating _M_names[0]; clean up.
2948         (locale::_Impl::_M_replace_categories): When !_M_names[1] prepare
2949         for the general case (full set of names), then do the usual work;
2950         clean up.
2952         * src/locale.cc (locale::name()): Reserve space in __ret.
2953         * src/locale_init.cc (locale::global(const locale&)): Save
2954         the name in a temporary.
2955         * src/localename.cc (locale::locale(const char*)): Reserve space
2956         in __str.
2958 2004-04-29  Paolo Carlini  <pcarlini@suse.de>
2960         * src/locale.cc (locale::operator==): Always avoid constructing
2961         locale::name(), directly compare pairs of _M_names.
2963 2004-04-26  Paolo Carlini  <pcarlini@suse.de>
2965         * include/bits/istream.tcc: Fix comment.
2967 2004-04-26  Paolo Carlini  <pcarlini@suse.de>
2969         * include/bits/stl_vector.h: Trivial formatting fixes.
2970         * include/bits/vector.tcc: Likewise.
2972 2004-04-25  Paolo Carlini  <pcarlini@suse.de>
2974         PR libstdc++/15002 (continued again)
2975         * include/bits/istream.tcc (getline(basic_istream<>&,
2976         basic_string<>&, _CharT)): Use a temporary buffer, thus
2977         avoiding reallocation for common case.
2979         * include/bits/basic_string.tcc (_S_construct(_InIterator,
2980         _InIterator, const _Alloc&, input_iterator_tag)): Tweak size
2981         of temporary buffer to a power of two.
2983         * testsuite/27_io/basic_istream/getline/char/4.cc: Add comment.
2985 2004-04-25  Paolo Carlini  <pcarlini@suse.de>
2987         * testsuite/21_strings/basic_string/inserters_extractors/char/10.cc:
2988         New.
2989         * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/10.cc:
2990         Likewise.
2991         * testsuite/27_io/basic_istream/getline/char/5.cc: Likewise.
2993 2004-04-24  Paolo Carlini  <pcarlini@suse.de>
2994             Petur Runolfsson  <peturr02@ru.is>
2996         PR libstdc++/15002 (continued)
2997         * include/bits/istream.tcc (basic_istream<>::getline(char_type*,
2998         streamsize, char_type)): Use traits::find/copy in a loop to speed
2999         up greatly the function in the common case (I/O buffer size >> 1).
3001 2004-04-24  Paolo Carlini  <pcarlini@suse.de>
3003         * testsuite/27_io/basic_istream/getline/char/4.cc: New.
3005         * include/bits/istream.tcc (getline(basic_istream<>&,
3006         basic_string<>&, _CharT)): Change to use sgetc()/snextc() instead
3007         of sbumpc(), consistently with the other functions, thus also
3008         dealing correctly with the case of exceeded string::max_size().
3010 2004-04-24  Matthias Klose  <doko@debian.org>
3012         Jonathan Wakely  <cow@compsoc.man.ac.uk>
3013         * docs/html/configopts.html: Fix reference to allocator config option.
3015 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
3017         * linkage.m4 (GLIBCXX_CHECK_MATH_SUPPORT): Check for libmx also.
3018         * configure: Regenerate.
3020 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
3022         PR libstdc++/15047, libstdc++/11610
3023         * testsuite/lib/libstdc++.exp (v3-copy-files): Use remote_download.
3024         (libstdc++_init): Don't pass outdir to v3-copy-files.
3026 2004-04-21  Paolo Carlini  <pcarlini@suse.de>
3028         * include/bits/deque.tcc: Trivial formatting fixes.
3029         * include/bits/stl_deque.h: Likewise.
3030         * include/bits/stl_list.h: Likewise.
3031         * include/bits/stl_tree.h: Likewise.
3033 2004-04-21  Paolo Carlini  <pcarlini@suse.de>
3034             Andrew Pinski  <pinskia@physics.uc.edu>
3036         * include/bits/basic_string.tcc (_M_mutate): Don't compute
3037         __src unnecessarily.
3039 2004-04-19  Benjamin Kosnik  <bkoz@redhat.com>
3041         * testsuite/27_io/basic_istream/extractors_character/char/9555-ic.cc:
3042         Clarify assertion, set test variable to false before assert.
3043         * testsuite/27_io/basic_istringstream/str/char/1.cc: Same.
3044         * testsuite/27_io/basic_stringstream/str/char/1.cc: Same.
3045         * testsuite/27_io/ios_base/storage/2.cc: Same.
3047         * testsuite/27_io/basic_filebuf/imbue/char/13171-4.cc: Fix
3048         function returns.
3049         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Same.
3050         * testsuite/27_io/fpos/14320-3.cc: Same.
3052         * testsuite/27_io/basic_filebuf/2.cc: Instantiate in namespace std.
3053         * testsuite/27_io/fpos/1.cc: Same.
3054         * testsuite/27_io/basic_stringstream/2.cc: Same.
3055         * testsuite/27_io/basic_stringbuf/4.cc: Same.
3056         * testsuite/27_io/basic_stringbuf/1.cc: Same.
3057         * testsuite/27_io/basic_stringbuf/2.cc: Same.
3058         * testsuite/27_io/basic_streambuf/2.cc: Same.
3059         * testsuite/27_io/basic_ostringstream/2.cc: Same.
3060         * testsuite/27_io/basic_ostream/2.cc: Same.
3061         * testsuite/27_io/basic_ofstream/2.cc: Same.
3062         * testsuite/27_io/basic_istringstream/2.cc: Same.
3063         * testsuite/27_io/basic_istream/2.cc: Same.
3064         * testsuite/27_io/basic_iostream/2.cc: Same.
3065         * testsuite/27_io/basic_ios/2.cc: Same.
3066         * testsuite/27_io/basic_ifstream/2.cc: Same.
3067         * testsuite/27_io/basic_fstream/2.cc: Same.
3068         * testsuite/ext/stdio_filebuf/char/1.cc: Same, in namespace __gnu_cxx.
3070         * testsuite/21_strings/basic_string/capacity/1.cc: Don't compare
3071         unsigned against zero.
3072         * testsuite/21_strings/basic_string/capacity/wchar_t/1.cc: Same.
3073         * testsuite/21_strings/basic_string/capacity/char/1.cc: Same.
3075         * testsuite/18_support/new_delete_placement.cc: Initialize
3076         variables before first use.
3077         * testsuite/21_strings/char_traits/requirements/wchar_t/1.cc: Same.
3078         * testsuite/21_strings/char_traits/requirements/char/1.cc: Same.
3079         * testsuite/21_strings/char_traits/requirements/short/1.cc: Same.
3080         * testsuite/27_io/basic_istream/seekg/char/exceptions_badbit_throw.cc:
3081         Same.
3082         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/exceptions_badbit_throw.cc: Same.
3083         * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
3084         Same.
3085         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/exceptions_failbit_throw.cc: Same.
3086         * testsuite/27_io/types/2.cc: Same.
3088         * testsuite/ext/stdio_sync_filebuf/wchar_t/12077.cc: Fix temporary
3089         file name.
3090         * testsuite/27_io/fpos/14775.cc: Same.
3092 2004-04-19  Paolo Carlini  <pcarlini@suse.de>
3094         PR libstdc++/15002 (partial)
3095         * include/bits/basic_string.h (_M_replace_aux, _M_replace_safe):
3096         Special case __n2 == 1, not calling traits_type::assign/copy.
3098 2004-04-17  Benjamin Kosnik  <bkoz@redhat.com>
3100         * include/bits/stl_bvector.h: Use _M_impl._M_start.
3102 2004-04-16  Benjamin Kosnik  <bkoz@redhat.com>
3104         * include/bits/c++config (_GLIBCXX_STD): New.
3105         * src/list.cc: Use it.
3106         * include/std/std_bitset.h: Same.
3107         * include/bits/vector.tcc: Same.
3108         * include/bits/stl_set.h: Same.
3109         * include/bits/stl_multiset.h: Same.
3110         * include/bits/stl_multimap.h: Same.
3111         * include/bits/stl_map.h: Same.
3112         * include/bits/stl_list.h: Same.
3113         * include/bits/stl_vector.h: Same.
3114         * include/bits/stl_bvector.h: Same.
3115         * include/bits/stl_deque.h: Same.
3116         * include/bits/deque.tcc: Same.
3117         * include/bits/list.tcc: Same.
3118         * include/debug/vector: Same.
3119         * include/debug/set.h: Same.
3120         * include/debug/multiset.h: Same.
3121         * include/debug/multimap.h: Same.
3122         * include/debug/map.h: Same.
3123         * include/debug/list: Same.
3124         * include/debug/deque: Same.
3125         * include/debug/bitset: Same.
3126         * include/debug/formatter.h (__gnu_debug): Remove using directive.
3127         Add using declaration for std::type_info.
3128         * include/debug/safe_iterator.h: Add using declaration for
3129         std::iterator_traits and std::pair.
3130         * src/debug_list.cc: New.
3131         * src/Makefile.am: Add debug_list.cc.
3132         * src/Makefile.in: Regenerate.
3133         * config/linker-map.gnu: Add _List_node_base exports for std and
3134         __gnu_norm.
3136         * include/bits/stl_bvector.h (_Bvector_base): Use _Bvector_impl
3137         idiom that other containers use.
3138         * testsuite/23_containers/vector/bool/clear_allocator.cc: New.
3140 2004-04-16  Paolo Carlini  <pcarlini@suse.de>
3142         PR libstdc++/14975
3143         * include/bits/fstream.tcc (basic_filebuf::imbue): Zero _M_codecvt
3144         in case of error.
3145         * testsuite/27_io/basic_filebuf/imbue/char/14975-1.cc: New.
3146         * testsuite/27_io/basic_filebuf/imbue/wchar_t/14975-2.cc: New.
3148 2004-04-16  Paolo Carlini  <pcarlini@suse.de>
3150         * acconfig.h: Remove _GLIBCXX_USE_LONG_DOUBLE entry, not
3151         used anymore.
3152         * config.h.in: Regenerate.
3154 2004-04-16  Paolo Carlini  <pcarlini@suse.de>
3156         * config/locale/generic/monetary_members.cc
3157         (moneypunct<wchar_t>::_M_initialize_moneypunct): Avoid calling
3158         btowc unnecessarily, just cast to wchar_t (the concerned chars
3159         all belong to the basic character set).
3160         * config/locale/generic/numeric_members.cc
3161         (numpunct<wchar_t>::_M_initialize_numpunct): Likewise.
3162         * config/locale/gnu/monetary_members.cc
3163         (moneypunct<wchar_t>::_M_initialize_moneypunct): Likewise.
3164         * config/locale/gnu/numeric_members.cc
3165         (numpunct<wchar_t>::_M_initialize_numpunct): Likewise.
3167 2004-04-15  Paolo Carlini  <pcarlini@suse.de>
3169         * src/locale.cc (locale::operator==): When _M_impl == __rhs._M_impl
3170         avoid constructing unnecessarily this->name().
3172 2004-04-14  Zack Weinberg  <zack@codesourcery.com>
3174         * testsuite/Makefile.am: Add definition of AM_CXXFLAGS.
3175         Change definition of CXX to use $(shell) instead of backticks.
3176         * testsuite/Makefile.in: Regenerate.
3178 2004-04-12  Dhruv Matani  <dhruvbird@gmx.net>
3180         * testsuite/performance/20_util/allocator/list_sort_search.cc:
3181         Minor formatting fixes.
3182         * testsuite/performance/20_util/allocator/map_mt_find.cc:
3183         Likewise.
3185 2004-04-12  Paolo Carlini <pcarlini@suse.de>
3187         * config/locale/gnu/numeric_members.cc
3188         (numpunct<wchar_t>::_M_initialize_numpunct): No need to wrap
3189         in __uselocale, since btowc is called for chars belonging to
3190         the basic character set.
3192 2004-04-09  Paolo Carlini  <pcarlini@suse.de>
3194         * testsuite/22_locale/messages/members/char/1.cc: Remove junk.
3195         * testsuite/22_locale/messages/members/char/2.cc: Ditto.
3196         * testsuite/22_locale/messages/members/char/3.cc: Ditto.
3197         * testsuite/22_locale/num_get/get/char/1.cc: Ditto.
3198         * testsuite/22_locale/num_get/get/char/2.cc: Ditto.
3199         * testsuite/22_locale/num_get/get/char/3.cc: Ditto.
3200         * testsuite/22_locale/num_get/get/wchar_t/1.cc: Ditto.
3201         * testsuite/22_locale/num_get/get/wchar_t/2.cc: Ditto.
3202         * testsuite/22_locale/num_get/get/wchar_t/3.cc: Ditto.
3203         * testsuite/22_locale/num_put/put/char/1.cc: Ditto.
3204         * testsuite/22_locale/num_put/put/char/2.cc: Ditto.
3205         * testsuite/22_locale/num_put/put/char/3.cc: Ditto.
3206         * testsuite/22_locale/num_put/put/wchar_t/1.cc: Ditto.
3207         * testsuite/22_locale/num_put/put/wchar_t/2.cc: Ditto.
3208         * testsuite/22_locale/num_put/put/wchar_t/3.cc: Ditto.
3209         * testsuite/22_locale/numpunct/members/char/1.cc: Ditto.
3210         * testsuite/22_locale/numpunct/members/wchar_t/1.cc: Ditto.
3212 2004-04-07  Paolo Carlini  <pcarlini@suse.de>
3214         * config/locale/generic/time_members.cc
3215         (__timepunct<char>::_M_initialize_timepunct,
3216         __timepunct<wchar_t>::_M_initialize_timepunct): the correct
3217         _M_amonth07 in the "C" locale is "Jul" and L"Jul", respectively.
3218         * config/locale/gnu/time_members.cc
3219         (__timepunct<char>::_M_initialize_timepunct,
3220         __timepunct<wchar_t>::_M_initialize_timepunct): Ditto.
3221         * testsuite/22_locale/time_get/get_monthname/char/4.cc: New.
3222         * testsuite/22_locale/time_get/get_monthname/wchar_t/4.cc: New.
3224         * testsuite/22_locale/time_get/date_order/char/1.cc: Remove junk.
3225         * testsuite/22_locale/time_get/date_order/wchar_t/1.cc: Ditto.
3226         * testsuite/22_locale/time_get/get_date/char/1.cc: Ditto.
3227         * testsuite/22_locale/time_get/get_date/char/2.cc: Ditto.
3228         * testsuite/22_locale/time_get/get_date/wchar_t/1.cc: Ditto.
3229         * testsuite/22_locale/time_get/get_date/wchar_t/2.cc: Ditto.
3230         * testsuite/22_locale/time_get/get_monthname/char/1.cc: Ditto.
3231         * testsuite/22_locale/time_get/get_monthname/char/2.cc: Ditto.
3232         * testsuite/22_locale/time_get/get_monthname/wchar_t/1.cc: Ditto.
3233         * testsuite/22_locale/time_get/get_monthname/wchar_t/2.cc: Ditto.
3234         * testsuite/22_locale/time_get/get_time/char/1.cc: Ditto.
3235         * testsuite/22_locale/time_get/get_time/char/2.cc: Ditto.
3236         * testsuite/22_locale/time_get/get_time/wchar_t/1.cc: Ditto.
3237         * testsuite/22_locale/time_get/get_time/wchar_t/2.cc: Ditto.
3238         * testsuite/22_locale/time_get/get_weekday/char/1.cc: Ditto.
3239         * testsuite/22_locale/time_get/get_weekday/char/2.cc: Ditto.
3240         * testsuite/22_locale/time_get/get_weekday/wchar_t/1.cc: Ditto.
3241         * testsuite/22_locale/time_get/get_weekday/wchar_t/2.cc: Ditto.
3242         * testsuite/22_locale/time_get/get_year/char/1.cc: Ditto.
3243         * testsuite/22_locale/time_get/get_year/wchar_t/1.cc: Ditto.
3244         * testsuite/22_locale/time_put/put/char/1.cc: Ditto.
3245         * testsuite/22_locale/time_put/put/char/2.cc: Ditto.
3246         * testsuite/22_locale/time_put/put/char/3.cc: Ditto.
3247         * testsuite/22_locale/time_put/put/char/4.cc: Ditto.
3248         * testsuite/22_locale/time_put/put/char/5.cc: Ditto.
3249         * testsuite/22_locale/time_put/put/char/6.cc: Ditto.
3250         * testsuite/22_locale/time_put/put/char/7.cc: Ditto.
3251         * testsuite/22_locale/time_put/put/char/8.cc: Ditto.
3252         * testsuite/22_locale/time_put/put/wchar_t/1.cc: Ditto.
3253         * testsuite/22_locale/time_put/put/wchar_t/2.cc: Ditto.
3254         * testsuite/22_locale/time_put/put/wchar_t/3.cc: Ditto.
3255         * testsuite/22_locale/time_put/put/wchar_t/4.cc: Ditto.
3256         * testsuite/22_locale/time_put/put/wchar_t/5.cc: Ditto.
3257         * testsuite/22_locale/time_put/put/wchar_t/6.cc: Ditto.
3258         * testsuite/22_locale/time_put/put/wchar_t/7.cc: Ditto.
3259         * testsuite/22_locale/time_put/put/wchar_t/8.cc: Ditto.
3261         * testsuite/22_locale/time_put/put/char/9780-1.cc: Fix typos.
3263 2004-04-07  Paolo Carlini  <pcarlini@suse.de>
3265         * config/locale/gnu/monetary_members.cc
3266         (moneypunct<wchar_t>::_M_initialize_moneypunct): Prefer
3267         _NL_MONETARY_DECIMAL_POINT_WC, _NL_MONETARY_THOUSANDS_SEP_WC,
3268         and __MON_GROUPING to _NL_NUMERIC_DECIMAL_POINT_WC,
3269         _NL_NUMERIC_THOUSANDS_SEP_WC, and GROUPING.
3270         * config/locale/gnu/numeric_members.cc
3271         (numpunct<char>::_M_initialize_numpunct): Prefer DECIMAL_POINT
3272         and THOUSANDS_SEP to the deprecated RADIXCHAR and THOUSEP.
3274 2004-04-06  Benjamin Kosnik  <bkoz@redhat.com>
3276         Fixups for EDG front end.
3277         * include/ext/rope: Instead of non-existent function
3278         _Data_allocate, use allocator's allocate. Use this.
3279         (namespace _Rope_constants): Move _S_max_rope_depth, and _Tag
3280         enumerations from _Rope_RopeRep here.
3281         * include/ext/ropeimpl.h: Same.
3282         * src/ext-inst.cc (_S_min_len): Fix up definition.
3284         * config/locale/gnu/ctype_members.cc: Qualify base class members
3285         with this.
3286         * config/locale/generic/ctype_members.cc: Same.
3287         * config/locale/gnu/messages_members.h: Same.
3288         * config/locale/generic/messages_members.h: Same.
3289         * src/ctype.cc: Same.
3290         * include/bits/codecvt.h: Same.
3292         * include/bits/boost_concept_check.h: Declare.
3293         (__error_type_must_be_an_unsigned_integer_type): Remove this.
3294         (__error_type_must_be_an_integer_type): Remove this.
3295         (__error_type_must_be_a_signed_integer_type): Remove this.
3297         * config/io/basic_file_stdio.cc (__basic_file::sys_open): Remove cast.
3299         * libsupc++/eh_alloc.cc (__cxa_free_exception): Add exception
3300         specification to definition.
3301         (__cxa_allocate_exception): Same.
3302         * libsupc++/eh_catch.cc (__cxa_begin_catch): Same.
3303         * libsupc++/eh_globals.cc (__cxa_get_globals_fast): Same.
3304         (__cxa_get_globals): Same.
3306         * libsupc++/del_op.cc: Add comment about freestanding.
3308 2004-04-05  Paolo Carlini  <pcarlini@suse.de>
3310         * include/ext/mt_allocator.h (__mt_alloc<>::deallocate):
3311         The critical section is actually very small, only two assignments.
3313 2004-04-04  Paolo Carlini  <pcarlini@suse.de>
3314             Petur Runolfsson  <peturr02@ru.is>
3316         * testsuite/performance/27_io/filebuf_sputn_unbuf.cc: New,
3317         adapted from libstdc++/11378.
3319 2004-04-03  Paolo Carlini  <pcarlini@suse.de>
3321         * include/ext/mt_allocator.h (__mt_alloc<>::allocate): Factor out
3322         some duplicated code.
3323         (__mt_alloc<>::_Bin_record): Spare the space of _M_free and _M_used
3324         in the single threaded case.
3325         * testsuite/performance/20_util/allocator/list_sort_search.cc:
3326         Reorder and renumber the tests consistently with the other testfiles.
3327         * testsuite/performance/20_util/allocator/map_mt_find.cc: Ditto.
3328         * testsuite/performance/20_util/allocator/map_thread.cc: Ditto.
3329         * testsuite/performance/20_util/allocator/producer_consumer.cc: Ditto.
3331 2004-04-02  Paolo Carlini  <pcarlini@suse.de>
3333         * include/ext/mt_allocator.h (__mt_alloc<>::deallocate):
3334         Rearrange arithmetic to avoid computing two divisions at
3335         each deallocation.
3337 2004-04-01  Paolo Carlini  <pcarlini@suse.de>
3339         * include/ext/mt_allocator.h (__mt_alloc<>::_S_initialize):
3340         Streamline the second half, wrapping it in a single
3341         '#ifdef __GTHREADS if (__gthread_active_p())' and avoiding
3342         conditionals inside loops.
3344 2004-04-01  Paolo Carlini  <pcarlini@suse.de>
3346         PR libstdc++/14775
3347         * acconfig.h: Rename _GLIBCXX_MEM_LIMITS to _GLIBCXX_RES_LIMITS.
3348         * acinclude.m4 (GLIBCXX_CHECK_SETRLIMIT): Call
3349         GLIBCXX_CHECK_SETRLIMIT_ancilliary for FSIZE too, adjust define
3350         to _GLIBCXX_RES_LIMITS.
3351         (GLIBCXX_CHECK_SETRLIMIT_ancilliary): Rename HAVE_MEMLIMIT_* to
3352         HAVE_LIMIT_*.
3353         * testsuite/testsuite_hooks.h: Declare set_file_limit.
3354         * testsuite/testsuite_hooks.cc: Define it, using getrlimit
3355         and setrlimit(RLIMIT_FSIZE).
3356         * testsuite/27_io/fpos/14775.cc: New.
3357         * config.h.in: Regenerate.
3358         * configure: Likewise.
3360 2004-03-31  Paolo Carlini  <pcarlini@suse.de>
3362         * config/locale/generic/c_locale.cc (__convert_to_v(long double&)):
3363         In v3 uses of sscanf, the special floating-point numbers INF,
3364         INFINITY, etc., cannot occur in input, therefore, if the latter
3365         is too large, ERANGE is always stored in errno, no need of finitel.
3367 2004-03-30  Benjamin Kosnik  <bkoz@redhat.com>
3369         PR libstdc++/14783
3370         * include/bits/stl_tree.h: Adjust initialization list order.
3372 2004-03-29  Loren J. Rittle  <ljrittle@acm.org>
3374         * testsuite/thread/pthread7-rope.cc: Update comment to reflect test.
3376 2004-03-29  Paolo Carlini  <pcarlini@suse.de>
3378         * testsuite/thread/pthread7-rope.cc: Fix, unpredictably, depending
3379         on allocator behavior, the memory pointed by data2 may well be not
3380         trashed.
3382 2004-03-28  Chavdar Botev  <cbotev@yahoo.com>
3384         PR libstdc++/14245
3385         * include/bits/basic_string.tcc
3386         (basic_string::basic_string(const basic_string&)): Pass to
3387         _Rep::_M_grab the actual allocator of the string being constructed
3388         not the default constructed one.
3390 2004-03-27  Benjamin Kosnik  <bkoz@redhat.com>
3392         libstdc++ PR/13598
3393         * config/locale/ieee_1003.1-2001/codecvt_specializations.h
3394         (__enc_traits::_M_destroy): New.
3395         (__enc_traits::~__enc_traits): Use it.
3396         (__enc_traits::operator=): Use _M_destroy, _M_init.
3397         (__enc_traits::__enc_traits): Same.
3399 2004-03-27  Petur Runolfsson  <peturr02@ru.is>
3401         * testsuite/ext/enc_filebuf/char/13598.cc: New.
3403 2004-03-27  Paolo Carlini  <pcarlini@suse.de>
3405         * include/ext/mt_allocator.h: Uglify consistently names of
3406         variables, members and classes; tidy.
3408 2004-03-27  Dhruv Matani  <dhruvbird@gmx.net>
3410         * include/ext/mt_allocator.h (__mt_alloc<>::deallocate):
3411         Deallocation loop rewrote.
3413 2004-03-26  Paolo Carlini  <pcarlini@suse.de>
3415         * include/ext/mt_allocator.h (__mt_alloc<>::allocate,
3416         __mt_alloc<>::deallocate): Protect two instances of
3417         block->thread_id with __GTHREADS.
3419 2004-03-25  Gawain Bolton  <gp.bolton@computer.org>
3421         * include/bits/stl_tree.h (_Rb_tree_impl): Add _Node_allocator
3422         default argument in constructors.
3423         (_Rb_tree::_M_empty_initialize): Remove.
3425 2004-03-25  Benjamin Kosnik  <bkoz@redhat.com>
3427         * testsuite/23_containers/map/operators/1_neg.cc: Adjust line numbers.
3428         * testsuite/23_containers/set/operators/1_neg.cc: Same.
3430 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
3432         * include/bits/cpp_type_traits.h: Changed __is_pod
3433         completely. Now, it does not use any of the previous type_traits
3434         to detect the pod types, and it also detects function pointers as
3435         POD types.
3437         * include/bits/stl_tree.h: Introduced a new class _Rb_tree_impl,
3438         which encapsulates the internal implementation of an rb_tree. Made
3439         the allocator a base class of this class instead of the rb_tree,
3440         which was not conforming. This _Rb_tree_impl class is also
3441         specialized on whether the _Compare parameter is a POD type or
3442         not. If so, then it maintains the comparison function as a data
3443         member, otherwise it makes the _Compare parameter a base class of
3444         itself. Also, _M_key_compare is now a function instead of a data
3445         member, so that the above trick can work properly. Delegated the
3446         initialization of the other data members to this newly created
3447         class. Also, now other member functions of rb_tree must refer to
3448         _M_key_compare as _M_impl._M_key_compare(). The other data members
3449         (*) can be referenced to as _M_impl.(*), where
3450         (*) includes _M_header, and _M_node_count.
3452 2004-03-25  Paolo Carlini  <pcarlini@suse.de>
3454         * include/ext/mt_allocator.h (__mt_alloc<>::tune):
3455         Add _M_min_bin, the size in bytes of the smallest bin.
3456         (__mt_alloc<>::tune()): Tweak accordingly.
3457         (__mt_alloc<>::tune(size_t, ...)): Likewise.
3458         (__mt_alloc<>::block_record): Change to a union: members next
3459         and thread_id are never used at the same time.
3460         (__mt_alloc<>::allocate): Update consistently.
3461         (__mt_alloc<>::deallocate): Likewise.
3462         (__mt_alloc<>::_S_initialize): Update setups of _S_binmap and
3463         _S_bin_size for the configurable _M_min_size.
3465 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
3467         * include/bits/stl_list.h: Created a _List_impl class and made it
3468         derive from the allocator, instead of the list deriving from the
3469         allocator class, which was not conformant. Changed all references
3470         from this->_M_node to this->_M_impl._M_node * bits/list.tcc: Same
3471         as above (changed all references to the concerned variables).
3473 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
3475         * include/bits/stl_deque.h: Created a _Deque_impl class and made
3476         it derive from the allocator, instead of the deque deriving from
3477         the allocator class, which was not conformant. Changed all
3478         references to the _M_start, _M_finish, _M_map, and _M_map_size to
3479         _M_impl.*.
3480         (_Deque_base<_Tp,_Alloc>::~_Deque_base()): Added this->
3481         qualification in 2 places where it was missing.
3482         (_Deque_base<_Tp,_Alloc>::_M_initialize_map(size_t)): Same as
3483         above.
3484         * include/bits/deque.tcc: Same as above (changed all references to
3485         the concerned variables).
3487 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
3489         * include/bits/stl_vector.h: Created a _Vector_impl class and made
3490         it derive from the allocator, instead of the _Vector_base class,
3491         deriving from the allocator which was not conformant. Changed all
3492         references to the _M_start, _M_finish, and _M_end_of_storage to
3493         _M_impl.*.
3494         * include/bits/vector.tcc: Same as above (changed all references
3495         to the concerned variables).
3497 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
3499         * testsuite/23_containers/deque/cons/clear_allocator.cc: New.
3500         * testsuite/23_containers/list/cons/clear_allocator.cc: New.
3501         * testsuite/23_containers/vector/cons/clear_allocator.cc: New.
3503 2004-03-24  Dhruv Matani  <dhruvbird@gmx.net>
3505         * include/ext/malloc_allocator.h: Fixed the construct function to
3506         call global placement new instead of assignment. Added a check
3507         after the return from malloc to check whether returned pointer is
3508         NULL, and if so, throw std::bad_alloc().
3509         * include/ext/debug_allocator.h: Added a check in the deallocate
3510         function to check whether the user has passed a NULL pointer or
3511         not.
3513 2004-03-24  Benjamin Kosnik  <bkoz@redhat.com>
3515         * docs/html/20_util/allocator.html: Add bitmap_allocator links.
3517 2004-03-24  Andreas Schwab  <schwab@suse.de>
3519         * testsuite/lib/prune.exp (prune_g++_output): Ignore errata
3520         warning from IA64 assembler.
3522 2004-03-24  Dhruv Matani  <dhruvbird@gmx.net>
3524         * include/ext/bitmap_allocator.h: (_Bit_scan_forward) -> Made this
3525         function call __builtin_ctz instead of the while loop.
3526         (allocate) -> If condition has __builtin_expect.
3527         (deallocate) -> Ditto.
3528         Renamed a few left-over variables and typedefs according to the
3529         C++STYLE mentioned in the documentation.
3530         Protected calls to __gthread* by __gthread_active_p(), whose value
3531         is cached in the local variable __threads_active.
3533 2004-03-24  Felix Yen  <fwy@alumni.brown.edu>
3535         * testsuite/performance/20_util/allocator/producer_consumer.cc:
3536         Use linear algorithm for producer.
3538 2004-03-24  Paolo Carlini  <pcarlini@suse.de>
3540         * include/ext/mt_allocator.h (__mt_alloc<>::allocate,
3541         __mt_alloc<>::deallocate): Avoid redundant conditionals.
3543 2004-03-23  Benjamin Kosnik  <bkoz@redhat.com>
3545         * include/bits/locale_facets.h: Tweaks for 80 column.
3546         (__numpunct_cache::_M_cache): Move to locale_facets.tcc.
3547         (__moneypunct_cache::_M_cache): Same.
3548         (num_get): Don't inherit from __num_base.
3549         (num_put): Same.
3550         (money_get): Don't inherit from money_base.
3551         (money_put): Same.
3552         (__timepunct::_M_am_pm_format): New.
3553         (time_get::_M_extract_num): Return iterator, use ios_base as argument.
3554         (time_get::_M_extract_name): Same.
3555         (time_get::_M_extract_via_format): Same.
3556         * include/bits/locale_facets.tcc: Tweaks for 80 column.
3557         Use _M_getloc instead of getloc.
3558         * testsuite/22_locale/money_put/put/char/9780-3.cc: New.
3559         * testsuite/22_locale/num_put/put/char/9780-2.cc: New.
3560         * testsuite/22_locale/time_put/put/char/9780-1.cc: New.
3562 2004-03-22  Paolo Carlini  <pcarlini@suse.de>
3564         * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Add pool_allocator.
3565         * configure: Regenerate.
3566         * config/allocator/pool_allocator_base.h: New.
3567         * include/ext/pool_allocator.h: Convert to a standard-conforming
3568         allocator.
3569         * src/allocator.cc: Tweak instantiations.
3570         * testsuite/performance/20_util/allocator/insert.cc: Add __pool_alloc.
3571         * testsuite/performance/20_util/allocator/insert_insert.cc: Ditto.
3572         * testsuite/performance/20_util/allocator/list_sort_search.cc: Ditto.
3573         * testsuite/performance/20_util/allocator/map_mt_find.cc: Ditto.
3574         * testsuite/performance/20_util/allocator/map_thread.cc: Ditto.
3575         * testsuite/performance/20_util/allocator/producer_consumer.cc: Ditto.
3577 2004-03-22  Hans-Peter Nilsson  <hp@axis.com>
3579         * config/cpu/cris/atomicity.h (__atomic_add): Remove "static
3580         inline" and attribute-unused.  Qualify parameter __mem with
3581         "volatile".
3582         (__exchange_and_add): Ditto.  Add back memory clobber to asm.
3584 2004-03-20  Paolo Carlini  <pcarlini@suse.de>
3586         * testsuite/27_io/basic_istream/extractors_arithmetic/char/2.cc:
3587         Remove junk.
3588         * testsuite/27_io/basic_istream/extractors_arithmetic/char/3.cc:
3589         Likewise.
3590         * testsuite/27_io/basic_istream/extractors_arithmetic/char/6.cc:
3591         Likewise.
3592         * testsuite/27_io/basic_istream/extractors_arithmetic/char/7.cc:
3593         Likewise.
3594         * testsuite/27_io/basic_istream/extractors_arithmetic/char/8.cc:
3595         Likewise.
3596         * testsuite/27_io/basic_istream/extractors_arithmetic/char/9.cc:
3597         Likewise.
3598         * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
3599         Likewise.
3600         * testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc:
3601         Likewise.
3602         * testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
3603         Likewise.
3604         * testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc:
3605         Likewise.
3607 2004-03-20  Paolo Carlini  <pcarlini@suse.de>
3609         * include/std/std_valarray.h: Document DR389 [Ready].
3610         * docs/html/ext/howto.html: Add an entry for DR389.
3612 2004-03-19  Michael Eager  <eager@mvista.com>
3614         * config/cpu/mips/atomicity.h:  Prevent reg loads between LL and
3615         SC instructions.
3617 2004-03-19  Paolo Carlini  <pcarlini@suse.de>
3619         * testsuite/22_locale/num_get/get/char/11.cc: Remove redundant
3620         static_cast-s.
3621         * testsuite/22_locale/num_get/get/char/12.cc: Likewise.
3622         * testsuite/22_locale/num_get/get/char/13.cc: Likewise.
3623         * testsuite/22_locale/num_get/get/char/14.cc: Likewise.
3624         * testsuite/22_locale/num_get/get/char/15.cc: Likewise.
3625         * testsuite/22_locale/num_get/get/wchar_t/11.cc: Likewise.
3626         * testsuite/22_locale/num_get/get/wchar_t/12.cc: Likewise.
3627         * testsuite/22_locale/num_get/get/wchar_t/13.cc: Likewise.
3628         * testsuite/22_locale/num_get/get/wchar_t/14.cc: Likewise.
3629         * testsuite/22_locale/num_get/get/wchar_t/15.cc: Likewise.
3631 2004-03-19  Paolo Carlini  <pcarlini@suse.de>
3632             Petur Runolfsson  <peturr02@ru.is>
3634         PR libstdc++/12077
3635         * include/ext/stdio_sync_filebuf.h (showmanyc): Remove, there's
3636         no way to find out the conversion used by the underlying FILE*.
3637         * testsuite/ext/stdio_sync_filebuf/wchar_t/12077.cc: New.
3638         * testsuite/27_io/objects/char/9.cc: Tweak.
3640 2004-03-19  Paolo Carlini  <pcarlini@suse.de>
3642         PR libstdc++/14648
3643         * include/ext/ropeimpl.h (rope<>::_S_apply_to_pieces): Fix
3644         memory allocation/deallocation calls.
3645         * testsuite/ext/14648.cc: New.
3647 2004-03-19  Peter Schmid  <schmid@snake.iap.physik.tu-darmstadt.de>
3649         PR libstdc++/14647
3650         * include/backward/bvector.h (bit_vector): Allocator is in std
3651         namespace.
3653 2004-03-19  Phil Edwards  <phil@codesourcery.com>
3655         * acinclude.m4 (GLIBCXX_CHECK_WCHAR_T_SUPPORT):  Set LIBICONV,
3656         not libiconv.  SUBST this variable as well.
3657         * testsuite/Makefile.am (site.exp):  New target, based on that
3658         created by automake.  Also set libiconv.
3660         * configure, Makefile.in, include/Makefile.in, libmath/Makefile.in,
3661         libsupc++/Makefile.in, po/Makefile.in, src/Makefile.in,
3662         testsuite/Makefile.in:  Regenerate.
3664 2004-03-16  Benjamin Kosnik  <bkoz@redhat.com>
3666         * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Default setting is
3667         new_allocator for all hosts.
3668         * configure: Regenerate.
3670 2004-03-16  Paolo Carlini  <pcarlini@suse.de>
3672         * testsuite/22_locale/num_put/put/char/4.cc: Fix for 64-bit pointers.
3673         * testsuite/22_locale/num_put/put/wchar_t/4.cc: Likewise.
3675 2004-03-15  Paolo Carlini  <pcarlini@suse.de>
3677         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
3678         Adjust the logic underlying the parsing of symbol to deal
3679         correctly with an optional sign component (i.e., when either
3680         negative_sign or positive_sign is empty)
3681         * testsuite/22_locale/money_get/get/char/19.cc: New.
3682         * testsuite/22_locale/money_get/get/wchar_t/19.cc: New.
3684 2004-03-15  Paolo Carlini  <pcarlini@suse.de>
3686         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
3687         Do not accept an incomplete currency symbol.
3688         * testsuite/22_locale/money_get/get/char/18.cc: New.
3689         * testsuite/22_locale/money_get/get/wchar_t/18.cc: New.
3691 2004-03-13  Benjamin Kosnik  <bkoz@redhat.com>
3693         * config/allocator: New.
3694         * config/allocator/bitmap_allocator_base.h: New.
3695         * config/allocator/malloc_allocator_base.h: New.
3696         * config/allocator/mt_allocator_base.h: New.
3697         * config/allocator/new_allocator_base.h: New.
3698         * include/bits/allocator.h: Include c++allocator.h.
3699         * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): New.
3700         * aclocal.m4: Regenerate.
3701         * configure.ac: Use GLIBCXX_ENABLE_ALLOCATOR.
3702         * configure: Regenerate.
3703         * include/Makefile.am (host_headers_extra): Add c++allocator.h.
3704         * include/Makefile.in: Regenerate.
3705         * docs/html/configopts.html: Add enable-libstdcxx-allocator.
3707 2004-03-12  Benjamin Kosnik  <bkoz@redhat.com>
3709         * include/bits/allocator.h: Revert.
3711 2004-03-12  Paolo Carlini  <pcarlini@suse.de>
3713         * docs/html/ext/howto.html: Add entry for DR 253 [Ready].
3714         * include/bits/gslice_array.h: Add comment about DR 253.
3715         * include/bits/indirect_array.h: Likewise.
3716         * include/bits/mask_array.h: Likewise.
3717         * include/bits/slice_array.h: Likewise.
3719 2004-03-12  Benjamin Kosnik  <bkoz@redhat.com>
3721         * testsuite/20_util/allocator/14176.cc: New.
3722         * include/ext/mt_allocator.h: Formatting fixes.
3724 2004-03-11  Dhruv Matani  <dhruvbird@HotPOP.com>
3726         * include/Makefile.am (ext_headers): Add
3727         ${ext_srcdir}/bitmap_allocator.h .
3728         * include/Makefile.in: Regenerate.
3729         * docs/html/ext/ballocator_doc.txt: New file.
3730         * include/ext/bitmap_allocator.h: New file.
3731         * testsuite/performance/20_util/allocator/list_sort_search.cc: Add
3732         test.
3733         * testsuite/performance/20_util/allocator/map_mt_find.cc: Likewise.
3734         * testsuite/performance/20_util/allocator/producer_consumer.cc: Add
3735         test for the bitmap_allocator<>.
3736         * testsuite/performance/20_util/allocator/insert.cc: Likewise.
3737         * testsuite/performance/20_util/allocator/insert_insert.cc: Likewise.
3738         * testsuite/performance/20_util/allocator/map_thread.cc: Likewise.
3740 2004-03-11  Paolo Carlini  <pcarlini@suse.de>
3742         * include/std/std_complex.h (pow(const complex&, const _Tp&),
3743         pow(const _Tp&, const complex&), pow(const complex&,
3744         const complex&)): Fully qualify with std:: a few calls.
3745         * testsuite/26_numerics/complex/13450.cc: Minor tweak.
3747 2004-03-11  Steven Bosscher  <stevenb@suse.de>
3749         PR libstdc++/11706
3750         * include/c_std/cmath.tcc (__cmath_power): Define inline.
3752 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
3754         * configure.ac: Bump AC_PREREQ to 2.59.
3756 2004-03-10  Paolo Carlini  <pcarlini@suse.de>
3758         * testsuite/26_numerics/valarray_subset_assignment.cc: Fix typos.
3760 2004-03-10  Paul Kienzle  <pkienzle@nist.gov>
3761             Paolo Carlini  <pcarlini@suse.de>
3763         PR libstdc++/13450
3764         * include/std/std_complex.h (pow(const complex&, const _Tp&),
3765         pow(const _Tp&, const complex&)): Use cmath pow only when safe.
3766         * testsuite/26_numerics/complex/13450.cc: New.
3768         * testsuite/26_numerics/cmath/overloads.C: Rename to overloads.cc.
3769         * testsuite/26_numerics/complex/pow.C: Rename to pow.cc and fix.
3771 2004-03-10  Jerry Quinn  <jlquinn@optonline.net>
3773         PR libstdc++/3247
3774         * include/bits/gslice_array.h (gslice_array()): Make public.
3775         (operator=(gslice_array)): Make public.  Implement.
3776         * include/bits/indirect_array.h (indirect_array()): Make public.
3777         * include/bits/mask_array.h (mask_array()): Make public.
3778         (operator=(mask_array)): Make public.  Implement.
3779         * include/bits/valarray_array.tcc (__valarray_copy):
3780         Comment.  Add versions for gslice_array and mask_array.
3781         * testsuite/26_numerics/valarray_subset_assignment.cc:  New test.
3783 2004-03-09  Benjamin Kosnik  <bkoz@redhat.com>
3785         * testsuite/23_containers/deque/modifiers/swap.cc: Add in bits for
3786         non-weak systems.
3787         * testsuite/23_containers/vector/modifiers/swap.cc: Same.
3788         * testsuite/23_containers/set/modifiers/swap.cc: Same.
3789         * testsuite/23_containers/multiset/modifiers/swap.cc: Same.
3790         * testsuite/23_containers/multimap/modifiers/swap.cc: Same.
3791         * testsuite/23_containers/map/modifiers/swap.cc: Same.
3792         * testsuite/23_containers/list/modifiers/swap.cc: Same.
3794         * testsuite/22_locale/locale/cons/12658_thread.cc: Catch exceptions.
3796 2004-03-08  Benjamin Kosnik  <bkoz@redhat.com>
3798         PR c++/13658
3799         * testsuite/23_containers/deque/modifiers/swap.cc: New.
3800         * testsuite/23_containers/list/modifiers/swap.cc: New.
3801         * testsuite/23_containers/map/modifiers/swap.cc: New.
3802         * testsuite/23_containers/multimap/modifiers/swap.cc: New.
3803         * testsuite/23_containers/multiset/modifiers/swap.cc: New.
3804         * testsuite/23_containers/set/modifiers/swap.cc: New.
3805         * testsuite/23_containers/vector/modifiers/swap.cc: New.
3807 2004-03-08  Petur Runolfsson  <peturr02@ru.is>
3809         PR libstdc++/12658
3810         * testsuite/22_locale/locale/cons/12658_thread.cc: New.
3812 2004-03-08  Paolo Carlini  <pcarlini@suse.de>
3814         * docs/html/ext/howto.html: Add entry for DR 103 [WP].
3815         * include/bits/stl_multiset.h: Add comment about DR 103.
3816         * include/bits/stl_set.h: Likewise.
3818 2004-03-08  Paolo Carlini  <pcarlini@suse.de>
3820         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
3821         The value _space_ indicates that at least one space is required
3822         at that position.
3823         * testsuite/22_locale/money_get/get/char/17.cc: New.
3824         * testsuite/22_locale/money_get/get/wchar_t/17.cc: New.
3826         * testsuite/22_locale/money_get/get/char/7.cc: Minor tweaks.
3827         * testsuite/22_locale/money_get/get/wchar_t/7.cc: Likewise.
3829         * include/bits/locale_facets.tcc (money_get<>::do_get(long_double&)):
3830         Remove redundant conditional on __str.size().
3832 2004-03-08  Benjamin Kosnik  <bkoz@redhat.com>
3834         * include/bits/allocator.h: Switch defaults to mt_alloc.
3836 2004-03-06  Benjamin Kosnik  <bkoz@redhat.com>
3838         * include/ext/mt_allocator.h (_S_initialize): If
3839         !__GTHREAD_MUTEX_INIT, then initialize _S_thread_freelist_mutex.
3841 2004-03-06  Benjamin Kosnik  <bkoz@redhat.com>
3843         PR libstdc++/12658
3844         * src/locale_init.cc (locale::locale): Lock critical regions with
3845         external mutexes.
3846         (locale::global): Same.
3847         * include/bits/concurrence.h (__glibcxx_mutex_define_initialized):
3848         Add in once bits for cases without __GTHREAD_MUTEX_INIT.
3849         (__glibcxx_mutex_lock): Same.
3851         * config/cpu/generic/atomicity.h: Remove
3852         _GLIBCXX_NEED_GENERIC_MUTEX, use concurrence.h.
3853         * src/misc-inst.cc: Move all locking bits out of this file.
3855         * config/os/hpux/os_defines.h: Remove _GLIBCXX_INST_ATOMICITY_LOCK.
3856         * src/misc-inst.cc: Same.
3857         * config/cpu/hppa/atomicity.h: Same.
3859         * config/linker-map.gnu: Remove types in the signature of atomic
3860         exports, as they may vary.
3862 2004-03-06  Paolo Carlini  <pcarlini@suse.de>
3864         * include/bits/locale_facets.tcc: Tweak the comment preceding
3865         has_facet: doesn't throw.
3867 2004-03-06  Paolo Carlini  <pcarlini@suse.de>
3869         * testsuite/22_locale/money_get/get/char/1.cc: Clean up.
3870         * testsuite/22_locale/money_get/get/char/2.cc: Likewise.
3871         * testsuite/22_locale/money_get/get/char/3.cc: Likewise.
3872         * testsuite/22_locale/money_get/get/char/4.cc: Likewise.
3873         * testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise.
3874         * testsuite/22_locale/money_get/get/wchar_t/2.cc: Likewise.
3875         * testsuite/22_locale/money_get/get/wchar_t/3.cc: Likewise.
3876         * testsuite/22_locale/money_get/get/wchar_t/4.cc: Likewise.
3878 2004-03-06  Paolo Carlini  <pcarlini@suse.de>
3880         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
3881         num_get<>::_M_extract_int, num_get<>::do_get(bool&),
3882         __pad<>::_S_pad): Prefer plain operator== to traits::eq().
3883         * testsuite/testsuite_character.h (struct __gnu_test::character):
3884         Provide operator==.
3885         * testsuite/testsuite_hooks.h (struct __gnu_test::pod_char):
3886         Likewise.
3888 2004-03-05  Paolo Carlini  <pcarlini@suse.de>
3890         * testsuite/27_io/fpos/14320-2.cc: Remove xfail.
3892 2004-03-04  Benjamin Kosnik  <bkoz@redhat.com>
3894         * testsuite/23_containers/multiset/insert/1.cc: Test result string.
3896         * testsuite/23_containers/bitset/invalidation/1.cc: Main always
3897         returns 0.
3898         * testsuite/23_containers/deque/invalidation/4.cc: Same.
3899         * testsuite/23_containers/list/invalidation/1.cc: Same.
3900         * testsuite/23_containers/list/invalidation/2.cc: Same.
3901         * testsuite/23_containers/list/invalidation/3.cc: Same.
3902         * testsuite/23_containers/list/invalidation/4.cc: Same.
3903         * testsuite/23_containers/map/invalidation/2.cc: Same.
3904         * testsuite/23_containers/multimap/invalidation/1.cc: Same.
3905         * testsuite/23_containers/multimap/invalidation/2.cc: Same.
3906         * testsuite/23_containers/multiset/invalidation/1.cc: Same.
3907         * testsuite/23_containers/multiset/invalidation/2.cc: Same.
3908         * testsuite/23_containers/set/invalidation/1.cc: Same.
3909         * testsuite/23_containers/set/invalidation/2.cc: Same.
3910         * testsuite/23_containers/vector/invalidation/1.cc: Same.
3911         * testsuite/23_containers/vector/invalidation/2.cc: Same.
3912         * testsuite/23_containers/vector/invalidation/3.cc: Same.
3913         * testsuite/23_containers/vector/invalidation/4.cc: Same.
3915 2004-03-04  Paolo Carlini  <pcarlini@suse.de>
3917         * scripts/testsuite_flags.in: Add "-D_GLIBCXX_ASSERT" to
3918         CXXFLAGS_save.
3919         * testsuite/lib/libstdc++.exp: Don't add it conditionally to
3920         DEFAULT_CXXFLAGS.
3921         * testsuite/18_support/numeric_limits.cc: Remove "-D_GLIBCXX_ASSERT"
3922         from the dg-options.
3923         * testsuite/23_containers/vector/invalidation/1.cc: Likewise.
3924         * testsuite/23_containers/vector/invalidation/2.cc: Likewise.
3925         * testsuite/23_containers/vector/invalidation/3.cc: Likewise.
3926         * testsuite/23_containers/vector/invalidation/4.cc: Likewise.
3927         * testsuite/23_containers/vector/resize/1.cc: Likewise.
3928         * testsuite/26_numerics/complex_value.cc: Likewise.
3929         * testsuite/27_io/ios_base/storage/1.cc: Likewise.
3930         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
3931         * testsuite/27_io/ios_base/storage/3.cc: Likewise.
3932         * testsuite/27_io/manipulators/standard/char/2.cc: Likewise.
3933         * testsuite/27_io/objects/char/5.cc: Likewise.
3934         * testsuite/27_io/objects/wchar_t/5.cc: Likewise.
3935         * testsuite/backward/11460.cc: Likewise.
3936         * testsuite/thread/pthread7-rope.cc: Likewise.
3938         * testsuite/21_strings/basic_string/compare/char/1.cc: Add
3939         missing test variable.
3940         * testsuite/21_strings/basic_string/compare/wchar_t/1.cc: Add
3941         missing test variable.
3943 2004-03-04  Benjamin Kosnik  <bkoz@redhat.com>
3945         * testsuite/20_util/allocator/1.cc: Provide explicit
3946         instantiations for non-weak systems.
3947         * testsuite/20_util/binders.cc: Same.
3948         * testsuite/20_util/allocator/8230.cc: Same.
3949         * testsuite/20_util/allocator/10378.cc: Same.
3950         * testsuite/22_locale/ctype/is/wchar_t/2.cc: Same.
3951         * testsuite/22_locale/ctype/is/char/2.cc: Same.
3952         * testsuite/thread/pthread7-rope.cc: Same.
3953         * testsuite/thread/pthread6.cc: Same.
3954         * testsuite/thread/pthread5.cc: Same.
3955         * testsuite/thread/pthread4.cc: Same.
3956         * testsuite/thread/pthread1.cc: Same.
3957         * testsuite/ext/rope.cc: Same.
3958         * testsuite/ext/hash_set.cc: Same.
3959         * testsuite/ext/hash_map.cc: Same.
3960         * testsuite/ext/concept_checks.cc: Same.
3961         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc: Same.
3962         * testsuite/25_algorithms/unique/2.cc: Same.
3963         * testsuite/25_algorithms/unique/1.cc: Same.
3964         * testsuite/25_algorithms/rotate.cc: Same.
3965         * testsuite/25_algorithms/min_max.cc: Same.
3966         * testsuite/25_algorithms/equal.cc: Same.
3967         * testsuite/24_iterators/rel_ops.cc: Same.
3968         * testsuite/24_iterators/iterator.cc: Same.
3969         * testsuite/24_iterators/insert_iterator.cc: Same.
3970         * testsuite/24_iterators/front_insert_iterator.cc: Same.
3971         * testsuite/24_iterators/back_insert_iterator.cc: Same.
3972         * testsuite/23_containers/vector/resize/1.cc: Same.
3973         * testsuite/23_containers/vector/modifiers/2.cc: Same.
3974         * testsuite/23_containers/vector/modifiers/1.cc: Same.
3975         * testsuite/23_containers/vector/invalidation/4.cc: Same.
3976         * testsuite/23_containers/vector/invalidation/3.cc: Same.
3977         * testsuite/23_containers/vector/invalidation/2.cc: Same.
3978         * testsuite/23_containers/vector/invalidation/1.cc: Same.
3979         * testsuite/23_containers/vector/element_access/1.cc: Same.
3980         * testsuite/23_containers/vector/cons/6513.cc: Same.
3981         * testsuite/23_containers/vector/cons/3.cc: Same.
3982         * testsuite/23_containers/vector/cons/2.cc: Same.
3983         * testsuite/23_containers/vector/cons/1.cc: Same.
3984         * testsuite/23_containers/vector/capacity/8230.cc: Same.
3985         * testsuite/23_containers/vector/capacity/1.cc: Same.
3986         * testsuite/23_containers/vector/bool/6886.cc: Same.
3987         * testsuite/23_containers/stack/members/7158.cc: Same.
3988         * testsuite/23_containers/set/invalidation/2.cc: Same.
3989         * testsuite/23_containers/set/invalidation/1.cc: Same.
3990         * testsuite/23_containers/queue/members/7157.cc: Same.
3991         * testsuite/23_containers/priority_queue/members/7161.cc: Same.
3992         * testsuite/23_containers/multiset/invalidation/2.cc: Same.
3993         * testsuite/23_containers/multiset/invalidation/2.cc: Same.
3994         * testsuite/23_containers/multiset/insert/1.cc: Same.
3995         * testsuite/23_containers/multimap/invalidation/2.cc: Same.
3996         * testsuite/23_containers/multimap/invalidation/2.cc: Same.
3997         * testsuite/23_containers/map/operators/1.cc: Same.
3998         * testsuite/23_containers/map/invalidation/2.cc: Same.
3999         * testsuite/23_containers/map/invalidation/1.cc: Same.
4000         * testsuite/23_containers/map/insert/1.cc: Same.
4001         * testsuite/23_containers/list/operators/4.cc: Same.
4002         * testsuite/23_containers/list/operators/3.cc: Same.
4003         * testsuite/23_containers/list/operators/2.cc: Same.
4004         * testsuite/23_containers/list/operators/1.cc: Same.
4005         * testsuite/23_containers/list/modifiers/3.cc: Same.
4006         * testsuite/23_containers/list/modifiers/2.cc: Same.
4007         * testsuite/23_containers/list/modifiers/1.cc: Same.
4008         * testsuite/23_containers/list/invalidation/4.cc: Same.
4009         * testsuite/23_containers/list/invalidation/3.cc: Same.
4010         * testsuite/23_containers/list/invalidation/2.cc: Same.
4011         * testsuite/23_containers/list/invalidation/1.cc: Same.
4012         * testsuite/23_containers/list/cons/9.cc: Same.
4013         * testsuite/23_containers/list/cons/8.cc: Same.
4014         * testsuite/23_containers/list/cons/7.cc: Same.
4015         * testsuite/23_containers/list/cons/6.cc: Same.
4016         * testsuite/23_containers/list/cons/5.cc: Same.
4017         * testsuite/23_containers/list/cons/4.cc: Same.
4018         * testsuite/23_containers/list/cons/3.cc: Same.
4019         * testsuite/23_containers/list/cons/2.cc: Same.
4020         * testsuite/23_containers/list/cons/1.cc: Same.
4021         * testsuite/23_containers/list/capacity/1.cc: Same.
4022         * testsuite/23_containers/deque/operators/1.cc: Same.
4023         * testsuite/23_containers/deque/invalidation/4.cc: Same.
4024         * testsuite/23_containers/deque/invalidation/3.cc: Same.
4025         * testsuite/23_containers/deque/invalidation/2.cc: Same.
4026         * testsuite/23_containers/deque/invalidation/1.cc: Same.
4027         * testsuite/23_containers/deque/cons/2.cc: Same.
4028         * testsuite/23_containers/deque/cons/1.cc: Same.
4030         * src/allocator.cc: Add char, wchar_t instantiations
4031         to match extern template declarations in memory.h.
4033 2004-03-03  Paolo Carlini  <pcarlini@suse.de>
4035         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
4036         Fix warning regression.
4038 2004-03-03  Paolo Carlini  <pcarlini@suse.de>
4040         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
4041         Deal properly with empty __digits and negative frac_digits,
4042         clean-up a bit.
4044 2004-03-03  Jonathan Wakely  <redi@gcc.gnu.org>
4046         * docs/html/documentation.html: Regenerate.
4048 2004-03-02  Paolo Carlini  <pcarlini@suse.de>
4050         PR libstdc++/14320
4051         * include/bits/postypes.h (class streamoff): Remove, now
4052         streamoff is just typedef a 64 bit signed integer type.
4053         (class fpos): Tweak consistently.
4054         * testsuite/27_io/fpos/14320-1.cc: New.
4055         * testsuite/27_io/fpos/14320-2.cc: New.
4056         * testsuite/27_io/fpos/14320-3.cc: New.
4057         * testsuite/27_io/fpos/14320-4.cc: New.
4058         * testsuite/27_io/fpos/14320-5.cc: New.
4059         * testsuite/27_io/fpos/mbstate_t/4_neg.cc: xfail for now.
4061 2004-03-02  Paolo Carlini  <pcarlini@suse.de>
4063         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
4064         Reorganize a bit the main parsing loop, thus early detecting
4065         an empty value component.
4066         * testsuite/22_locale/money_get/get/char/16.cc: New.
4067         * testsuite/22_locale/money_get/get/wchar_t/16.cc: New.
4069 2004-03-02  Benjamin Kosnik  <bkoz@redhat.com>
4071         Support automake 1.8.2
4072         * configure.ac (AM_INIT_AUTOMAKE): Add -Wno-override.
4073         * po/Makefile.am (EXTRA_DIST): New.
4074         * po/Makefile.in: Regenerate.
4075         * Makefile.in: Same.
4076         * include/Makefile.in: Same.
4077         * libmath/Makefile.in: Same.
4078         * libsupc++/Makefile.in: Same.
4079         * src/Makefile.in: Same.
4080         * testsuite/Makefile.in: Same.
4082         * include/Makefile.am (${host_builddir}/gthr-posix.h): Use
4083         __GXX_WEAK__ instead of SUPPORTS_WEAK.
4084         (${host_builddir}/gthr-default.h): Same.
4085         (${host_builddir}/gthr.h): Same.
4086         * acinclude.m4 (GLIBCXX_ENABLE_THREAD): Remove
4087         _GLIBCXX_SUPPORTS_WEAK, as this behavior can be modified via
4088         -fno-weak.
4089         * aclocal.m4: Regenerate.
4090         * acconfig.h: Remove _GLIBCXX_SUPPORTS_WEAK.
4091         * config.h.in: Regenerate.
4092         * configure: Same.
4094 2004-03-01  Benjamin Kosnik  <bkoz@redhat.com>
4096         Support autoconf 2.59
4097         * acinclude.m4: Quote correctly.
4098         * aclocal.m4: Regenerate.
4099         * linkage.m4: Same.
4101 2004-03-01  Benjamin Kosnik  <bkoz@redhat.com>
4103         * docs/html/test.html: Add multilib RUNTESTFLAGS example.
4105         * docs/html/18_support/howto.html: Add bit about writing to
4106         stderr, mostly by Zack.
4108 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
4110         * include/bits/locale_facets.tcc (money_get<>::_M_extract,
4111         money_get<>::do_get(string_type&)): ... and two more.
4113 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
4115         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
4116         Fix thinkos in the switch from string_type& to string& as last
4117         argument.
4119 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
4121         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float):
4122         Also when parsing exponent sign, first look for thousands_sep
4123         and decimal_point; tweak a bit.
4124         * testsuite/22_locale/num_get/get/char/15.cc: New.
4125         * testsuite/22_locale/num_get/get/wchar_t/15.cc: New.
4127         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
4128         num_get<>::_M_extract_int): Reorder some conditionals.
4130 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
4132         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
4133         Consistently with numpunct, enforce the requirements in
4134         22.2.6.3, p3 for the thousands separators; tweak a bit.
4135         * testsuite/22_locale/money_get/get/char/15.cc: New.
4136         * testsuite/22_locale/money_get/get/wchar_t/15.cc: New.
4138 2004-03-01  David Billinghurst <David.Billinghurst@riotinto.com>
4140         * testsuite/lib/libstdc++.exp (v3-list-tests): Use
4141         testsuite_files from correct multilib blddir when running
4142         testsuite.
4144 2004-02-29  Phil Edwards  <phil@codesourcery.com>
4146         * testsuite/Makefile.am (check-abi, check-abi-verbose):  Copy
4147         the summary file to the logfile.
4148         * testsuite/Makefile.in:  Regenerate.
4150 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4152         * config/cpu/hppa/atomicity.h (__atomic_add): Make first argument
4153         volatile.
4154         * config/os/hpux/os_defines.h (_GLIBCXX_INST_ATOMICITY_LOCK): Use
4155         __GXX_WEAK__ instead of _GLIBCXX_SUPPORTS_WEAK.
4157 2004-02-28  Paolo Carlini  <pcarlini@suse.de>
4159         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float):
4160         According to 22.2.3.1, p2, 'units' may be followed by 'e' with
4161         no 'decimal-point' in the middle: in this case too we must fix
4162         up __found_grouping; slightly tweak.
4163         * testsuite/22_locale/num_get/get/char/14.cc: New.
4164         * testsuite/22_locale/num_get/get/wchar_t/14.cc: New.
4166 2004-02-27  Eric Christopher  <echristo@redhat.com>
4167             Phil Edwards  <phil@codesourcery.com>
4169         * testsuite/22_locale/collate/compare/wchar_t/2.cc,
4170         testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc,
4171         testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc,
4172         testsuite/22_locale/collate/hash/wchar_t/2.cc,
4173         testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc,
4174         testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc,
4175         testsuite/22_locale/collate/transform/wchar_t/2.cc,
4176         testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc,
4177         testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc:
4178         Use dg-require-iconv.
4179         * testsuite/lib/libstdc++.exp:  Load target-supports.exp.
4181 2004-02-27  Phil Edwards  <phil@codesourcery.com>
4182             Eric Christopher  <echristo@redhat.com>
4184         * testsuite/config/default.exp:  Update with comments.
4185         (${tool}_target_compile):  New wrapper routine.
4186         * testsuite/lib/dg-options.exp:  New file, with dg-require-iconv.
4187         * testsuite/lib/libstdc++.exp:  Update with comments and cosmetic
4188         fixes.
4189         (load_gcc_lib, v3track):  New routines.
4190         (v3-init):  Rename to libstdc++_init.
4191         * testsuite/libstdc++-dg/normal.exp:  No longer call v3-init.
4192         Move DEFAULT_CXXFLAGS handling into libstdc++_init.
4194 2004-02-27  Benjamin Kosnik  <bkoz@redhat.com>
4196         * config/cpu/hppa/atomicity.h: Include c++config.h to get defines.
4198         * src/misc-inst.cc (_S_atomicity_lock): Move to __gnu_cxx.
4200         * config/os/irix/irix5.2/atomicity.h: Merge..
4201         * config/os/irix/irix6.5/atomicity.h: Merge..
4202         * config/os/irix/atomicity.h: ...into this.
4203         * config/os/irix/atomic_word.h: New.
4204         * configure.host: Set atomic_word_dir for irix.
4206         * hppa/atomicity.h: Change __Atomicity_lock to _Atomicity_lock.
4207         * i386/atomicity.h: Same.
4208         * m68k/atomicity.h: Same.
4209         * sparc/atomicity.h: Same.
4211 2004-02-27  David Edelsohn  <edelsohn@gnu.org>
4213         * config/os/aix/atomicity.h: Use __gnu_cxx namespace. Remove
4214         static, and inline keywords.
4216 2004-02-27  Paolo Carlini  <pcarlini@suse.de>
4218         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
4219         num_get<>::_M_extract_int, money_get<>::_M_extract): If appropriate,
4220         call reserve on the __tmp_gruping string.
4221         (num_get<>::_M_extract_float): Don't append unnecessarily a
4222         char() to the returned string.
4223         * include/bits/locale_facets.tcc: Trivial reformattings.
4225 2004-02-27  Paolo Carlini  <pcarlini@suse.de>
4227         * include/bits/locale_facets.h (money_get<>::_M_extract):
4228         Change signature: now takes a plain string&.
4229         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
4230         Update consistently the definition; use the moneypunct cache
4231         to parse the value; use swap to change __units.
4232         (money_get<>::do_get(long double&)): Update call of _M_extract,
4233         avoid ctype::narrow, not correct wrt the standard.
4234         (money_get<>::do_get(string_type&)): Likewise, update call
4235         of _M_extract, use ctype::widen.
4236         * src/locale-inst.cc: Tweak instantiations of _M_extract.
4238 2004-02-26  Ian Lance Taylor  <ian@wasabisystems.com>
4240         * testsuite/demangle/abi_examples/01.cc: Expect error -2.
4241         * testsuite/demangle/abi_examples/02.cc: Likewise.
4242         * testsuite/demangle/regression/cw-11.cc: Likewise.
4243         * testsuite/demangle/regression/cw-16.cc: Change two expected
4244         results to match libiberty demangler output.
4246 2004-02-26  Benjamin Kosnik  <bkoz@redhat.com>
4248         PR libstdc++/10246
4249         * libsupc++/Makefile.am: Use libiberty demangler.
4250         (c_sources): Add cp-demangle.c.
4251         * libsupc++/Makefile.in: Regenerate.
4252         * src/Makefile.am (sources): Remove demangle.cc.
4253         * src/Makefile.in: Regenerate.
4254         * include/Makefile.am (bits_headers): Move demangle.h.
4255         (ext_headers): ...here.
4256         * include/Makefile.in: Regenerate.
4257         * include/bits/demangle.h: Move...
4258         * include/ext/demangle.h: ...here.
4259         * src/demangle.cc: Remove.
4261 2004-02-26  Benjamin Kosnik  <bkoz@redhat.com>
4263         * include/bits/demangle.h: Add type template parameter to all
4264         templates with just an Allocator template parameter.
4266 2004-02-25  Benjamin Kosnik  <bkoz@redhat.com>
4268         * include/bits/atomicity.h: New, forward declarations for __atomic_add
4269         and __exchange_and_add.
4270         * config/cpu/generic/atomic_word.h: New, typdef for atomic word.
4271         * config/cpu/cris/atomic_word.h: Same.
4272         * config/cpu/sparc/atomic_word.h: Same.
4273         * include/bits/ios_base.h (_Callback_list::_M_remove_reference):
4274         Qualifiy with __gnu_cxx.
4275         (_Callback_list::_M_add_reference): Same.
4276         * include/bits/locale_classes.h (locale::facet::_M_add_reference): Add.
4277         (locale::facet::_M_remove_reference): Same.
4278         (locale::_Impl::_M_add_reference): Add.
4279         (locale::_Impl::_M_remove_reference): Same.
4280         * include/bits/basic_string.h (basic_string::_Rep::_M_refcopy): Same.
4281         (basic_string::_Rep::_M_dispose): Same.
4282         * src/ios.cc (ios_base::xalloc): Same.
4283         * src/ios_init.cc (ios_base::Init::Init): Same.
4284         (ios_base::Init::~Init): Same.
4285         * src/locale.cc (locale::id::_M_id): Same.
4286         * config/cpu/i486/atomicity.h: Use __gnu_cxx namespace. Remove
4287         static, and inline keywords.
4288         * config/cpu/alpha/atomicity.h: Same.
4289         * config/cpu/cris/atomicity.h: Same.
4290         * config/cpu/generic/atomicity.h: Same.
4291         * config/cpu/hppa/atomicity.h: Same.
4292         * config/cpu/i386/atomicity.h: Same.
4293         * config/cpu/ia64/atomicity.h: Same.
4294         * config/cpu/m68k/atomicity.h: Same.
4295         * config/cpu/mips/atomicity.h: Same.
4296         * config/cpu/powerpc/atomicity.h: Same.
4297         * config/cpu/s390/atomicity.h: Same.
4298         * config/cpu/sparc/atomicity.h: Same.
4300         * src/Makefile.am (host_sources): Add atomicity.cc.
4301         (atomicity.cc): New rule.
4302         * src/Makefile.in: Regenerate.
4303         * include/Makefile.am (host_headers): Remove host atomicity.h.
4304         (host_headers): Add atomic_word.h.
4305         (bits_headers): Add bits atomicity.h.
4306         Change ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR.
4307         * include/Makefile.in: Regenerate.
4308         * configure.host (atomic_word_dir): Add.
4309         * configure.ac: Substitute ATOMIC_WORD_SRCDIR. Change
4310         ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR.
4311         * configure: Regenerate.
4312         * config/linker-map.gnu: Export __exchange_and_add, and __atomic_add.
4314         * testsuite/27_io/ios_base/cons/assign_neg.cc: Adjust line numbers.
4315         * testsuite/27_io/ios_base/cons/copy_neg.cc: Same.
4317 2004-02-25  Jonathan Wakely  <redi@gcc.gnu.org>
4319         * docs/html/20_util/howto.html, docs/html/20_util/allocator.html,
4320         docs/html/ext/howto.html, docs/html/ext/mt_allocator.html:
4321         Fix markup, more <link> tags.
4323 2004-02-25  Carlo Wood  <carlo@alinoe.com>
4325         * bits/demangle.h
4326         namespace __gnu_cxx::demangler
4327         (session<Allocator>::qualifier_list_Allocator): Add
4328         (session<Allocator>::M_qualifier_list_alloc): Add
4329         (session<Allocator>::decode_type_with_postfix):
4330         Use M_qualifier_list_alloc instead of calling operator new/delete.
4332 2004-02-24  Paolo Carlini  <pcarlini@suse.de>
4334         PR libstdc++/14252
4335         * include/bits/postypes.h (class streamoff): Add operator++(),
4336         operator++(int), operator--() and operator--(int).
4337         * testsuite/27_io/fpos/14252.cc: New.
4339 2004-02-24  Richard Sandiford  <rsandifo@redhat.com>
4341         * include/bits/locale_facets.tcc (num_get::_M_extract_int): Fix bounds
4342         error in handling of hex constants.
4344 2004-02-24  Paolo Carlini  <pcarlini@suse.de>
4346         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
4347         Prefer basic_string::append to operator+= and a temporary.
4349 2004-02-23  Benjamin Kosnik  <bkoz@redhat.com>
4351         * libsupc++/vterminate.cc (__gnu_cxx::__verbose_terminate_handler):
4352         Only use fputs, not write.
4354 2004-02-23  Benjamin Kosnik  <bkoz@redhat.com>
4356         * include/ext/malloc_allocator.h: Add operators ==, !=.
4357         * include/ext/new_allocator.h: Add operators ==, !=.
4358         * include/ext/mt_allocator.h (__mt_alloc::tune): New.
4359         (__mt_alloc::_S_get_options): New.
4360         (__mt_alloc::_S_set_options): New.
4361         (__mt_alloc::_S_thread_key_destr): To _S_destroy_thread_key.
4362         (__mt_alloc::_S_no_of_bins): To _S_bin_size.
4363         Move functions out of line, simplify, format.
4364         * src/allocator.cc: Simplify explicit instantiations.
4365         * include/bits/allocator.h: Tweak.
4367 2004-02-22  Paolo Carlini  <pcarlini@suse.de>
4369         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
4370         Restructure formatting of value component, first dealing with
4371         the non-decimal digits; use reserve.
4373 2004-02-22  Paolo Carlini  <pcarlini@suse.de>
4375         * include/bits/locale_facets.h (class money_get): Inherit
4376         from money_base too; tweak declaration of _M_extract, now
4377         parameterized on _Intl too.
4378         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
4379         Update definition to use the cache; call reserve on __res to
4380         avoid multiple reallocations; fix parsing of sign component
4381         according to 22.2.6.1.2, p3.
4382         (money_get<>::do_get(long double&),
4383         money_get<>::do_get(string_type&)): Update calls of _M_extract.
4384         * src/locale-inst.cc:  Add instantiations of
4385         money_get::_M_extract<false> and money_get::_M_extract<true>.
4386         * testsuite/22_locale/money_get/get/char/14.cc: New.
4387         * testsuite/22_locale/money_get/get/wchar_t/14.cc: Ditto.
4389 2004-02-21  Mark Mitchell  <mark@codesourcery.com>
4391         * libsupc++/vterminate.cc
4392         (__gnu_cxx::__verbose_terminate_handler): Guard against recursive
4393         calls to terminate.
4394         * src/demangle.cc (__cxa_demangle): Wrap in try-catch block.
4396         * testsuite/testsuite_hooks.cc (__gnu_test::set_memory_limits): Do
4397         not set RLIMIT_AS on HP-UX.
4399 2004-02-21  Mark Mitchell  <mark@codesourcery.com>
4401         * testsuite/testsuite_hooks.cc (__gnu_test::set_memory_limits): Do
4402         not set RLIMIT_AS on HP-UX.
4404 2004-02-21  Paolo Carlini  <pcarlini@suse.de>
4406         * include/bits/locale_facets.h (class money_base): Add { _S_minus,
4407         _S_zero, _S_end } enum, _S_atoms.
4408         (struct __moneypunct_cache<>): Parameterize on _Intl too; add
4409         _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size,
4410         _M_negative_sign_size, _M_atoms; tweak constructor consistently.
4411         (__moneypunct_cache<>::~__moneypunct_cache): Update.
4412         (__moneypunct_cache<>::_M_cache): Fill the cache.
4413         (class moneypunct): Tweak __cache_type typedef.
4414         (class money_put): Inherit from money_base too; tweak declaration
4415         of _M_insert, now parameterized on _Intl.
4416         * include/bits/locale_facets.tcc
4417         (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New.
4418         (money_put<>::_M_insert): Update definition to use the cache;
4419         call reserve on __res to avoid multiple reallocations.
4420         (money_put<>::do_put(long double),
4421         money_put<>::do_put(const string_type&): Update calls of _M_insert.
4422         * config/locale/generic/monetary_members.cc
4423         (moneypunct<char, true>::_M_initialize_moneypunct,
4424         moneypunct<char, false>::_M_initialize_moneypunct,
4425         moneypunct<wchar_t, true>::_M_initialize_moneypunct,
4426         moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update.
4427         * config/locale/gnu/monetary_members.cc: Likewise.
4428         * config/locale/gnu/monetary_members.cc
4429         (moneypunct<wchar_t, true>::~moneypunct(),
4430         moneypunct<wchar_t, false>::~moneypunct()): Likewise.
4431         * src/globals_locale.cc: Tweak fake_money_cache_c.
4432         * src/locale-inst.cc: Add instantiations for
4433         money_put::_M_insert<false> and money_put::_M_insert<true> and
4434         __moneypunct_cache<C, false>, __moneypunct_cache<C, true>.
4435         * src/locale_facets.cc: Define money_base::_S_atoms.
4436         * src/locale_init.cc: Update placement new of
4437         __moneypunct_cache<char, false>, __moneypunct_cache<char, true>,
4438         __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>.
4440         * config/locale/generic/numeric_members.cc: Clean up.
4441         * config/locale/gnu/numeric_members.cc: Likewise.
4442         * testsuite/22_locale/money_put/put/char/1.cc: Likewise.
4443         * testsuite/22_locale/money_put/put/char/2.cc: Likewise.
4444         * testsuite/22_locale/money_put/put/char/3.cc: Likewise.
4445         * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise.
4446         * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise.
4447         * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise.
4449 2004-02-20  Mark Mitchell  <mark@codesourcery.com>
4451         * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc: Open
4452         FIFO for writing with ios_base::in|ios_base::out.
4453         * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise.
4454         * testsuite/27_io/objects/char/7.cc: Likewise.
4455         * testsuite/27_io/objects/char/9661-1.cc: Open FIFO for writing
4456         with "r+".
4458 2004-02-19  David Edelsohn  <edelsohn@gnu.org>
4460         * 22_locale/collate/compare/wchar_t/2.cc: Change input-charset
4461         from iso-8859-1 to ISO8859-1.
4462         * 22_locale/collate/compare/wchar_t/wrapped_env.cc: Same.
4463         * 22_locale/collate/compare/wchar_t/wrapped_locale.cc: Same.
4464         * 22_locale/collate/hash/wchar_t/2.cc: Same.
4465         * 22_locale/collate/hash/wchar_t/wrapped_env.cc: Same.
4466         * 22_locale/collate/hash/wchar_t/wrapped_locale.cc: Same.
4467         * 22_locale/collate/transform/wchar_t/2.cc: Same.
4468         * 22_locale/collate/transform/wchar_t/wrapped_env.cc: Same.
4469         * 22_locale/collate/transform/wchar_t/wrapped_locale.cc: Same.
4471 2004-02-18  Paolo Carlini  <pcarlini@suse.de>
4473         * include/bits/locale_facets.h (money_get<>::_M_extract):
4474         New, helper for do_get.
4475         (money_put<>::_M_insert): Likewise, for do_put.
4476         * include/bits/locale_facets.tcc (money_get<>::_M_extract,
4477         money_put<>::_M_insert): Define.
4478         (money_get<>::do_get(long double&), money_get<>::do_get(
4479         string_type&), money_put::do_put(long double),
4480         money_put::do_put(const string_type&)): Use the helpers.
4482 2004-02-18  Paolo Carlini  <pcarlini@suse.de>
4484         * config/io/basic_file_stdio.cc (__gnu_internal::xwritev):
4485         Rewrite, avoiding recursion.
4486         (__gnu_internal::xwrite): Minor tweaks.
4488 2004-02-17  Stefan Olsson  <stefan@xapa.se>
4490         * include/ext/mt_allocator.h: Removed the last
4491         pointer. Deallocated blocks are now added to the front of
4492         freelists as proposed by Felix Yen.  This gives roughly 10%
4493         performance boost and saves some memory.
4494         * docs/html/ext/mt_allocator.html: Change due to that deallocated
4495         blocks now are added to the front of freelists. The reason to this
4496         approach is also explained.
4498 2004-02-17  Paolo Carlini  <pcarlini@suse.de>
4500         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
4501         num_get<>::_M_extract_int, money_get<>::do_get): Simplify
4502         grouping fidelity conditional.
4504 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
4506         * testsuite/27_io/basic_filebuf/overflow/char/13858.cc:
4507         Qualify exception with std::.
4508         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Ditto.
4509         * testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc: Ditto.
4510         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
4511         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
4512         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
4514 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
4516         * testsuite/ext/enc_filebuf/char/13189.cc: Don't check
4517         for now that the catch block is not reached.
4518         * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Likewise.
4520 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
4522         * include/bits/locale_facets.tcc (money_get::do_get(string_type&)):
4523         Fix parsing of the remaining sign characters.
4524         * 22_locale/money_get/get/char/2.cc: Tweak: now, correctly,
4525         the input is scanned 'til eof.
4526         * 22_locale/money_get/get/char/4.cc: Likewise.
4527         * 22_locale/money_get/get/wchar_t/2.cc: Likewise.
4528         * 22_locale/money_get/get/wchar_t/4.cc: Likewise.
4529         * 22_locale/money_get/get/char/8.cc: Tweak: override do_neg_format,
4530         not do_pos_format: the former is the only one that matters during
4531         input.
4532         * 22_locale/money_get/get/wchar_t/8.cc: Likewise.
4534         * 22_locale/money_get/get/char/6.cc: Minor tweak.
4535         * 22_locale/money_get/get/wchar_t/6.cc: Likewise.
4537 2004-02-15  David Asher  <david.asher@cavium.com>
4539         PR libstdc++/11352
4540         * include/bits/locale_facets.tcc (__pad<>::_S_pad): Don't
4541         access __olds beyond __oldlen.
4543 2004-02-14  Paolo Carlini  <pcarlini@suse.de>
4545         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Make
4546         sure the exception is actually thrown.
4547         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
4548         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
4549         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
4551 2004-02-14  Paolo Carlini  <pcarlini@suse.de>
4553         PR libstdc++/13858
4554         * include/bits/fstream.tcc (basic_filebuf<>::_M_convert_to_external):
4555         In case of conversion errors, throw ios_failure; simplify.
4556         * testsuite/27_io/basic_filebuf/overflow/char/13858.cc: New.
4557         * testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc: Ditto.
4558         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Tweak,
4559         previously we didn't throw in case of conversion errors, instead
4560         just returned eof().
4561         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
4562         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
4563         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
4565         * include/bits/fstream.tcc (basic_filebuf<>::overflow):
4566         Trivial simplification of a conditional.
4568 2004-02-12  Paolo Carlini  <pcarlini@suse.de>
4570         PR libstdc++/13731 (final part: writev)
4571         * config/io/basic_file_stdio.cc (__gnu_internal::xwritev):
4572         New, a wrapper around writev() handling partial writes.
4573         (__basic_file<char>::xwrite): Move to __gnu_internal and make
4574         static.
4575         (__basic_file<char>::xsputn): Update call.
4576         (__basic_file<char>::xsputn_2): Likewise.
4577         * config/io/basic_file_stdio.h (__basic_file<char>::xwrite):
4578         Don't declare, now static.
4580 2004-02-11  Stefan Olsson  <stefan@xapa.se>
4582         * docs/html/ext/mt_allocator.html: New.
4584 2004-02-11  Benjamin Kosnik  <bkoz@redhat.com>
4586         * docs/html/20_util/allocator.html: New file, consolidate
4587         allocator information here. Revamp.
4588         * docs/html/documentation.html: Change links.
4589         * docs/html/20_util/howto.html: Same.
4590         * docs/html/ext/howto.html: Same.
4592 2004-02-11  Paolo Carlini  <pcarlini@suse.de>
4594         PR libstdc++/13731 (first part: write)
4595         * config/io/basic_file_stdio.h (__basic_file<char>::xwrite):
4596         New, declare.
4597         * config/io/basic_file_stdio.cc (__basic_file<char>::xwrite):
4598         Define it: a wrapper around write() handling partial write.
4599         (__basic_file<char>::xsputn): Use it.
4600         (__basic_file<char>::xsputn_2): Likewise.
4602 2004-02-11  Paolo Carlini  <pcarlini@suse.de>
4603             Petur Runolfsson  <peturr02@ru.is>
4605         PR libstdc++/14078
4606         * include/std/std_istream.h (operator>>(__istream_type& (*)
4607         (__istream_type&)), operator>>(__ios_type& (*)(__ios_type&)),
4608         operator>>(ios_base& (*)(ios_base&))): Declare inline.
4609         * include/std/std_ostream.h (operator<<(__ostream_type& (*)
4610         (__ostream_type&)), operator<<(__ios_type& (*)(__ios_type&)),
4611         operator<<(ios_base& (*) (ios_base&))): Likewise.
4612         * testsuite/performance/27_io/fmtflags_manipulators.cc: New.
4614 2004-02-10  Loren J. Rittle  <ljrittle@acm.org>
4616         PR libstdc++/14098
4617         * config/linker-map.gnu: Add typeinfo and typeinfo name for
4618         __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> >.
4620         PR libstdc++/14097
4621         * config/linker-map.gnu: Add typeinfo and typeinfo name for
4622         __gnu_cxx::stdio_filebuf<char, std::char_traits<char> >.
4624 2004-02-09  Loren J. Rittle  <ljrittle@acm.org>
4626         * include/ext/pool_allocator.h: Include c++config.h.
4628 2004-02-09  Stefan Olsson  <stefan@xapa.se>
4630         * include/ext/mt_allocator.h: thread_id is unused in non threaded
4631         applications and now has a ifdef to remove it completely on
4632         compilers without thread support. Include stdlib.h due to a
4633         compiler warning on getenv().
4635 2004-02-09  Paul Brook  <paul@codesourcery.com>
4637         * libstdc++-v3/configure.host: Explicitly check for atomicity.h file.
4639 2004-02-09  Paolo Carlini  <pcarlini@suse.de>
4641         PR libstdc++/14071
4642         * src/locale_init.cc (locale::global(const locale&)): Use
4643         locale::name() in order to decide whether calling setlocale.
4644         * testsuite/22_locale/locale/global_locale_objects/14071.cc: New.
4646         * include/bits/locale_classes.h (locale::_Impl::_M_check_same_name()):
4647         Avoid computing &= unnecessarily.
4649 2004-02-09  James E Wilson  <wilson@specifixinc.com>
4651         PR libstdc++/5625
4652         * libsuspc++/eh_personality.cc (PERSONALITY_FUNCTION): Use
4653         __builtin_extend_pointer.
4655 2004-02-09  Paolo Carlini  <pcarlini@suse.de>
4657         PR libstdc++/14072
4658         * include/bits/basic_ios.tcc (basic_ios<>::_M_cache_locale):
4659         Don't leave dangling pointers.
4660         * testsuite/27_io/basic_ios/imbue/14072.cc: New.
4661         * testsuite/22_locale/numpunct/members/pod/2.cc: Tweak, the num_put
4662         facet is needed in the final test.
4664 2004-02-09  Bernardo Innocenti  <bernie@develer.com>
4666         * crossconfig.m4: Don't enable _GLIBCXX_USE_LFS on *-uclinux*.
4667         * configure: Regenerate.
4669 2004-02-08  Richard Henderson  <rth@redhat.com>
4671         PR libstdc++/14026
4672         * libsupc++/eh_catch.cc (__cxa_begin_catch): Don't adjust
4673         uncaughtExceptions during nested catch rethrow.
4674         * testsuite/18_support/14026.cc: New.
4676 2004-02-08  Paolo Carlini  <pcarlini@suse.de>
4678         * include/bits/basic_string.tcc (assign(const _CharT*, size_type)):
4679         When working in place remember to set the state to sharable
4680         (otherwise, _M_mutate does it).
4682 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
4684         * include/bits/allocator.h, include/bits/basic_ios.h,
4685         include/bits/basic_ios.tcc, include/bits/basic_string.h,
4686         include/bits/basic_string.tcc, include/bits/boost_concept_check.h,
4687         include/bits/char_traits.h, include/bits/codecvt.h,
4688         include/bits/concurrence.h, include/bits/cpp_type_traits.h,
4689         include/bits/demangle.h, include/bits/deque.tcc,
4690         include/bits/fstream.tcc, include/bits/functexcept.h,
4691         include/bits/gslice.h, include/bits/gslice_array.h,
4692         include/bits/indirect_array.h, include/bits/ios_base.h,
4693         include/bits/istream.tcc, include/bits/list.tcc,
4694         include/bits/locale_classes.h, include/bits/locale_facets.h,
4695         include/bits/locale_facets.tcc, include/bits/localefwd.h,
4696         include/bits/mask_array.h, include/bits/ostream.tcc,
4697         include/bits/postypes.h, include/bits/slice_array.h,
4698         include/bits/sstream.tcc, include/bits/stl_algo.h,
4699         include/bits/stl_algobase.h, include/bits/stl_bvector.h,
4700         include/bits/stl_construct.h, include/bits/stl_deque.h,
4701         include/bits/stl_function.h, include/bits/stl_heap.h,
4702         include/bits/stl_iterator.h, include/bits/stl_iterator_base_funcs.h,
4703         include/bits/stl_list.h, include/bits/stl_map.h,
4704         include/bits/stl_multimap.h, include/bits/stl_multiset.h,
4705         include/bits/stl_numeric.h, include/bits/stl_pair.h,
4706         include/bits/stl_queue.h, include/bits/stl_raw_storage_iter.h,
4707         include/bits/stl_relops.h, include/bits/stl_set.h,
4708         include/bits/stl_stack.h, include/bits/stl_tempbuf.h,
4709         include/bits/stl_threads.h, include/bits/stl_tree.h,
4710         include/bits/stl_uninitialized.h, include/bits/stl_vector.h,
4711         include/bits/stream_iterator.h, include/bits/streambuf.tcc,
4712         include/bits/streambuf_iterator.h,include/bits/stringfwd.h,
4713         include/bits/type_traits.h, include/bits/valarray_after.h,
4714         include/bits/valarray_array.h, include/bits/valarray_array.tcc,
4715         include/bits/valarray_before.h, include/bits/vector.tcc: Remove
4716         trailing whitespace.
4718 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
4720         * include/bits/basic_string.h: Fix comment.
4722 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
4724         * include/bits/stl_construct.h: Wrap overlong lines, reformat
4725         according to the coding standards.
4726         * include/bits/stl_pair.h: Likewise.
4727         * include/bits/stl_raw_storage_iter.h: Likewise.
4728         * include/bits/stl_stack.h: Likewise.
4729         * include/bits/stl_uninitialized.h: Likewise.
4730         * include/bits/stream_iterator.h: Likewise.
4731         * include/bits/streambuf_iterator.h: Likewise.
4732         * include/bits/type_traits.h: Likewise.
4734 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
4736         * testsuite/27_io/basic_filebuf/open/char/9507.cc:
4737         Adjust timings.
4739 2004-02-05  Loren J. Rittle  <ljrittle@acm.org>
4741         * scripts/check_performance: Support PCH.
4743         * scripts/check_performance (CXX): Add -DNOTHREAD.
4744         * testsuite/performance/20_util/allocator/insert.cc: Integrate
4745         threaded tests from insert_insert.cc.  Tweak iterations,
4746         remove special cases.
4747         * testsuite/performance/20_util/allocator/insert_insert.cc:
4748         Make all tests single-threaded. Tweak iterations.
4749         * testsuite/performance/20_util/allocator/map_thread.cc:
4750         Tweak iterations.
4751         * testsuite/performance/20_util/allocator/producer_consumer.cc:
4752         Likewise.
4754 2004-02-05  Geoffrey Keating  <geoffk@apple.com>
4756         PR 12179
4757         * .cvsignore: New.
4758         * acinclude.m4 (GLIBCXX_EXPORT_INSTALL_INFO): Use 'gcc', not
4759         'gcc-lib'.  Add comment about poorly-named variables.
4760         * aclocal.m4: Regenerate.
4761         * configure: Regenerate.
4763 2004-02-05  Paolo Carlini  <pcarlini@suse.de>
4765         * include/bits/locale_facets.tcc (money_get::do_get(string_type&)):
4766         Thousands-sep are always optional; thousands-sep are not allowed
4767         after the decimal_point.
4768         * testsuite/22_locale/money_get/get/char/12.cc: New.
4769         * testsuite/22_locale/money_get/get/char/13.cc: New.
4770         * testsuite/22_locale/money_get/get/wchar_t/12.cc: New.
4771         * testsuite/22_locale/money_get/get/wchar_t/13.cc: New.
4773         * testsuite/22_locale/money_get/get/char/1.cc: Clean-up.
4774         * testsuite/22_locale/money_get/get/char/2.cc: Likewise.
4775         * testsuite/22_locale/money_get/get/char/3.cc: Likewise.
4776         * testsuite/22_locale/money_get/get/char/4.cc: Likewise.
4777         * testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise.
4778         * testsuite/22_locale/money_get/get/wchar_t/2.cc: Likewise.
4779         * testsuite/22_locale/money_get/get/wchar_t/3.cc: Likewise.
4780         * testsuite/22_locale/money_get/get/wchar_t/4.cc: Likewise.
4782         * testsuite/22_locale/money_get/get/char/9.cc: Fix citation from
4783         the standard.
4784         * testsuite/22_locale/money_get/get/wchar_t/9.cc: Likewise.
4786 2004-02-05  Richard Sandiford  <rsandifo@redhat.com>
4788         * config/os/irix/irix6.5/os_defines.h (_GLIBCXX_FIONREAD_TAKES_OFF_T):
4789         Define.
4790         * config/io/basic_file_stdio.cc (__basic_file<char>::showmanyc): Use
4791         it to decide whether FIONREAD should take an off_t or int argument.
4793 2004-02-05  Paolo Carlini  <pcarlini@suse.de>
4795         * include/bits/stl_function.h: Minor formatting changes.
4797 2004-02-04  Zack Weinberg  <zack@codesourcery.com>
4799         Revert previous change to config/abi/*/baseline_symbols.txt.
4801 2004-02-04  Benjamin Kosnik  <bkoz@redhat.com>
4802             Zack Weinberg  <zack@codesourcery.com>
4804         * config/io/basic_file_stdio.cc (__gnu_internal::fopen_mode):
4805         New function.
4806         (__basic_file<char>::sys_open, __basic_file<char>::open): Use it.
4807         (__basic_file<char>::_M_open_mode): Delete.
4808         * config/io/basic_file_stdio.cc: Delete declaration of _M_open_mode.
4810         * testsuite/27_io/basic_filebuf/close/char/9964.cc
4811         * testsuite/27_io/basic_filebuf/open/char/9507.cc:
4812         Correct flags to filebuf::open calls.
4814         * config/abi/alpha-freebsd5/baseline_symbols.txt
4815         * config/abi/alpha-linux-gnu/baseline_symbols.txt
4816         * config/abi/hppa-linux-gnu/baseline_symbols.txt
4817         * config/abi/i386-freebsd4/baseline_symbols.txt
4818         * config/abi/i386-freebsd5/baseline_symbols.txt
4819         * config/abi/i486-linux-gnu/baseline_symbols.txt
4820         * config/abi/ia64-linux-gnu/baseline_symbols.txt
4821         * config/abi/mips-linux-gnu/baseline_symbols.txt
4822         * config/abi/sparc-freebsd5/baseline_symbols.txt
4823         * config/abi/sparc-linux-gnu/baseline_symbols.txt
4824         * config/abi/x86_64-linux-gnu/baseline_symbols.txt:
4825         Remove entry for __basic_file<char>::_M_open_mode.
4827 2004-02-04  Loren J. Rittle  <ljrittle@acm.org>
4829         * testsuite/performance/20_util/allocator/insert.cc (main): Tweak.
4831 2004-02-04  Felix Yen  <fwy@alumni.brown.edu>
4833         * testsuite/performance/20_util/producer_consumer.cc: New.
4834         * testsuite/performance/20_util/allocator/insert_insert.cc: Two loops.
4836 2004-02-04  Benjamin Kosnik  <bkoz@redhat.com>
4838         * testsuite/performance/20_util/allocator.cc: Move to..
4839         * testsuite/performance/20_util/allocator/insert.cc: ...here.
4840         * testsuite/performance/20_util/allocator_thread.cc: Move to...
4841         * testsuite/performance/20_util/allocator/insert_insert.cc: ...here.
4842         * testsuite/performance/20_util/allocator_map_thread.cc: Move to...
4843         * testsuite/performance/20_util/allocator/map_thread.cc: ...here.
4845 2004-02-04  Jonathan Wakely  <redi@gcc.gnu.org>
4847         * docs/html/faq/index.html: Recommend using LD_LIBRARY_PATH.
4848         * docs/html/faq/index.txt: Regenerate.
4850 2004-02-04  Dhruv Matani  <dhruvbird@gmx.net>
4852         * include/ext/debug_allocator.h: _M_extra now stands for the
4853         number of extra objects instead of the number of extra bytes.
4854         (debug_allocator::allocate): Adjust.
4855         (debug_allocator::deallocate): Adjust.
4857         * include/ext/pool_allocator.h: Fix typo.
4859 2004-02-03  Felix Yen  <fwy@alumni.brown.edu>
4860             Benjamin Kosnik  <bkoz@redhat.com>
4862         * testsuite/performance/20_util/allocator.cc: Add map,
4863         deque, set tests.
4864         * testsuite/performance/20_util/allocator_thread.cc: Same.
4866 2004-02-03  Paolo Carlini  <pcarlini@suse.de>
4868         * include/bits/basic_string.h (insert(iterator)): Remove,
4869         non-standard and already scheduled for removal.
4871 2004-02-03  Paolo Carlini  <pcarlini@suse.de>
4873         * include/bits/stl_iterator_base_funcs.h: Minor formatting
4874         and indentation tweaks.
4875         * include/bits/stl_iterator_base_types.h: Likewise.
4876         * include/bits/stl_list.h: Likewise.
4877         * include/bits/stl_map.h: Likewise.
4878         * include/bits/stl_tempbuf.h: Likewise.
4880 2004-02-02  Jerry Quinn  <jlquinn@optonline.net>
4882         * include/bits/gslice.h, include/bits/gslice_array.h,
4883         include/bits/indirect_array.h, include/bits/mask_array.h,
4884         include/bits/slice_array.h, include/bits/stl_numeric.h,
4885         include/std/std_valarray.h:  Update copyright years.
4887 2004-02-02  Jerry Quinn  <jlquinn@optonline.net>
4889         * include/bits/gslice.h (gslice):  Document.
4890         * include/bits/gslice_array.h (gslice_array):  Document.
4891         * include/bits/indirect_array (indirect_array):  Document.
4892         * include/bits/mask_array (mask_array):  Document.
4893         * include/bits/slice_array.h (slice,slice_array):  Document.
4894         * include/bits/stl_numeric.h (accumulate, inner_product, partial_sum,
4895         adjacent_difference):  Document
4896         * include/std/std_valarray.h (valarray):  Document.
4898 2004-02-02  Benjamin Kosnik  <bkoz@redhat.com>
4900         * docs/html/19_diagnostics/howto.html: Move verbose terminate
4901         documentation...
4902         * docs/html/18_support/howto.html: Here.
4903         * docs/html/documentation.html: Add reference here.
4905 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
4907         * config/locale/gnu/c++locale_internal.h: Remove prototypes
4908         of no longer used GLIBC thread locale functions.
4910 2004-02-02  Eric Christopher  <echristo@redhat.com>
4911             Zack Weinberg  <zack@codesourcery.com>
4913         * testsuite/22_locale/collate/compare/wchar_t/2.cc: Remove xfail. Use
4914         -finput-charset.
4915         * testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc: Ditto.
4916         * testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc: Ditto
4917         * testsuite/22_locale/collate/hash/wchar_t/2.cc: Ditto.
4918         * testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc: Ditto.
4919         * testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc: Ditto.
4920         * testsuite/22_locale/collate/transform/wchar_t/2.cc: Ditto.
4921         * testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc: Ditto.
4922         * testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc:
4923         Ditto.
4925 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
4927         * include/bits/stl_function.h: Additional minor tweaks.
4928         * include/bits/stl_multiset.h: Likewise.
4930         * include/bits/stl_queue.h: Minor tweaks.
4932 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
4934         PR libstdc++/13976 (continued)
4935         * include/ext/malloc_allocator.h (malloc_allocator::deallocate):
4936         Make the second parameter unnamed, to void unused parameter
4937         warnings.
4938         * include/ext/new_allocator.h (new_allocator::deallocate): Ditto.
4940 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
4942         PR libstdc++/13976
4943         * include/ext/malloc_allocator.h (malloc_allocator::allocate):
4944         Make the second parameter unnamed, to void unused parameter
4945         warnings.
4946         * include/ext/mt_allocator.h (__mt_alloc::allocate): Ditto.
4947         * include/ext/new_allocator.h (new_allocator::allocate): Ditto.
4949 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
4951         * include/bits/stl_algo.h: Additional minor tweaks.
4952         * include/bits/stl_map.h: Likewise.
4953         * include/bits/stl_multimap.h: Likewise.
4954         * include/bits/stl_multiset.h: Likewise.
4955         * include/bits/stl_set.h: Likewise.
4956         * include/bits/stl_tree.h: Likewise.
4958 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
4960         * include/bits/vector.tcc (vector::_M_insert_aux(iterator)):
4961         Remove, unused.
4963 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
4965         * include/bits/stl_function.h: Additional minor tweaks.
4967 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
4969         * include/bits/deque.tcc: Wrap overlong lines, constify
4970         a few variables, reformat according to the coding standards.
4971         * include/bits/list.tcc: Likewise.
4972         * include/bits/stl_deque.h: Likewise.
4973         * include/bits/stl_function.h: Likewise.
4974         * include/bits/stl_iterator.h: Likewise.
4975         * include/bits/stl_iterator_base_funcs.h: Likewise.
4976         * include/bits/stl_iterator_base_types.h: Likewise.
4977         * include/bits/stl_list.h: Likewise.
4978         * include/bits/stl_map.h: Likewise.
4979         * include/bits/stl_multimap.h: Likewise.
4980         * include/bits/stl_multiset.h: Likewise.
4981         * include/bits/stl_relops.h: Likewise.
4982         * include/bits/stl_set.h: Likewise.
4984 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
4986         * include/bits/stl_bvector.h: Wrap overlong lines, constify
4987         a few variables, reformat according to the coding standards.
4988         * include/bits/stl_tree.h: Likewise.
4990 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
4992         * include/bits/stl_algo.h: Minor additional reformat, add
4993         copyright year.
4994         * include/bits/stl_algobase.h: Add copyright year.
4996 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
4998         * include/bits/stl_algo.h: Wrap overlong lines, constify
4999         a few variables, reformat according to the coding standards.
5000         * include/bits/stl_algobase.h: Likewise.
5001         * include/bits/stl_heap.h: Likewise.
5003 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
5005         * include/bits/basic_string.h (_Rep::operator[]): Remove, unused.
5007         * include/bits/basic_string.h: Fix two comments.
5009 2004-01-31  Per Bothner  <per@bothner.com>
5011         * include/ext/mt_allocator.h
5012         (__mt_alloc::_S_thread_freelist_mutex): Guard with
5013         __GTHREAD_MUTEX_INIT.
5015 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
5017         * include/bits/basic_string.tcc (_Rep::_S_create): Minor tweak.
5019 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
5021         * testsuite/21_strings/basic_string/cons/char/6.cc: New.
5022         * testsuite/21_strings/basic_string/cons/wchar_t/6.cc: New.
5023         * testsuite/performance/21_strings/string_cons_input_iterator.cc: New.
5025 2004-01-30  Felix Yen  <fwy@alumni.brown.edu>
5027         * testsuite/performance/20_util/allocator_thread.cc (do_loop):
5028         Don't use clear, but instead assign. Use insert.
5030 2004-01-30  Benjamin Kosnik  <bkoz@redhat.com>
5032         * src/demangle.cc: Add instantiations.
5033         * src/Makefile.am: Remove special rules for demangle.lo, demangle.o.
5034         * src/Makefile.in: Regenerate.
5036 2004-01-30  David Edelsohn  <edelsohn@gnu.org>
5038         * src/allocator.cc: Protect _S_get_thread_id() and
5039         _S_thread_key_destr() with #ifdef __GTHREADS.
5041 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
5043         Reshuffle performance testsuite.
5044         * testsuite/performance/allocator.cc, allocator_map_thread.cc,
5045         allocator_thread.cc, complex_norm.cc, container_benchmark.cc,
5046         cout_insert_int.cc, filebuf_copy.cc, filebuf_sputc.cc,
5047         fstream_seek_write.cc, ifstream_extract_float.cc,
5048         ifstream_extract_int.cc, ifstream_getline.cc, is_wchar_t.cc,
5049         list_create_fill_sort.cc, map_create_fill.cc,
5050         narrow_widen_char.cc, narrow_widen_wchar_t.cc,
5051         ofstream_insert_float.cc, ofstream_insert_int.cc,
5052         string_append.cc, wchar_t_in.cc, wchar_t_length.cc,
5053         wchar_t_out.cc: Split into...
5054         * testsuite/performance/20_util/allocator.cc: New.
5055         * testsuite/performance/20_util/allocator_map_thread.cc: New.
5056         * testsuite/performance/20_util/allocator_thread.cc: New.
5057         * testsuite/performance/21_strings/string_append: New.
5058         * testsuite/performance/22_locale/is_wchar_t.cc: New.
5059         * testsuite/performance/22_locale/narrow_widen_char.cc: New.
5060         * testsuite/performance/22_locale/narrow_widen_wchar_t.cc: New.
5061         * testsuite/performance/22_locale/wchar_t_in.cc: New.
5062         * testsuite/performance/22_locale/wchar_t_length.cc: New.
5063         * testsuite/performance/22_locale/wchar_t_out.cc: New.
5064         * testsuite/performance/23_containers/container_benchmark.cc: New.
5065         * testsuite/performance/23_containers/list_create_fill_sort.cc: New.
5066         * testsuite/performance/23_containers/map_create_fill.cc: New.
5067         * testsuite/performance/26_numerics/complex_norm.cc: New.
5068         * testsuite/performance/27_io/cout_insert_int.cc: New.
5069         * testsuite/performance/27_io/filebuf_copy.cc: New.
5070         * testsuite/performance/27_io/filebuf_sputc.cc: New.
5071         * testsuite/performance/27_io/fstream_seek_write.cc: New.
5072         * testsuite/performance/27_io/ifstream_extract_float.cc: New.
5073         * testsuite/performance/27_io/ifstream_extract_int.cc: New.
5074         * testsuite/performance/27_io/ifstream_getline.cc: New.
5075         * testsuite/performance/27_io/ofstream_insert_float.cc: New.
5076         * testsuite/performance/27_io/ofstream_insert_int.cc: New.
5078 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
5080         * include/bits/basic_string.tcc (_Rep::_S_create):
5081         Never allocate a string bigger than max_size(); always keep
5082         __capacity and __size in sync to avoid memory leaks at
5083         deallocation time.
5085 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
5087         * include/bits/basic_string.tcc (_S_construct(_InIterator,
5088         _InIterator, const _Alloc&, input_iterator_tag)): Simplify
5089         the double loop, streamline.
5091         * include/bits/basic_string.tcc: Very minor tweaks.
5093 2004-01-30  Loren J. Rittle  <ljrittle@acm.org>
5095         * scripts/check_performance: Only compile with $THREAD_FLAG
5096         when test is marked to require it.  Allow multiple
5097         compilations/executions of marked tests.
5098         * testsuite/testsuite_performance.h (report_performance):
5099         Report dynamic thread support status.
5100         (report_header): Likewise.
5101         * testsuite/performance/allocator.cc: Stabilize iteration
5102         count.  Support more allocators.  Mark each allocator test to
5103         run and report independently.
5104         * testsuite/performance/allocator_map_thread.cc: Likewise.
5105         * testsuite/performance/allocator_thread.cc: Likewise.
5107 2004-01-29  Stephen M. Webb  <stephen.webb@bregmasoft.com>
5109         * config/local/generic/c_locale.h: Change ::malloc() to new char[].
5110         * config/local/gnu/c_locale.h: Change ::malloc() to new char[].
5111         * include/bits/stl_tempbuf.h: Convert _Temporary_buffer to use
5112         std::get_temporary_buffer() instead of duplicating its code.
5113         Update to C++STYLE conventions.
5114         * include/std/std_memory.h (get_temporary_buffer): Use ::operator
5115         new() instead of std::malloc().
5116         (return_temporary_buffer): Use ::operator delete() instead of
5117         std::free().
5119 2004-01-29  Benjamin Kosnik  <bkoz@redhat.com>
5121         * include/bits/allocator.h: Temporary switch to new_allocator as
5122         the default to unjam bootstraps.
5124 2004-01-28  Benjamin Kosnik  <bkoz@redhat.com>
5126         * include/Makefile.am (bits_headers): Remove allocator_traits.h.
5127         * include/Makefile.in: Regenerate.
5128         * include/bits/allocator_traits.h: Remove.
5129         * include/bits/allocator.h: Remove allocator_traits.h include, and
5130         relevant comments.
5131         (allocator): Empty base class, inherit from the underlying allocator.
5132         * src/allocator-inst.cc: Move __pool_alloc instantiation to...
5133         * src/allocator.cc: ...here. New. For the underlying allocators.
5134         Add __mt_alloc, __pool_alloc, new_allocator, malloc_allocator bits.
5135         * config/linker-map.gnu: Remove __pool_alloc bits.
5136         * src/Makefile.am (sources): Add allocator.cc.
5137         * src/Makefile.in: Regenerate.
5138         * testsuite/20_util/allocator/1.cc: Split second test into...
5139         * testsuite/20_util/allocator/8230.cc: ...this.
5140         * include/bits/stl_bvector.h (__gnu_norm): Change bit_vector
5141         typedef to use std::allocatore. Format.
5142         * include/ext/pool_allocator.h: Remove allocator_traits.h include,
5143         _Alloc_traits.
5144         * include/ext/mt_allocator.h (__gnu_cxx): Qualify
5145         __throw_bad_alloc calls. Don't include <memory>.
5146         * include/ext/malloc_allocator.h: Remove <memory> include.
5147         * include/ext/new_allocator.h (new_allocator): Same.
5148         * include/ext/ropeimpl.h (__gnu_cxx): Remove __alloc using
5149         declaration. Switch __alloc to _Alloc.
5150         * include/ext/hashtable.h: Remove __alloc.
5151         * include/backward/alloc.h: Only inject allocator, not
5152         implementation details.
5154         * include/ext/mt_allocator.h: Replace free with delete.
5156 2004-01-28  Benjamin Kosnik  <bkoz@redhat.com>
5158         * src/globals_io.cc: Change to __gnu_internal namespace.
5159         * src/globals_locale.cc: Same.
5160         * src/locale_init.cc: Same.
5161         * src/ios_init.cc: Same.
5163 2004-01-28  Stefan Olsson  <stefan@snon.net>
5165         * include/ext/mt_allocator.h: Replaced all malloc() calls with
5166         operator new(). Added support for the env variable
5167         GLIBCXX_FORCE_NEW (this required the _S_init call to be the first
5168         one in allocate() as well). Fix typos.
5170 2004-01-28  Paolo Carlini  <pcarlini@suse.de>
5172         * include/bits/basic_string.h (_S_create(size_t,
5173         const _Alloc&): Change signature to take two size_type
5174         arguments.
5175         * include/bits/basic_string.tcc (_S_construct(_InIterator,
5176         _InIterator, const _Alloc&, input_iterator_tag)): Update
5177         call, tweak a bit.
5178         (_S_construct(_InIterator, _InIterator, const _Alloc&,
5179         forward_iterator_tag)): Likewise.
5180         (_S_construct(size_type, _CharT, const _Alloc&)): Likewise.
5181         (_M_mutate(size_type, size_type, size_type)): Don't
5182         implement the exponential growth policy, demand it to
5183         _S_create, update call and simplify.
5184         (_M_clone(const _Alloc&, size_type)): Likewise.
5185         (_S_create(size_type, size_type, const _Alloc&)): Implement
5186         the growth policy, simplify otherwise.
5188         * include/bits/basic_string.h (_Rep::operator[]): Tweak
5189         signature to take a size_type, consistently with the other
5190         members.
5192 2004-01-27  Benjamin Kosnik  <bkoz@redhat.com>
5194         * testsuite/27_io/ios_base/storage/11584.cc: Correct new and
5195         delete declarations, add include and test variable.
5197 2003-01-27  Jerry Quinn  <jlquinn@optonline.net>
5199         * include/bits/codecvt.h, include/bits/locale_facets.h,
5200         include/bits/postypes.h, include/bits/stl_bvector.h,
5201         include/bits/stl_multiset.h, include/bits/stl_set.h,
5202         include/bits/stream_iterator.h, include/bits/streambuf_iterator.h,
5203         include/std/std_complex.h:  Document.
5205 2004-01-27  Jerry Quinn  <jlquinn@optonline.net>
5207         PR libstdc++/11584
5208         * include/bits/ios_base.h (ios_base::_M_grow_words):  Add
5209         iword/pword selector.
5210         (ios_base::iword, ios_base::pword):  Use it.
5211         * src/ios.cc (ios_base::_M_grow_words):  Clear _M_word_zero
5212         iword or pword member on alloc failure.
5213         * testsuite/27_io/ios_base/storage/11584.cc:  New test.
5215 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
5216             PJ Darcy  <darcypj@us.ibm.com>
5218         * configure.host: Add support for *-tpf.
5219         * crossconfig.m4: Likewise.
5220         * configure: Regenerate.
5221         * config/os/tpf: New directory.
5222         * config/os/tpf/os_defines.h: New file.
5223         * config/os/tpf/ctype_base.h: Likewise.
5224         * config/os/tpf/ctype_inline.h: Likewise.
5225         * config/os/tpf/ctype_noninline.h: Likewise.
5227 2004-01-27  Paolo Carlini  <pcarlini@suse.de>
5229         PR libstdc++/13884
5230         * include/bits/sstream.tcc: Guard use of extern template.
5232 2004-01-27  Paolo Carlini  <pcarlini@suse.de>
5234         * include/bits/basic_string.tcc
5235         (basic_string(const basic_string&, size_type, size_type),
5236         basic_string(const basic_string&, size_type, size_type,
5237         const _Alloc&)): Avoid unnecessarily constructing iterators.
5239 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
5241         * config/locale/generic/c_locale.cc: Fix throw messages
5242         to use the __N marker.
5243         * config/locale/gnu/c_locale.cc: Likewise.
5244         * config/locale/ieee_1003.1-2001/codecvt_specializations.h:
5245         Likewise.
5246         * docs/html/17_intro/C++STYLE: Likewise.
5247         * include/bits/basic_ios.tcc: Likewise.
5248         * include/bits/fstream.tcc: Likewise.
5249         * include/bits/vector.tcc: Likewise.
5250         * include/ext/ropeimpl.h: Likewise.
5251         * include/std/std_bitset.h: Likewise.
5252         * src/ios.cc: Likewise.
5253         * src/locale.cc: Likewise.
5254         * src/localename.cc: Likewise.
5256 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
5258         * include/bits/basic_string.h (_M_replace_aux): Use the
5259         __N marker in throw message.
5260         * include/bits/basic_string.tcc (assign(const _CharT*,
5261         size_type), insert(size_type, const _CharT*, size_type),
5262         replace(size_type, size_type, const _CharT*, size_type),
5263         reserve, _Rep::_S_create, resize, _M_replace_dispatch):
5264         Likewise.
5266         * include/bits/basic_string.h, include/bits/basic_string.tcc:
5267         Fold overlong lines, minor formatting changes.
5269 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
5271         * include/bits/basic_string.h (replace(iterator, iterator,
5272         const basic_string&)): Remove _GLIBCXX_DEBUG_PEDASSERT.
5273         (replace(iterator, iterator, const _CharT*)): Ditto.
5274         (replace(iterator, iterator, const _CharT*, size_type)):
5275         Add missing _GLIBCXX_DEBUG_PEDASSERT.
5277 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
5279         * include/bits/basic_string.tcc (replace(size_type,
5280         size_type, const _CharT*, size_type)): Implement optimized
5281         in-place algorithm for non-overlapping ranges.
5282         * testsuite/21_strings/basic_string/replace/char/6.cc: New.
5283         * testsuite/21_strings/basic_string/replace/wchar_t/6.cc: New.
5285         * include/bits/basic_string.tcc (insert(size_type,
5286         const _CharT*, size_type)): Tweak slightly.
5288 2004-01-26  Andreas Schwab  <schwab@suse.de>
5290         * config/locale/gnu/monetary_members.cc: Restore locale before
5291         rethrowing exception.
5293 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
5295         * include/bits/basic_string.h (_M_replace_aux, _M_replace_safe):
5296         Define inline here.
5297         * include/bits/basic_string.tcc (_M_replace_aux, _M_replace_safe):
5298         Move inline.
5300         * include/bits/basic_string.tcc: Very minor tweaks.
5302 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
5304         * testsuite/performance/string_append.cc: Increase number
5305         of iterations.
5307 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
5309         * include/bits/basic_string.h (erase(size_type, size_type),
5310         erase(iterator), erase(iterator, iterator)): Call _M_replace_safe
5311         instead, thus avoiding redundant check for length_error.
5313         * include/bits/basic_string.h: Tweak some comments.
5315 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
5317         * include/bits/basic_string.tcc (operator+(const _CharT*,
5318         const basic_string&)): No need to go through the append
5319         taking two iterators.
5321 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
5323         * include/bits/basic_string.tcc (rfind(_CharT, size_type)):
5324         Revert last change to use std::min: machine language is worse.
5325         (find_last_of(const _CharT*, size_type, size_type)): Ditto.
5326         (find_last_not_of(const _CharT*, size_type, size_type)): Ditto.
5327         (find_last_not_of(_CharT, size_type)): Ditto.
5329         * include/bits/basic_string.tcc (insert(size_type, const _CharT*,
5330         size_type)): Discard the value returned by _M_check.
5331         (replace(size_type, size_type, const _CharT*, size_type)): Ditto.
5332         (append(const basic_string&, size_type, size_type)): Ditto.
5333         (copy(_CharT*, size_type, size_type)): Ditto.
5334         (compare(size_type, size_type, const basic_string&)): Ditto.
5335         (compare(size_type, size_type, const basic_string&,
5336         size_type, size_type)): Ditto.
5337         (compare(size_type, size_type, const _CharT*)): Ditto.
5338         (compare(size_type, size_type, const _CharT*, size_type)): Ditto.
5340 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
5342         * include/bits/basic_string.h (insert(size_type,
5343         const basic_string&, size_type, size_type)): Define inline here.
5344         * include/bits/basic_string.tcc (insert(size_type,
5345         const basic_string&, size_type, size_type)): Move inline.
5347 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
5349         * include/bits/basic_string.h (assign(const basic_string&,
5350         size_type, size_type)): Define inline here.
5351         (replace(size_type, size_type, const basic_string&,
5352         size_type, size_type)): Ditto.
5353         (_M_replace_dispatch(iterator, iterator, _InputIterator,
5354         _InputIterator, __false_type)): Only declare.
5355         (_M_replace(iterator, iterator, _InputIterator,
5356         _InputIterator)): Remove.
5357         * include/bits/basic_string.tcc (assign(const basic_string&,
5358         size_type, size_type)): Move inline.
5359         (replace(size_type, size_type, const basic_string&,
5360         size_type, size_type)): Ditto.
5361         (_M_replace_dispatch(iterator, iterator, _InputIterator,
5362         _InputIterator, __false_type)): Define, now does also what
5363         _M_replace did before.
5364         * src/string-inst.cc (_M_replace): Don't instantiate.
5366         * include/bits/basic_string.tcc (find(const _CharT*,
5367         size_type, size_type)): Tidy.
5368         (rfind(_CharT, size_type)): Ditto.
5369         (find_first_not_of(const _CharT*, size_type, size_type)): Ditto.
5370         (find_first_not_of(_CharT, size_type)): Ditto.
5371         (find_last_not_of(const _CharT*, size_type, size_type)): Ditto.
5372         (find_last_not_of(_CharT, size_type)): Ditto.
5374 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
5376         PR libstdc++/13838
5377         * include/debug/bitset (operator|=): Fix typo.
5378         * testsuite/23_containers/bitset/operations/13838.cc: New.
5380 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
5382         * include/bits/basic_string.tcc (insert(size_type,
5383         const _CharT*, size_type __n)): Fix length_error check.
5384         (replace(size_type, size_type, const _CharT*, size_type):
5385         Ditto; call _M_replace_safe.
5386         (_M_replace_aux(size_type, size_type, size_type, _CharT):
5387         Fix length_error check.
5388         (_M_replace(iterator, iterator, _InputIterator,
5389         _InputIterator)): Ditto, tweak.
5390         (_M_replace_safe(size_type, size_type, const _CharT*,
5391         size_type)): Remove length_error check.
5393         * include/bits/basic_string.tcc (append(const basic_string&),
5394         append(const basic_string&, size_type, size_type)): Tweak
5395         comment.
5397         * include/bits/basic_string.tcc (copy(_CharT*, size_type,
5398         size_type)): If __n == 0 don't call traits::copy.
5400 2004-01-23  Stefan Olsson  <stefan@snon.net>
5402         * include/ext/mt_allocator.h: Reduce lock contention.
5404 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
5406         PR libstdc++/13831
5407         * include/bits/fstream.tcc (underflow): Remove unused
5408         variable.
5409         * include/bits/streambuf_iterator.h (equal): Ditto.
5410         * include/bits/locale_facets.h (_M_convert_from_char):
5411         Ditto.
5413 2004-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5415         PR c/13814
5416         * config/linker-map.gnu (nan): Delete.
5417         * libmath/mathconf.h (NAN, nan): Delete.
5418         * linkage.m4 (nan): Don't check for it.
5419         * libmath/nan.c: Delete file.
5421         * config.h.in, configure: Regenerate.
5423 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
5425         * include/bits/basic_string.h (push_back(_CharT)):
5426         Call _M_replace_aux.
5427         (insert(size_type, const basic_string&)): Trivial tweak.
5428         (insert(size_type, size_type, _CharT)): Call _M_replace_aux.
5429         (insert(iterator, _CharT)): Ditto.
5430         (erase(size_type, size_type)): Ditto.
5431         (erase(iterator)): Ditto.
5432         (erase(iterator, iterator)): Ditto.
5433         (replace(size_type, size_type, size_type, _CharT)): Ditto.
5435 2004-01-23  Loren J. Rittle  <ljrittle@acm.org>
5437         libstdc++/13823
5438         * testsuite/performance/allocator_map_thread.cc: New test.
5440 2004-01-22  Paolo Carlini  <pcarlini@suse.de>
5442         * include/bits/locale_facets.tcc
5443         (money_put::do_put(..., long double)): Use the basic_string
5444         constructor for char arrays, not that for C-strings, to pass
5445         __digits to do_put(..., const string_type&): __ws isn't
5446         null-terminated.
5448 2004-01-22  Paolo Carlini  <pcarlini@suse.de>
5450         * include/bits/basic_string.h (_M_replace_safe): Change
5451         signatures to take size_types and const _CharT*.
5452         (_M_replace_aux): Likewise, takes size_types instead of
5453         iterators.
5454         (append(size_type, _CharT)): Update call.
5455         (assign(size_type, _CharT)): Ditto.
5456         (replace(iterator, iterator, size_type, _CharT)): Ditto.
5457         (_M_replace_dispatch(iterator, iterator, _Integer,
5458         _Integer, __true_type)): Ditto.
5459         * include/bits/basic_string.tcc (assign(const _CharT*,
5460         size_type)): Ditto.
5461         (insert(size_type, const _CharT*, size_type)): Ditto.
5462         (replace(size_type, size_type, const _CharT*,
5463         size_type)): Ditto.
5464         (_M_replace(iterator, iterator, _InputIterator,
5465         _InputIterator)): Ditto.
5466         (append(const basic_string&)): Ditto.
5467         (append(const basic_string&, size_type, size_type): Ditto.
5468         (append(const _CharT*, size_type): Ditto.
5469         (_M_replace_safe, _M_replace_safe): Change definitions
5470         accordingly, simplify.
5471         * string-inst.cc (_M_replace_safe): Don't instantiate.
5473 2004-01-21  Paolo Carlini  <pcarlini@suse.de>
5475         * include/bits/basic_string.tcc (append(const basic_string&)):
5476         Revert previous change.
5477         (append(const basic_string&, size_type, size_type)): Revert
5478         previous change, use _M_check and _M_limit.
5480 2004-01-21  Paolo Carlini  <pcarlini@suse.de>
5482         * include/bits/basic_string.h (_M_check): Change to return
5483         a checked __pos and take an additional const char* argument.
5484         (_M_fold): Rename to _M_limit, change to return a size_type,
5485         corresponding to the __off limited to the actual length.
5486         (insert(size_type, size_type, _CharT)): Update call, call
5487         replace.
5488         (insert(iterator, _CharT)): Call replace(iterator, iterator,
5489         size_type, _CharT) instead.
5490         (erase(size_type, size_type)): Update calls.
5491         (replace(size_type, size_type, size_type, _CharT)): Ditto.
5492         (substr(size_type, size_type)): Use _M_check.
5493         * include/bits/basic_string.tcc (basic_string(const basic_string&,
5494         size_type, size_type)): Update calls.
5495         (basic_string(const basic_string&, size_type, size_type,
5496         const _Alloc&)): Ditto.
5497         (assign(const basic_string&, size_type, size_type)): Use the
5498         new _M_check and _M_limit.
5499         (insert(size_type, const basic_string&, size_type, size_type):
5500         Ditto.
5501         (insert(size_type, const _CharT*, size_type)): Ditto.
5502         (replace(size_type, size_type, const _CharT*, size_type): Ditto.
5503         (replace(size_type, size_type, const basic_string&,
5504         size_type, size_type)): Ditto.
5505         (append(const basic_string&)): Ditto.
5506         (append(const basic_string&, size_type, size_type)): Ditto.
5507         (copy(_CharT*, size_type, size_type)): Ditto.
5508         (compare(size_type, size_type, const basic_string&)): Ditto.
5509         (compare(size_type, size_type, const basic_string&,size_type,
5510         size_type)): Ditto.
5511         (compare(size_type, size_type, const _CharT*)): Ditto.
5512         (compare(size_type, size_type, const _CharT*, size_type)): Ditto.
5514 2004-01-19  Stefan Olsson  <stefan@snon.net>
5516         * include/ext/mt_allocator.h: If a thread, when it dies, still has
5517         memory on it's freelist this memory is not returned to global
5518         list. Simplification of deallocate so that memory is always
5519         returned to the calling thread id's freelist instead of to
5520         global. Fix typos. Add volatile where appropriate.
5522 2004-01-19  Loren J. Rittle  <ljrittle@acm.org>
5524         * testsuite/ext/stdio_filebuf/char/10063-2.cc: Treat unbuffered.
5525         * testsuite/ext/stdio_filebuf/char/10063-3.cc: New test.  Like -2 but
5526         use __gnu_cxx::stdio_sync_filebuf<char> instead; allow buffered stream.
5528 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
5530         * src/debug.cc: Make sure all the names are prefixed with
5531         double (or single) underscore.
5533 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
5535         * src/debug.cc: Trivial formatting change.
5537 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
5539         * include/bits/basic_string.tcc (_S_construct(size_type,
5540         _CharT, const _Alloc&)): Remove redundant try/catch.
5541         (_M_mutate(size_type, size_type, size_type)): Ditto.
5542         (_M_clone(const _Alloc&, size_type)): Ditto.
5544 2004-01-18  Paolo Carlini  <pcarlini@suse.de>
5546         * include/bits/basic_string.h (c_str()): Simplify, due to
5547         21.3.4 the internal representation is always kept null-terminated.
5548         * include/bits/basic_string.tcc (_M_clone): Null-terminate.
5549         * testsuite/21_strings/basic_string/element_access/char/4.cc: New.
5550         * testsuite/21_strings/basic_string/element_access/wchar_t/4.cc:
5551         Ditto.
5553 2004-01-18  Paolo Carlini  <pcarlini@suse.de>
5555         * include/bits/basic_string.h (append(size_type, _CharT)):
5556         Moved inline, just call _M_replace_aux, no source iterators at
5557         risk of being clobbered.
5558         (assign(size_type, _CharT)): Call directly _M_replace_aux.
5559         (_M_replace(iterator, iterator, _InputIterator, _InputIterator,
5560         input_iterator_tag)): Remove fifth unused argument.
5561         (_M_replace_dispatch(iterator, iterator, _InputIterator,
5562         _InputIterator, __false_type)): Update call.
5563         * include/bits/basic_string.tcc (replace(size_type, size_type,
5564         const _CharT*, size_type)): Update call.
5565         (_M_replace_aux(iterator, iterator, size_type, _CharT)): Tweak
5566         throw string literal.
5567         (_M_replace_safe(iterator, iterator, _ForwardIterator,
5568         _ForwardIterator)): Likewise.
5569         (_M_replace(iterator, iterator, _InputIterator, _InputIterator,
5570         input_iterator_tag)): Remove fifth unused argument.
5571         (append(size_type __n, _CharT __c)): Move inline.
5572         * src/string-inst.cc (S::_M_replace(S::iterator, S::iterator,
5573         const C*, const C*, input_iterator_tag)): Remove fifth unused
5574         argument.
5576 2004-01-16  Benjamin Kosnik  <bkoz@redhat.com>
5578         * testsuite/ext/enc_filebuf/char/13189.cc: Fix guards.
5579         * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Same.
5581 2004-01-16  Danny Smith  <dannysmith@users.sourceforge.net>
5583         * testsuite/testsuite_hooks.cc (try_mkfifo): Avoid calling
5584         mkfifo for mingw32.
5586 2004-01-15  Stefan Olsson  <stefan@snon.net>
5588         * include/ext/mt_allocator.h: Reuse thread id's as soon as
5589         possible by changing the behaviour of thread_freelist to do
5590         push_front when threads die instead of push_back.
5592 2004-01-14  Paolo Carlini  <pcarlini@suse.de>
5594         * include/bits/locale_facets.h (struct __numpunct_cache):
5595         Add member _M_grouping_size, caching the length of _M_grouping.
5596         (__numpunct_cache<>::_M_cache): Assign the latter.
5597         (__verify_grouping): Move declaration...
5598         * include/bits/locale_facets.tcc (__verify_grouping):
5599         ... here, change signature to take a const char* and a size_t
5600         for the grouping; not a template anymore.
5601         (__add_grouping, num_put::_M_group_int, num_put::_M_group_float):
5602         Likewise change signature and tweak consistently.
5603         (num_get::_M_extract_float, num_get::_M_extract_int,
5604         num_put::_M_insert_int, num_put::_M_insert_float,
5605         money_get::do_get(string_type&), money_get::do_put(string_type)):
5606         Update callers.
5607         * config/locale/generic/numeric_members.cc
5608         (numpunct<>::_M_initialize_numpunct): Assign the new member.
5609         * config/locale/gnu/numeric_members.cc
5610         (numpunct<>::_M_initialize_numpunct): Likewise.
5611         * src/locale-inst.cc (__add_grouping): Tweak signature.
5612         (__verify_grouping): Don't instantiate, not a template anymore.
5614         * include/bits/locale_facets.h: Rename _M_truename_len ->
5615         _M_truename_size, _M_falsename_len -> _M_falsename_size.
5616         * include/bits/locale_facets.tcc: Likewise.
5617         * config/locale/generic/numeric_members.cc: Likewise.
5618         * config/locale/gnu/numeric_members.cc: Likewise.
5620 2004-01-14  Stefan Olsson  <stefan@snon.net>
5622         * include/ext/mt_allocator.h: Fixups.
5623         * testsuite/performance/allocator.cc: Enable __mt_alloc tests.
5624         * testsuite/performance/allocator_thread.cc: Same.
5626 2004-01-13  Benjamin Kosnik  <bkoz@redhat.com>
5628         * testsuite/performance/ifstream_extract_float.cc: Add higher
5629         precision tests.
5630         * testsuite/performance/ofstream_insert_float.cc: Same.
5632 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
5634         * src/locale-misc-inst.cc (__convert_from_v(long),
5635         __convert_from_v(unsigned long), __convert_from_v(long long),
5636         __convert_from_v(unsigned long long)): Remove, unused.
5638 2004-01-13  Benjamin Kosnik  <bkoz@redhat.com>
5640         * testsuite/performance/ifstream_extract_float.cc: New.
5641         * testsuite/performance/ofstream_insert_float.cc: Float generation
5642         matches above.
5644         * 20_util/auto_ptr.cc, auto_ptr_neg.cc: Break into...
5645         * 20_util/auto_ptr/1.cc: ...this.
5646         * 20_util/auto_ptr/2.cc: Same.
5647         * 20_util/auto_ptr/3.cc: Same.
5648         * 20_util/auto_ptr/3946.cc: Same.
5649         * 20_util/auto_ptr/4.cc: Same.
5650         * 20_util/auto_ptr/5.cc: Same.
5651         * 20_util/auto_ptr/6.cc: Same.
5652         * 20_util/auto_ptr/7.cc: Same.
5653         * 20_util/auto_ptr/assign_neg.cc
5654         * 20_util/pairs.cc: Break into...
5655         * 20_util/pair/1.cc: ...this.
5656         * 20_util/pair/2.cc: Same.
5657         * 20_util/pair/3.cc: Same.
5658         * 20_util/pair/4.cc: Same.
5660 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
5662         * include/bits/locale_facets.tcc (num_get::do_get(void*&)):
5663         Set correctly just basefield, the only group that matters.
5665 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
5667         * include/ext/rope (_Rope_rep_alloc_base): Eliminate.
5668         (_Rope_rep_base): Inherit directly from the rope allocator;
5669         use rebinding instead of _Alloc_traits; pick up data member
5670         from _Rope_rep_alloc_base.
5671         (_Rope_alloc_base): Eliminate.
5672         (_Rope_base): Inherit directly from the rope allocator; use
5673         rebinding instead of _Alloc_traits; pick up data member from
5674         _Rope_alloc_base.
5675         (rope::_S_new_RopeLeaf, rope::_S_new_RopeConcatenation,
5676         rope::_S_new_RopeFunction, rope::_S_new_RopeSubstring): Tweak.
5678 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
5680         PR libstdc++/13650
5681         * include/bits/basic_string.tcc (compare(size_type, size_type,
5682         const _CharT*, size_type)): Implement correctly the resolution
5683         of DR 5: basically, s is a char array, -not- a C string.
5684         * include/bits/basic_string.h: Tweak some comments.
5685         * testsuite/21_strings/basic_string/compare/char/13650.cc: New.
5686         * testsuite/21_strings/basic_string/compare/wchar_t/13650.cc: New.
5688 2004-01-12  Andreas Tobler  <a.tobler@schweiz.ch>
5690         * testsuite/lib/libstdc++.exp: Set LD_LIBRARY_PATH_32 for
5691         Solaris.
5693 2004-01-12  Paolo Carlini  <pcarlini@suse.de>
5695         * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc:
5696         Use try_mkfifo.
5697         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc:
5698         Likewise.
5700 2004-01-12  Paolo Carlini  <pcarlini@suse.de>
5702         * include/bits/locale_facets.h (struct __numpunct_cache):
5703         Add members _M_truename_len and _M_falsename_len, caching
5704         the lengths of _M_truename and _M_falsename.
5705         (__numpunct_cache<>::_M_cache): Assign the latter.
5706         * include/bits/locale_facets.tcc (num_get::do_get(bool&),
5707         num_put::do_put(bool)): Use the new members, thus avoiding
5708         computing string lengths again and again.
5709         * config/locale/generic/numeric_members.cc
5710         (numpunct<>::_M_initialize_numpunct): Assign the new members.
5711         * config/locale/gnu/numeric_members.cc
5712         (numpunct<>::_M_initialize_numpunct): Likewise.
5714 2004-01-12  Mark Mitchell  <mark@codesourcery.com>
5716         * testsuite/testsuite_hooks.h (__gnu_test::try_mkfifo): Declare it.
5717         * testsuite/testsuite_hooks.cc (__gnu_test::try_mkfifo): Define
5718         it.
5719         * testsuite/27_io/basic_filebuf/close/char/4879.cc: Use try_mkfifo
5720         and remove Cygwin XFAIL.
5721         * testsuite/27_io/basic_filebuf/close/char/9964.cc: Likewise.
5722         * testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc: Likewise.
5723         * testsuite/27_io/basic_filebuf/open/char/9507.cc: Likewise.
5724         * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc:
5725         Likewise.
5726         * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise.
5727         * testsuite/27_io/objects/char/7.cc: Likewise.
5728         * testsuite/27_io/objects/char/9661-1.cc: Likewise.
5729         * testsuite/27_io/objects/wchar_t/7.cc: Likewise.
5730         * testsuite/27_io/objects/wchar_t/9661-1.cc: Likewise.
5732 2004-01-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5734         * include/std/std_complex.h (std::complex<>::real): Return a
5735         reference. Add non-const overload.
5736         (std::complex<>::real): Likewise.
5737         (std::real): Likewise.
5738         (std::imag): Likewise.
5739         (std::operator+): Tidy.
5740         (std::operator-): Likewise.
5741         (std::operator*): Likewise.
5742         (std::operator/): Likewise.
5743         (std::operator>>): Likewise.
5745 2004-01-11  Paolo Carlini  <pcarlini@suse.de>
5747         PR libstdc++/13582
5748         * include/bits/fstream.tcc (imbue): Exploit the external
5749         buffer to imbue 'on the fly' a new locale and convert its
5750         remainder with the new codecvt facet.
5751         (underflow): Tweak slightly to deal with this special case.
5752         * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc: New.
5753         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc: Ditto.
5754         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Ditto.
5755         * testsuite/27_io/objects/wchar_t/13582-1_xin.cc: Ditto.
5756         * testsuite/27_io/objects/wchar_t/13582-1_xin.in: Ditto.
5758 2004-01-10  Paolo Carlini  <pcarlini@suse.de>
5760         * docs/html/ext/lwg-active.html, docs/html/ext/lwg-defects.html:
5761         Import Revision 28.
5763 2004-01-10  Paolo Carlini  <pcarlini@suse.de>
5765         PR libstdc++/13630
5766         * include/bits/locale_classes.h (class locale): Fix category
5767         typedef.
5768         * testsuite/22_locale/locale/13630.cc: Add.
5770 2004-01-10  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
5772         * include/bits/locale_facets.h: Make a name really dependent. This
5773         will be needed when Core Issue 224 is implemented.
5775 2004-01-09  Paolo Carlini  <pcarlini@suse.de>
5777         * testsuite/performance/allocator.cc: Demangle typeid(obj).name().
5778         * testsuite/performance/allocator_thread.cc: Likewise.
5780 2004-01-07  Benjamin Kosnik  <bkoz@redhat.com>
5782         * crossconfig.m4: Add LFS, io bits to linux cross config.
5783         * acconfig.h: Remove obsolete bits, reorder.
5784         * config.h.in: Regenerate.
5785         * aclocal.m4: Same.
5786         * configure: Same.
5788 2004-01-07  Gawain Bolton  <gp.bolton@computer.org>
5790         * include/bits/stl_list.h:
5791         * include/bits/list.tc:
5792         * src/list.cc:
5793         Performance enhancements for destructor, push_front(),
5794         push_back(), pop_front(), pop_back(), sort()
5795         Eliminated static_casts where possible.
5796         Moved code out of header files into new src/list.cc
5797         implementation file for library where possible.
5798         Remove inheritance from iterator class and create separate
5799         classes for non-constant and constant iterators.
5800         * include/bits/stl_tree.h (_Rb_tree class):
5801         * src/tree.cc:
5802         Only erase contents in destructor.
5803         Eliminate unnecessary initialization in assignment operator.
5804         Optimize for the nominal case by not checking whether
5805         container is empty in clear().
5806         Re-order test in _M_insert() to improve performance.
5807         Move initialization of new node's left & right pointers to
5808         src/tree.cc to where new node's colour is initialized
5809         and to reduce the amount of inline code.
5810         Use  _M_leftmost() and _M_end() to improve readability where
5811         appropriate.
5812         Create separate classes for non-constant and constant
5813         iterators to clarify code, avoid extra template parameters and
5814         casting away constness.
5816 2004-01-07  Benjamin Kosnik  <bkoz@redhat.com>
5818         * src/Makefile.am (sources): Add list.cc, tree.cc.
5819         * src/stl_tree.cc: Move to...
5820         * src/tree.cc: ...here.
5821         * src/list.cc: Add.
5822         * config/linker-map.gnu: Tweaks.
5823         * testsuite/23_containers/map/operators/1_neg.cc: Add excess errors.
5824         * testsuite/23_containers/set/operators/1_neg.cc: Add excess errors.
5826         * bits/stl_vector.h: Column wrap comments.
5828 2004-01-07  Loren J. Rittle  <ljrittle@acm.org>
5830         (re-open) PR libstdc++/12658
5831         * src/locale_init.cc (locale::locale): Remove ill-scoped mutex.
5832         (locale::global): Likewise.
5834 2004-01-07  Paolo Carlini  <pcarlini@suse.de>
5836         * testsuite/27_io/basic_istream/extractors_other/char/9318-in.cc:
5837         Remove redundant #include.
5838         * testsuite/27_io/basic_ostream/endl/char/1.cc: Likewise.
5839         * testsuite/27_io/basic_ostream/ends/char/1.cc: Likewise,
5840         re-enable normal testing.
5841         * testsuite/27_io/basic_ostream/ends/char/2.cc: Remove redundant
5842         #include.
5843         * testsuite/27_io/basic_ostream/flush/char/1.cc: Likewise.
5844         * testsuite/27_io/basic_ostream/inserters_character/char/1.cc:
5845         Likewise.
5846         * testsuite/27_io/basic_ostream/inserters_character/char/2.cc:
5847         Likewise.
5848         * testsuite/27_io/basic_ostream/inserters_character/char/3.cc:
5849         Likewise.
5850         * testsuite/27_io/basic_ostream/inserters_character/char/4.cc:
5851         Likewise.
5852         * testsuite/27_io/basic_ostream/inserters_character/char/5.cc:
5853         Likewise.
5854         * testsuite/27_io/basic_ostream/inserters_character/char/6.cc:
5855         Likewise.
5856         * testsuite/27_io/basic_ostream/inserters_character/char/8.cc:
5857         Likewise.
5858         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/7.cc:
5859         More properly, #include <locale>.
5860         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/8.cc:
5861         Remove redundant #include.
5862         * testsuite/27_io/basic_ostream/inserters_other/char/2.cc: Likewise.
5863         * testsuite/27_io/basic_ostream/inserters_other/char/3.cc: Remove
5864         redundant DejaGnu directive.
5865         * testsuite/27_io/basic_ostream/inserters_other/char/4.cc: Remove
5866         redundant #include.
5868 2004-01-06  Benjamin Kosnik  <bkoz@redhat.com>
5869             Stefan Olsson  <stefan@snon.net>
5871         * scripts/check_performance: Use -pthread.
5872         * testsuite/performance/allocator.cc: Tweaks, add list.
5873         * testsuite/performance/allocator_thread.cc: New.
5875 2004-01-06  Jerry Quinn  <jlquinn@optonline.net>
5877         * include/bits/locale_facets.h: Document public classes and
5878         functions.
5879         * include/bits/locale_facets.tcc (time_get::_M_extract_via_format):
5880         Add comment.
5882 2004-01-06  Paolo Carlini  <pcarlini@suse.de>
5884         * testsuite/27_io/basic_istream/extractors_other/char/1.cc:
5885         Remove redundant #includes.
5886         * testsuite/27_io/basic_istream/extractors_other/char/2.cc:
5887         Likewise.
5888         * testsuite/27_io/basic_istream/extractors_other/char/3.cc:
5889         Likewise.
5890         * testsuite/27_io/basic_istream/get/char/1.cc: Likewise.
5891         * testsuite/27_io/basic_istream/get/char/2.cc: Likewise.
5892         * testsuite/27_io/basic_istream/getline/char/1.cc: Likewise.
5893         * testsuite/27_io/basic_istream/getline/char/2.cc: Likewise.
5894         * testsuite/27_io/basic_istream/getline/char/3.cc: Likewise.
5895         * testsuite/27_io/basic_istream/ignore/char/1.cc: Likewise.
5896         * testsuite/27_io/basic_istream/ignore/char/6360.cc: Likewise.
5897         * testsuite/27_io/basic_istream/ignore/char/7220.cc: Likewise.
5898         * testsuite/27_io/basic_istream/peek/char/1.cc: Likewise.
5899         * testsuite/27_io/basic_istream/peek/char/6414.cc: Likewise.
5900         * testsuite/27_io/basic_istream/putback/char/1.cc: Likewise.
5901         * testsuite/27_io/basic_istream/read/char/1.cc: Likewise.
5902         * testsuite/27_io/basic_istream/read/char/2.cc: Likewise.
5903         * testsuite/27_io/basic_istream/read/char/3.cc: Likewise.
5904         * testsuite/27_io/basic_istream/readsome/char/6746-1.cc:
5905         Likewise.
5906         * testsuite/27_io/basic_istream/readsome/char/6746-2.cc:
5907         Likewise.
5908         * testsuite/27_io/basic_istream/readsome/char/8258.cc:
5909         Likewise.
5910         * testsuite/27_io/basic_istream/seekg/char/2346-fstream.cc:
5911         Likewise.
5912         * testsuite/27_io/basic_istream/seekg/char/2346-sstream.cc:
5913         Likewise.
5914         * testsuite/27_io/basic_istream/seekg/char/8348-1.cc: Likewise.
5915         * testsuite/27_io/basic_istream/seekg/char/8348-2.cc: Likewise.
5916         * testsuite/27_io/basic_istream/tellg/char/8348.cc: Likewise.
5918 2004-01-04  Paolo Carlini  <pcarlini@suse.de>
5920         * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc:
5921         Remove redundant #includes.
5922         * testsuite/27_io/basic_istream/extractors_arithmetic/char/02.cc:
5923         Likewise.
5924         * testsuite/27_io/basic_istream/extractors_arithmetic/char/03.cc:
5925         Likewise.
5926         * testsuite/27_io/basic_istream/extractors_arithmetic/char/06.cc:
5927         Likewise.
5928         * testsuite/27_io/basic_istream/extractors_arithmetic/char/07.cc:
5929         Likewise.
5930         * testsuite/27_io/basic_istream/extractors_arithmetic/char/08.cc:
5931         Likewise.
5932         * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc:
5933         Likewise.
5934         * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
5935         Likewise.
5936         * testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc:
5937         Likewise.
5938         * testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc:
5939         Likewise.
5940         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/1.cc:
5941         Likewise.
5942         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc:
5943         Likewise.
5944         * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/1.cc:
5945         Likewise.
5947 2004-01-04  Mark Mitchell  <mark@codesourcery.com>
5949         PR c++/12226
5950         * testsuite/27_io/basic_filebuf/4.cc: Remove use of invalid copy
5951         constructor.
5952         * testsuite/27_io/basic_fstream/4.cc: Likewise.
5953         * testsuite/27_io/basic_ifstream/4.cc: Likewise.
5954         * testsuite/27_io/basic_ios/4.cc: Likewise.
5955         * testsuite/27_io/basic_iostream/4.cc: Likewise.
5956         * testsuite/27_io/basic_istream/4.cc: Likewise.
5957         * testsuite/27_io/basic_istingstream/4.cc: Likewise.
5958         * testsuite/27_io/basic_ofstream/4.cc: Likewise.
5959         * testsuite/27_io/basic_ostream/4.cc: Likewise.
5960         * testsuite/27_io/basic_ostringstream/4.cc: Likewise.
5961         * testsuite/27_io/basic_stringbuf/5.cc: Likewise.
5962         * testsuite/27_io/basic_stringstream/4.cc: Likewise.
5964 2004-01-04  Paolo Carlini  <pcarlini@suse.de>
5966         * config/locale/generic/numeric_members.cc (_M_initialize_numpunct):
5967         Avoid unnecessarily zero terminating _M_atoms_out and _M_atoms_in;
5968         always use double underscored names.
5969         * config/locale/gnu/numeric_members.cc (_M_initialize_numpunct):
5970         Likewise.
5971         * include/bits/locale_facets.h (struct __numpunct_cache):
5972         Dimension _M_atoms_out and _M_atoms_in one position smaller.
5973         (__numpunct_cache<>::_M_cache): Don't zero terminate _M_atoms_out
5974         and _M_atoms_in.