2004-10-11 Benjamin Kosnik <bkoz@redhat.com>
[official-gcc.git] / libstdc++-v3 / ChangeLog
blobc90171e3d21b5ae931325bb816abddf682b5c32d
1 2004-10-11  Benjamin Kosnik  <bkoz@redhat.com>
3         PR libstdc++/16614 continued.
4         * include/ext/mt_allocator.h
5         (__per_type_pool_policy::_S_get_pool): Use saner defaults based on
6         specific type characteristics.
7         (__pool_base): Add constructor that takes a _Tune argument.
8         (__pool): Same.
9         * testsuite/ext/mt_allocator/tune-2.cc: Adjust default.
10         * testsuite/ext/mt_allocator/tune-4.cc: Same.
11         * testsuite/ext/mt_allocator/tune-3.cc: Same.
13 2004-10-11  Joachim Kuebart  <kuebart@mathematik.uni-ulm.de>
14             Paolo Carlini  <pcarlini@suse.de>
16         * src/pool_allocator.cc (__pool_alloc_base::_M_allocate_chunk):
17         Deal properly with exceptions thrown by ::operator new(size_t).
18         * testsuite/ext/pool_allocator/allocate_chunk.cc: New.
20         * include/ext/pool_allocator.h: Include <cstdlib>.
22 2004-10-10  Benjamin Kosnik  <bkoz@redhat.com>
24         * include/bits/functexcept.h: Add guards.
26         * acinclude.m4 (GLIBCXX_ENABLE_THREADS): Tweak test.
27         * configure: Regenerate.
28         
29 2004-10-10  Paolo Carlini  <pcarlini@suse.de>
31         * config/locale/gnu/monetary_members.cc (_S_construct_pattern):
32         Give __ret a default value, thus avoiding spurious warnings.
34         * testsuite/performance/27_io/filebuf_sgetn_unbuf.cc: Open either
35         words or linux.words, otherwise exit.
36         * testsuite/performance/27_io/ifstream_getline.cc: Slighlty tweak.
38 2004-10-09  Paolo Carlini  <pcarlini@suse.de>
40         * include/std/std_memory.h (__get_temporary_buffer): Don't use
41         INT_MAX, prefer numeric_limits<ptrdiff_t>::max(), ok on 64-bit
42         platforms too.
43         * testsuite/20_util/memory/auto_ptr/assign_neg.cc: Adjust dg-error
44         line numbers.
46 2004-10-08  Benjamin Kosnik  <bkoz@redhat.com>
48         * acconfig.h: Add _GLIBCXX_USE___CXA_ATEXIT.
49         * acinclude.m4 (GLIBCXX_ENABLE_CXA_ATEXIT): New.
50         * configure.ac: Call GLIBCXX_ENABLE_CXA_EXIT.
51         * configure: Regenerate.
52         * src/mt_allocator.cc (__pool::~__pool): Make conditional on
53         _GLIBCXX_USE___CXA_ATEXIT macro.
54         * docs/html/ext/mt_allocator.html: Add note about deallocation.
55         * testsuite/ext/mt_allocator/deallocate_local-2.cc: Guard checks
56         with _GLIBCXX_USE___CXA_ATEXIT.
57         * testsuite/ext/mt_allocator/deallocate_global_thread-3.cc: Same.
58         * testsuite/ext/mt_allocator/deallocate_global_thread-1.cc: Same.
59         * testsuite/ext/mt_allocator/deallocate_global-4.cc: Same.
60         * testsuite/ext/mt_allocator/deallocate_global-2.cc: Same.
61         * testsuite/ext/mt_allocator/deallocate_local_thread-3.cc: Same.
62         * testsuite/ext/mt_allocator/deallocate_local_thread-1.cc: Same.
63         * testsuite/ext/mt_allocator/deallocate_local-4.cc: Same.
64         
65 2004-10-07  Phil Edwards  <phil@codesourcery.com>
67         * testsuite/lib/libstdc++.exp:  Update list of undefined functions.
69 2004-10-07  Paolo Carlini  <pcarlini@suse.de>
71         * include/bits/list.tcc (operator=): Avoid iterator postincrement.
72         * include/bits/stl_tree.h (erase(iterator, iterator)): Likewise.
74 2004-10-07  Benjamin Kosnik  <bkoz@redhat.com>
76         * include/tr1: New.
77         * include/tr1/array: New.
78         * include/Makefile.am (tr1_headers): New.
79         (stamp-tr1): New.
80         (install-headers): New.
81         (allstamped): Add stamp-tr1.
83         * include/ext/array_allocator.h: New.
84         * include/Makefile.am: Add.
85         * include/Makefile.in: Regenerate.
86         * testsuite/ext/array_allocator/1.cc: New.
87         * testsuite/ext/array_allocator/2.cc: New.
89 2004-10-07  Richard Earnshaw  <rearnsha@arm.com>
91         * testsuite/lib/libstdc++.exp (libstdc++_exit): New proc.
93 2004-10-07  Roger Sayle  <roger@eyesopen.com>
95         PR libstdc++/17850
96         * configure.ac: Newlib does not provide strtold.
97         * configure: Regenerate.
99 2004-10-06  Benjamin Kosnik  <bkoz@redhat.com>
101         * acinclude.m4 (GLIBCXX_ENABLE_THREADS): Set enable_thread.
102         (GLIBCXX_CONFIGURE_TESTSUITE): Use it.
103         * configure: Regenerated.
104         * testsuite/Makefile.am (CLEANFILES): Add TEST for
105         check-performance executables.
106         (stamp_thread): New.
107         (all-local): Use it.
108         * testsuite/Makefile.in: Regenerate.
109         * scripts/create_testsuite_files: Filter thread tests.
111         * testsuite/thread/pthread1.cc: Remove macro conditionals: this
112         file will only be run by thread enabled configurations.
113         * testsuite/thread/pthread7-rope.cc: Same, add rope_type typedef.
114         * testsuite/thread/pthread6.cc: Same.
115         * testsuite/thread/pthread5.cc: Same.
116         * testsuite/thread/pthread4.cc: Same.
117         * testsuite/thread/pthread3.cc: Same.
118         * testsuite/thread/pthread2.cc: Same.
120         * testsuite/ext/mt_allocator/instantiate.cc: Add in __GTHREADS guard.
121         * testsuite/ext/mt_allocator/deallocate_global-1.cc: Move to...
122         * testsuite/ext/mt_allocator/deallocate_global_thread-1.cc: ...here.
123         * testsuite/ext/mt_allocator/deallocate_global-3.cc: Move to...
124         * testsuite/ext/mt_allocator/deallocate_global_thread-3.cc: ...here. 
125         * testsuite/ext/mt_allocator/deallocate_local-1.cc: Move to...
126         * testsuite/ext/mt_allocator/deallocate_local_thread-1.cc: ...here.
127         * testsuite/ext/mt_allocator/deallocate_local-3.cc: Move to...
128         * testsuite/ext/mt_allocator/deallocate_local_thread-3.cc: ...here.
130 2004-10-06  Benjamin Kosnik  <bkoz@redhat.com>
131             Paolo Carlini  <pcarlini@suse.de>
133         PR libstdc++/17780
134         * src/mt_allocator.cc (__pool<true>::_M_reserve_block): Revert
135         to old locking order.
137 2004-10-06  Paolo Carlini  <pcarlini@suse.de>
139         * include/std/std_sstream.h (_M_sync): When the caller is
140         setbuf, don't trust _M_string.capacity() to be the size of
141         the buffer area, use _M_string.size() in this case.
142         * testsuite/27_io/basic_stringbuf/setbuf/char/4.cc: New.
143         * testsuite/27_io/basic_stringbuf/setbuf/wchar_t/4.cc: Likewise.
145         * include/bits/sstream.tcc (overflow): Avoid calling string::assign
146         unnecessarily when the current _M_string is empty.
148 2004-10-06  Paolo Carlini  <pcarlini@suse.de>
150         * include/bits/stl_algo.h (__reverse(bidirectional_iterator_tag)):
151         Avoid iterator postincrement.
152         (__rotate): Likewise.
154         * include/bits/stl_algo.h: Minor formatting tweaks.
156 2004-10-06  Christopher Jefferson <caj@cs.york.ac.uk>
158         * include/bits/stl_algo.h (__reverse(random_access_iterator_tag)):
159         Avoid iterator postincrement; fix swapping middle element with
160         itself on odd-length inputs.
162 2004-10-05  Benjamin Kosnik  <bkoz@redhat.com>
164         PR libstdc++/17780
165         * include/ext/mt_allocator.h (__pool_base::_Tune): Add default
166         options as compile-time constant enums.
167         (__pool_base::_Tune::is_default): New.
168         (__pool_base::_Block_address): New.
169         (__pool_base): Rearrange data members.
170         (__pool::_M_reserve_memory): To _M_reserve_block.
171         (__pool::_M_reclaim_memory): To _M_reclaim_block.       
172         (__pool::_Bin_record): Add _Block_address data member.
173         (__pool<false>): Add _M_thread_freelist_initial.
174         (__pool::~__pool): Declare.     
175         (__common_pool_policy): Move static data member to...
176         (__common_pool_policy::_S_get_pool): ...here, make static local.
177         (__per_type_pool_policy): Move static data member to...
178         (__per_type_pool_policy::_S_get_pool): ...here, make static local.
179         (__mt_alloc::__mt_alloc): Call __policy_type::_S_get_pool.
180         Remove static member definitions. Use define for __default_policy.
181         * src/mt_allocator.cc: Same.
182         * config/linker-map.gnu: Don't export _S_get_pool. Renames.
183         * testsuite/ext/new_allocator: New.
184         * testsuite/ext/new_allocator/instantiate.cc: New.
185         * testsuite/ext/new_allocator/check_new.cc: New.
186         * testsuite/ext/new_allocator/deallocate_global.cc: New.
187         * testsuite/ext/new_allocator/deallocate_local.cc: New.
188         * testsuite/ext/mt_allocator/instantiate.cc: Instantiate all
189         template arguments.
190         * testsuite/ext/mt_allocator/deallocate_global-1.cc: New.
191         * testsuite/ext/mt_allocator/deallocate_global-2.cc: New.
192         * testsuite/ext/mt_allocator/deallocate_global-3.cc: New.
193         * testsuite/ext/mt_allocator/deallocate_global-4.cc: New.
194         * testsuite/ext/mt_allocator/deallocate_local-1.cc: New.
195         * testsuite/ext/mt_allocator/deallocate_local-2.cc: New.
196         * testsuite/ext/mt_allocator/deallocate_local-3.cc: New.
197         * testsuite/ext/mt_allocator/deallocate_local-4.cc: New.
198         * testsuite/ext/mt_allocator/deallocate.cc: New.
199         * testsuite/ext/malloc_allocator/deallocate.cc: New.    
200         * testsuite/ext/malloc_allocator/deallocate_global.cc: New.
201         * testsuite/ext/malloc_allocator/deallocate_local.cc: New.
202         
203 2004-10-05  Ulrich Weigand  <uweigand@de.ibm.com>
205         * configure.host (abi_baseline_pair): Define for s390-*-linux* and
206         s390x-*-linux*.
207         * config/abi/s390-linux-gnu/baseline_symbols.txt: Add missing symbols.
208         * config/abi/s390x-linux-gnu/baseline_symbols.txt: New file.
210 2004-10-05  Christopher Jefferson  <caj@cs.york.ac.uk>
212         * include/bits/stl_algobase.h (iter_swap): delegate to swap via
213         __iter_swap when iterator's value_types are equal.
214         (struct __iter_swap): New.
216 2004-10-04  Benjamin Kosnik  <bkoz@redhat.com>
218         * configure.ac (libtool_VERSION): To 6:3:0.
219         * configure: Regnerate.
220         * testsuite/testsuite_abi.cc (check_version): Add 3.4.3.
222 2004-10-04  Roger Sayle  <roger@eyesopen.com>
223             Eric Botcazou  <ebotcazou@libertysurf.fr>
225         PR libstdc++/17505
226         * config/linker-map.gnu: Synchronize the current list of stub
227         functions from libmath.
229 2004-10-03  Roger Sayle  <roger@eyesopen.com>
231         * config/locale/generic/c_locale.cc (__convert_to_v): Use
232         _GLIBCXX_HAVE_STRTOF instead _GLIBCXX_USE_C99 to check for strtof.
233         Likewise, use _GLIBCXX_HAVE_STRTOLD instead of _GLIBCXX_USE_C99
234         to check for presence of strtold.
236 2004-10-03  Paolo Carlini  <pcarlini@suse.de>
238         * include/bits/stl_list.h: Trivial formatting fixes.
239         * include/bits/stl_tree.h: Likewise.
241 2004-10-03  Paolo Carlini  <pcarlini@suse.de>
243         * include/bits/sstream.tcc (seekpos): In case of success, just
244         return __sp.
246 2004-10-01  Paolo Carlini  <pcarlini@suse.de>
248         * include/bits/sstream.tcc (pbackfail): Implement correctly
249         27.7.1.3/2, bullet 2: if mode & ios_base::out is false do not
250         write in the buffer.
251         * testsuite/27_io/basic_stringbuf/pbackfail/char/1.cc: New.
252         * testsuite/27_io/basic_stringbuf/pbackfail/char/2.cc: Likewise.
253         * testsuite/27_io/basic_stringbuf/pbackfail/wchar_t/1.cc: Likewise.
254         * testsuite/27_io/basic_stringbuf/pbackfail/wchar_t/2.cc: Likewise.
255         * testsuite/27_io/basic_istream/putback/char/1.cc: Tweak consistently.
257 2004-10-01  Paolo Carlini  <pcarlini@suse.de>
259         * include/bits/sstream.tcc (seekpos): Minor rearrangement of two
260         conditionals consistently with seekoff.
261         * include/std/std_sstream.h (setbuf): Avoid a string temporary.
262         (_M_sync): Simplify a bit, clean-up comment.
264 2004-09-30  Paolo Carlini  <pcarlini@suse.de>
266         PR libstdc++/10975 (DR 453)
267         * include/bits/sstream.tcc (seekoff): Don't fail if __beg == 0
268         and __off == 0.
269         * docs/html/ext/howto.html: Add an entry for DR 453.
270         * testsuite/27_io/basic_stringbuf/seekoff/char/10975.cc: New.
271         * testsuite/27_io/basic_stringbuf/seekoff/wchar_t/10975.cc: Likewise.
272         * testsuite/27_io/basic_istream/tellg/char/1.cc: Tweak consistently.
273         * testsuite/27_io/basic_ostream/tellp/char/1.cc: Likewise.
274         * testsuite/27_io/basic_ostream/tellp/char/2.cc: Likewise.
275         * testsuite/27_io/basic_istream/seekg/char/2346-fstream.cc: Fix and
276         move to...
277         * testsuite/27_io/basic_istream/seekp/char/2346-fstream.cc: ... here.
278         * testsuite/27_io/basic_istream/seekg/char/2346-sstream.cc: Fix and
279         move to...
280         * testsuite/27_io/basic_istream/seekp/char/2346-sstream.cc: ... here.
282 2004-09-29  Paolo Carlini  <pcarlini@suse.de>
284         * include/std/std_sstream.h (basic_stringbuf(ios_base::openmode)):
285         Don't use _M_stringbuf_init, keep the pointers null, per 27.7.1.1.
286         (str()): Slightly tweak, protect from pptr() == 0.
287         (_M_update_egptr()): Likewise.
288         * include/bits/sstream.tcc (ssekoff, seekpos): In order to check
289         for an empty buffer use __beg instead of _M_string.capacity().
290         * testsuite/27_io/basic_stringbuf/cons/char/1.cc: New.
291         * testsuite/27_io/basic_stringbuf/cons/wchar_t/1.cc: Likewise.
293         * testsuite/27_io/basic_filebuf/cons/char/1.cc: New.
294         * testsuite/27_io/basic_filebuf/cons/wchar_t/1.cc: Likewise.
295         * testsuite/27_io/basic_streambuf/cons/char/1.cc: Update.
296         * testsuite/27_io/basic_streambuf/cons/wchar_t/1.cc: Likewise.
298 2004-09-29  Paolo Carlini  <pcarlini@suse.de>
299             Benjamin Kosnik  <bkoz@redhat.com>
300         
301         * testsuite/testsuite_io.h (class constraint_buf): New, extended
302         and templatized version of constraint_filebuf; add typedefs for
303         streambuf/stringbuf/filebuf and wchar_t counterparts.
305 2004-09-28  Paolo Carlini  <pcarlini@suse.de>
307         PR libstdc++/16612
308         * include/bits/basic_string.h (_M_dispose, _M_refcopy,
309         basic_string()): When _GLIBCXX_FULLY_DYNAMIC_STRING is defined,
310         don't deal with _S_empty_rep.
311         * include/bits/basic_string.tcc (_S_construct, _M_destroy,
312         _M_leak_hard, _M_mutate): Likewise.
313         * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): New.
314         * acconfig.h: Add corresponding undef.  
315         * configure.ac: Use GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING.
316         * docs/html/configopts.html: Document --enable-fully-dynamic-string.
317         * configure: Regenerate.
318         * config.h.in: Likewise.
320 2004-09-28  Benjamin Kosnik  <bkoz@redhat.com>
321             Paolo Carlini  <pcarlini@suse.de>
323         * testsuite/21_strings/basic_string/operations/char/1.cc: New.
324         * testsuite/21_strings/basic_string/operations/wchar_t/1.cc: New.
325         * testsuite/21_strings/basic_string/element_access/char/empty.cc: New.
326         * testsuite/21_strings/basic_string/element_access/wchar_t/empty.cc: 
327         New.
329 2004-09-28  Paolo Carlini  <pcarlini@suse.de>
331         * README: Remove obsolete entry about include/c_shadow.
333 2004-09-24  H.J. Lu  <hongjiu.lu@intel.com>
335         PR libstdc++/17469
336         * testsuite/lib/libstdc++.exp: Don't use global ld_library_path.
338 2004-09-24  Paolo Carlini  <pcarlini@suse.de>
340         * src/localename.cc (locale::locale(const char*)): Minor tweaks:
341         rename a variable, move an assignment.
342         (locale::_Impl::_Impl(const char*, size_t)): Likewise, minor tweak.
344 2004-09-24  Paul Brook  <paul@codesourcery.com>
346         * testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc: XFAIL more arm
347         simulator targets.
348         * testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc: Ditto.
349         * testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc: Ditto.
350         * testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc: Ditto.
351         * testsuite/27_io/basic_istream/readsome/char/6746-2.cc: Ditto.
352         * testsuite/ext/stdio_filebuf/char/10063-2.cc: Ditto.
353         * testsuite/ext/stdio_filebuf/char/10063-3.cc: Ditto.
355 2004-09-23  Zack Weinberg  <zack@codesourcery.com>
357         * testsuite/20_util/memory/auto_ptr/assign_neg.cc
358         * testsuite/23_containers/map/operators/1_neg.cc
359         * testsuite/23_containers/set/operators/1_neg.cc:
360         Update locations and/or regexps of dg-error markers.
362 2004-09-23  P.J. Darcy  <darcypj@us.ibm.com>
364         * include/Makefile.am (thread_host_headers): Add gthr-tpf.h.
365         Add rule to build ${host_builddir}/gthr-tpf.h.
366         * include/Makefile.in: Regenerate.
368 2004-09-23  Paolo Carlini  <pcarlini@suse.de>
369             Magnus Fromreide  <magfr@lysator.liu.se>
371         * include/bits/boost_concept_check.h (struct _SequenceConcept):
372         Remove wrong requirement, i.e., not present in Table 67.
374 2004-09-21  Paolo Carlini  <pcarlini@suse.de>
376         PR libstdc++/12882 (cont)
377         * acinclude.m4 (GLIBCXX_CHECK_LFS): Check for fstat64 too.
378         * configure: Regenerate.
379         * config/io/basic_file_stdio.cc (__basic_file<>::showmanyc): When
380         _GLIBCXX_USE_LFS use fstat64 and lseek64, thus providing a non
381         trivial showmanyc for large files too.
383 2004-09-17  Jonathan Wakely  <redi@gcc.gnu.org>
385         * include/bits/stl_algo.h (remove): Remove too restrictive
386         concept-check.
388 2004-09-17  Paolo Carlini  <pcarlini@suse.de>
390         * include/bits/fstream.tcc (xsgetn): Slightly tweak conditional,
391         as per Nathan's original suggestion.
393 2004-09-17  Paolo Carlini  <pcarlini@suse.de>
395         * testsuite/ext/mt_allocator/tune-1.cc: Use VERIFY, clean
396         up a bit.
397         * testsuite/ext/mt_allocator/tune-2.cc: Likewise.
398         * testsuite/ext/mt_allocator/tune-3.cc: Likewise.
399         * testsuite/ext/mt_allocator/tune-4.cc: Likewise.
401 2004-09-17  Paolo Carlini  <pcarlini@suse.de>
402             Andrea Arcangeli  <andrea@suse.de>
404         * config/io/basic_file_stdio.cc (__basic_file<>::close)): Don't
405         call unnecessarily sync, that is fflush: the library, since 3.4.0
406         does not use buffered fread/fwrite.
407         * include/bits/fstream.tcc (basic_filebuf<>::overflow): Likewise.
409 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
411         * config/cpu/arm/cxxabi_tweaks.h (__cxa_cdtor_return_type):
412         Define.
413         * config/cpu/generic/cxxabi_tweaks.h (__cxa_cdtor_return_type):
414         Define.
415         * libsupc++/cxxabi.h (__cxa_cdtor_return_type): New type.
416         (__cxa_vec_new): Use it.
417         (__cxa_vec_new2): Likewise.
418         (__cxa_vec_new3): Likewise.
419         (__cxa_vec_cdtor): Likewise.
420         (__cxa_vec_cctor): Likeiwse.
421         (__cxa_vec_dtor): Likewise.
422         (__cxa_vec_cleanup): Likewise.
423         (__cxa_vec_delete2): Likewise.
424         (__cxa_vec_delete3): Likewise.
425         * libsupc++/vec.cc (__cxa_vec_new): Likewise.
426         (__cxa_vec_new2): Likewise.
427         (__cxa_vec_new3): Likewise.
428         (__cxa_vec_cdtor): Likewise.
429         (__cxa_vec_cctor): Likeiwse.
430         (__cxa_vec_dtor): Likewise.
431         (__cxa_vec_cleanup): Likewise.
432         (__cxa_vec_delete2): Likewise.
433         (__cxa_vec_delete3): Likewise.
434         (__aeabi_vec_ctor_nocookie_nodtor): New function.
435         (__aeabi_vec_ctor_cookie_nodtor): Likewise.
436         (__aeabi_vec_cctor_nocookie_nodtor): Likewise.
437         (__aeabi_vec_new_cookie_noctor): Likewise.
438         (__aeabi_vec_new_nocookie): Likewise.
439         (__aeabi_vec_new_cookie_nodtor): Likewise.
440         (__aeabi_vec_new_cookie): Likewise.
441         (__aeabi_vec_dtor): Likewise.
442         (__aeabi_vec_dtor_cookie): Likewise.
443         (__aeabi_vec_delete): Likewise.
444         (__aeabi_vec_delete3): Likewise.
445         (__aeabi_vec_delete3_nodtor): Likewise.
446         (__aeabi_atexit): Likewise.
448 2004-09-14  Nathan Myers  <ncm@cantrip.org>
450         * include/bits/fstream.tcc (xsgetn): Slightly tweak the recent fix
451         for 11722: copy can replace move; the common case is __avail == 0.
453 2004-09-14  Paolo Carlini  <pcarlini@suse.de>
455         * include/bits/cpp_type_traits.h: Rename __is_trivially_copyable
456         to __is_scalar, more clear and consistent with "tr1" naming.
457         * include/bits/stl_algobase.h: Update consistently throughout.
459 2004-09-13  Paolo Carlini  <pcarlini@suse.de>
461         PR libstdc++/11722
462         * include/std/std_fstream.h (xsgetn): Declare only.
463         * include/bits/fstream.tcc (xsgetn): Define, optimize for the
464         always_noconv() case: when __n > __buflen, copy the available
465         buffer and issue a direct read.
466         * testsuite/performance/27_io/filebuf_sgetn_unbuf.cc: New.
468         * include/bits/fstream.tcc (xsputn): Minor tweak, reorder a
469         conditional.
471 2004-09-13  Hans-Peter Nilsson  <hp@bitrange.com>
473         * testsuite/lib/libstdc++.exp: Use gcc wrapper.exp and call
474         libstdc++_maybe_build_wrapper instead of using local code.
476 2004-09-08  Benjamin Kosnik  <bkoz@redhat.com>
478         * config/linker-map.gnu (GLIBCXX_3.4.3): New, adjust symbol exports.
480 2004-09-03  Jan Beulich  <jbeulich@novell.com>
482         * crossconfig.m4: Add NetWare as a target.
483         * configure: Regenerate.
485 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
487         * libsupc++/typeinfo: Honor __GXX_MERGED_TYPEINFO_NAMES if already
488         defined.
490 2004-09-02  Benjamin Kosnik  <bkoz@redhat.com>
491             Simon Richter  <Simon.Richter@hogyros.de>
493         PR libstdc++/16715
494         * include/bits/istream.tcc: Add extern template for iostream
495         char and wchar_t instantiations.
497 2004-09-02  Benjamin Kosnik  <bkoz@redhat.com>
498             Leland Wang  <llwang@infor.org>
500         PR libstdc++/17259
501         * include/ext/ropeimpl.h (rope::_S_compare): Use
502         _Rope_constants::_S_leaf.
504 2004-09-02  Benjamin Kosnik  <bkoz@redhat.com>
506         PR libstdc++/16848
507         * include/Makefile.am (ext_headers): Remove demangle.h.
508         * include/Makefile.in: Regenerate.
509         * include/ext/demangle.h: Remove.
511 2004-09-01  Benjamin Kosnik  <bkoz@redhat.com>
513         PR libstdc++/16614
514         * include/ext/mt_allocator.h (__mt_base): Not type dependent,
515         split into..
516         (__pool): New, specialize.
517         (__common_pool): New, static bits here.
518         (__per_type_pool): New, and here.
519         (__mt_alloc_base): New.
520         (__mt_alloc): Add template parameter, inherit from it.
521         * src/allocator.cc: Split this...
522         * src/allocator-inst.cc: And this...
523         * src/pool_allocator.cc: ...into this.
524         * src/mt_allocator.cc: ... and this. Add definitions for
525         __mt_base.
526         * src/Makefile.am (sources): Split allocator.cc to
527         pool_allocator.cc and mt_allocator.cc.
528         * src/Makefile.in: Regenerate.
529         * config/linker-map.gnu: Add symbols.
530         * docs/html/ext/mt_allocator.html: Document new design.
531         * testsuite/ext/mt_allocator/tune-1.cc: New.
532         * testsuite/ext/mt_allocator/tune-2.cc: New.
533         * testsuite/ext/mt_allocator/tune-3.cc: New.
534         * testsuite/ext/mt_allocator/tune-4.cc: New.
536         * testsuite/testsuite_allocator.h (__gnu_test::check_new): New.
537         * testsuite/ext/allocators.cc: Use check_new, split into...
538         * testsuite/ext/mt_allocator/check_new.cc: this.
539         * testsuite/ext/pool_allocator/check_new.cc: this.
540         * testsuite/ext/malloc_allocator/check_new.cc: this.
541         * testsuite/ext/debug_allocator/check_new.cc: this.
542         * testsuite/ext/mt_allocator/instantiate.cc: this.
543         * testsuite/ext/pool_allocator/instantiate.cc: this.
544         * testsuite/ext/malloc_allocator/instantiate.cc: this.
545         * testsuite/ext/debug_allocator/instantiate.cc: this.
547 2004-08-30  Phil Edwards  <phil@codesourcery.com>
549         * docs/html/install.html:  Update locales list (from Paolo).
550         Remove other redundant information and point to the GCC install
551         documentation.
553 2004-08-30  Benjamin Kosnik  <bkoz@redhat.com>
555         * include/ext/pool_allocator.h: Rename __pool_base to
556         __pool_alloc_base.
557         * src/allocator.cc: Same.
558         * config/linker-map.gnu: Same.
560 2004-08-30  Paolo Carlini  <pcarlini@suse.de>
561             Kenneth C. Schalk  <ken@xorian.net>
563         PR libstdc++/17215
564         * config/io/basic_file_stdio.cc (__basic_file<char>::close()):
565         Check the return value of fclose/sync, loop on EINTR.
566         (__basic_file<char>::sys_open): Likewise, for sync.
568 2004-08-29  Paolo Carlini  <pcarlini@suse.de>
570         * include/bits/locale_facets.tcc (time_get<>::_M_extract_via_format,
571         case 'S'): Allow for at least one leap-second (as per C99, 7.23.1
572         and 7.23.3.5), two if !_GLIBCXX_USE_C99.
573         * testsuite/22_locale/time_get/get_time/char/4.cc: New.
574         * testsuite/22_locale/time_get/get_time/wchar_t/4.cc: Likewise.
576 2004-08-27  Jason Merrill  <jason@redhat.com>
578         PR c++/13684
579         * libsupc++/guard.cc (static_mutex): Internal class implementing a
580         recursive mutex which controls initialization of local statics.
581         (__gnu_cxx::recursive_init): New exception class.
582         (__cxa_guard_acquire): Deal with locking and recursion detection.
583         (acquire_1, __cxa_guard_abort, __cxa_guard_release): Likewise.
585 2004-08-27  Matthias Klose  <doko@debian.org>
587         * configure.host: For mips*-*-linux* update cpu_include_dir
588         after atomicity_dir is set.
590 2004-08-27  Matthias Klose  <doko@debian.org>
592         * config/abi/arm-linux-gnu/baseline_symbols.txt: New.
593         * config/abi/mips-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
594         * configure.host: Set abi_baseline_pair for arm*-*-linux* and
595         mips*-*-linux*.
597 2004-08-27  Paolo Carlini  <pcarlini@suse.de>
599         * testsuite/27_io/manipulators/adjustfield/wchar_t/1.cc: New.
600         * testsuite/27_io/manipulators/adjustfield/wchar_t/2.cc: Likewise.
601         * testsuite/27_io/manipulators/basefield/wchar_t/1.cc: Likewise.
602         * testsuite/27_io/manipulators/standard/wchar_t/1.cc: Likewise.
603         * testsuite/27_io/manipulators/standard/wchar_t/2.cc: Likewise.
605         * testsuite/27_io/manipulators/adjustfield/char/1.cc: Minor
606         formatting fixes.
607         * testsuite/27_io/manipulators/adjustfield/char/2.cc: Likewise.
608         * testsuite/27_io/manipulators/basefield/char/1.cc: Likewise.
609         * testsuite/27_io/manipulators/standard/char/1.cc: Likewise.
610         * testsuite/27_io/manipulators/standard/char/2.cc: Likewise.
612 2004-08-25  Paolo Carlini  <pcarlini@suse.de>
614         PR libstdc++/17038 (partial)
615         * include/bits/locale_facets.tcc (time_put<>::do_put): Increase
616         __maxlen to 128.
617         * include/bits/locale_facets.h (class __timepunct): Add FIXME
618         comment about _M_put.
619         * config/locale/generic/time_members.cc (_M_put): Always null
620         terminate __s.
621         * config/locale/gnu/time_members.cc (_M_put): Likewise.
622         * testsuite/22_locale/time_put/put/char/17038.cc: New.
623         * testsuite/22_locale/time_put/put/wchar_t/17038.cc: New.
625 2004-08-24  Paolo Carlini  <pcarlini@suse.de>
627         * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc: New.
628         * testsuite/27_io/basic_istringstream/str/wchar_t/1.cc: Likewise.
629         * testsuite/27_io/basic_ostringstream/cons/wchar_t/3.cc: Likewise.
630         * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc: Likewise.
631         * testsuite/27_io/basic_ostringstream/str/wchar_t/1.cc: Likewise.
632         * testsuite/27_io/basic_ostringstream/str/wchar_t/2.cc: Likewise.
634         * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Trim excess
635         newlines.
636         * testsuite/27_io/basic_istringstream/str/char/1.cc: Likewise.
638 2004-08-22  Matthias Klose  <doko@debian.org>
640         * config/abi/m68k-linux-gnu/baseline_symbols.txt: New.
641         * config/abi/sparc-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
643 2004-08-23  Paolo Carlini  <pcarlini@suse.de>
645         * configure.ac: Specify version 1.9.1 in AM_INIT_AUTOMAKE.
646         * aclocal.m4: Regenerate with automake-1.9.1.
647         * configure: Regenerate.
648         * Makefile.in: Likewise.
649         * include/Makefile.in: Likewise.
650         * libmath/Makefile.in: Likewise.
651         * libsupc++/Makefile.in: Likewise.
652         * po/Makefile.in: Likewise.
653         * src/Makefile.in: Likewise.
654         * testsuite/Makefile.in: Likewise.
656 2004-08-22  Paolo Carlini  <pcarlini@suse.de>
658         * include/bits/locale_facets.tcc (num_put<>::do_put(bool)): Cast
659         to a signed type, long according to the resolution of DR 359.
660         * testsuite/22_locale/num_put/put/char/9.cc: New.
661         * testsuite/22_locale/num_put/put/wchar_t/9.cc: New.
663         * include/bits/locale_facets.tcc (num_put<>::do_put(const void*)):
664         Simplify a bit: no need to clear showpos.
666 2004-08-21  Paolo Carlini  <pcarlini@suse.de>
668         * include/bits/char_traits.h (struct _Char_traits_match): Remove,
669         unused.
671 2004-08-21  Paolo Carlini  <pcarlini@suse.de>
673         * testsuite/22_locale/money_put/put/wchar_t/1.cc: Use proper
674         wchar_t type for the fill argument; minor formatting tweaks.
675         * testsuite/22_locale/money_put/put/wchar_t/12971.cc: Likewise.
676         * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise.
677         * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise.
678         * testsuite/22_locale/money_put/put/wchar_t/4.cc: Likewise.
679         * testsuite/22_locale/money_put/put/wchar_t/5.cc: Likewise.
680         * testsuite/22_locale/money_put/put/wchar_t/6.cc: Likewise.
682 2004-08-21  Paolo Carlini  <pcarlini@suse.de>
684         * include/bits/basic_ios.tcc (basic_ios<>::copyfmt): Don't deal
685         with _M_word != _M_local_word two times, redundantly.
687 2004-08-20  Jason Merrill  <jason@redhat.com>
689         * include/Makefile.am (${host_builddir}/gthr.h): Don't add
690         _GLIBCXX_ to #pragma lines.
691         * include/Makefile.in: Update.
693 2004-08-20  Paolo Carlini  <pcarlini@suse.de>
695         PR libstdc++/7219 (continued)
696         * include/bits/ios_base.h (class ios_base): Expose Annex D.6
697         typedefs by default.
698         * testsuite/27_io/types/1.cc: Remove #if _GLIBCXX_DEPRECATED.
699         * testsuite/27_io/ios_base/cons/assign_neg.cc: Tweak dg-error
700         line number.
701         * testsuite/27_io/ios_base/cons/copy_neg.cc: Likewise.
703 2004-08-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
705         * cpu/hppa/atomicity.h (__exchange_and_add, __atomic_add): Add memory
706         barrier to locking asm.
708 2004-08-20  Paolo Carlini  <pcarlini@suse.de>
710         * include/c_std/cmath.tcc (__cmath_power): Revert previous commit:
711         actually the warning is a front-end bug (c++/17120).
713 2004-08-20  Matthias Klose  <doko@debian.org>
715         * config/abi/s390-linux-gnu/baseline_symbols.txt: New.
717 2004-08-20  Paolo Carlini  <pcarlini@suse.de>
719         * include/c_std/cmath.tcc (__cmath_power): Suppress assignment
720         used as truth value warning.
722 2004-08-20  Paolo Carlini  <pcarlini@suse.de>
724         * config/abi/x86_64-linux-gnu/32/baseline_symbols.txt: Add 32 bit
725         baseline.
727 2004-08-20  Paolo Carlini  <pcarlini@suse.de>
729         * config/abi/x86_64-linux-gnu/baseline_symbols.txt: Fix it.
731 2004-08-19  Benjamin Kosnik  <bkoz@redhat.com>
733         * testsuite/22_locale/time_put/put/char/3.cc (test03): Don't check
734         timezone.
735         * testsuite/22_locale/time_put/put/wchar_t/3.cc (test03): Same.
737 2004-08-19  Paolo Carlini  <pcarlini@suse.de>
739         * testsuite/performance/20_util/allocator/insert.cc: For std::map
740         instantiate the allocator for a correct pair type.
741         * testsuite/performance/20_util/allocator/insert_insert.cc: Likewise.
742         * testsuite/performance/20_util/allocator/map_thread.cc: Likewise.
743         * testsuite/performance/20_util/allocator/producer_consumer.cc:
744         Likewise.
746         * testsuite/performance/20_util/allocator/list_sort_search.cc: Very
747         minor formatting fixes.
748         * testsuite/performance/20_util/allocator/map_mt_find.cc: Likewise.
750 2004-08-19  Paolo Carlini  <pcarlini@suse.de>
752         * testsuite/22_locale/time_put/put/char/1.cc: Add VERIFY on the
753         results.
754         * testsuite/22_locale/time_put/put/char/2.cc: Likewise.
755         * testsuite/22_locale/time_put/put/char/3.cc: Likewise.
756         * testsuite/22_locale/time_put/put/char/4.cc: Likewise.
757         * testsuite/22_locale/time_put/put/wchar_t/1.cc: Likewise.
758         * testsuite/22_locale/time_put/put/wchar_t/2.cc: Likewise.
759         * testsuite/22_locale/time_put/put/wchar_t/3.cc: Likewise.
760         * testsuite/22_locale/time_put/put/wchar_t/4.cc: Likewise.
762 2004-08-19  Paolo Carlini  <pcarlini@suse.de>
764         * config/abi/x86_64-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
766 2004-08-18  Matthias Klose  <doko@debian.org>
768         * config/abi/hppa-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
769         * config/abi/i386-linux-gnu/baseline_symbols.txt: New.
770         * config/abi/powerpc-linux-gnu/baseline_symbols.txt: New.
772 2004-08-17  Paolo Carlini  <pcarlini@suse.de>
774         * config/abi/alpha-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
776 2004-08-17  Paolo Carlini  <pcarlini@suse.de>
778         * config/abi/ia64-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
780 2004-08-17  Benjamin Kosnik  <bkoz@redhat.com>
782         * config/abi/i486-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
784 2004-08-16  Paolo Carlini  <pcarlini@suse.de>
786         * include/bits/indirect_array.h: Trivial formatting fixes.
787         * include/bits/valarray_after.h: Likewise.
788         * include/bits/valarray_array.h: Likewise.
789         * src/valarray-inst.cc: Likewise.
791 2004-08-15  Paolo Carlini  <pcarlini@suse.de>
793         * testsuite/27_io/basic_stringstream/rdbuf/char/2832.cc: Remove junk.
794         * testsuite/27_io/basic_stringstream/str/char/1.cc: Likewise.
795         * testsuite/27_io/basic_stringstream/str/char/3.cc: Likewise.
797         * testsuite/27_io/basic_stringstream/rdbuf/wchar_t/2832.cc: New.
798         * testsuite/27_io/basic_stringstream/str/wchar_t/1.cc: Likewise.
799         * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc: Likewise.
800         * testsuite/27_io/basic_stringstream/str/wchar_t/3.cc: Likewise.
801         * testsuite/27_io/basic_stringstream/str/wchar_t/4.cc: Likewise.
803 2004-08-15  Paolo Carlini  <pcarlini@suse.de>
805         * include/bits/deque.tcc: Trivial formatting fixes.
807 2004-08-15  Paolo Carlini  <pcarlini@suse.de>
809         * include/bits/deque.tcc: Trivial formatting fixes.
811         * include/bits/locale_facets.tcc (num_get<>::do_get(&bool)):
812         Remove unneded typedef.
814         * include/bits/locale_facets.tcc: Very minor tweaks.
816         * testsuite/22_locale/time_put/put/wchar_t/1.cc: Use proper
817         type for the fill argument.
818         * testsuite/22_locale/time_put/put/wchar_t/10.cc: Likewise.
819         * testsuite/22_locale/time_put/put/wchar_t/2.cc: Likewise.
820         * testsuite/22_locale/time_put/put/wchar_t/3.cc: Likewise.
821         * testsuite/22_locale/time_put/put/wchar_t/4.cc: Likewise.
822         * testsuite/22_locale/time_put/put/wchar_t/5.cc: Likewise.
823         * testsuite/22_locale/time_put/put/wchar_t/6.cc: Likewise.
824         * testsuite/22_locale/time_put/put/wchar_t/7.cc: Likewise.
825         * testsuite/22_locale/time_put/put/wchar_t/8.cc: Likewise.
827 2004-08-13  Paolo Carlini  <pcarlini@suse.de>
829         * src/debug.cc (_Error_formatter::_M_print_string): Fix thinko,
830         memmove is not needed, memcpy suffices.
832 2004-08-13  Paolo Carlini  <pcarlini@suse.de>
834         * include/std/std_fstream.h (class basic_ifstream,
835         class basic_ofstream, class basic_fstream): Add const overloads
836         of is_open, as per DR 365 [WP].
837         * docs/html/ext/howto.html: Add an entry for DR 365.
839 2004-08-12  Paolo Carlini  <pcarlini@suse.de>
841         * configure.ac: Specify version 1.8.5 in AM_INIT_AUTOMAKE.
843 2004-08-12  Paolo Carlini  <pcarlini@suse.de>
845         PR libstdc++/16956
846         * include/bits/sstream.tcc (basic_stringbuf<>::seekoff): Add __off
847         to the returned value, reorganize a bit.
848         * testsuite/27_io/basic_stringbuf/seekoff/char/16956.cc: New.
849         * testsuite/27_io/basic_stringbuf/seekoff/wchar_t/16956.cc: New.
851         * testsuite/27_io/basic_stringbuf/seekoff/char/1.cc: Remove junk.
852         * testsuite/27_io/basic_stringbuf/seekoff/wchar_t/1.cc: Likewise.
853         * testsuite/27_io/basic_stringbuf/seekpos/char/1.cc: Likewise.
854         * testsuite/27_io/basic_stringbuf/seekpos/wchar_t/1.cc: Likewise.
856 2004-08-12  Paul Brook  <paul@codesourcery.com>
858         * config/cpu/arm/cxxabi_tweaks.h: Define __cxa_vec_ctor_return and
859         _GLIBCXX_CXA_VEC_CTOR_RETURN.
860         * config/cpu/generic/cxxabi_tweaks.h: Ditto.
861         * libsupc++/cxxabi.h (__cxa_vec_ctor, __cxa_vec_cctor): Use
862         __cxa_vec_ctor_return.
863         * libsupc++/vec.cc (__cxa_vec_ctor, __cxa_vec_cctor): Ditto.
864         Use _GLIBCXX_CXA_VEC_CTOR_RETURN.
866 2004-08-12  Kelley Cook  <kcook@gcc.gnu.org>
868         * Makefile.in, aclocal.m4, configure, include/Makefile.in,
869         libmath/Makefile.in, libsupc++/Makefile.in, po/Makefile.in,
870         src/Makefile.in, testsuite/Makefile.in: Regenerate
872 2004-08-12  Jan Beulich  <jbeulich@novell.com>
874         * config/locale/generic/ctype_members.cc
875         (ctype<wchar_t>::_M_convert_to_wmask): Default case must not use 0 as
876         initializer for return value, as that is invalid for enumerated types.
877         * config/locale/gnu/ctype_members.cc
878         (ctype<wchar_t>::_M_convert_to_wmask): Likewise.
880 2004-08-11  Paolo Carlini  <pcarlini@suse.de>
882         * testsuite/27_io/basic_stringbuf/sbumpc/wchar_t/1.cc: Fix typo.
884 2004-08-11  Paolo Carlini  <pcarlini@suse.de>
886         * testsuite/27_io/basic_stringbuf/imbue/char/1.cc: Declare test
887         variable.
888         * testsuite/27_io/basic_stringbuf/imbue/wchar_t/1.cc: Ditto.
889         * testsuite/27_io/basic_stringbuf/in_avail/char/1.cc: Remove junk.
890         * testsuite/27_io/basic_stringbuf/in_avail/wchar_t/1.cc: Ditto.
891         * testsuite/27_io/basic_stringbuf/sbumpc/char/1.cc: Ditto.
892         * testsuite/27_io/basic_stringbuf/sbumpc/wchar_t/1.cc: Ditto.
893         * testsuite/27_io/basic_stringbuf/setbuf/char/1.cc: Ditto.
894         * testsuite/27_io/basic_stringbuf/setbuf/wchar_t/1.cc: Ditto.
895         * testsuite/27_io/basic_stringbuf/sgetc/char/1.cc: Ditto.
896         * testsuite/27_io/basic_stringbuf/sgetc/wchar_t/1.cc: Ditto.
897         * testsuite/27_io/basic_stringbuf/sgetn/char/1.cc: Ditto.
898         * testsuite/27_io/basic_stringbuf/sgetn/wchar_t/1.cc: Ditto.
899         * testsuite/27_io/basic_stringbuf/snextc/char/1.cc: Ditto.
900         * testsuite/27_io/basic_stringbuf/snextc/wchar_t/1.cc: Ditto.
901         * testsuite/27_io/basic_stringbuf/sputbackc/char/1.cc: Ditto.
902         * testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/1.cc: Ditto.
903         * testsuite/27_io/basic_stringbuf/sputc/char/1.cc: Ditto.
904         * testsuite/27_io/basic_stringbuf/sputc/wchar_t/1.cc: Ditto.
905         * testsuite/27_io/basic_stringbuf/sputn/char/1.cc: Ditto.
906         * testsuite/27_io/basic_stringbuf/sputn/wchar_t/1.cc: Ditto.
907         * testsuite/27_io/basic_stringbuf/sungetc/char/1.cc: Ditto.
908         * testsuite/27_io/basic_stringbuf/sungetc/wchar_t/1.cc: Ditto.
910 2004-08-11  Paolo Carlini  <pcarlini@suse.de>
911             Petur Runolfsson  <peturr02@ru.is>
913         PR libstdc++/16959
914         * src/ios_init.cc (ios_base::sync_with_stdio): Make sure the
915         standard streams are constructed.
916         * testsuite/27_io/ios_base/sync_with_stdio/16959.cc: New.
918 2004-08-09  Paolo Carlini  <pcarlini@suse.de>
920         * include/bits/stl_bvector.h: Trivial formatting fixes.
922 2004-08-09  Paolo Carlini  <pcarlini@suse.de>
924         * src/ios.cc (ios_base::_M_grow_words): Uglify the names.
926 2004-08-07  Jonathan Wakely  <redi@gcc.gnu.org>
927             Paolo Carlini  <pcarlini@suse.de>
929         * src/debug.cc (_Error_formatter::_M_print_string): In order
930         to print individual words from __string, _M_format_word can't
931         be called since may be just sprintf, thus ignoring completely
932         __n: instead, use memmove and append '\0' by hand.
934 2004-08-07  Paolo Carlini  <pcarlini@suse.de>
936         * config/locale/generic/c_locale.h (__convert_from_v): Don't
937         use a default for __prec, assume __prec >= 0 and simplify.
938         * config/locale/gnu/c_locale.h (__convert_from_v): Likewise.
939         * include/bits/locale_facets.tcc (money_put<>::do_put(long double)):
940         Pass format "%.*Lf" + precision == 0, equivalent to "%.0Lf".
942 2004-08-04  Phil Edwards  <phil@codesourcery.com>
944         * docs/html/configopts.html:  Emphasize that options change.
945         * docs/html/17_intro/configury.html:  Update links.
947 2004-08-03  Paolo Carlini  <pcarlini@suse.de>
949         * include/bits/list.tcc: Trivial formatting fixes.
951 2004-08-03  Mark Mitchell  <mark@codesourcery.com>
953         * libsupc++/new_op.cc: Update comments.
954         * libsupc++/del_op.cc: Likewise.
956 2004-08-02  Mark Mitchell  <mark@codesourcery.com>
958         * libsupc++/cxxabi.h: Make all declarations have default
959         visibility.
960         * libsupc++/exception: Likewise.
961         * libsupc++/new: Likewise.
962         * libsupc++/typeinfo: Likewise.
963         * libsupc++/unwind-cxx.h: Likewise.
964         * libsupc++/eh_alloc.cc (__cxa_allocate_exception): Put it into
965         the __cxxabiv1 namespace.
966         (__cxa_free_exception): Likewise.
967         * libsupc++/eh_aux_runtime.cc (__cxa_bad_cast): Likewise.
968         (__cxa_bad_typeid): Likewise.
969         * libsupc++/eh_catch.cc (__cxa_begin_catch): Likewise.
970         (__cxa_end_catch): Likewise.
971         * libsupc++/eh_globals.cc (__cxa_get_globals_fast): Likewise.
972         (__cxa_get_globals): Likewise.
973         * libsupc++/eh_throw.cc (__cxa_throw): Likewise.
974         (__cxa_rethrow): Likewise.
975         * libsupc++/pure.cc (__cxa_pure_virtual): Likewise.
976         * libsupc++/eh_type.cc: Include <cxxabi.h>.
978         * Makefile.am (hosted_source): Add libmath and testsuite.
979         (SUBDIRS): Remove them.
980         * acinclude.m4: (GLIBCXX_ENABLED_HOSTED): Default to freestanding
981         on arm*-*-symbianelf*.
982         * crossconfig.m4: Add arm*-*-symbianelf* support.
983         * include/c_std/std/std_cstdlib.h (stdlib.h): Do not include it
984         when freestanding.  Do not bring names into std:: namespace with
985         "using" when freestanding.  Declare required functions and macros
986         when freestanding.
987         * libsupc++/Makefile.am (c_sources): Do not include cp-demangle.c
988         when freestanding.
989         * libsupc++/del_op.cc: Declare "free" only when freestanding.
990         * libsupc++/eh_alloc.cc (cstring): Include it only when hosted.
991         (malloc): Declare when freestanding.
992         (free): Likewise.
993         (memset): Likewise.
994         (__cxa_allocate_exception): Call malloc, not std::malloc.  Likewise
995         for memset.
996         (__cxa_free_exception): Likewise for free.
997         * libsupc++/new_op.cc: Declare "malloc" when freestanding.
998         * libsupc++/pure.cc (writestr): Define to nothing when
999         freestanding.
1000         * libsupc++/vterminate.cc: Do not define anything when
1001         freestanding.
1002         * Makefile.in: Regenerated.
1003         * aclocal.m4: Likewise.
1004         * configure: Likewise.
1005         * include/Makefile.in: Likewise.
1006         * libmath/Makefile.in: Likewise.
1007         * libsupc++/Makefile.in: Likewise.
1008         * po/Makefile.in: Likewise.
1009         * src/Makefile.in: Likewise.
1010         * testsuite/Makefile.in: Likewise.
1012 2004-08-01  Matt Austern  <austern@apple.com>
1014         PR libstdc++/16844
1015         * include/bits/stl_list.h (_M_create_node): Remove unused
1016         zero-argument version.
1017         * include/ext/slist (_M_create_node): Pass two arguments to
1018         allocator's construct() member function.
1019         * testsuite/23_containers/deque/explicit_instantiation.cc: New.
1020         * testsuite/23_containers/list/explicit_instantiation.cc: New.
1021         * testsuite/23_containers/vector/explicit_instantiation.cc: New.
1022         * testsuite/23_containers/map/explicit_instantiation.cc: New.
1023         * testsuite/23_containers/set/explicit_instantiation.cc: New.
1024         * testsuite/23_containers/multimap/explicit_instantiation.cc: New.
1025         * testsuite/23_containers/multiset/explicit_instantiation.cc: New.
1026         * testsuite/ext/hash_set_explicit_instantiation.cc: New.
1027         * testsuite/ext/slist_explicit_instantiation.cc: New.
1029 2004-07-30  Paolo Carlini  <pcarlini@suse.de>
1031         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
1032         num_get<>::_M_extract_int): In the main parsing loop delay the
1033         life of __q to the actual use point.
1035 2004-07-29  Paolo Carlini  <pcarlini@suse.de>
1037         PR libstdc++/14220
1038         * include/bits/locale_facets.tcc (num_put<>::_M_insert_float):
1039         Don't clip the precision passed down to __convert_from_v:
1040         22.2.2.2.2 nowhere says so.
1041         * testsuite/22_locale/num_put/put/char/14220.cc: New.
1042         * testsuite/22_locale/num_put/put/wchar_t/14220.c: Likewise.
1044 2004-07-29  Paolo Carlini  <pcarlini@suse.de>
1046         * docs/html/ext/lwg-active.html, lwg-defects.html: Import Revision 31.
1048 2004-07-29  Paolo Carlini  <pcarlini@suse.de>
1049             Petur Runolfsson  <peturr02@ru.is>
1051         PR libstdc++/12658 (continued)
1052         * src/locale_init.cc (locale::locale, locale::global): Use
1053         a single locale_mutex instead of two separate mutexes.
1055 2004-07-29  Paolo Carlini  <pcarlini@suse.de>
1057         PR libstdc++/16813
1058         * include/debug/map.h (insert(_InputIterator, _InputIterator)):
1059         Fix typo.
1060         * testsuite/23_containers/map/insert/16813.cc: New.
1062 2004-07-29  Phil Edwards  <phil@codesourcery.com>
1064         * docs/html/faq/index.html:  Update version references.  Make
1065         clear that code from SGI has diverged greatly.  Remove references
1066         to library snapshots and what's-new sections.
1067         * docs/html/faq/index.txt:  Regenerate.
1069 2004-07-28  Matt Austern  <austern@apple.com>
1071         * include/bits/stl_construct.h (_Destroy): New three-argument
1072         overload that takes an allocator argument.  Another inline
1073         three-argument overload that takes std::allocator and dispatches
1074         to the two-argument version.
1075         * include/bits/stl_uninitialized.h (__uninitialized_fill_n_aux):
1076         Change return type to void to match uninitialized_fill_n.
1077         (__uninitialized_copy_a_): New function.  Like uninitialized_copy
1078         except that it takes an allocator and uses it for construct and
1079         destroy.  If the allocator is std::allocator, dispatches to
1080         uninitialized_copy.
1081         (__uninitialized_fill_a): Likewise.
1082         (__uninitialized_fill_n_a): Likewise.
1083         (__uninitialized_copy_copy): Give it an allocator argument.
1084         (__uninitialized_fill_copy): Likewise.
1085         (__uninitialized_copy_fill): Likewise.
1086         * include/bits/deque.tcc: Use new forms defined in stl_construct.h
1087         and stl_uninitialized.h.  Replace use of single-argument _Construct
1088         and _Destroy with use of allocator's construct and destroy methods.
1089         * include/bits/list.tcc: Likewise.
1090         * include/bits/stl_deque.h: Likewise.
1091         * include/bits/stl_list.h: Likewise.
1092         * include/bits/stl_tree.h: Likewise.
1093         * include/bits/stl_vector.h: Likewise.
1094         * include/bits/vector.tcc: Likewise.
1095         * include/ext/hashtable.h: Use rebind so that allocator_type
1096         has correct type for a container's allocator.  Replace use of
1097         single-argument _Construct and _Destroy with use of allocator's
1098         construct and destroy methods.
1099         * include/ext/memory (__uninitialized_copy_n_a): New function.
1100         Like uninitialized_copy_n except that it takes an extra parameter,
1101         an allocator, and uses it for construct and destroy operations.
1102         * include/ext/rope: Use new forms defined in stl_construct.h,
1103         stl_uninitialized.h, and ext/memory.  Replace use of single-argument
1104         _Construct and _Destroy with allocator construct and destroy methods.
1105         * include/ext/ropeimpl.h: Likewise.
1106         * include/ext/slist.h: Likewise.
1107         * testsuite/testsuite_allocator.h (check_construct_destroy): New.
1108         * testsuite/testsuite_allocator.cc (check_construct_destroy): New.
1109         * testsuite/23_containers/deque/check_construct_destroy.cc: New.
1110         * testsuite/23_containers/list/check_construct_destroy.cc: New.
1111         * testsuite/23_containers/set/check_construct_destroy.cc: New.
1112         * testsuite/23_containers/vector/check_construct_destroy.cc: New.
1113         * testsuite/ext/hash_check_construct_destroy.cc: New.
1114         * testsuite/ext/slist_check_construct_destroy.cc: New.
1116 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
1118         2003-10-01  Eric Christopher  <echristo@redhat.com>
1119         * config/cpu/sh/atomicity.h (__exchange_and_add): Remove 'm'
1120         constraint.
1121         2003-07-09  Alexandre Oliva  <aoliva@redhat.com>
1122         * config/cpu/sh/atomicity.h: New.  Use movli and movco on SH4a.
1124 2004-07-23  Benjamin Kosnik  <bkoz@redhat.com>
1126         PR libstdc++/16678
1127         * include/bits/locale_facets.tcc: Fix for -Werror.
1129 2004-07-23  Jonathan Wakely  <redi@gcc.gnu.org>
1131         * docs/html/debug.html: Say debug mode only available since 3.4.0.
1133 2004-07-21  Benjamin Kosnik  <bkoz@redhat.com>
1135         * docs/doxygen/mainpage.html: Clarify links.
1136         * docs/doxygen/stdheader.cc: Add files.
1137         * docs/doxygen/style.css: Remove bolds, add h2, h3 styles.
1138         * docs/doxygen/user.cfg.in: New options, wrap.
1140 2004-07-20  Danny Smith  <dannysmith@users.sourceforge.net>
1142         * include/c_std/std_cwchar.h (wcsstr): Correct signature.
1144 2004-07-19  Benjamin Kosnik  <bkoz@redhat.com>
1146         PR libstdc++/15488
1147         * testsuite/lib/libstdc++.exp (v3-copy-files): Revert.
1149 2004-07-17  Richard Sandiford  <rsandifo@redhat.com>
1151         PR bootstrap/16469
1152         * scripts/create_testsuite_files: Pass -print to find.
1154 2004-07-15  Paolo Carlini  <pcarlini@suse.de>
1156         * docs/html/ext/lwg-active.html, lwg-defects.html: Import Revision 30.
1157         * docs/html/ext/howto.html: Tweak entries for DRs 167/253/389/402.
1159 2004-07-15  Jakub Jelinek  <jakub@redhat.com>
1161         PR libstdc++/14697
1162         * acinclude.m4 (glibcxx_shared_libgcc): Correct
1163         glibcxx_shared_libgcc test for multilibs.
1164         * configure: Rebuilt.
1166 2004-07-14  Paolo Carlini  <pcarlini@suse.de>
1168         PR libstdc++/16505
1169         * include/bits/stl_uninitialized.h (uninitialized_fill_n): Fix
1170         the signature to return void, as per 20.4.4.3.
1171         * include/bits/stl_vector.h (vector::vector(size_type,
1172         const value_type&, const allocator_type&), vector::vector(size_type),
1173         vector::_M_initialize_dispatch): Adjust callers.
1174         * include/bits/vector.tcc (vector<>::_M_fill_assign,
1175         vector<>::_M_fill_insert): Likewise.
1176         * testsuite/20_util/memory/16505.cc: New.
1178 2004-07-14  Paolo Carlini  <pcarlini@suse.de>
1180         * testsuite/22_locale/locale/cons/12658_thread-1.cc,
1181         12658_thread-2.cc: Use __gnu_test::try_named_locale.
1183 2004-07-13  Benjamin Kosnik  <bkoz@redhat.com>
1185         * docs/html/ext/mt_allocator.html: Add docs for _Tune.
1186         * include/ext/mt_allocator.h (__mt_alloc::_S_get_options): Make public.
1187         (__mt_alloc::_S_set_options): Same.
1188         Add to comments.
1190 2004-07-13  Benjamin Kosnik  <bkoz@redhat.com>
1192         * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Add allocator defaults
1193         for linux.
1194         * configure: Regenerated.
1196 2004-07-13  Paolo Carlini  <pcarlini@suse.de>
1198         * testsuite/22_locale/locale/cons/12658_thread.cc: Move/rename
1199         to 12658_thread-1.cc and xfail.
1200         * testsuite/22_locale/locale/cons/12658_thread-2.c: New, much
1201         simpler version of 12658_thread-1.cc, still failing on 3_3 and
1202         not failing on 3_4/mainline - both on single processor and
1203         multiprocessor machines.
1205 2004-07-12  Benjamin Kosnik  <bkoz@redhat.com>
1207         * docs/html/abi.html: Remove non-public qualification.
1209         * include/bits/concurrence.h: Tweak comments.
1211 2004-07-11  Paolo Carlini  <pcarlini@suse.de>
1213         Add wchar_t counterparts of the basic_streambbuf<char> tests.
1214         * testsuite/27_io/basic_streambuf/cons/wchar_t/1.cc: New.
1215         * testsuite/27_io/basic_streambuf/imbue/wchar_t/1.cc, 9322.cc:
1216         Likewise.
1217         * testsuite/27_io/basic_streambuf/in_avail/wchar_t/9701-3.cc: Likewise.
1218         * testsuite/27_io/basic_streambuf/overflow/wchar_t/1.cc, 2.cc,
1219         3599.cc: Likewise.
1220         * testsuite/27_io/basic_streambuf/sgetc/wchar_t/1.cc: Likewise.
1221         * testsuite/27_io/basic_streambuf/sgetn/wchar_t/1.cc: Likewise.
1222         * testsuite/27_io/basic_streambuf/sputbackc/wchar_t/9538.cc: Likewise.
1223         * testsuite/27_io/basic_streambuf/sputc/wchar_t/1057.cc: Likewise.
1224         * testsuite/27_io/basic_streambuf/sputn/wchar_t/1.cc, 1057.cc:
1225         Likewise.
1226         * testsuite/27_io/basic_streambuf/sync/wchar_t/1057.cc: Likewise.
1228         * testsuite/27_io/basic_streambuf/imbue/char/1.cc, 9322.cc: Minor
1229         tweaks.
1230         * testsuite/27_io/basic_streambuf/overflow/char/2.cc, 3599.cc:
1231         Likewise.
1232         * testsuite/27_io/basic_streambuf/sputn/char/1057.cc: Likewise.
1233         * testsuite/27_io/basic_streambuf/sync/char/1057.cc: Likewise.
1235 2004-07-11  Phil Edwards  <phil@codesourcery.com>
1237         * acinclude.m4:  Cosmetic shell syntax fixes.
1238         * configure.ac:  Bring comment inline with reality.
1239         * configure.host:  Both of the above.  Move 'arm' case to right
1240         place in host_cpu switch.
1241         * aclocal.m4, configure:  Regenerate.
1243 2004-07-09  Paolo Carlini  <pcarlini@suse.de>
1245         Add wchar_t counterparts of the basic_stringbuf<char> tests.
1246         * testsuite/27_io/basic_stringbuf/imbue/wchar_t/1.cc, 9322.cc: New.
1247         * testsuite/27_io/basic_stringbuf/in_avail/wchar_t/1.cc: Likewise.
1248         * testsuite/27_io/basic_stringbuf/overflow/wchar_t/1.cc, 2.cc,
1249         3599.cc, 9988.cc: Likewise.
1250         * testsuite/27_io/basic_stringbuf/sbumpc/wchar_t/1.cc, 9825.cc:
1251         Likewise.
1252         * testsuite/27_io/basic_stringbuf/seekoff/wchar_t/1.cc, 2.cc:
1253         Likewise.
1254         * testsuite/27_io/basic_stringbuf/seekoff/wchar_t/1.cc, 2.cc, 3.cc:
1255         Likewise.
1256         * testsuite/27_io/basic_stringbuf/setbuf/wchar_t/1.cc, 2.cc, 3.cc:
1257         Likewise.
1258         * testsuite/27_io/basic_stringbuf/sgetc/wchar_t/1.cc: Likewise.
1259         * testsuite/27_io/basic_stringbuf/sgetn/wchar_t/1.cc: Likewise.
1260         * testsuite/27_io/basic_stringbuf/snextc/wchar_t/1.cc: Likewise.
1261         * testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/1.cc, 9425.cc:
1262         Likewise.
1263         * testsuite/27_io/basic_stringbuf/sputc/wchar_t/1.cc, 1057.cc,
1264         9404-1.cc: Likewise.
1265         * testsuite/27_io/basic_stringbuf/sputn/wchar_t/1.cc, 1057.cc,
1266         9404-2.cc: Likewise.
1267         * testsuite/27_io/basic_stringbuf/str/wchar_t/1.cc, 2.cc, 3.cc,
1268         3955.cc: Likewise.
1269         * testsuite/27_io/basic_stringbuf/sungetc/wchar_t/1.cc: Likewise.
1270         * testsuite/27_io/basic_stringbuf/sync/wchar_t/1057.cc: Likewise.
1272 2004-07-08  Paolo Carlini  <pcarlini@suse.de>
1274         * include/bits/gslice.h: Trivial formatting fixes.
1275         * include/bits/gslice_array.h: Likewise.
1276         * include/bits/indirect_array.h: Likewise.
1277         * include/bits/mask_array.h: Likewise.
1278         * include/bits/slice_array.h: Likewise.
1279         * include/bits/valarray_after.h: Likewise.
1280         * include/bits/valarray_array.h: Likewise.
1281         * include/bits/valarray_before.h: Likewise.
1282         * include/std/std_valarray.h: Likewise.
1284 2004-07-08  Benjamin Kosnik  <bkoz@redhat.com>
1286         PR c++/16169
1287         * include/bits/basic_string.h (basic_string::operator=): Revert.
1289 2004-07-07  Benjamin Kosnik  <bkoz@redhat.com>
1291         * configure.ac (libtool_VERSION): To 6:2:0.
1292         * configure: Regenerated.
1294         * testsuite/testsuite_abi.cc (check_version): Add 3.4.2.
1296 2004-07-07  Aaron W. LaFramboise  <aaronraolete36@aaronwl.com>
1298         PR libstdc++/16411
1299         * config/linker-map.gnu: Add stdio_sync_filebuf::file exports.
1301 2004-07-07  Benjamin Kosnik  <bkoz@redhat.com>
1303         * docs/html/abi.html: Updates for 3.4.1 release. Add summary of
1304         -Weffc++ issues.
1306 2004-07-07  Paolo Carlini  <pcarlini@suse.de>
1308         PR libstdc++/16401
1309         * include/bits/sstream.tcc (overflow): When reallocating _M_string
1310         use an exponential grow policy.
1311         * testsuite/27_io/basic_stringbuf/overflow/char/1.cc: New.
1312         * testsuite/performance/27_io/stringbuf_overflow.cc: New.
1314 2004-07-06  Anssi Hannula  <anssi.hannula@mbnet.fi>
1316         PR libstdc++/15928
1317         * crossconfig.m4: Add in bits for djgpp.
1318         * configure: Regenerate.
1320 2004-07-05  Jonathan Wakely  <redi@gcc.gnu.org>
1322         * testsuite/23_containers/{set,multiset}/14340.cc: Fix typos in
1323         instantiation of set and multiset (functor param given as int).
1325 2004-07-04  Paolo Carlini  <pcarlini@suse.de>
1327         * include/bits/basic_string.h: Trivial formatting fixes and/or
1328         const-ification of some variables.
1329         * include/bits/deque.tcc: Likewise.
1330         * include/bits/stl_algobase.h: Likewise.
1331         * include/bits/stl_bvector.h: Likewise.
1332         * include/bits/stl_construct.h: Likewise.
1333         * include/bits/stl_deque.h: Likewise.
1334         * include/bits/stl_pair.h: Likewise.
1335         * include/bits/stl_vector.h: Likewise.
1336         * include/bits/vector.tcc: Likewise.
1338 2004-07-04  Paolo Carlini  <pcarlini@suse.de>
1340         * testsuite/25_algorithms/copy/1.cc: Add instantiations for
1341         systems with no COMDAT or weak support.
1342         * testsuite/25_algorithms/copy/2.cc: Likewise.
1343         * testsuite/25_algorithms/copy/3.cc: Likewise.
1344         * testsuite/25_algorithms/copy/4.cc: Likewise.
1346 2004-07-03  Paul Brook  <paul@codesourcery.com>
1348         * configure.ac: Set ABI_TWEAKS_SRCDIR.
1349         * configure.host: Set abi_tweaks_dir.  Check for atomicity.h when
1350         setting atomicity_dir.  Override type_cpu for arm based targets.
1351         * include/Makefile.am (host_headers): Add cxxabi_tweaks.h.
1352         * libsupc++/cxxabi.h: Include bits/cxxabi.h. Don't declare __guard.
1353         * libsupc++/guard.cc: Use definitions from cxxabi_tweaks.h.
1354         * libsupc++/vec.cc: Ditto.
1355         * config/cpu/arm/cxxabi_tweaks.h: New file.
1356         * config/cpu/generic/cxxabi_tweaks.h: New file.
1357         * */Makefile.in: Regenerate.
1358         * configure: Regenerate.
1360 2004-07-02  Paolo Carlini  <pcarlini@suse.de>
1362         * include/bits/type_traits.h (_Is_normal_iterator): Move...
1363         * include/bits/cpp_type_traits.h: ... here, renamed to
1364         __is_normal_iterator and consistent with the other traits.
1365         * include/bits/stl_algobase.h (__copy_ni1, __copy_ni2): Convert
1366         to the struct __copy_normal and three specializations.
1367         (__copy_backward_output_normal_iterator,
1368         __copy_backward_input_normal_iterator): Likewise, convert to
1369         the struct __copy_backward_normal and three specializations.
1370         (copy, copy_backward): Use the latter.
1371         (__copy_aux, __copy_backward_aux): Very minor tweaks.
1373 2004-07-01  Paolo Carlini  <pcarlini@suse.de>
1375         * include/bits/stl_algobase.h (__copy_trivial): Remove.
1376         (__copy_aux2): Rewrite as __copy_aux to use __is_pointer,
1377         __is_trivially_copyable, __are_same and __copy::copy.
1378         (__copy): Rewrite as a class template and two specializations.
1379         (__copy_ni2): Simplify, just call __copy_aux.
1381         * include/bits/stl_algobase.h (__copy_backward_aux): Add __are_same
1382         check.
1383         * testsuite/25_algorithms/copy/1.cc, 2.cc, 3.cc, 4.cc: Test also
1384         for destination value type != source value type.
1386 2004-07-01  Benjamin Kosnik  <bkoz@redhat.com>
1387             Per Bothner  <per@bothner.com>
1388             Mohan Embar  <gnustuff@thisiscool.com>
1390         PR libstdc++/16248
1391         * include/bits/concurrence.h (__glibcxx_mutex_type): New.
1392         (__glibcxx_mutex): Encapsulate mutex init function into type for
1393         threaded configurations without __GTHREAD_MUTEX_INIT.
1394         (lock::lock): Make device member a reference.
1395         (lock::~lock): Same.
1396         * include/ext/pool_allocator.h (__pool_base::_M_get_mutex): Change
1397         to mutex_type.
1398         * src/allocator.cc: Same.
1400 2004-06-30  Brad Spencer  <spencer@infointeractive.com>
1402         * include/ext/mt_allocator.h: Handle allocations at static
1403         initialization that happen before _S_options is (automatically)
1404         constructed; set _S_init even if _M_force_new is true.
1406 2004-06-30  Benjamin Kosnik  <bkoz@redhat.com>
1408         * config/linker-map.gnu: Revert new exports.
1410 2004-06-30  Benjamin Kosnik  <bkoz@redhat.com>
1411             Stuart Anderson  <anderson@netsweng.com>
1413         * config/linker-map.gnu: Add destructor exports for abstract base
1414         classes to conform to LSB.
1416 2004-06-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1417             Paolo Carlini  <pcarlini@suse.de>
1419         * include/bits/cpp_type_traits.h: Add __is_pointer and
1420         __is_trivially_copyable.
1421         * include/bits/stl_algobase.h (fill, fill_n): Slightly
1422         tweak to use the latter.
1423         (__copy_backward_dispatch): Remove.
1424         (__copy_backward_aux): Rewrite to use __is_pointer and
1425         __is_trivially_copyable and __copy_backward::copy_b.
1426         (__copy_backward): Rewrite as a class template and two
1427         specializations.
1429 2004-06-30  Paolo Carlini  <pcarlini@suse.de>
1431         * testsuite/25_algorithms/copy.cc: Move to...
1432         * testsuite/25_algorithms/copy/1.cc: ... here, extend.
1433         * testsuite/25_algorithms/copy/2.cc: New.
1434         * testsuite/25_algorithms/copy/3.cc: New.
1435         * testsuite/25_algorithms/copy/4.cc: New.
1437 2004-06-29  Paul Brook  <paul@codesourcery.com>
1439         * libsupc++/vec.cc (__cxa_vec_new2, __cxa_vec_new3): Store the
1440         element size in the cookie.
1442 2004-06-28  Paolo Carlini  <pcarlini@suse.de>
1444         * include/bits/cpp_type_traits.h: Move the additions to
1445         namespace __gnu_internal outside of namespace std; trivial
1446         formatting fixes.
1448 2004-06-28  Benjamin Kosnik  <bkoz@redhat.com>
1450         * include/debug/safe_base.h (__gnu_debug::_Safe_sequence_base):
1451         Revert -Weffc++ changes that defined copy ctory and or assignment
1452         operator.
1453         * libsupc++/tinfo.cc (__upcast_result): Same.
1455 2004-06-28  Paolo Carlini  <pcarlini@suse.de>
1457         * src/localename.cc (locale::_Impl::_Impl): Slightly improve
1458         the algorithm used to name the categories.
1460 2004-06-28  Paolo Bonzini  <bonzini@gnu.org>
1462         * include/Makefile.am: Give a .gch extension to
1463         the PCH files, not only to the directory.
1464         * include/Makefile.in: Regenerate.
1466 2004-06-28  Paolo Carlini  <pcarlini@suse.de>
1468         * config/locale/gnu/monetary_members.cc
1469         (moneypunct<wchar_t>::_M_initialize_moneypunct): Clean up
1470         assignments of _M_decimal_point and _M_thousands_sep.
1472 2004-06-27  Paolo Carlini  <pcarlini@suse.de>
1474         * docs/html/17_intro/contribute.html: Update some links.
1475         * docs/html/17_intro/porting-howto.html: Likewise.
1476         * docs/html/17_intro/porting-howto.xml: Likewise.
1477         * docs/html/18_support/howto.html: Likewise.
1478         * docs/html/21_strings/howto.html: Likewise.
1479         * docs/html/27_io/howto.html: Likewise.
1480         * docs/html/configopts.html: Likewise.
1481         * docs/html/ext/howto.html: Likewise.
1482         * docs/html/faq/index.html: Likewise.
1483         * docs/html/install.html: Don't mention 2.x compilers.
1485 2004-06-27  Paolo Carlini  <pcarlini@suse.de>
1487         * include/ext/rope: Trivial formatting fixes.
1488         * include/ext/ropeimpl.h: Likewise.
1490 2004-06-26  Paolo Carlini  <pcarlini@suse.de>
1492         PR libstdc++/16210
1493         * acinclude.m4 (GLIBCXX_ENABLE_LONG_LONG): Do not check for the
1494         availability of strto(u)ll, not used anymore in the iostreams.
1495         * configure: Regenerate.
1497 2004-06-25  Benjamin Kosnik  <bkoz@redhat.com>
1499         PR libstdc++/16182
1500         * linkage.m4 (GLIBCXX_CHECK_BUILTIN_MATH_DEC): Revert to
1501         AC_DEFINE_UNQUOTED.
1502         * configure: Regenerate.
1504 2004-06-25  Paul Brook  <paul@codesourcery.com>
1506         * libsupc++/cxxabi.h: Define __ARM_EABI__
1507         (__guard): Use it.
1508         * libsupc++/guard.h (__cxa_guard_acquire, __cxa_guard_release): Ditto.
1510 2004-06-25  Paul Brook  <paul@codesourcery.com>
1512         * include/bits/concurrence.h: Still create mutex object when
1513         single-threaded.
1515 2004-06-25  Paolo Carlini  <pcarlini@suse.de>
1517         * include/bits/stl_algobase.h (fill, fill_n): Revert last
1518         change: actually we need to copy construct an object of type
1519         _Tp, not of type iterator_traits<>::value_type, therefore the
1520         code is ok.
1522 2004-06-25  Paolo Carlini  <pcarlini@suse.de>
1524         * include/bits/stl_algobase.h (fill, fill_n): Tighten the
1525         dispatch: use iterator_traits<>::value_type, not _Tp.
1527 2004-06-25  Paolo Carlini  <pcarlini@suse.de>
1529         * testsuite/25_algorithms/fill/1.cc: Tweak instantiations.
1530         * testsuite/25_algorithms/fill/2.cc: Likewise.
1532 2004-06-25  Dan Nicolaescu  <dann@ics.uci.edu>
1533             Paolo Carlini  <pcarlini@suse.de>
1535         * include/bits/stl_algobase.h (__fill, __fill_n): New helpers
1536         for fill and fill_n, respectively: when copying is cheap, use a
1537         temporary to avoid a memory read in each iteration.
1539 2004-06-25  Paolo Carlini  <pcarlini@suse.de>
1541         * testsuite/25_algorithms/fill/1.cc: New.
1542         * testsuite/25_algorithms/fill/2.cc: Likewise.
1544 2004-06-25  Benjamin Kosnik  <bkoz@redhat.com>
1546         * include/debug/formatter.h (__gnu_debug::_Error_formatter):
1547         Remove copy constructor and assignment operator.
1549 2004-06-24  Benjamin Kosnik  <bkoz@redhat.com>
1551         * include/bits/concurrence.h (__gnu_cxx::lock): New.
1552         * include/ext/pool_allocator.h (__pool_base::_Lock::_S_lock): Remove.
1553         (__pool_base::_M_get_mutex): New.
1554         * include/bits/allocator.h: Tweak.
1555         * src/allocator.cc (__pool_base::_M_get_free_list): Correct offset.
1556         * config/linker-map.gnu: Remove __pool_base::_Lock::_S_lock.
1557         * include/bits/stl_threads.h: Remove.
1558         * include/Makefile.am: Also here.
1559         * include/Makefile.in: Regenerate.
1561         * src/locale_init.cc: Use __gnu_cxx::lock.
1563         * src/allocator.cc: Move all instantiations...
1564         * src/allocator-inst.cc: ...here.
1566 2004-06-23  Andrew Pinski  <apinski@apple.com>
1568         * linkage.m4: Remove check for libmx.
1569         * configure: Regenerate.
1571 2004-06-23  Paolo Carlini  <pcarlini@suse.de>
1573         PR libstdc++/16154
1574         * include/bits/boost_concept_check.h (struct _TrivialIteratorConcept):
1575         Don't require the _DefaultConstructibleConcept.
1576         (struct _ForwardIteratorConcept): Require it here.
1578 2004-06-22  Alexandre Oliva  <aoliva@redhat.com>
1580         * include/bits/istream.tcc (getline): Make sure arguments passed
1581         to min/max have the same type.
1582         * include/bits/locale_facets.tcc (__verify_grouping): Likewise.
1583         * include/bits/stl_deque.h (_Deque_base::_Deque_base): Likewise.
1585 2004-06-22  Benjamin Kosnik  <bkoz@redhat.com>
1587         * docs/html/abi.html: Update links.
1589 2004-06-22  Paolo Carlini  <pcarlini@suse.de>
1591         * testsuite/26_numerics/complex_inserters_extractors.cc,
1592         complex_value.cc, buggy_complex.cc: Move to...
1593         * testsuite/26_numerics/complex/: ... here.
1594         * testsuite/26_numerics/c99_classification_macros_c++.cc,
1595         c99_classification_macros_c.cc, c_math.cc, c_math_dynamic.cc,
1596         fabs_inline.cc: Move to...
1597         * testsuite/26_numerics/cmath/: ... here.
1598         * testsuite/26_numerics/binary_closure.cc, slice.cc,
1599         slice_array_assignment.cc, valarray.cc, valarray_const_bracket.cc,
1600         valarray_name_lookup.cc, valarray_operators.cc,
1601         valarray_subset_assignment.cc: Move to...
1602         * testsuite/26_numerics/valarray/: ... here (new dir).
1603         * testsuite/26_numerics/sum_diff.cc: Move to...
1604         * testsuite/26_numerics/numeric/: ... here (new dir).
1606 2004-06-22  Paolo Carlini  <pcarlini@suse.de>
1608         * include/std/std_istream.h (ignore(streamsize __n = 1,
1609         int_type __delim = traits_type::eof())): Split into...
1610         (ignore(), ignore(streamsize __n), ignore(streamsize __n,
1611         int_type __delim)): The first two can be much more simpler
1612         and efficient than the fully general case; also, the last
1613         two can take advantage of the same mechanism already used
1614         for getline.
1615         * include/bits/istream.tcc (ignore(streamsize __n = 1,
1616         int_type __delim = traits_type::eof()): Remove.
1617         (ignore(), ignore(streamsize __n), ignore(streamsize __n,
1618         int_type __delim)): New.
1620 2004-06-21  Loren J. Rittle  <ljrittle@acm.org>
1622         * config/linker-map.gnu: Use wildcards for
1623         __basic_file::sys_open(FILE*, _Ios_Openmode).
1625 2004-06-20  Paolo Carlini  <pcarlini@suse.de>
1627         * testsuite/27_io/basic_istream/ignore/char/3.cc: New.
1629 2004-06-18  Paolo Carlini  <pcarlini@suse.de>
1631         * include/ext/mt_allocator (__mt_alloc<>::_Tune): Add _M_align,
1632         the alignment requested.
1633         (__mt_alloc<>::_Tune::_Tune): Tweak consistently.
1634         (__mt_alloc<>::allocate): Use it instead of sizeof(_Block_record).
1635         (__mt_alloc<>::deallocate): Likewise.
1637 2004-06-18  Paolo Carlini  <pcarlini@suse.de>
1639         PR libstdc++/16020
1640         * include/debug/safe_base.h
1641         (_Safe_sequence_base::_Safe_sequence_base(const _Safe_sequence_base&),
1642         _Safe_sequence_base::operator=): Provide definitions.
1643         * testsuite/23_containers/bitset/cons/16020.cc: New.
1645 2004-06-18  Benjamin Kosnik  <bkoz@redhat.com>
1647         * include/ext/pool_allocator.h: Qualify __throw_bad_alloc.
1648         (__pool_base): Remove unused template parameter.  Add
1649         protected. Move lock data into __pool_base::_Lock. Remove static
1650         on member functions.
1651         (__pool_base::_M_get_free_list): New.
1652         (__pool_alloc): Move _S_force new here.
1653         * src/allocator.cc: Move out of line __pool_base definitions here.
1654         * config/linker-map.gnu: Export bits from __pool_base.
1656 2004-06-18  Paolo Carlini  <pcarlini@suse.de>
1658         * config/locale/gnu/numeric_members.cc
1659         (numpunct<wchar_t>::_M_initialize_numpunct): Clean up
1660         assignments of _M_decimal_point and _M_thousands_sep.
1661         * config/locale/gnu/time_members.cc
1662         (__timepunct<wchar_t>::_M_initialize_timepunct): Clean up
1663         and reformat assignments of date and time fields.
1665 2004-06-16  Paolo Carlini  <pcarlini@suse.de>
1667         * include/ext/rope (rope(_CharT, const allocator_type&)): Fix
1668         to use _Data_allocate.
1669         * include/ext/ropeimpl.h (rope<>::_S_leaf_concat_char_iter): Likewise.
1670         (rope<>::_S_substring): Likewise.
1671         (rope<>::rope(size_t, _CharT, const allocator_type&)): Likewise.
1672         (rope<>::c_str()): Likewise.
1673         (rope<>::replace_with_c_str()): Likewise.
1675         * include/ext/ropeimpl.h (_Rope_iterator_base<>::_S_setbuf):
1676         Correctly qualify _S_leaf, _S_function, etc., with _Rope_constants::,
1677         not _RopeRep.
1678         (_Rope_iterator_base<>::_S_setcache): Likewise.
1679         (_Rope_iterator_base<>::_S_setcache_for_incr): Likewise.
1680         (rope<>::_S_substring): Likewise.
1681         (rope<>::_S_dump): Likewise.
1682         (rope<>::_S_fetch_ptr): Likewise.
1683         (rope<>::_S_compare): Likewise.
1684         (rope<>::replace_with_c_str()): Likewise.
1686         * testsuite/ext/rope.cc: Rename to testsuite/ext/rope/1.cc.
1687         * testsuite/ext/rope/2.cc: New.
1689 2004-06-16  Paolo Carlini  <pcarlini@suse.de>
1690             Matt Austern  <austern@apple.com>
1692         * testsuite/ext/rope/3.cc: New.
1694 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1696         * acinclude.m4: Remove useless multilib configury.
1697         * Makefile.am: Remove useless multilib rules.
1698         * aclocal.m4: Regenerate.
1699         * Makefile.in: Regenerate.
1700         * configure: Regenerate.
1702 2004-06-15  Paolo Carlini  <pcarlini@suse.de>
1704         * include/ext/hashtable.h: Trivial formatting fixes.
1705         * include/ext/rb_tree: Likewise.
1707 2004-06-14  Paolo Carlini  <pcarlini@suse.de>
1709         * include/ext/hash_map: Trivial formatting fixes.
1710         * include/ext/hash_set: Likewise.
1711         * include/ext/memory: Likewise.
1712         * include/ext/numeric: Likewise.
1714 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
1716         * Makefile.in: Regenerate with automake 1.8.5.
1717         * aclocal.m4: Same.
1718         * include/Makefile.in: Same.
1719         * libmath/Makefile.in: Same.
1720         * libsupc++/Makefile.in: Same.
1721         * po/Makefile.in: Same.
1722         * src/Makefile.in: Same.
1723         * testsuite/Makefile.in: Same.
1725 2004-06-14  Paolo Carlini  <pcarlini@suse.de>
1727         * include/ext/slist: Trivial formatting fixes.
1729 2004-06-14  Paolo Carlini  <pcarlini@suse.de>
1731         * include/bits/locale_facets.tcc (time_get<>::_M_extract_name):
1732         Don't use the 'magic number' 10 in the computation of __minlen;
1733         never access __name past __minlen; in the loop over __i3, don't
1734         decrease __nmatches and increase __i3 at once, only either of
1735         the two; tidy.
1737 2004-06-13  Paolo Carlini  <pcarlini@suse.de>
1739         * include/bits/locale_facets.tcc (time_get<>::do_get_time,
1740         time_get<>::do_get_date): Use only once _M_extract_via_format,
1741         instead of going through "%X"/"%x" and calling it two times
1742         (+ using widen).
1744 2004-06-12  Paolo Carlini  <pcarlini@suse.de>
1746         * include/ext/algorithm: Trivial formatting fixes.
1747         * include/ext/functional: Likewise.
1748         * include/ext/hash_fun.h: Likewise.
1749         * include/ext/iterator: Likewise.
1751 2004-06-12  Paolo Carlini  <pcarlini@suse.de>
1753         * include/bits/basic_string.tcc (find(const _CharT*, size_type,
1754         size_type)): Reimplement using std::search.
1755         * src/string-inst.cc: Instantiate std::search for char/wchar_t.
1757 2004-06-12  Dhruv Matani  <dhruvbird@gmx.net>
1759         * testsuite/performance/21_strings/string_find.cc: New.
1761 2004-06-10  Aaron W. LaFramboise  <aaronraolete36@aaronwl.com>
1763         * include/bits/istream.tcc (istream::ignore): Fix for -Wuninitialized.
1765 2004-06-10  Jan van Dijk  <jan@etpmod.phys.tue.nl>
1767         * include/std/std_complex.h (sin(const complex<_Tp>& __z)): Make
1768         this function return a value.
1770 2004-06-09  Paolo Carlini  <pcarlini@suse.de>
1772         PR libstdc++/15775
1773         * include/bits/stl_deque.h: Consistently with stl_set.h, define
1774         pointer as allocator's pointer, likewise for reference,
1775         const_pointer, and const_reference.
1776         * include/bits/stl_list.h: Likewise.
1777         * include/bits/stl_map.h: Likewise.
1778         * include/bits/stl_multimap.h: Likewise.
1779         * include/bits/stl_vector.h: Likewise.
1781 2004-06-09  Benjamin Kosnik  <bkoz@redhat.com>
1783         * crossconfig.m4: Remove signbit, signbitf, signbitl.
1784         * linkage.m4: Comment LIBMATHOBJS, tweak others.  AC_DEFINES for
1785         builtin math functions instead of AC_DEFINE_UNQUOTED.
1786         * configure: Regenerate.
1788 2004-06-08  Benjamin Kosnik  <bkoz@redhat.com>
1790         * docs/doxygen/filter.sed: Rename _GLIBCXX_STD to std.
1791         * docs/doxygen/mainpage.html: Remove links.
1793 2004-06-08  Jason Merrill  <jason@redhat.com>
1795         * config/linker-map.gnu: Use wildcards for
1796         __basic_file::{xsgetn,xsputn,seekoff,xsputn_2}.
1798 2004-06-08  Paolo Carlini  <pcarlini@suse.de>
1800         * include/ext/pool_allocator.h: Convert to a global free-list,
1801         as per the original SGI/HP design: move the implementation
1802         details to struct __pool_base, from which __pool_alloc derives.
1803         * src/allocator.cc: Instantiate __pool_base.
1805 2004-06-07  Dhruv Matani  <dhruvbird@gmx.net>
1806             Paolo Carlini  <pcarlini@suse.de>
1808         * testsuite/testsuite_performance.h
1809         (resource_counter::allocated_memory): Make it return the right
1810         number of bytes requested by the allocators/application. This is
1811         the sbrk+mmaped memory.
1813 2004-06-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1815         * include/std/std_complex.h (log): Tidy.
1817 2004-05-31  Benjamin Kosnik  <bkoz@redhat.com>
1819         * config/linker-map.gnu (GLIBCXX_3.4.1): Add.
1820         * testsuite/testsuite_abi.cc: Same.
1821         * configure.ac (libtool_VERSION): Bump to 6:1:0.
1822         * configure: Regenerate.
1823         * aclocal.m4: Regenerate.
1825 2004-05-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1827         * include/std/std_complex.h (complex<_Tp>): Properly indent
1828         to follow C++STYLE.
1829         (complex<>::__rep): New.
1830         (__complex_abs): New.  Dispatch to built-ins.
1831         (abs): Use them.
1832         (__complex_arg): New. Dispatch to built-ins.
1833         (arg): Use it.
1834         (__complex_cos): New. Dispatch to built-ins.
1835         (cos): Use it.
1836         (__complex_cosh): New. Dispatch to built-ins.
1837         (cosh): Use it.
1838         (__complex_exp): New. Dispatch to built-ins.
1839         (exp): Use it.
1840         (__complex_log): New. Dispatch to built-ins.
1841         (log): Use it.
1842         (__complex_sin): New. Dispatch to built-ins.
1843         (sin): Use it.
1844         (__complex_sinh): New. Dispatch to built-ins.
1845         (sinh): Use it.
1846         (__complex_sqrt): New. Dispatch to built-ins.
1847         (sqrt): Use it.
1848         (__complex_tan): New. Dispatch to built-ins.
1849         (tan): Use it.
1850         (__complex_tanh): New. Dispatch to built-ins.
1851         (tanh): Use it.
1852         (__complex_pow): New. Dispatch to built-ins.
1853         (pow): Use it.
1855 2004-05-29  Richard B. Kreckel  <Richard.Kreckel@Framatome-ANP.com>
1856             Benjamin Kosnik  <bkoz@redhat.com>
1858         PR libstdc++/14600
1859         * include/ext/stdio_sync_filebuf.h (stdio_sync_filebuf::file): New.
1860         * include/ext/stdio_filebuf.h (stdio_filebuf::file): New.
1861         * config/io/basic_file_stdio.cc (__basic_file::file): New.
1862         * config/io/basic_file_stdio.h: Define.
1864 2004-05-27  Benjamin Kosnik  <bkoz@redhat.com>
1866         PR libstdc++/15675
1867         * docs/html/documentation.html: Update doxygen links for 3.4.0.
1869 2004-05-27  Jan Beulich  <jbeulich@novell.com>
1871         * scripts/create_testsuite_files: Tweak.
1873 2004-05-25  Benjamin Kosnik  <bkoz@redhat.com>
1875         PR libstdc++/15489
1876         * scripts/create_testsuite_files: Revert xtype change, add non-GNU
1877         bits to do the same thing.
1879 2004-05-24  Paolo Carlini  <pcarlini@suse.de>
1881         * include/bits/istream.tcc (ignore): Correctly deal with
1882         n == numeric_limits<streamsize>::max().
1883         * testsuite/27_io/basic_istream/ignore/char/2.cc: New.
1885         * include/bits/istream.tcc (basic_istream<>::getline): Prefer
1886         '_M_gcount + 1 < __n' to '--__n; _M_gcount < __n', just in case
1887         __n == numeric_limits<>::min().
1889         * include/bits/istream.tcc: Minor tweaks.
1891         * testsuite/21_strings/basic_string/inserters_extractors/char/10.cc:
1892         Tighten.
1893         * testsuite/21_strings/basic_string/inserters_extractors/char/11.cc:
1894         Likewise.
1895         * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/10.cc:
1896         Likewise.
1897         * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/11.cc:
1898         Likewise.
1899         * testsuite/27_io/basic_istream/getline/char/5.cc: Likewise.
1901 2004-05-22  Benjamin Kosnik  <bkoz@redhat.com>
1903         PR libstdc++/12854
1904         Fixups for -Weffc++.
1905         * include/bits/basic_string.h (basic_string::operator=): Return
1906         pointer to this instead of result of assign. Although redundant,
1907         this doesn't impact resultant codegen.
1909         * include/bits/locale_facets.h (__numpunct_cache): Declare
1910         assignment opxserator and copy constructor private.
1911         (__timepunct_cache): Same.
1912         (__moneypunct_cache): Same.
1913         (collate): Use member initialization list for _M_c_locale_collate.
1914         * config/locale/gnu/messages_members.h: Same.
1915         * config/locale/gnu/time_members.h (__timepunct): Same.
1916         * src/codecvt.cc: Use member initialization list to initialize
1917         _M_c_locale_codecvt.
1918         * src/ctype.cc: Same, with _M_c_locale_ctype and _M_narrow_ok.
1919         * config/os/gnu-linux/ctype_noninline.h: Same.
1920         * src/locale.cc (_Impl): Same.
1921         * src/locale_init.cc: Same.
1922         * src/localename.cc: Same.
1924         * include/bits/basic_ios.h (basic_ios): Complete member
1925         initialization list.
1926         * include/bits/istream.tcc (basic_istream::sentry): Same.
1927         * include/bits/ostream.tcc (basic_ostream::sentry): Same.
1928         * include/bits/fstream.tcc (basic_filebuf): Add _M_lock and
1929         _M_pback to member initialization list.
1930         * include/std/std_streambuf.h: Same.
1931         * include/std/std_sstream.h: Same, for _M_mode.
1932         * src/ios.cc (ios_base): Same.
1934         * include/ext/rope: Make derived classes match exception
1936          specifications. Add copy constructors and assignment operators.
1938         * include/debug/safe_base.h (_Safe_sequence_base): Declare copy
1939         constructor and assignment operator protected.
1940         (_Safe_iterator_base): Same.
1941         * include/debug/formatter.h (_Error_formatter): Define copy
1942         constructor and assignment operator.
1944         * include/backward/strstream: Declare assignment operator and copy
1945         constructor private.
1947 2004-05-22  Benjamin Kosnik  <bkoz@redhat.com>
1949         * testsuite/testsuite_hooks.h (func_callback): Declare copy
1950         constructor and assignment operator private.
1951         * testsuite/23_containers/deque/cons/clear_allocator.cc: Match
1952         exception specifications of base class.
1953         * testsuite/23_containers/list/cons/clear_allocator.cc: Same.
1954         * testsuite/23_containers/vector/cons/clear_allocator.cc: Same.
1955         * testsuite/23_containers/vector/bool/clear_allocator.cc: New.
1957 2004-05-22  Benjamin Kosnik  <bkoz@redhat.com>
1959         * libsupc++/cxxabi.h: Remove duplicated and useless public and
1960         private keywords in class declarations. Format. Use
1961         stddef.h. Expose declarations to "C" compilation.
1962         * libsupc++/tinfo.cc (__upcast_result): Add copy constructor and
1963         assignment operator.
1964         (__dyncast_result): Same.
1965         * libsupc++/vec.cc (uncatch_exception): Same, use member
1966         initialization list.
1968 2004-05-22  Benjamin Kosnik  <bkoz@redhat.com>
1970         * testsuite/abi_check.cc: Add unistd.h.
1972 2004-05-22  Paolo Carlini  <pcarlini@suse.de>
1974         PR libstdc++/15565
1975         * include/bits/locale_facets.tcc (__int_to_char(unsigned long),
1976         __int_to_char(unsigned long long)): Showpos is not relevant
1977         for unsigned types.
1978         * testsuite/22_locale/num_put/put/char/15565.cc: New.
1979         * testsuite/22_locale/num_put/put/wchar_t/15565.cc: New.
1981         * testsuite/22_locale/num_put/put/wchar_t/1.cc: Use L for the fill
1982         char.
1983         * testsuite/22_locale/num_put/put/wchar_t/2.cc: Likewise.
1984         * testsuite/22_locale/num_put/put/wchar_t/3.cc: Likewise.
1985         * testsuite/22_locale/num_put/put/wchar_t/4.cc: Likewise.
1986         * testsuite/22_locale/num_put/put/wchar_t/5.cc: Likewise.
1987         * testsuite/22_locale/num_put/put/wchar_t/6.cc: Likewise.
1988         * testsuite/22_locale/num_put/put/wchar_t/8.cc: Likewise.
1990 2004-05-21  Matthias Klose  <doko@debian.org>
1992         * docs/doxygen/run_doxygen:  Bump required version.
1994 2004-05-21  Benjamin Kosnik  <bkoz@redhat.com>
1996         * docs/html/abi.html (libgcc_s): Additions suggested by Matthias Klose.
1997         * docs/doxygen/Intro.3: Subtractions suggested by Phil Edwards.
1999 2004-05-21  Paolo Carlini  <pcarlini@suse.de>
2001         * include/bits/istream.tcc (ignore): Remove redundant line.
2002         (readsome): Tidy, closely following 27.6.1.3, p30.
2004 2004-05-20  Paolo Carlini  <pcarlini@suse.de>
2006         * include/bits/istream.tcc (operator>>(basic_istream<>&,
2007         basic_string<>&)): Use a temporary buffer, thus avoiding
2008         reallocation for common case.
2009         * testsuite/21_strings/basic_string/inserters_extractors/char/11.cc:
2010         New.
2011         * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/11.cc:
2012         Likewise.
2014         * include/bits/istream.tcc: Const-ification of a few variables.
2016         * include/bits/ostream.tcc: Trivial formatting fixes and
2017         const-ification of some variables.
2019 2004-05-20  Benjamin Kosnik  <bkoz@redhat.com>
2021         PR libstdc++/15123
2022         PR libstdc++/13928
2023         * docs/doxygen/Intro.3: Remove Allocators.3.
2024         Add new extension headers, extension namespace list.
2025         * docs/doxygen/run_doxygen (problematic): Remove Allocators.3
2026         Rename GLIBCXXSTD names to std::. Rename __gnu_debug to
2027         __gnu_debug::. Remove __policy_ renames.
2028         * docs/doxygen/guide.html: Add dot note.
2029         * docs/doxygen/stdheader.cc: Edit, add files.
2030         * docs/doxygen/user.cfg.in: Regenerate with Doxygen 1.3.7.
2032 2004-05-18  Jonathan Wakely  <redi@gcc.gnu.org>
2034         * include/ext/stdio_filebuf.h: Update comments to reflect PR 11691.
2036 2004-05-18  Jan Beulich  <jbeulich@novell.com>
2038         PR libstdc++/15489
2039         * scripts/create_testsuite_files: Also find source files through
2040         symbolic links.
2042 2004-05-18  Jan Beulich  <jbeulich@novell.com>
2044         PR libstdc++/15488
2045         * testsuite/lib/libstdc++.exp: Make test files writable.
2047 2004-05-18  Paolo Carlini  <pcarlini@suse.de>
2049         * include/ext/mt_allocator.h:(__mt_alloc::allocate): Minor
2050         tweaks.
2052 2004-05-18  Dhruv Matani  <dhruvbird@gmx.net>
2054         * include/ext/mt_allocator.h:(__mt_alloc::allocate): Re-write
2055         allocation loop which removes blocks from the global free list
2056         from O(N) to O(1) when the required blocks are <= the number
2057         available.
2059 2004-05-18  Jonathan Wakely  <redi@gcc.gnu.org>
2061         * include/ext/enc_filebuf.h: Move concept-check macro to class scope.
2063 2004-05-17  Benjamin Kosnik  <bkoz@redhat.com>
2065         * testsuite/testsuite_hooks.h (__gnu_test::conversion): New class.
2066         * testsuite/23_containers/deque/14340.cc: New.
2067         * testsuite/23_containers/list/14340.cc: New.
2068         * testsuite/23_containers/map/14340.cc: New.
2069         * testsuite/23_containers/multimap/14340.cc: New.
2070         * testsuite/23_containers/multiset/14340.cc: New.
2071         * testsuite/23_containers/set/14340.cc: New.
2072         * testsuite/23_containers/vector/14340.cc: New.
2074 2004-05-17  Douglas Gregor   <gregod@cs.rpi.edu>
2076         PR libstdc++/14340
2077         * include/debug/safe_iterator.h (_Safe_iterator converting
2078         constructor): Only allow declaration to instantiate when the
2079         incoming _Safe_iterator has exactly the right iterator type.
2081 2004-05-17  Jonathan Wakely  <redi@gcc.gnu.org>
2083         * include/bits/boost_concept_check.h: Fix old attribute syntax.
2084         * testsuite/23_containers/map/modifiers/swap.cc: Define operator<
2085         to pass concept-checks.
2086         * testsuite/23_containers/multimap/modifiers/swap.cc: Same.
2087         * testsuite/23_containers/set/modifiers/swap.cc: Same.
2088         * testsuite/23_containers/multiset/modifiers/swap.cc: Same.
2090 2004-05-16  Paolo Carlini  <pcarlini@suse.de>
2092         * include/std/std_bitset.h: Minor formatting fixes.
2094 2004-05-16  Paolo Carlini  <pcarlini@suse.de>
2096         * include/ext/mt_allocator.h (__mt_alloc<>::deallocate):
2097         Consistently update __bin._M_free[0].
2098         (__mt_alloc<>::allocate): When __bin._M_first[0] != NULL use
2099         __bin._M_free[0] to simplify the while loop (i.e., the number
2100         of iterations becomes known at the outset).
2102 2004-05-15  Paolo Carlini  <pcarlini@suse.de>
2104         * include/std/std_bitset.h: Trivial formatting fixes.
2106 2004-05-14  Paolo Carlini  <pcarlini@suse.de>
2107             Ivan Godard  <igodard@pacbell.net>
2109         PR libstdc++/15361
2110         * include/std/std_bitset.h (_Base_bitset<_Nw>::_M_do_find_next): Fix.
2111         * testsuite/23_containers/bitset/ext/15361.cc: New.
2113 2004-05-13  Benjamin Kosnik  <bkoz@redhat.com>
2115         PR libstdc++/15046
2116         * crossconfig.m4: Add C99 math bits for linux crosses.
2117         * configure: Regenerate.
2119 2004-05-13  Simon Marshall <simon.marshall@misys.com>
2120             Benjamin Kosnik  <bkoz@redhat.com>
2122         PR libstdc++/15090
2123         * include/bits/locale_facets.h: Fix for -fno-for-scope.
2124         * include/debug/safe_sequence.h: Same.
2125         * include/debug/safe_iterator.tcc: Same.
2126         * src/debug.cc: Same.
2127         * src/locale.cc: Same.
2128         * src/locale_init.cc: Same.
2129         * src/localename.cc: Same.
2130         * config/locale/gnu/ctype_members.cc: Same.
2131         * config/locale/gnu/numeric_members.cc: Same.
2132         * testsuite/testsuite_abi.cc: Same.
2133         * testsuite/testsuite_hooks.cc: Same.
2135 2004-05-13  Jonathan Wakely  <redi@gcc.gnu.org>
2137         * docs/html/abi.html: Document effect of -fabi-version on value
2138         of __GXX_ABI_VERSION, and that it's defined in c-cppbuiltin.c.
2139         Fix markup.
2141 2004-05-13  Benjamin Kosnik  <bkoz@redhat.com>
2143         PR libstdc++/15074
2144         * docs/html/faq/index.html: Update docs for libsupc++ usage.
2146 2004-05-13  Benjamin Kosnik  <bkoz@redhat.com>
2148         PR libstdc++/15412
2149         * include/bits/stl_threads.h (_GLIBCXX_mutex): Move to namespace
2150         __gnu_internal.
2151         (_GLIBCXX_mutex_address): Same.
2152         (_GLIBCXX_once): Same.
2153         (_GLIBCXX_mutex_init): Same.
2154         (_GLIBCXX_mutex_address_init): Same.
2156 2004-05-13  Benjamin Kosnik  <bkoz@redhat.com>
2158         * docs/html/abi.html: New.
2159         * docs/html/abi.txt: Remove.
2160         * docs/html/documentation.html: Add link.
2161         * testsuite/Makefile.am: Add files.
2162         * testsuite/Makefile.in: Regenerated.
2163         * testsuite/abi_check.cc: Move and modify code into...
2164         * testsuite/testsuite_abi.cc: Add.
2165         * testsuite/testsuite_abi.h: Add.
2167         * docs/html/17_intro/TODO: Update.
2168         * include/bits/stl_pair.h: Format.
2170 2004-05-06  Matthias Klose  <doko@debian.org>
2172         * include/backward/iterator.h:  Add GPL copyright info,
2173         with exception clause.
2174         * include/bits/boost_concept_check.h: Likewise.
2175         * include
2176         * libsupc++/tinfo.h: Likewise.
2177         * po/string_literals.cc: Likewise.
2179 2004-05-03  Andreas Tobler  <a.tobler@schweiz.ch>
2181         * acinclude.m4: Replace -W with more speaking -Wextra.
2182         * configure: Rebuilt.
2184 2004-05-03  Paolo Carlini  <pcarlini@suse.de>
2186         Optimize locale::_M_impl->_M_names for the most common cases:
2187         !_M_names[0] means unnamed; !_M_names[1] means all the categories
2188         the same name (_M_names[0] && _M_names[1] means that the full set
2189         of _M_names must be processed, the general case).
2190         * include/bits/locale_classes.h (locale::_Impl::_M_check_same_name):
2191         Tweak, saving work when !_M_names[1].
2192         (locale::locale(const locale&, _Facet*): Simplify: now just setting
2193         _M_names[0] = 0 means unnamed.
2194         * src/locale.cc (locale::operator==): Deal first with the common,
2195         easy cases, otherwise fall back to locale::name().
2196         (locale::name()): Tweak, if !_M_names[0] just return "*".
2197         (locale::_Impl::_Impl(const _Impl&, size_t): Tweak, early stop
2198         copying __imp._M_names if !__imp._M_names[0] or !__imp._M_names[1].
2199         * src/locale_init.cc (locale::_Impl::_Impl(size_t)): Tweak.
2200         * src/localename.cc (locale::_Impl::_Impl(const char*, size_t):
2201         Simplify when !std::strchr, just updating _M_names[0]; clean up.
2202         (locale::_Impl::_M_replace_categories): When !_M_names[1] prepare
2203         for the general case (full set of names), then do the usual work;
2204         clean up.
2206         * src/locale.cc (locale::name()): Reserve space in __ret.
2207         * src/locale_init.cc (locale::global(const locale&)): Save
2208         the name in a temporary.
2209         * src/localename.cc (locale::locale(const char*)): Reserve space
2210         in __str.
2212 2004-04-29  Paolo Carlini  <pcarlini@suse.de>
2214         * src/locale.cc (locale::operator==): Always avoid constructing
2215         locale::name(), directly compare pairs of _M_names.
2217 2004-04-26  Paolo Carlini  <pcarlini@suse.de>
2219         * include/bits/istream.tcc: Fix comment.
2221 2004-04-26  Paolo Carlini  <pcarlini@suse.de>
2223         * include/bits/stl_vector.h: Trivial formatting fixes.
2224         * include/bits/vector.tcc: Likewise.
2226 2004-04-25  Paolo Carlini  <pcarlini@suse.de>
2228         PR libstdc++/15002 (continued again)
2229         * include/bits/istream.tcc (getline(basic_istream<>&,
2230         basic_string<>&, _CharT)): Use a temporary buffer, thus
2231         avoiding reallocation for common case.
2233         * include/bits/basic_string.tcc (_S_construct(_InIterator,
2234         _InIterator, const _Alloc&, input_iterator_tag)): Tweak size
2235         of temporary buffer to a power of two.
2237         * testsuite/27_io/basic_istream/getline/char/4.cc: Add comment.
2239 2004-04-25  Paolo Carlini  <pcarlini@suse.de>
2241         * testsuite/21_strings/basic_string/inserters_extractors/char/10.cc:
2242         New.
2243         * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/10.cc:
2244         Likewise.
2245         * testsuite/27_io/basic_istream/getline/char/5.cc: Likewise.
2247 2004-04-24  Paolo Carlini  <pcarlini@suse.de>
2248             Petur Runolfsson  <peturr02@ru.is>
2250         PR libstdc++/15002 (continued)
2251         * include/bits/istream.tcc (basic_istream<>::getline(char_type*,
2252         streamsize, char_type)): Use traits::find/copy in a loop to speed
2253         up greatly the function in the common case (I/O buffer size >> 1).
2255 2004-04-24  Paolo Carlini  <pcarlini@suse.de>
2257         * testsuite/27_io/basic_istream/getline/char/4.cc: New.
2259         * include/bits/istream.tcc (getline(basic_istream<>&,
2260         basic_string<>&, _CharT)): Change to use sgetc()/snextc() instead
2261         of sbumpc(), consistently with the other functions, thus also
2262         dealing correctly with the case of exceeded string::max_size().
2264 2004-04-24  Matthias Klose  <doko@debian.org>
2266         Jonathan Wakely  <cow@compsoc.man.ac.uk>
2267         * docs/html/configopts.html: Fix reference to allocator config option.
2269 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
2271         * linkage.m4 (GLIBCXX_CHECK_MATH_SUPPORT): Check for libmx also.
2272         * configure: Regenerate.
2274 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
2276         PR libstdc++/15047, libstdc++/11610
2277         * testsuite/lib/libstdc++.exp (v3-copy-files): Use remote_download.
2278         (libstdc++_init): Don't pass outdir to v3-copy-files.
2280 2004-04-21  Paolo Carlini  <pcarlini@suse.de>
2282         * include/bits/deque.tcc: Trivial formatting fixes.
2283         * include/bits/stl_deque.h: Likewise.
2284         * include/bits/stl_list.h: Likewise.
2285         * include/bits/stl_tree.h: Likewise.
2287 2004-04-21  Paolo Carlini  <pcarlini@suse.de>
2288             Andrew Pinski  <pinskia@physics.uc.edu>
2290         * include/bits/basic_string.tcc (_M_mutate): Don't compute
2291         __src unnecessarily.
2293 2004-04-19  Benjamin Kosnik  <bkoz@redhat.com>
2295         * testsuite/27_io/basic_istream/extractors_character/char/9555-ic.cc:
2296         Clarify assertion, set test variable to false before assert.
2297         * testsuite/27_io/basic_istringstream/str/char/1.cc: Same.
2298         * testsuite/27_io/basic_stringstream/str/char/1.cc: Same.
2299         * testsuite/27_io/ios_base/storage/2.cc: Same.
2301         * testsuite/27_io/basic_filebuf/imbue/char/13171-4.cc: Fix
2302         function returns.
2303         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Same.
2304         * testsuite/27_io/fpos/14320-3.cc: Same.
2306         * testsuite/27_io/basic_filebuf/2.cc: Instantiate in namespace std.
2307         * testsuite/27_io/fpos/1.cc: Same.
2308         * testsuite/27_io/basic_stringstream/2.cc: Same.
2309         * testsuite/27_io/basic_stringbuf/4.cc: Same.
2310         * testsuite/27_io/basic_stringbuf/1.cc: Same.
2311         * testsuite/27_io/basic_stringbuf/2.cc: Same.
2312         * testsuite/27_io/basic_streambuf/2.cc: Same.
2313         * testsuite/27_io/basic_ostringstream/2.cc: Same.
2314         * testsuite/27_io/basic_ostream/2.cc: Same.
2315         * testsuite/27_io/basic_ofstream/2.cc: Same.
2316         * testsuite/27_io/basic_istringstream/2.cc: Same.
2317         * testsuite/27_io/basic_istream/2.cc: Same.
2318         * testsuite/27_io/basic_iostream/2.cc: Same.
2319         * testsuite/27_io/basic_ios/2.cc: Same.
2320         * testsuite/27_io/basic_ifstream/2.cc: Same.
2321         * testsuite/27_io/basic_fstream/2.cc: Same.
2322         * testsuite/ext/stdio_filebuf/char/1.cc: Same, in namespace __gnu_cxx.
2324         * testsuite/21_strings/basic_string/capacity/1.cc: Don't compare
2325         unsigned against zero.
2326         * testsuite/21_strings/basic_string/capacity/wchar_t/1.cc: Same.
2327         * testsuite/21_strings/basic_string/capacity/char/1.cc: Same.
2329         * testsuite/18_support/new_delete_placement.cc: Initialize
2330         variables before first use.
2331         * testsuite/21_strings/char_traits/requirements/wchar_t/1.cc: Same.
2332         * testsuite/21_strings/char_traits/requirements/char/1.cc: Same.
2333         * testsuite/21_strings/char_traits/requirements/short/1.cc: Same.
2334         * testsuite/27_io/basic_istream/seekg/char/exceptions_badbit_throw.cc:
2335         Same.
2336         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/exceptions_badbit_throw.cc: Same.
2337         * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
2338         Same.
2339         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/exceptions_failbit_throw.cc: Same.
2340         * testsuite/27_io/types/2.cc: Same.
2342         * testsuite/ext/stdio_sync_filebuf/wchar_t/12077.cc: Fix temporary
2343         file name.
2344         * testsuite/27_io/fpos/14775.cc: Same.
2346 2004-04-19  Paolo Carlini  <pcarlini@suse.de>
2348         PR libstdc++/15002 (partial)
2349         * include/bits/basic_string.h (_M_replace_aux, _M_replace_safe):
2350         Special case __n2 == 1, not calling traits_type::assign/copy.
2352 2004-04-17  Benjamin Kosnik  <bkoz@redhat.com>
2354         * include/bits/stl_bvector.h: Use _M_impl._M_start.
2356 2004-04-16  Benjamin Kosnik  <bkoz@redhat.com>
2358         * include/bits/c++config (_GLIBCXX_STD): New.
2359         * src/list.cc: Use it.
2360         * include/std/std_bitset.h: Same.
2361         * include/bits/vector.tcc: Same.
2362         * include/bits/stl_set.h: Same.
2363         * include/bits/stl_multiset.h: Same.
2364         * include/bits/stl_multimap.h: Same.
2365         * include/bits/stl_map.h: Same.
2366         * include/bits/stl_list.h: Same.
2367         * include/bits/stl_vector.h: Same.
2368         * include/bits/stl_bvector.h: Same.
2369         * include/bits/stl_deque.h: Same.
2370         * include/bits/deque.tcc: Same.
2371         * include/bits/list.tcc: Same.
2372         * include/debug/vector: Same.
2373         * include/debug/set.h: Same.
2374         * include/debug/multiset.h: Same.
2375         * include/debug/multimap.h: Same.
2376         * include/debug/map.h: Same.
2377         * include/debug/list: Same.
2378         * include/debug/deque: Same.
2379         * include/debug/bitset: Same.
2380         * include/debug/formatter.h (__gnu_debug): Remove using directive.
2381         Add using declaration for std::type_info.
2382         * include/debug/safe_iterator.h: Add using declaration for
2383         std::iterator_traits and std::pair.
2384         * src/debug_list.cc: New.
2385         * src/Makefile.am: Add debug_list.cc.
2386         * src/Makefile.in: Regenerate.
2387         * config/linker-map.gnu: Add _List_node_base exports for std and
2388         __gnu_norm.
2390         * include/bits/stl_bvector.h (_Bvector_base): Use _Bvector_impl
2391         idiom that other containers use.
2392         * testsuite/23_containers/vector/bool/clear_allocator.cc: New.
2394 2004-04-16  Paolo Carlini  <pcarlini@suse.de>
2396         PR libstdc++/14975
2397         * include/bits/fstream.tcc (basic_filebuf::imbue): Zero _M_codecvt
2398         in case of error.
2399         * testsuite/27_io/basic_filebuf/imbue/char/14975-1.cc: New.
2400         * testsuite/27_io/basic_filebuf/imbue/wchar_t/14975-2.cc: New.
2402 2004-04-16  Paolo Carlini  <pcarlini@suse.de>
2404         * acconfig.h: Remove _GLIBCXX_USE_LONG_DOUBLE entry, not
2405         used anymore.
2406         * config.h.in: Regenerate.
2408 2004-04-16  Paolo Carlini  <pcarlini@suse.de>
2410         * config/locale/generic/monetary_members.cc
2411         (moneypunct<wchar_t>::_M_initialize_moneypunct): Avoid calling
2412         btowc unnecessarily, just cast to wchar_t (the concerned chars
2413         all belong to the basic character set).
2414         * config/locale/generic/numeric_members.cc
2415         (numpunct<wchar_t>::_M_initialize_numpunct): Likewise.
2416         * config/locale/gnu/monetary_members.cc
2417         (moneypunct<wchar_t>::_M_initialize_moneypunct): Likewise.
2418         * config/locale/gnu/numeric_members.cc
2419         (numpunct<wchar_t>::_M_initialize_numpunct): Likewise.
2421 2004-04-15  Paolo Carlini  <pcarlini@suse.de>
2423         * src/locale.cc (locale::operator==): When _M_impl == __rhs._M_impl
2424         avoid constructing unnecessarily this->name().
2426 2004-04-14  Zack Weinberg  <zack@codesourcery.com>
2428         * testsuite/Makefile.am: Add definition of AM_CXXFLAGS.
2429         Change definition of CXX to use $(shell) instead of backticks.
2430         * testsuite/Makefile.in: Regenerate.
2432 2004-04-12  Dhruv Matani  <dhruvbird@gmx.net>
2434         * testsuite/performance/20_util/allocator/list_sort_search.cc:
2435         Minor formatting fixes.
2436         * testsuite/performance/20_util/allocator/map_mt_find.cc:
2437         Likewise.
2439 2004-04-12  Paolo Carlini <pcarlini@suse.de>
2441         * config/locale/gnu/numeric_members.cc
2442         (numpunct<wchar_t>::_M_initialize_numpunct): No need to wrap
2443         in __uselocale, since btowc is called for chars belonging to
2444         the basic character set.
2446 2004-04-09  Paolo Carlini  <pcarlini@suse.de>
2448         * testsuite/22_locale/messages/members/char/1.cc: Remove junk.
2449         * testsuite/22_locale/messages/members/char/2.cc: Ditto.
2450         * testsuite/22_locale/messages/members/char/3.cc: Ditto.
2451         * testsuite/22_locale/num_get/get/char/1.cc: Ditto.
2452         * testsuite/22_locale/num_get/get/char/2.cc: Ditto.
2453         * testsuite/22_locale/num_get/get/char/3.cc: Ditto.
2454         * testsuite/22_locale/num_get/get/wchar_t/1.cc: Ditto.
2455         * testsuite/22_locale/num_get/get/wchar_t/2.cc: Ditto.
2456         * testsuite/22_locale/num_get/get/wchar_t/3.cc: Ditto.
2457         * testsuite/22_locale/num_put/put/char/1.cc: Ditto.
2458         * testsuite/22_locale/num_put/put/char/2.cc: Ditto.
2459         * testsuite/22_locale/num_put/put/char/3.cc: Ditto.
2460         * testsuite/22_locale/num_put/put/wchar_t/1.cc: Ditto.
2461         * testsuite/22_locale/num_put/put/wchar_t/2.cc: Ditto.
2462         * testsuite/22_locale/num_put/put/wchar_t/3.cc: Ditto.
2463         * testsuite/22_locale/numpunct/members/char/1.cc: Ditto.
2464         * testsuite/22_locale/numpunct/members/wchar_t/1.cc: Ditto.
2466 2004-04-07  Paolo Carlini  <pcarlini@suse.de>
2468         * config/locale/generic/time_members.cc
2469         (__timepunct<char>::_M_initialize_timepunct,
2470         __timepunct<wchar_t>::_M_initialize_timepunct): the correct
2471         _M_amonth07 in the "C" locale is "Jul" and L"Jul", respectively.
2472         * config/locale/gnu/time_members.cc
2473         (__timepunct<char>::_M_initialize_timepunct,
2474         __timepunct<wchar_t>::_M_initialize_timepunct): Ditto.
2475         * testsuite/22_locale/time_get/get_monthname/char/4.cc: New.
2476         * testsuite/22_locale/time_get/get_monthname/wchar_t/4.cc: New.
2478         * testsuite/22_locale/time_get/date_order/char/1.cc: Remove junk.
2479         * testsuite/22_locale/time_get/date_order/wchar_t/1.cc: Ditto.
2480         * testsuite/22_locale/time_get/get_date/char/1.cc: Ditto.
2481         * testsuite/22_locale/time_get/get_date/char/2.cc: Ditto.
2482         * testsuite/22_locale/time_get/get_date/wchar_t/1.cc: Ditto.
2483         * testsuite/22_locale/time_get/get_date/wchar_t/2.cc: Ditto.
2484         * testsuite/22_locale/time_get/get_monthname/char/1.cc: Ditto.
2485         * testsuite/22_locale/time_get/get_monthname/char/2.cc: Ditto.
2486         * testsuite/22_locale/time_get/get_monthname/wchar_t/1.cc: Ditto.
2487         * testsuite/22_locale/time_get/get_monthname/wchar_t/2.cc: Ditto.
2488         * testsuite/22_locale/time_get/get_time/char/1.cc: Ditto.
2489         * testsuite/22_locale/time_get/get_time/char/2.cc: Ditto.
2490         * testsuite/22_locale/time_get/get_time/wchar_t/1.cc: Ditto.
2491         * testsuite/22_locale/time_get/get_time/wchar_t/2.cc: Ditto.
2492         * testsuite/22_locale/time_get/get_weekday/char/1.cc: Ditto.
2493         * testsuite/22_locale/time_get/get_weekday/char/2.cc: Ditto.
2494         * testsuite/22_locale/time_get/get_weekday/wchar_t/1.cc: Ditto.
2495         * testsuite/22_locale/time_get/get_weekday/wchar_t/2.cc: Ditto.
2496         * testsuite/22_locale/time_get/get_year/char/1.cc: Ditto.
2497         * testsuite/22_locale/time_get/get_year/wchar_t/1.cc: Ditto.
2498         * testsuite/22_locale/time_put/put/char/1.cc: Ditto.
2499         * testsuite/22_locale/time_put/put/char/2.cc: Ditto.
2500         * testsuite/22_locale/time_put/put/char/3.cc: Ditto.
2501         * testsuite/22_locale/time_put/put/char/4.cc: Ditto.
2502         * testsuite/22_locale/time_put/put/char/5.cc: Ditto.
2503         * testsuite/22_locale/time_put/put/char/6.cc: Ditto.
2504         * testsuite/22_locale/time_put/put/char/7.cc: Ditto.
2505         * testsuite/22_locale/time_put/put/char/8.cc: Ditto.
2506         * testsuite/22_locale/time_put/put/wchar_t/1.cc: Ditto.
2507         * testsuite/22_locale/time_put/put/wchar_t/2.cc: Ditto.
2508         * testsuite/22_locale/time_put/put/wchar_t/3.cc: Ditto.
2509         * testsuite/22_locale/time_put/put/wchar_t/4.cc: Ditto.
2510         * testsuite/22_locale/time_put/put/wchar_t/5.cc: Ditto.
2511         * testsuite/22_locale/time_put/put/wchar_t/6.cc: Ditto.
2512         * testsuite/22_locale/time_put/put/wchar_t/7.cc: Ditto.
2513         * testsuite/22_locale/time_put/put/wchar_t/8.cc: Ditto.
2515         * testsuite/22_locale/time_put/put/char/9780-1.cc: Fix typos.
2517 2004-04-07  Paolo Carlini  <pcarlini@suse.de>
2519         * config/locale/gnu/monetary_members.cc
2520         (moneypunct<wchar_t>::_M_initialize_moneypunct): Prefer
2521         _NL_MONETARY_DECIMAL_POINT_WC, _NL_MONETARY_THOUSANDS_SEP_WC,
2522         and __MON_GROUPING to _NL_NUMERIC_DECIMAL_POINT_WC,
2523         _NL_NUMERIC_THOUSANDS_SEP_WC, and GROUPING.
2524         * config/locale/gnu/numeric_members.cc
2525         (numpunct<char>::_M_initialize_numpunct): Prefer DECIMAL_POINT
2526         and THOUSANDS_SEP to the deprecated RADIXCHAR and THOUSEP.
2528 2004-04-06  Benjamin Kosnik  <bkoz@redhat.com>
2530         Fixups for EDG front end.
2531         * include/ext/rope: Instead of non-existent function
2532         _Data_allocate, use allocator's allocate. Use this.
2533         (namespace _Rope_constants): Move _S_max_rope_depth, and _Tag
2534         enumerations from _Rope_RopeRep here.
2535         * include/ext/ropeimpl.h: Same.
2536         * src/ext-inst.cc (_S_min_len): Fix up definition.
2538         * config/locale/gnu/ctype_members.cc: Qualify base class members
2539         with this.
2540         * config/locale/generic/ctype_members.cc: Same.
2541         * config/locale/gnu/messages_members.h: Same.
2542         * config/locale/generic/messages_members.h: Same.
2543         * src/ctype.cc: Same.
2544         * include/bits/codecvt.h: Same.
2546         * include/bits/boost_concept_check.h: Declare.
2547         (__error_type_must_be_an_unsigned_integer_type): Remove this.
2548         (__error_type_must_be_an_integer_type): Remove this.
2549         (__error_type_must_be_a_signed_integer_type): Remove this.
2551         * config/io/basic_file_stdio.cc (__basic_file::sys_open): Remove cast.
2553         * libsupc++/eh_alloc.cc (__cxa_free_exception): Add exception
2554         specification to definition.
2555         (__cxa_allocate_exception): Same.
2556         * libsupc++/eh_catch.cc (__cxa_begin_catch): Same.
2557         * libsupc++/eh_globals.cc (__cxa_get_globals_fast): Same.
2558         (__cxa_get_globals): Same.
2560         * libsupc++/del_op.cc: Add comment about freestanding.
2562 2004-04-05  Paolo Carlini  <pcarlini@suse.de>
2564         * include/ext/mt_allocator.h (__mt_alloc<>::deallocate):
2565         The critical section is actually very small, only two assignments.
2567 2004-04-04  Paolo Carlini  <pcarlini@suse.de>
2568             Petur Runolfsson  <peturr02@ru.is>
2570         * testsuite/performance/27_io/filebuf_sputn_unbuf.cc: New,
2571         adapted from libstdc++/11378.
2573 2004-04-03  Paolo Carlini  <pcarlini@suse.de>
2575         * include/ext/mt_allocator.h (__mt_alloc<>::allocate): Factor out
2576         some duplicated code.
2577         (__mt_alloc<>::_Bin_record): Spare the space of _M_free and _M_used
2578         in the single threaded case.
2579         * testsuite/performance/20_util/allocator/list_sort_search.cc:
2580         Reorder and renumber the tests consistently with the other testfiles.
2581         * testsuite/performance/20_util/allocator/map_mt_find.cc: Ditto.
2582         * testsuite/performance/20_util/allocator/map_thread.cc: Ditto.
2583         * testsuite/performance/20_util/allocator/producer_consumer.cc: Ditto.
2585 2004-04-02  Paolo Carlini  <pcarlini@suse.de>
2587         * include/ext/mt_allocator.h (__mt_alloc<>::deallocate):
2588         Rearrange arithmetic to avoid computing two divisions at
2589         each deallocation.
2591 2004-04-01  Paolo Carlini  <pcarlini@suse.de>
2593         * include/ext/mt_allocator.h (__mt_alloc<>::_S_initialize):
2594         Streamline the second half, wrapping it in a single
2595         '#ifdef __GTHREADS if (__gthread_active_p())' and avoiding
2596         conditionals inside loops.
2598 2004-04-01  Paolo Carlini  <pcarlini@suse.de>
2600         PR libstdc++/14775
2601         * acconfig.h: Rename _GLIBCXX_MEM_LIMITS to _GLIBCXX_RES_LIMITS.
2602         * acinclude.m4 (GLIBCXX_CHECK_SETRLIMIT): Call
2603         GLIBCXX_CHECK_SETRLIMIT_ancilliary for FSIZE too, adjust define
2604         to _GLIBCXX_RES_LIMITS.
2605         (GLIBCXX_CHECK_SETRLIMIT_ancilliary): Rename HAVE_MEMLIMIT_* to
2606         HAVE_LIMIT_*.
2607         * testsuite/testsuite_hooks.h: Declare set_file_limit.
2608         * testsuite/testsuite_hooks.cc: Define it, using getrlimit
2609         and setrlimit(RLIMIT_FSIZE).
2610         * testsuite/27_io/fpos/14775.cc: New.
2611         * config.h.in: Regenerate.
2612         * configure: Likewise.
2614 2004-03-31  Paolo Carlini  <pcarlini@suse.de>
2616         * config/locale/generic/c_locale.cc (__convert_to_v(long double&)):
2617         In v3 uses of sscanf, the special floating-point numbers INF,
2618         INFINITY, etc., cannot occur in input, therefore, if the latter
2619         is too large, ERANGE is always stored in errno, no need of finitel.
2621 2004-03-30  Benjamin Kosnik  <bkoz@redhat.com>
2623         PR libstdc++/14783
2624         * include/bits/stl_tree.h: Adjust initialization list order.
2626 2004-03-29  Loren J. Rittle  <ljrittle@acm.org>
2628         * testsuite/thread/pthread7-rope.cc: Update comment to reflect test.
2630 2004-03-29  Paolo Carlini  <pcarlini@suse.de>
2632         * testsuite/thread/pthread7-rope.cc: Fix, unpredictably, depending
2633         on allocator behavior, the memory pointed by data2 may well be not
2634         trashed.
2636 2004-03-28  Chavdar Botev  <cbotev@yahoo.com>
2638         PR libstdc++/14245
2639         * include/bits/basic_string.tcc
2640         (basic_string::basic_string(const basic_string&)): Pass to
2641         _Rep::_M_grab the actual allocator of the string being constructed
2642         not the default constructed one.
2644 2004-03-27  Benjamin Kosnik  <bkoz@redhat.com>
2646         libstdc++ PR/13598
2647         * config/locale/ieee_1003.1-2001/codecvt_specializations.h
2648         (__enc_traits::_M_destroy): New.
2649         (__enc_traits::~__enc_traits): Use it.
2650         (__enc_traits::operator=): Use _M_destroy, _M_init.
2651         (__enc_traits::__enc_traits): Same.
2653 2004-03-27  Petur Runolfsson  <peturr02@ru.is>
2655         * testsuite/ext/enc_filebuf/char/13598.cc: New.
2657 2004-03-27  Paolo Carlini  <pcarlini@suse.de>
2659         * include/ext/mt_allocator.h: Uglify consistently names of
2660         variables, members and classes; tidy.
2662 2004-03-27  Dhruv Matani  <dhruvbird@gmx.net>
2664         * include/ext/mt_allocator.h (__mt_alloc<>::deallocate):
2665         Deallocation loop rewrote.
2667 2004-03-26  Paolo Carlini  <pcarlini@suse.de>
2669         * include/ext/mt_allocator.h (__mt_alloc<>::allocate,
2670         __mt_alloc<>::deallocate): Protect two instances of
2671         block->thread_id with __GTHREADS.
2673 2004-03-25  Gawain Bolton  <gp.bolton@computer.org>
2675         * include/bits/stl_tree.h (_Rb_tree_impl): Add _Node_allocator
2676         default argument in constructors.
2677         (_Rb_tree::_M_empty_initialize): Remove.
2679 2004-03-25  Benjamin Kosnik  <bkoz@redhat.com>
2681         * testsuite/23_containers/map/operators/1_neg.cc: Adjust line numbers.
2682         * testsuite/23_containers/set/operators/1_neg.cc: Same.
2684 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
2686         * include/bits/cpp_type_traits.h: Changed __is_pod
2687         completely. Now, it does not use any of the previous type_traits
2688         to detect the pod types, and it also detects function pointers as
2689         POD types.
2691         * include/bits/stl_tree.h: Introduced a new class _Rb_tree_impl,
2692         which encapsulates the internal implementation of an rb_tree. Made
2693         the allocator a base class of this class instead of the rb_tree,
2694         which was not conforming. This _Rb_tree_impl class is also
2695         specialized on whether the _Compare parameter is a POD type or
2696         not. If so, then it maintains the comparison function as a data
2697         member, otherwise it makes the _Compare parameter a base class of
2698         itself. Also, _M_key_compare is now a function instead of a data
2699         member, so that the above trick can work properly. Delegated the
2700         initialization of the other data members to this newly created
2701         class. Also, now other member functions of rb_tree must refer to
2702         _M_key_compare as _M_impl._M_key_compare(). The other data members
2703         (*) can be referenced to as _M_impl.(*), where
2704         (*) includes _M_header, and _M_node_count.
2706 2004-03-25  Paolo Carlini  <pcarlini@suse.de>
2708         * include/ext/mt_allocator.h (__mt_alloc<>::tune):
2709         Add _M_min_bin, the size in bytes of the smallest bin.
2710         (__mt_alloc<>::tune()): Tweak accordingly.
2711         (__mt_alloc<>::tune(size_t, ...)): Likewise.
2712         (__mt_alloc<>::block_record): Change to a union: members next
2713         and thread_id are never used at the same time.
2714         (__mt_alloc<>::allocate): Update consistently.
2715         (__mt_alloc<>::deallocate): Likewise.
2716         (__mt_alloc<>::_S_initialize): Update setups of _S_binmap and
2717         _S_bin_size for the configurable _M_min_size.
2719 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
2721         * include/bits/stl_list.h: Created a _List_impl class and made it
2722         derive from the allocator, instead of the list deriving from the
2723         allocator class, which was not conformant. Changed all references
2724         from this->_M_node to this->_M_impl._M_node * bits/list.tcc: Same
2725         as above (changed all references to the concerned variables).
2727 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
2729         * include/bits/stl_deque.h: Created a _Deque_impl class and made
2730         it derive from the allocator, instead of the deque deriving from
2731         the allocator class, which was not conformant. Changed all
2732         references to the _M_start, _M_finish, _M_map, and _M_map_size to
2733         _M_impl.*.
2734         (_Deque_base<_Tp,_Alloc>::~_Deque_base()): Added this->
2735         qualification in 2 places where it was missing.
2736         (_Deque_base<_Tp,_Alloc>::_M_initialize_map(size_t)): Same as
2737         above.
2738         * include/bits/deque.tcc: Same as above (changed all references to
2739         the concerned variables).
2741 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
2743         * include/bits/stl_vector.h: Created a _Vector_impl class and made
2744         it derive from the allocator, instead of the _Vector_base class,
2745         deriving from the allocator which was not conformant. Changed all
2746         references to the _M_start, _M_finish, and _M_end_of_storage to
2747         _M_impl.*.
2748         * include/bits/vector.tcc: Same as above (changed all references
2749         to the concerned variables).
2751 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
2753         * testsuite/23_containers/deque/cons/clear_allocator.cc: New.
2754         * testsuite/23_containers/list/cons/clear_allocator.cc: New.
2755         * testsuite/23_containers/vector/cons/clear_allocator.cc: New.
2757 2004-03-24  Dhruv Matani  <dhruvbird@gmx.net>
2759         * include/ext/malloc_allocator.h: Fixed the construct function to
2760         call global placement new instead of assignment. Added a check
2761         after the return from malloc to check whether returned pointer is
2762         NULL, and if so, throw std::bad_alloc().
2763         * include/ext/debug_allocator.h: Added a check in the deallocate
2764         function to check whether the user has passed a NULL pointer or
2765         not.
2767 2004-03-24  Benjamin Kosnik  <bkoz@redhat.com>
2769         * docs/html/20_util/allocator.html: Add bitmap_allocator links.
2771 2004-03-24  Andreas Schwab  <schwab@suse.de>
2773         * testsuite/lib/prune.exp (prune_g++_output): Ignore errata
2774         warning from IA64 assembler.
2776 2004-03-24  Dhruv Matani  <dhruvbird@gmx.net>
2778         * include/ext/bitmap_allocator.h: (_Bit_scan_forward) -> Made this
2779         function call __builtin_ctz instead of the while loop.
2780         (allocate) -> If condition has __builtin_expect.
2781         (deallocate) -> Ditto.
2782         Renamed a few left-over variables and typedefs according to the
2783         C++STYLE mentioned in the documentation.
2784         Protected calls to __gthread* by __gthread_active_p(), whose value
2785         is cached in the local variable __threads_active.
2787 2004-03-24  Felix Yen  <fwy@alumni.brown.edu>
2789         * testsuite/performance/20_util/allocator/producer_consumer.cc:
2790         Use linear algorithm for producer.
2792 2004-03-24  Paolo Carlini  <pcarlini@suse.de>
2794         * include/ext/mt_allocator.h (__mt_alloc<>::allocate,
2795         __mt_alloc<>::deallocate): Avoid redundant conditionals.
2797 2004-03-23  Benjamin Kosnik  <bkoz@redhat.com>
2799         * include/bits/locale_facets.h: Tweaks for 80 column.
2800         (__numpunct_cache::_M_cache): Move to locale_facets.tcc.
2801         (__moneypunct_cache::_M_cache): Same.
2802         (num_get): Don't inherit from __num_base.
2803         (num_put): Same.
2804         (money_get): Don't inherit from money_base.
2805         (money_put): Same.
2806         (__timepunct::_M_am_pm_format): New.
2807         (time_get::_M_extract_num): Return iterator, use ios_base as argument.
2808         (time_get::_M_extract_name): Same.
2809         (time_get::_M_extract_via_format): Same.
2810         * include/bits/locale_facets.tcc: Tweaks for 80 column.
2811         Use _M_getloc instead of getloc.
2812         * testsuite/22_locale/money_put/put/char/9780-3.cc: New.
2813         * testsuite/22_locale/num_put/put/char/9780-2.cc: New.
2814         * testsuite/22_locale/time_put/put/char/9780-1.cc: New.
2816 2004-03-22  Paolo Carlini  <pcarlini@suse.de>
2818         * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Add pool_allocator.
2819         * configure: Regenerate.
2820         * config/allocator/pool_allocator_base.h: New.
2821         * include/ext/pool_allocator.h: Convert to a standard-conforming
2822         allocator.
2823         * src/allocator.cc: Tweak instantiations.
2824         * testsuite/performance/20_util/allocator/insert.cc: Add __pool_alloc.
2825         * testsuite/performance/20_util/allocator/insert_insert.cc: Ditto.
2826         * testsuite/performance/20_util/allocator/list_sort_search.cc: Ditto.
2827         * testsuite/performance/20_util/allocator/map_mt_find.cc: Ditto.
2828         * testsuite/performance/20_util/allocator/map_thread.cc: Ditto.
2829         * testsuite/performance/20_util/allocator/producer_consumer.cc: Ditto.
2831 2004-03-22  Hans-Peter Nilsson  <hp@axis.com>
2833         * config/cpu/cris/atomicity.h (__atomic_add): Remove "static
2834         inline" and attribute-unused.  Qualify parameter __mem with
2835         "volatile".
2836         (__exchange_and_add): Ditto.  Add back memory clobber to asm.
2838 2004-03-20  Paolo Carlini  <pcarlini@suse.de>
2840         * testsuite/27_io/basic_istream/extractors_arithmetic/char/2.cc:
2841         Remove junk.
2842         * testsuite/27_io/basic_istream/extractors_arithmetic/char/3.cc:
2843         Likewise.
2844         * testsuite/27_io/basic_istream/extractors_arithmetic/char/6.cc:
2845         Likewise.
2846         * testsuite/27_io/basic_istream/extractors_arithmetic/char/7.cc:
2847         Likewise.
2848         * testsuite/27_io/basic_istream/extractors_arithmetic/char/8.cc:
2849         Likewise.
2850         * testsuite/27_io/basic_istream/extractors_arithmetic/char/9.cc:
2851         Likewise.
2852         * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
2853         Likewise.
2854         * testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc:
2855         Likewise.
2856         * testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
2857         Likewise.
2858         * testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc:
2859         Likewise.
2861 2004-03-20  Paolo Carlini  <pcarlini@suse.de>
2863         * include/std/std_valarray.h: Document DR389 [Ready].
2864         * docs/html/ext/howto.html: Add an entry for DR389.
2866 2004-03-19  Michael Eager  <eager@mvista.com>
2868         * config/cpu/mips/atomicity.h:  Prevent reg loads between LL and
2869         SC instructions.
2871 2004-03-19  Paolo Carlini  <pcarlini@suse.de>
2873         * testsuite/22_locale/num_get/get/char/11.cc: Remove redundant
2874         static_cast-s.
2875         * testsuite/22_locale/num_get/get/char/12.cc: Likewise.
2876         * testsuite/22_locale/num_get/get/char/13.cc: Likewise.
2877         * testsuite/22_locale/num_get/get/char/14.cc: Likewise.
2878         * testsuite/22_locale/num_get/get/char/15.cc: Likewise.
2879         * testsuite/22_locale/num_get/get/wchar_t/11.cc: Likewise.
2880         * testsuite/22_locale/num_get/get/wchar_t/12.cc: Likewise.
2881         * testsuite/22_locale/num_get/get/wchar_t/13.cc: Likewise.
2882         * testsuite/22_locale/num_get/get/wchar_t/14.cc: Likewise.
2883         * testsuite/22_locale/num_get/get/wchar_t/15.cc: Likewise.
2885 2004-03-19  Paolo Carlini  <pcarlini@suse.de>
2886             Petur Runolfsson  <peturr02@ru.is>
2888         PR libstdc++/12077
2889         * include/ext/stdio_sync_filebuf.h (showmanyc): Remove, there's
2890         no way to find out the conversion used by the underlying FILE*.
2891         * testsuite/ext/stdio_sync_filebuf/wchar_t/12077.cc: New.
2892         * testsuite/27_io/objects/char/9.cc: Tweak.
2894 2004-03-19  Paolo Carlini  <pcarlini@suse.de>
2896         PR libstdc++/14648
2897         * include/ext/ropeimpl.h (rope<>::_S_apply_to_pieces): Fix
2898         memory allocation/deallocation calls.
2899         * testsuite/ext/14648.cc: New.
2901 2004-03-19  Peter Schmid  <schmid@snake.iap.physik.tu-darmstadt.de>
2903         PR libstdc++/14647
2904         * include/backward/bvector.h (bit_vector): Allocator is in std
2905         namespace.
2907 2004-03-19  Phil Edwards  <phil@codesourcery.com>
2909         * acinclude.m4 (GLIBCXX_CHECK_WCHAR_T_SUPPORT):  Set LIBICONV,
2910         not libiconv.  SUBST this variable as well.
2911         * testsuite/Makefile.am (site.exp):  New target, based on that
2912         created by automake.  Also set libiconv.
2914         * configure, Makefile.in, include/Makefile.in, libmath/Makefile.in,
2915         libsupc++/Makefile.in, po/Makefile.in, src/Makefile.in,
2916         testsuite/Makefile.in:  Regenerate.
2918 2004-03-16  Benjamin Kosnik  <bkoz@redhat.com>
2920         * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Default setting is
2921         new_allocator for all hosts.
2922         * configure: Regenerate.
2924 2004-03-16  Paolo Carlini  <pcarlini@suse.de>
2926         * testsuite/22_locale/num_put/put/char/4.cc: Fix for 64-bit pointers.
2927         * testsuite/22_locale/num_put/put/wchar_t/4.cc: Likewise.
2929 2004-03-15  Paolo Carlini  <pcarlini@suse.de>
2931         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
2932         Adjust the logic underlying the parsing of symbol to deal
2933         correctly with an optional sign component (i.e., when either
2934         negative_sign or positive_sign is empty)
2935         * testsuite/22_locale/money_get/get/char/19.cc: New.
2936         * testsuite/22_locale/money_get/get/wchar_t/19.cc: New.
2938 2004-03-15  Paolo Carlini  <pcarlini@suse.de>
2940         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
2941         Do not accept an incomplete currency symbol.
2942         * testsuite/22_locale/money_get/get/char/18.cc: New.
2943         * testsuite/22_locale/money_get/get/wchar_t/18.cc: New.
2945 2004-03-13  Benjamin Kosnik  <bkoz@redhat.com>
2947         * config/allocator: New.
2948         * config/allocator/bitmap_allocator_base.h: New.
2949         * config/allocator/malloc_allocator_base.h: New.
2950         * config/allocator/mt_allocator_base.h: New.
2951         * config/allocator/new_allocator_base.h: New.
2952         * include/bits/allocator.h: Include c++allocator.h.
2953         * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): New.
2954         * aclocal.m4: Regenerate.
2955         * configure.ac: Use GLIBCXX_ENABLE_ALLOCATOR.
2956         * configure: Regenerate.
2957         * include/Makefile.am (host_headers_extra): Add c++allocator.h.
2958         * include/Makefile.in: Regenerate.
2959         * docs/html/configopts.html: Add enable-libstdcxx-allocator.
2961 2004-03-12  Benjamin Kosnik  <bkoz@redhat.com>
2963         * include/bits/allocator.h: Revert.
2965 2004-03-12  Paolo Carlini  <pcarlini@suse.de>
2967         * docs/html/ext/howto.html: Add entry for DR 253 [Ready].
2968         * include/bits/gslice_array.h: Add comment about DR 253.
2969         * include/bits/indirect_array.h: Likewise.
2970         * include/bits/mask_array.h: Likewise.
2971         * include/bits/slice_array.h: Likewise.
2973 2004-03-12  Benjamin Kosnik  <bkoz@redhat.com>
2975         * testsuite/20_util/allocator/14176.cc: New.
2976         * include/ext/mt_allocator.h: Formatting fixes.
2978 2004-03-11  Dhruv Matani  <dhruvbird@HotPOP.com>
2980         * include/Makefile.am (ext_headers): Add
2981         ${ext_srcdir}/bitmap_allocator.h .
2982         * include/Makefile.in: Regenerate.
2983         * docs/html/ext/ballocator_doc.txt: New file.
2984         * include/ext/bitmap_allocator.h: New file.
2985         * testsuite/performance/20_util/allocator/list_sort_search.cc: Add
2986         test.
2987         * testsuite/performance/20_util/allocator/map_mt_find.cc: Likewise.
2988         * testsuite/performance/20_util/allocator/producer_consumer.cc: Add
2989         test for the bitmap_allocator<>.
2990         * testsuite/performance/20_util/allocator/insert.cc: Likewise.
2991         * testsuite/performance/20_util/allocator/insert_insert.cc: Likewise.
2992         * testsuite/performance/20_util/allocator/map_thread.cc: Likewise.
2994 2004-03-11  Paolo Carlini  <pcarlini@suse.de>
2996         * include/std/std_complex.h (pow(const complex&, const _Tp&),
2997         pow(const _Tp&, const complex&), pow(const complex&,
2998         const complex&)): Fully qualify with std:: a few calls.
2999         * testsuite/26_numerics/complex/13450.cc: Minor tweak.
3001 2004-03-11  Steven Bosscher  <stevenb@suse.de>
3003         PR libstdc++/11706
3004         * include/c_std/cmath.tcc (__cmath_power): Define inline.
3006 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
3008         * configure.ac: Bump AC_PREREQ to 2.59.
3010 2004-03-10  Paolo Carlini  <pcarlini@suse.de>
3012         * testsuite/26_numerics/valarray_subset_assignment.cc: Fix typos.
3014 2004-03-10  Paul Kienzle  <pkienzle@nist.gov>
3015             Paolo Carlini  <pcarlini@suse.de>
3017         PR libstdc++/13450
3018         * include/std/std_complex.h (pow(const complex&, const _Tp&),
3019         pow(const _Tp&, const complex&)): Use cmath pow only when safe.
3020         * testsuite/26_numerics/complex/13450.cc: New.
3022         * testsuite/26_numerics/cmath/overloads.C: Rename to overloads.cc.
3023         * testsuite/26_numerics/complex/pow.C: Rename to pow.cc and fix.
3025 2004-03-10  Jerry Quinn  <jlquinn@optonline.net>
3027         PR libstdc++/3247
3028         * include/bits/gslice_array.h (gslice_array()): Make public.
3029         (operator=(gslice_array)): Make public.  Implement.
3030         * include/bits/indirect_array.h (indirect_array()): Make public.
3031         * include/bits/mask_array.h (mask_array()): Make public.
3032         (operator=(mask_array)): Make public.  Implement.
3033         * include/bits/valarray_array.tcc (__valarray_copy):
3034         Comment.  Add versions for gslice_array and mask_array.
3035         * testsuite/26_numerics/valarray_subset_assignment.cc:  New test.
3037 2004-03-09  Benjamin Kosnik  <bkoz@redhat.com>
3039         * testsuite/23_containers/deque/modifiers/swap.cc: Add in bits for
3040         non-weak systems.
3041         * testsuite/23_containers/vector/modifiers/swap.cc: Same.
3042         * testsuite/23_containers/set/modifiers/swap.cc: Same.
3043         * testsuite/23_containers/multiset/modifiers/swap.cc: Same.
3044         * testsuite/23_containers/multimap/modifiers/swap.cc: Same.
3045         * testsuite/23_containers/map/modifiers/swap.cc: Same.
3046         * testsuite/23_containers/list/modifiers/swap.cc: Same.
3048         * testsuite/22_locale/locale/cons/12658_thread.cc: Catch exceptions.
3050 2004-03-08  Benjamin Kosnik  <bkoz@redhat.com>
3052         PR c++/13658
3053         * testsuite/23_containers/deque/modifiers/swap.cc: New.
3054         * testsuite/23_containers/list/modifiers/swap.cc: New.
3055         * testsuite/23_containers/map/modifiers/swap.cc: New.
3056         * testsuite/23_containers/multimap/modifiers/swap.cc: New.
3057         * testsuite/23_containers/multiset/modifiers/swap.cc: New.
3058         * testsuite/23_containers/set/modifiers/swap.cc: New.
3059         * testsuite/23_containers/vector/modifiers/swap.cc: New.
3061 2004-03-08  Petur Runolfsson  <peturr02@ru.is>
3063         PR libstdc++/12658
3064         * testsuite/22_locale/locale/cons/12658_thread.cc: New.
3066 2004-03-08  Paolo Carlini  <pcarlini@suse.de>
3068         * docs/html/ext/howto.html: Add entry for DR 103 [WP].
3069         * include/bits/stl_multiset.h: Add comment about DR 103.
3070         * include/bits/stl_set.h: Likewise.
3072 2004-03-08  Paolo Carlini  <pcarlini@suse.de>
3074         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
3075         The value _space_ indicates that at least one space is required
3076         at that position.
3077         * testsuite/22_locale/money_get/get/char/17.cc: New.
3078         * testsuite/22_locale/money_get/get/wchar_t/17.cc: New.
3080         * testsuite/22_locale/money_get/get/char/7.cc: Minor tweaks.
3081         * testsuite/22_locale/money_get/get/wchar_t/7.cc: Likewise.
3083         * include/bits/locale_facets.tcc (money_get<>::do_get(long_double&)):
3084         Remove redundant conditional on __str.size().
3086 2004-03-08  Benjamin Kosnik  <bkoz@redhat.com>
3088         * include/bits/allocator.h: Switch defaults to mt_alloc.
3090 2004-03-06  Benjamin Kosnik  <bkoz@redhat.com>
3092         * include/ext/mt_allocator.h (_S_initialize): If
3093         !__GTHREAD_MUTEX_INIT, then initialize _S_thread_freelist_mutex.
3095 2004-03-06  Benjamin Kosnik  <bkoz@redhat.com>
3097         PR libstdc++/12658
3098         * src/locale_init.cc (locale::locale): Lock critical regions with
3099         external mutexes.
3100         (locale::global): Same.
3101         * include/bits/concurrence.h (__glibcxx_mutex_define_initialized):
3102         Add in once bits for cases without __GTHREAD_MUTEX_INIT.
3103         (__glibcxx_mutex_lock): Same.
3105         * config/cpu/generic/atomicity.h: Remove
3106         _GLIBCXX_NEED_GENERIC_MUTEX, use concurrence.h.
3107         * src/misc-inst.cc: Move all locking bits out of this file.
3109         * config/os/hpux/os_defines.h: Remove _GLIBCXX_INST_ATOMICITY_LOCK.
3110         * src/misc-inst.cc: Same.
3111         * config/cpu/hppa/atomicity.h: Same.
3113         * config/linker-map.gnu: Remove types in the signature of atomic
3114         exports, as they may vary.
3116 2004-03-06  Paolo Carlini  <pcarlini@suse.de>
3118         * include/bits/locale_facets.tcc: Tweak the comment preceding
3119         has_facet: doesn't throw.
3121 2004-03-06  Paolo Carlini  <pcarlini@suse.de>
3123         * testsuite/22_locale/money_get/get/char/1.cc: Clean up.
3124         * testsuite/22_locale/money_get/get/char/2.cc: Likewise.
3125         * testsuite/22_locale/money_get/get/char/3.cc: Likewise.
3126         * testsuite/22_locale/money_get/get/char/4.cc: Likewise.
3127         * testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise.
3128         * testsuite/22_locale/money_get/get/wchar_t/2.cc: Likewise.
3129         * testsuite/22_locale/money_get/get/wchar_t/3.cc: Likewise.
3130         * testsuite/22_locale/money_get/get/wchar_t/4.cc: Likewise.
3132 2004-03-06  Paolo Carlini  <pcarlini@suse.de>
3134         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
3135         num_get<>::_M_extract_int, num_get<>::do_get(bool&),
3136         __pad<>::_S_pad): Prefer plain operator== to traits::eq().
3137         * testsuite/testsuite_character.h (struct __gnu_test::character):
3138         Provide operator==.
3139         * testsuite/testsuite_hooks.h (struct __gnu_test::pod_char):
3140         Likewise.
3142 2004-03-05  Paolo Carlini  <pcarlini@suse.de>
3144         * testsuite/27_io/fpos/14320-2.cc: Remove xfail.
3146 2004-03-04  Benjamin Kosnik  <bkoz@redhat.com>
3148         * testsuite/23_containers/multiset/insert/1.cc: Test result string.
3150         * testsuite/23_containers/bitset/invalidation/1.cc: Main always
3151         returns 0.
3152         * testsuite/23_containers/deque/invalidation/4.cc: Same.
3153         * testsuite/23_containers/list/invalidation/1.cc: Same.
3154         * testsuite/23_containers/list/invalidation/2.cc: Same.
3155         * testsuite/23_containers/list/invalidation/3.cc: Same.
3156         * testsuite/23_containers/list/invalidation/4.cc: Same.
3157         * testsuite/23_containers/map/invalidation/2.cc: Same.
3158         * testsuite/23_containers/multimap/invalidation/1.cc: Same.
3159         * testsuite/23_containers/multimap/invalidation/2.cc: Same.
3160         * testsuite/23_containers/multiset/invalidation/1.cc: Same.
3161         * testsuite/23_containers/multiset/invalidation/2.cc: Same.
3162         * testsuite/23_containers/set/invalidation/1.cc: Same.
3163         * testsuite/23_containers/set/invalidation/2.cc: Same.
3164         * testsuite/23_containers/vector/invalidation/1.cc: Same.
3165         * testsuite/23_containers/vector/invalidation/2.cc: Same.
3166         * testsuite/23_containers/vector/invalidation/3.cc: Same.
3167         * testsuite/23_containers/vector/invalidation/4.cc: Same.
3169 2004-03-04  Paolo Carlini  <pcarlini@suse.de>
3171         * scripts/testsuite_flags.in: Add "-D_GLIBCXX_ASSERT" to
3172         CXXFLAGS_save.
3173         * testsuite/lib/libstdc++.exp: Don't add it conditionally to
3174         DEFAULT_CXXFLAGS.
3175         * testsuite/18_support/numeric_limits.cc: Remove "-D_GLIBCXX_ASSERT"
3176         from the dg-options.
3177         * testsuite/23_containers/vector/invalidation/1.cc: Likewise.
3178         * testsuite/23_containers/vector/invalidation/2.cc: Likewise.
3179         * testsuite/23_containers/vector/invalidation/3.cc: Likewise.
3180         * testsuite/23_containers/vector/invalidation/4.cc: Likewise.
3181         * testsuite/23_containers/vector/resize/1.cc: Likewise.
3182         * testsuite/26_numerics/complex_value.cc: Likewise.
3183         * testsuite/27_io/ios_base/storage/1.cc: Likewise.
3184         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
3185         * testsuite/27_io/ios_base/storage/3.cc: Likewise.
3186         * testsuite/27_io/manipulators/standard/char/2.cc: Likewise.
3187         * testsuite/27_io/objects/char/5.cc: Likewise.
3188         * testsuite/27_io/objects/wchar_t/5.cc: Likewise.
3189         * testsuite/backward/11460.cc: Likewise.
3190         * testsuite/thread/pthread7-rope.cc: Likewise.
3192         * testsuite/21_strings/basic_string/compare/char/1.cc: Add
3193         missing test variable.
3194         * testsuite/21_strings/basic_string/compare/wchar_t/1.cc: Add
3195         missing test variable.
3197 2004-03-04  Benjamin Kosnik  <bkoz@redhat.com>
3199         * testsuite/20_util/allocator/1.cc: Provide explicit
3200         instantiations for non-weak systems.
3201         * testsuite/20_util/binders.cc: Same.
3202         * testsuite/20_util/allocator/8230.cc: Same.
3203         * testsuite/20_util/allocator/10378.cc: Same.
3204         * testsuite/22_locale/ctype/is/wchar_t/2.cc: Same.
3205         * testsuite/22_locale/ctype/is/char/2.cc: Same.
3206         * testsuite/thread/pthread7-rope.cc: Same.
3207         * testsuite/thread/pthread6.cc: Same.
3208         * testsuite/thread/pthread5.cc: Same.
3209         * testsuite/thread/pthread4.cc: Same.
3210         * testsuite/thread/pthread1.cc: Same.
3211         * testsuite/ext/rope.cc: Same.
3212         * testsuite/ext/hash_set.cc: Same.
3213         * testsuite/ext/hash_map.cc: Same.
3214         * testsuite/ext/concept_checks.cc: Same.
3215         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc: Same.
3216         * testsuite/25_algorithms/unique/2.cc: Same.
3217         * testsuite/25_algorithms/unique/1.cc: Same.
3218         * testsuite/25_algorithms/rotate.cc: Same.
3219         * testsuite/25_algorithms/min_max.cc: Same.
3220         * testsuite/25_algorithms/equal.cc: Same.
3221         * testsuite/24_iterators/rel_ops.cc: Same.
3222         * testsuite/24_iterators/iterator.cc: Same.
3223         * testsuite/24_iterators/insert_iterator.cc: Same.
3224         * testsuite/24_iterators/front_insert_iterator.cc: Same.
3225         * testsuite/24_iterators/back_insert_iterator.cc: Same.
3226         * testsuite/23_containers/vector/resize/1.cc: Same.
3227         * testsuite/23_containers/vector/modifiers/2.cc: Same.
3228         * testsuite/23_containers/vector/modifiers/1.cc: Same.
3229         * testsuite/23_containers/vector/invalidation/4.cc: Same.
3230         * testsuite/23_containers/vector/invalidation/3.cc: Same.
3231         * testsuite/23_containers/vector/invalidation/2.cc: Same.
3232         * testsuite/23_containers/vector/invalidation/1.cc: Same.
3233         * testsuite/23_containers/vector/element_access/1.cc: Same.
3234         * testsuite/23_containers/vector/cons/6513.cc: Same.
3235         * testsuite/23_containers/vector/cons/3.cc: Same.
3236         * testsuite/23_containers/vector/cons/2.cc: Same.
3237         * testsuite/23_containers/vector/cons/1.cc: Same.
3238         * testsuite/23_containers/vector/capacity/8230.cc: Same.
3239         * testsuite/23_containers/vector/capacity/1.cc: Same.
3240         * testsuite/23_containers/vector/bool/6886.cc: Same.
3241         * testsuite/23_containers/stack/members/7158.cc: Same.
3242         * testsuite/23_containers/set/invalidation/2.cc: Same.
3243         * testsuite/23_containers/set/invalidation/1.cc: Same.
3244         * testsuite/23_containers/queue/members/7157.cc: Same.
3245         * testsuite/23_containers/priority_queue/members/7161.cc: Same.
3246         * testsuite/23_containers/multiset/invalidation/2.cc: Same.
3247         * testsuite/23_containers/multiset/invalidation/2.cc: Same.
3248         * testsuite/23_containers/multiset/insert/1.cc: Same.
3249         * testsuite/23_containers/multimap/invalidation/2.cc: Same.
3250         * testsuite/23_containers/multimap/invalidation/2.cc: Same.
3251         * testsuite/23_containers/map/operators/1.cc: Same.
3252         * testsuite/23_containers/map/invalidation/2.cc: Same.
3253         * testsuite/23_containers/map/invalidation/1.cc: Same.
3254         * testsuite/23_containers/map/insert/1.cc: Same.
3255         * testsuite/23_containers/list/operators/4.cc: Same.
3256         * testsuite/23_containers/list/operators/3.cc: Same.
3257         * testsuite/23_containers/list/operators/2.cc: Same.
3258         * testsuite/23_containers/list/operators/1.cc: Same.
3259         * testsuite/23_containers/list/modifiers/3.cc: Same.
3260         * testsuite/23_containers/list/modifiers/2.cc: Same.
3261         * testsuite/23_containers/list/modifiers/1.cc: Same.
3262         * testsuite/23_containers/list/invalidation/4.cc: Same.
3263         * testsuite/23_containers/list/invalidation/3.cc: Same.
3264         * testsuite/23_containers/list/invalidation/2.cc: Same.
3265         * testsuite/23_containers/list/invalidation/1.cc: Same.
3266         * testsuite/23_containers/list/cons/9.cc: Same.
3267         * testsuite/23_containers/list/cons/8.cc: Same.
3268         * testsuite/23_containers/list/cons/7.cc: Same.
3269         * testsuite/23_containers/list/cons/6.cc: Same.
3270         * testsuite/23_containers/list/cons/5.cc: Same.
3271         * testsuite/23_containers/list/cons/4.cc: Same.
3272         * testsuite/23_containers/list/cons/3.cc: Same.
3273         * testsuite/23_containers/list/cons/2.cc: Same.
3274         * testsuite/23_containers/list/cons/1.cc: Same.
3275         * testsuite/23_containers/list/capacity/1.cc: Same.
3276         * testsuite/23_containers/deque/operators/1.cc: Same.
3277         * testsuite/23_containers/deque/invalidation/4.cc: Same.
3278         * testsuite/23_containers/deque/invalidation/3.cc: Same.
3279         * testsuite/23_containers/deque/invalidation/2.cc: Same.
3280         * testsuite/23_containers/deque/invalidation/1.cc: Same.
3281         * testsuite/23_containers/deque/cons/2.cc: Same.
3282         * testsuite/23_containers/deque/cons/1.cc: Same.
3284         * src/allocator.cc: Add char, wchar_t instantiations
3285         to match extern template declarations in memory.h.
3287 2004-03-03  Paolo Carlini  <pcarlini@suse.de>
3289         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
3290         Fix warning regression.
3292 2004-03-03  Paolo Carlini  <pcarlini@suse.de>
3294         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
3295         Deal properly with empty __digits and negative frac_digits,
3296         clean-up a bit.
3298 2004-03-03  Jonathan Wakely  <redi@gcc.gnu.org>
3300         * docs/html/documentation.html: Regenerate.
3302 2004-03-02  Paolo Carlini  <pcarlini@suse.de>
3304         PR libstdc++/14320
3305         * include/bits/postypes.h (class streamoff): Remove, now
3306         streamoff is just typedef a 64 bit signed integer type.
3307         (class fpos): Tweak consistently.
3308         * testsuite/27_io/fpos/14320-1.cc: New.
3309         * testsuite/27_io/fpos/14320-2.cc: New.
3310         * testsuite/27_io/fpos/14320-3.cc: New.
3311         * testsuite/27_io/fpos/14320-4.cc: New.
3312         * testsuite/27_io/fpos/14320-5.cc: New.
3313         * testsuite/27_io/fpos/mbstate_t/4_neg.cc: xfail for now.
3315 2004-03-02  Paolo Carlini  <pcarlini@suse.de>
3317         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
3318         Reorganize a bit the main parsing loop, thus early detecting
3319         an empty value component.
3320         * testsuite/22_locale/money_get/get/char/16.cc: New.
3321         * testsuite/22_locale/money_get/get/wchar_t/16.cc: New.
3323 2004-03-02  Benjamin Kosnik  <bkoz@redhat.com>
3325         Support automake 1.8.2
3326         * configure.ac (AM_INIT_AUTOMAKE): Add -Wno-override.
3327         * po/Makefile.am (EXTRA_DIST): New.
3328         * po/Makefile.in: Regenerate.
3329         * Makefile.in: Same.
3330         * include/Makefile.in: Same.
3331         * libmath/Makefile.in: Same.
3332         * libsupc++/Makefile.in: Same.
3333         * src/Makefile.in: Same.
3334         * testsuite/Makefile.in: Same.
3336         * include/Makefile.am (${host_builddir}/gthr-posix.h): Use
3337         __GXX_WEAK__ instead of SUPPORTS_WEAK.
3338         (${host_builddir}/gthr-default.h): Same.
3339         (${host_builddir}/gthr.h): Same.
3340         * acinclude.m4 (GLIBCXX_ENABLE_THREAD): Remove
3341         _GLIBCXX_SUPPORTS_WEAK, as this behavior can be modified via
3342         -fno-weak.
3343         * aclocal.m4: Regenerate.
3344         * acconfig.h: Remove _GLIBCXX_SUPPORTS_WEAK.
3345         * config.h.in: Regenerate.
3346         * configure: Same.
3348 2004-03-01  Benjamin Kosnik  <bkoz@redhat.com>
3350         Support autoconf 2.59
3351         * acinclude.m4: Quote correctly.
3352         * aclocal.m4: Regenerate.
3353         * linkage.m4: Same.
3355 2004-03-01  Benjamin Kosnik  <bkoz@redhat.com>
3357         * docs/html/test.html: Add multilib RUNTESTFLAGS example.
3359         * docs/html/18_support/howto.html: Add bit about writing to
3360         stderr, mostly by Zack.
3362 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
3364         * include/bits/locale_facets.tcc (money_get<>::_M_extract,
3365         money_get<>::do_get(string_type&)): ... and two more.
3367 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
3369         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
3370         Fix thinkos in the switch from string_type& to string& as last
3371         argument.
3373 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
3375         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float):
3376         Also when parsing exponent sign, first look for thousands_sep
3377         and decimal_point; tweak a bit.
3378         * testsuite/22_locale/num_get/get/char/15.cc: New.
3379         * testsuite/22_locale/num_get/get/wchar_t/15.cc: New.
3381         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
3382         num_get<>::_M_extract_int): Reorder some conditionals.
3384 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
3386         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
3387         Consistently with numpunct, enforce the requirements in
3388         22.2.6.3, p3 for the thousands separators; tweak a bit.
3389         * testsuite/22_locale/money_get/get/char/15.cc: New.
3390         * testsuite/22_locale/money_get/get/wchar_t/15.cc: New.
3392 2004-03-01  David Billinghurst <David.Billinghurst@riotinto.com>
3394         * testsuite/lib/libstdc++.exp (v3-list-tests): Use
3395         testsuite_files from correct multilib blddir when running
3396         testsuite.
3398 2004-02-29  Phil Edwards  <phil@codesourcery.com>
3400         * testsuite/Makefile.am (check-abi, check-abi-verbose):  Copy
3401         the summary file to the logfile.
3402         * testsuite/Makefile.in:  Regenerate.
3404 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3406         * config/cpu/hppa/atomicity.h (__atomic_add): Make first argument
3407         volatile.
3408         * config/os/hpux/os_defines.h (_GLIBCXX_INST_ATOMICITY_LOCK): Use
3409         __GXX_WEAK__ instead of _GLIBCXX_SUPPORTS_WEAK.
3411 2004-02-28  Paolo Carlini  <pcarlini@suse.de>
3413         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float):
3414         According to 22.2.3.1, p2, 'units' may be followed by 'e' with
3415         no 'decimal-point' in the middle: in this case too we must fix
3416         up __found_grouping; slightly tweak.
3417         * testsuite/22_locale/num_get/get/char/14.cc: New.
3418         * testsuite/22_locale/num_get/get/wchar_t/14.cc: New.
3420 2004-02-27  Eric Christopher  <echristo@redhat.com>
3421             Phil Edwards  <phil@codesourcery.com>
3423         * testsuite/22_locale/collate/compare/wchar_t/2.cc,
3424         testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc,
3425         testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc,
3426         testsuite/22_locale/collate/hash/wchar_t/2.cc,
3427         testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc,
3428         testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc,
3429         testsuite/22_locale/collate/transform/wchar_t/2.cc,
3430         testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc,
3431         testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc:
3432         Use dg-require-iconv.
3433         * testsuite/lib/libstdc++.exp:  Load target-supports.exp.
3435 2004-02-27  Phil Edwards  <phil@codesourcery.com>
3436             Eric Christopher  <echristo@redhat.com>
3438         * testsuite/config/default.exp:  Update with comments.
3439         (${tool}_target_compile):  New wrapper routine.
3440         * testsuite/lib/dg-options.exp:  New file, with dg-require-iconv.
3441         * testsuite/lib/libstdc++.exp:  Update with comments and cosmetic
3442         fixes.
3443         (load_gcc_lib, v3track):  New routines.
3444         (v3-init):  Rename to libstdc++_init.
3445         * testsuite/libstdc++-dg/normal.exp:  No longer call v3-init.
3446         Move DEFAULT_CXXFLAGS handling into libstdc++_init.
3448 2004-02-27  Benjamin Kosnik  <bkoz@redhat.com>
3450         * config/cpu/hppa/atomicity.h: Include c++config.h to get defines.
3452         * src/misc-inst.cc (_S_atomicity_lock): Move to __gnu_cxx.
3454         * config/os/irix/irix5.2/atomicity.h: Merge..
3455         * config/os/irix/irix6.5/atomicity.h: Merge..
3456         * config/os/irix/atomicity.h: ...into this.
3457         * config/os/irix/atomic_word.h: New.
3458         * configure.host: Set atomic_word_dir for irix.
3460         * hppa/atomicity.h: Change __Atomicity_lock to _Atomicity_lock.
3461         * i386/atomicity.h: Same.
3462         * m68k/atomicity.h: Same.
3463         * sparc/atomicity.h: Same.
3465 2004-02-27  David Edelsohn  <edelsohn@gnu.org>
3467         * config/os/aix/atomicity.h: Use __gnu_cxx namespace. Remove
3468         static, and inline keywords.
3470 2004-02-27  Paolo Carlini  <pcarlini@suse.de>
3472         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
3473         num_get<>::_M_extract_int, money_get<>::_M_extract): If appropriate,
3474         call reserve on the __tmp_gruping string.
3475         (num_get<>::_M_extract_float): Don't append unnecessarily a
3476         char() to the returned string.
3477         * include/bits/locale_facets.tcc: Trivial reformattings.
3479 2004-02-27  Paolo Carlini  <pcarlini@suse.de>
3481         * include/bits/locale_facets.h (money_get<>::_M_extract):
3482         Change signature: now takes a plain string&.
3483         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
3484         Update consistently the definition; use the moneypunct cache
3485         to parse the value; use swap to change __units.
3486         (money_get<>::do_get(long double&)): Update call of _M_extract,
3487         avoid ctype::narrow, not correct wrt the standard.
3488         (money_get<>::do_get(string_type&)): Likewise, update call
3489         of _M_extract, use ctype::widen.
3490         * src/locale-inst.cc: Tweak instantiations of _M_extract.
3492 2004-02-26  Ian Lance Taylor  <ian@wasabisystems.com>
3494         * testsuite/demangle/abi_examples/01.cc: Expect error -2.
3495         * testsuite/demangle/abi_examples/02.cc: Likewise.
3496         * testsuite/demangle/regression/cw-11.cc: Likewise.
3497         * testsuite/demangle/regression/cw-16.cc: Change two expected
3498         results to match libiberty demangler output.
3500 2004-02-26  Benjamin Kosnik  <bkoz@redhat.com>
3502         PR libstdc++/10246
3503         * libsupc++/Makefile.am: Use libiberty demangler.
3504         (c_sources): Add cp-demangle.c.
3505         * libsupc++/Makefile.in: Regenerate.
3506         * src/Makefile.am (sources): Remove demangle.cc.
3507         * src/Makefile.in: Regenerate.
3508         * include/Makefile.am (bits_headers): Move demangle.h.
3509         (ext_headers): ...here.
3510         * include/Makefile.in: Regenerate.
3511         * include/bits/demangle.h: Move...
3512         * include/ext/demangle.h: ...here.
3513         * src/demangle.cc: Remove.
3515 2004-02-26  Benjamin Kosnik  <bkoz@redhat.com>
3517         * include/bits/demangle.h: Add type template parameter to all
3518         templates with just an Allocator template parameter.
3520 2004-02-25  Benjamin Kosnik  <bkoz@redhat.com>
3522         * include/bits/atomicity.h: New, forward declarations for __atomic_add
3523         and __exchange_and_add.
3524         * config/cpu/generic/atomic_word.h: New, typdef for atomic word.
3525         * config/cpu/cris/atomic_word.h: Same.
3526         * config/cpu/sparc/atomic_word.h: Same.
3527         * include/bits/ios_base.h (_Callback_list::_M_remove_reference):
3528         Qualifiy with __gnu_cxx.
3529         (_Callback_list::_M_add_reference): Same.
3530         * include/bits/locale_classes.h (locale::facet::_M_add_reference): Add.
3531         (locale::facet::_M_remove_reference): Same.
3532         (locale::_Impl::_M_add_reference): Add.
3533         (locale::_Impl::_M_remove_reference): Same.
3534         * include/bits/basic_string.h (basic_string::_Rep::_M_refcopy): Same.
3535         (basic_string::_Rep::_M_dispose): Same.
3536         * src/ios.cc (ios_base::xalloc): Same.
3537         * src/ios_init.cc (ios_base::Init::Init): Same.
3538         (ios_base::Init::~Init): Same.
3539         * src/locale.cc (locale::id::_M_id): Same.
3540         * config/cpu/i486/atomicity.h: Use __gnu_cxx namespace. Remove
3541         static, and inline keywords.
3542         * config/cpu/alpha/atomicity.h: Same.
3543         * config/cpu/cris/atomicity.h: Same.
3544         * config/cpu/generic/atomicity.h: Same.
3545         * config/cpu/hppa/atomicity.h: Same.
3546         * config/cpu/i386/atomicity.h: Same.
3547         * config/cpu/ia64/atomicity.h: Same.
3548         * config/cpu/m68k/atomicity.h: Same.
3549         * config/cpu/mips/atomicity.h: Same.
3550         * config/cpu/powerpc/atomicity.h: Same.
3551         * config/cpu/s390/atomicity.h: Same.
3552         * config/cpu/sparc/atomicity.h: Same.
3554         * src/Makefile.am (host_sources): Add atomicity.cc.
3555         (atomicity.cc): New rule.
3556         * src/Makefile.in: Regenerate.
3557         * include/Makefile.am (host_headers): Remove host atomicity.h.
3558         (host_headers): Add atomic_word.h.
3559         (bits_headers): Add bits atomicity.h.
3560         Change ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR.
3561         * include/Makefile.in: Regenerate.
3562         * configure.host (atomic_word_dir): Add.
3563         * configure.ac: Substitute ATOMIC_WORD_SRCDIR. Change
3564         ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR.
3565         * configure: Regenerate.
3566         * config/linker-map.gnu: Export __exchange_and_add, and __atomic_add.
3568         * testsuite/27_io/ios_base/cons/assign_neg.cc: Adjust line numbers.
3569         * testsuite/27_io/ios_base/cons/copy_neg.cc: Same.
3571 2004-02-25  Jonathan Wakely  <redi@gcc.gnu.org>
3573         * docs/html/20_util/howto.html, docs/html/20_util/allocator.html,
3574         docs/html/ext/howto.html, docs/html/ext/mt_allocator.html:
3575         Fix markup, more <link> tags.
3577 2004-02-25  Carlo Wood  <carlo@alinoe.com>
3579         * bits/demangle.h
3580         namespace __gnu_cxx::demangler
3581         (session<Allocator>::qualifier_list_Allocator): Add
3582         (session<Allocator>::M_qualifier_list_alloc): Add
3583         (session<Allocator>::decode_type_with_postfix):
3584         Use M_qualifier_list_alloc instead of calling operator new/delete.
3586 2004-02-24  Paolo Carlini  <pcarlini@suse.de>
3588         PR libstdc++/14252
3589         * include/bits/postypes.h (class streamoff): Add operator++(),
3590         operator++(int), operator--() and operator--(int).
3591         * testsuite/27_io/fpos/14252.cc: New.
3593 2004-02-24  Richard Sandiford  <rsandifo@redhat.com>
3595         * include/bits/locale_facets.tcc (num_get::_M_extract_int): Fix bounds
3596         error in handling of hex constants.
3598 2004-02-24  Paolo Carlini  <pcarlini@suse.de>
3600         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
3601         Prefer basic_string::append to operator+= and a temporary.
3603 2004-02-23  Benjamin Kosnik  <bkoz@redhat.com>
3605         * libsupc++/vterminate.cc (__gnu_cxx::__verbose_terminate_handler):
3606         Only use fputs, not write.
3608 2004-02-23  Benjamin Kosnik  <bkoz@redhat.com>
3610         * include/ext/malloc_allocator.h: Add operators ==, !=.
3611         * include/ext/new_allocator.h: Add operators ==, !=.
3612         * include/ext/mt_allocator.h (__mt_alloc::tune): New.
3613         (__mt_alloc::_S_get_options): New.
3614         (__mt_alloc::_S_set_options): New.
3615         (__mt_alloc::_S_thread_key_destr): To _S_destroy_thread_key.
3616         (__mt_alloc::_S_no_of_bins): To _S_bin_size.
3617         Move functions out of line, simplify, format.
3618         * src/allocator.cc: Simplify explicit instantiations.
3619         * include/bits/allocator.h: Tweak.
3621 2004-02-22  Paolo Carlini  <pcarlini@suse.de>
3623         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
3624         Restructure formatting of value component, first dealing with
3625         the non-decimal digits; use reserve.
3627 2004-02-22  Paolo Carlini  <pcarlini@suse.de>
3629         * include/bits/locale_facets.h (class money_get): Inherit
3630         from money_base too; tweak declaration of _M_extract, now
3631         parameterized on _Intl too.
3632         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
3633         Update definition to use the cache; call reserve on __res to
3634         avoid multiple reallocations; fix parsing of sign component
3635         according to 22.2.6.1.2, p3.
3636         (money_get<>::do_get(long double&),
3637         money_get<>::do_get(string_type&)): Update calls of _M_extract.
3638         * src/locale-inst.cc:  Add instantiations of
3639         money_get::_M_extract<false> and money_get::_M_extract<true>.
3640         * testsuite/22_locale/money_get/get/char/14.cc: New.
3641         * testsuite/22_locale/money_get/get/wchar_t/14.cc: Ditto.
3643 2004-02-21  Mark Mitchell  <mark@codesourcery.com>
3645         * libsupc++/vterminate.cc
3646         (__gnu_cxx::__verbose_terminate_handler): Guard against recursive
3647         calls to terminate.
3648         * src/demangle.cc (__cxa_demangle): Wrap in try-catch block.
3650         * testsuite/testsuite_hooks.cc (__gnu_test::set_memory_limits): Do
3651         not set RLIMIT_AS on HP-UX.
3653 2004-02-21  Mark Mitchell  <mark@codesourcery.com>
3655         * testsuite/testsuite_hooks.cc (__gnu_test::set_memory_limits): Do
3656         not set RLIMIT_AS on HP-UX.
3658 2004-02-21  Paolo Carlini  <pcarlini@suse.de>
3660         * include/bits/locale_facets.h (class money_base): Add { _S_minus,
3661         _S_zero, _S_end } enum, _S_atoms.
3662         (struct __moneypunct_cache<>): Parameterize on _Intl too; add
3663         _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size,
3664         _M_negative_sign_size, _M_atoms; tweak constructor consistently.
3665         (__moneypunct_cache<>::~__moneypunct_cache): Update.
3666         (__moneypunct_cache<>::_M_cache): Fill the cache.
3667         (class moneypunct): Tweak __cache_type typedef.
3668         (class money_put): Inherit from money_base too; tweak declaration
3669         of _M_insert, now parameterized on _Intl.
3670         * include/bits/locale_facets.tcc
3671         (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New.
3672         (money_put<>::_M_insert): Update definition to use the cache;
3673         call reserve on __res to avoid multiple reallocations.
3674         (money_put<>::do_put(long double),
3675         money_put<>::do_put(const string_type&): Update calls of _M_insert.
3676         * config/locale/generic/monetary_members.cc
3677         (moneypunct<char, true>::_M_initialize_moneypunct,
3678         moneypunct<char, false>::_M_initialize_moneypunct,
3679         moneypunct<wchar_t, true>::_M_initialize_moneypunct,
3680         moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update.
3681         * config/locale/gnu/monetary_members.cc: Likewise.
3682         * config/locale/gnu/monetary_members.cc
3683         (moneypunct<wchar_t, true>::~moneypunct(),
3684         moneypunct<wchar_t, false>::~moneypunct()): Likewise.
3685         * src/globals_locale.cc: Tweak fake_money_cache_c.
3686         * src/locale-inst.cc: Add instantiations for
3687         money_put::_M_insert<false> and money_put::_M_insert<true> and
3688         __moneypunct_cache<C, false>, __moneypunct_cache<C, true>.
3689         * src/locale_facets.cc: Define money_base::_S_atoms.
3690         * src/locale_init.cc: Update placement new of
3691         __moneypunct_cache<char, false>, __moneypunct_cache<char, true>,
3692         __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>.
3694         * config/locale/generic/numeric_members.cc: Clean up.
3695         * config/locale/gnu/numeric_members.cc: Likewise.
3696         * testsuite/22_locale/money_put/put/char/1.cc: Likewise.
3697         * testsuite/22_locale/money_put/put/char/2.cc: Likewise.
3698         * testsuite/22_locale/money_put/put/char/3.cc: Likewise.
3699         * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise.
3700         * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise.
3701         * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise.
3703 2004-02-20  Mark Mitchell  <mark@codesourcery.com>
3705         * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc: Open
3706         FIFO for writing with ios_base::in|ios_base::out.
3707         * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise.
3708         * testsuite/27_io/objects/char/7.cc: Likewise.
3709         * testsuite/27_io/objects/char/9661-1.cc: Open FIFO for writing
3710         with "r+".
3712 2004-02-19  David Edelsohn  <edelsohn@gnu.org>
3714         * 22_locale/collate/compare/wchar_t/2.cc: Change input-charset
3715         from iso-8859-1 to ISO8859-1.
3716         * 22_locale/collate/compare/wchar_t/wrapped_env.cc: Same.
3717         * 22_locale/collate/compare/wchar_t/wrapped_locale.cc: Same.
3718         * 22_locale/collate/hash/wchar_t/2.cc: Same.
3719         * 22_locale/collate/hash/wchar_t/wrapped_env.cc: Same.
3720         * 22_locale/collate/hash/wchar_t/wrapped_locale.cc: Same.
3721         * 22_locale/collate/transform/wchar_t/2.cc: Same.
3722         * 22_locale/collate/transform/wchar_t/wrapped_env.cc: Same.
3723         * 22_locale/collate/transform/wchar_t/wrapped_locale.cc: Same.
3725 2004-02-18  Paolo Carlini  <pcarlini@suse.de>
3727         * include/bits/locale_facets.h (money_get<>::_M_extract):
3728         New, helper for do_get.
3729         (money_put<>::_M_insert): Likewise, for do_put.
3730         * include/bits/locale_facets.tcc (money_get<>::_M_extract,
3731         money_put<>::_M_insert): Define.
3732         (money_get<>::do_get(long double&), money_get<>::do_get(
3733         string_type&), money_put::do_put(long double),
3734         money_put::do_put(const string_type&)): Use the helpers.
3736 2004-02-18  Paolo Carlini  <pcarlini@suse.de>
3738         * config/io/basic_file_stdio.cc (__gnu_internal::xwritev):
3739         Rewrite, avoiding recursion.
3740         (__gnu_internal::xwrite): Minor tweaks.
3742 2004-02-17  Stefan Olsson  <stefan@xapa.se>
3744         * include/ext/mt_allocator.h: Removed the last
3745         pointer. Deallocated blocks are now added to the front of
3746         freelists as proposed by Felix Yen.  This gives roughly 10%
3747         performance boost and saves some memory.
3748         * docs/html/ext/mt_allocator.html: Change due to that deallocated
3749         blocks now are added to the front of freelists. The reason to this
3750         approach is also explained.
3752 2004-02-17  Paolo Carlini  <pcarlini@suse.de>
3754         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
3755         num_get<>::_M_extract_int, money_get<>::do_get): Simplify
3756         grouping fidelity conditional.
3758 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
3760         * testsuite/27_io/basic_filebuf/overflow/char/13858.cc:
3761         Qualify exception with std::.
3762         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Ditto.
3763         * testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc: Ditto.
3764         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
3765         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
3766         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
3768 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
3770         * testsuite/ext/enc_filebuf/char/13189.cc: Don't check
3771         for now that the catch block is not reached.
3772         * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Likewise.
3774 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
3776         * include/bits/locale_facets.tcc (money_get::do_get(string_type&)):
3777         Fix parsing of the remaining sign characters.
3778         * 22_locale/money_get/get/char/2.cc: Tweak: now, correctly,
3779         the input is scanned 'til eof.
3780         * 22_locale/money_get/get/char/4.cc: Likewise.
3781         * 22_locale/money_get/get/wchar_t/2.cc: Likewise.
3782         * 22_locale/money_get/get/wchar_t/4.cc: Likewise.
3783         * 22_locale/money_get/get/char/8.cc: Tweak: override do_neg_format,
3784         not do_pos_format: the former is the only one that matters during
3785         input.
3786         * 22_locale/money_get/get/wchar_t/8.cc: Likewise.
3788         * 22_locale/money_get/get/char/6.cc: Minor tweak.
3789         * 22_locale/money_get/get/wchar_t/6.cc: Likewise.
3791 2004-02-15  David Asher  <david.asher@cavium.com>
3793         PR libstdc++/11352
3794         * include/bits/locale_facets.tcc (__pad<>::_S_pad): Don't
3795         access __olds beyond __oldlen.
3797 2004-02-14  Paolo Carlini  <pcarlini@suse.de>
3799         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Make
3800         sure the exception is actually thrown.
3801         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
3802         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
3803         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
3805 2004-02-14  Paolo Carlini  <pcarlini@suse.de>
3807         PR libstdc++/13858
3808         * include/bits/fstream.tcc (basic_filebuf<>::_M_convert_to_external):
3809         In case of conversion errors, throw ios_failure; simplify.
3810         * testsuite/27_io/basic_filebuf/overflow/char/13858.cc: New.
3811         * testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc: Ditto.
3812         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Tweak,
3813         previously we didn't throw in case of conversion errors, instead
3814         just returned eof().
3815         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
3816         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
3817         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
3819         * include/bits/fstream.tcc (basic_filebuf<>::overflow):
3820         Trivial simplification of a conditional.
3822 2004-02-12  Paolo Carlini  <pcarlini@suse.de>
3824         PR libstdc++/13731 (final part: writev)
3825         * config/io/basic_file_stdio.cc (__gnu_internal::xwritev):
3826         New, a wrapper around writev() handling partial writes.
3827         (__basic_file<char>::xwrite): Move to __gnu_internal and make
3828         static.
3829         (__basic_file<char>::xsputn): Update call.
3830         (__basic_file<char>::xsputn_2): Likewise.
3831         * config/io/basic_file_stdio.h (__basic_file<char>::xwrite):
3832         Don't declare, now static.
3834 2004-02-11  Stefan Olsson  <stefan@xapa.se>
3836         * docs/html/ext/mt_allocator.html: New.
3838 2004-02-11  Benjamin Kosnik  <bkoz@redhat.com>
3840         * docs/html/20_util/allocator.html: New file, consolidate
3841         allocator information here. Revamp.
3842         * docs/html/documentation.html: Change links.
3843         * docs/html/20_util/howto.html: Same.
3844         * docs/html/ext/howto.html: Same.
3846 2004-02-11  Paolo Carlini  <pcarlini@suse.de>
3848         PR libstdc++/13731 (first part: write)
3849         * config/io/basic_file_stdio.h (__basic_file<char>::xwrite):
3850         New, declare.
3851         * config/io/basic_file_stdio.cc (__basic_file<char>::xwrite):
3852         Define it: a wrapper around write() handling partial write.
3853         (__basic_file<char>::xsputn): Use it.
3854         (__basic_file<char>::xsputn_2): Likewise.
3856 2004-02-11  Paolo Carlini  <pcarlini@suse.de>
3857             Petur Runolfsson  <peturr02@ru.is>
3859         PR libstdc++/14078
3860         * include/std/std_istream.h (operator>>(__istream_type& (*)
3861         (__istream_type&)), operator>>(__ios_type& (*)(__ios_type&)),
3862         operator>>(ios_base& (*)(ios_base&))): Declare inline.
3863         * include/std/std_ostream.h (operator<<(__ostream_type& (*)
3864         (__ostream_type&)), operator<<(__ios_type& (*)(__ios_type&)),
3865         operator<<(ios_base& (*) (ios_base&))): Likewise.
3866         * testsuite/performance/27_io/fmtflags_manipulators.cc: New.
3868 2004-02-10  Loren J. Rittle  <ljrittle@acm.org>
3870         PR libstdc++/14098
3871         * config/linker-map.gnu: Add typeinfo and typeinfo name for
3872         __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> >.
3874         PR libstdc++/14097
3875         * config/linker-map.gnu: Add typeinfo and typeinfo name for
3876         __gnu_cxx::stdio_filebuf<char, std::char_traits<char> >.
3878 2004-02-09  Loren J. Rittle  <ljrittle@acm.org>
3880         * include/ext/pool_allocator.h: Include c++config.h.
3882 2004-02-09  Stefan Olsson  <stefan@xapa.se>
3884         * include/ext/mt_allocator.h: thread_id is unused in non threaded
3885         applications and now has a ifdef to remove it completely on
3886         compilers without thread support. Include stdlib.h due to a
3887         compiler warning on getenv().
3889 2004-02-09  Paul Brook  <paul@codesourcery.com>
3891         * libstdc++-v3/configure.host: Explicitly check for atomicity.h file.
3893 2004-02-09  Paolo Carlini  <pcarlini@suse.de>
3895         PR libstdc++/14071
3896         * src/locale_init.cc (locale::global(const locale&)): Use
3897         locale::name() in order to decide whether calling setlocale.
3898         * testsuite/22_locale/locale/global_locale_objects/14071.cc: New.
3900         * include/bits/locale_classes.h (locale::_Impl::_M_check_same_name()):
3901         Avoid computing &= unnecessarily.
3903 2004-02-09  James E Wilson  <wilson@specifixinc.com>
3905         PR libstdc++/5625
3906         * libsuspc++/eh_personality.cc (PERSONALITY_FUNCTION): Use
3907         __builtin_extend_pointer.
3909 2004-02-09  Paolo Carlini  <pcarlini@suse.de>
3911         PR libstdc++/14072
3912         * include/bits/basic_ios.tcc (basic_ios<>::_M_cache_locale):
3913         Don't leave dangling pointers.
3914         * testsuite/27_io/basic_ios/imbue/14072.cc: New.
3915         * testsuite/22_locale/numpunct/members/pod/2.cc: Tweak, the num_put
3916         facet is needed in the final test.
3918 2004-02-09  Bernardo Innocenti  <bernie@develer.com>
3920         * crossconfig.m4: Don't enable _GLIBCXX_USE_LFS on *-uclinux*.
3921         * configure: Regenerate.
3923 2004-02-08  Richard Henderson  <rth@redhat.com>
3925         PR libstdc++/14026
3926         * libsupc++/eh_catch.cc (__cxa_begin_catch): Don't adjust
3927         uncaughtExceptions during nested catch rethrow.
3928         * testsuite/18_support/14026.cc: New.
3930 2004-02-08  Paolo Carlini  <pcarlini@suse.de>
3932         * include/bits/basic_string.tcc (assign(const _CharT*, size_type)):
3933         When working in place remember to set the state to sharable
3934         (otherwise, _M_mutate does it).
3936 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
3938         * include/bits/allocator.h, include/bits/basic_ios.h,
3939         include/bits/basic_ios.tcc, include/bits/basic_string.h,
3940         include/bits/basic_string.tcc, include/bits/boost_concept_check.h,
3941         include/bits/char_traits.h, include/bits/codecvt.h,
3942         include/bits/concurrence.h, include/bits/cpp_type_traits.h,
3943         include/bits/demangle.h, include/bits/deque.tcc,
3944         include/bits/fstream.tcc, include/bits/functexcept.h,
3945         include/bits/gslice.h, include/bits/gslice_array.h,
3946         include/bits/indirect_array.h, include/bits/ios_base.h,
3947         include/bits/istream.tcc, include/bits/list.tcc,
3948         include/bits/locale_classes.h, include/bits/locale_facets.h,
3949         include/bits/locale_facets.tcc, include/bits/localefwd.h,
3950         include/bits/mask_array.h, include/bits/ostream.tcc,
3951         include/bits/postypes.h, include/bits/slice_array.h,
3952         include/bits/sstream.tcc, include/bits/stl_algo.h,
3953         include/bits/stl_algobase.h, include/bits/stl_bvector.h,
3954         include/bits/stl_construct.h, include/bits/stl_deque.h,
3955         include/bits/stl_function.h, include/bits/stl_heap.h,
3956         include/bits/stl_iterator.h, include/bits/stl_iterator_base_funcs.h,
3957         include/bits/stl_list.h, include/bits/stl_map.h,
3958         include/bits/stl_multimap.h, include/bits/stl_multiset.h,
3959         include/bits/stl_numeric.h, include/bits/stl_pair.h,
3960         include/bits/stl_queue.h, include/bits/stl_raw_storage_iter.h,
3961         include/bits/stl_relops.h, include/bits/stl_set.h,
3962         include/bits/stl_stack.h, include/bits/stl_tempbuf.h,
3963         include/bits/stl_threads.h, include/bits/stl_tree.h,
3964         include/bits/stl_uninitialized.h, include/bits/stl_vector.h,
3965         include/bits/stream_iterator.h, include/bits/streambuf.tcc,
3966         include/bits/streambuf_iterator.h,include/bits/stringfwd.h,
3967         include/bits/type_traits.h, include/bits/valarray_after.h,
3968         include/bits/valarray_array.h, include/bits/valarray_array.tcc,
3969         include/bits/valarray_before.h, include/bits/vector.tcc: Remove
3970         trailing whitespace.
3972 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
3974         * include/bits/basic_string.h: Fix comment.
3976 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
3978         * include/bits/stl_construct.h: Wrap overlong lines, reformat
3979         according to the coding standards.
3980         * include/bits/stl_pair.h: Likewise.
3981         * include/bits/stl_raw_storage_iter.h: Likewise.
3982         * include/bits/stl_stack.h: Likewise.
3983         * include/bits/stl_uninitialized.h: Likewise.
3984         * include/bits/stream_iterator.h: Likewise.
3985         * include/bits/streambuf_iterator.h: Likewise.
3986         * include/bits/type_traits.h: Likewise.
3988 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
3990         * testsuite/27_io/basic_filebuf/open/char/9507.cc:
3991         Adjust timings.
3993 2004-02-05  Loren J. Rittle  <ljrittle@acm.org>
3995         * scripts/check_performance: Support PCH.
3997         * scripts/check_performance (CXX): Add -DNOTHREAD.
3998         * testsuite/performance/20_util/allocator/insert.cc: Integrate
3999         threaded tests from insert_insert.cc.  Tweak iterations,
4000         remove special cases.
4001         * testsuite/performance/20_util/allocator/insert_insert.cc:
4002         Make all tests single-threaded. Tweak iterations.
4003         * testsuite/performance/20_util/allocator/map_thread.cc:
4004         Tweak iterations.
4005         * testsuite/performance/20_util/allocator/producer_consumer.cc:
4006         Likewise.
4008 2004-02-05  Geoffrey Keating  <geoffk@apple.com>
4010         PR 12179
4011         * .cvsignore: New.
4012         * acinclude.m4 (GLIBCXX_EXPORT_INSTALL_INFO): Use 'gcc', not
4013         'gcc-lib'.  Add comment about poorly-named variables.
4014         * aclocal.m4: Regenerate.
4015         * configure: Regenerate.
4017 2004-02-05  Paolo Carlini  <pcarlini@suse.de>
4019         * include/bits/locale_facets.tcc (money_get::do_get(string_type&)):
4020         Thousands-sep are always optional; thousands-sep are not allowed
4021         after the decimal_point.
4022         * testsuite/22_locale/money_get/get/char/12.cc: New.
4023         * testsuite/22_locale/money_get/get/char/13.cc: New.
4024         * testsuite/22_locale/money_get/get/wchar_t/12.cc: New.
4025         * testsuite/22_locale/money_get/get/wchar_t/13.cc: New.
4027         * testsuite/22_locale/money_get/get/char/1.cc: Clean-up.
4028         * testsuite/22_locale/money_get/get/char/2.cc: Likewise.
4029         * testsuite/22_locale/money_get/get/char/3.cc: Likewise.
4030         * testsuite/22_locale/money_get/get/char/4.cc: Likewise.
4031         * testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise.
4032         * testsuite/22_locale/money_get/get/wchar_t/2.cc: Likewise.
4033         * testsuite/22_locale/money_get/get/wchar_t/3.cc: Likewise.
4034         * testsuite/22_locale/money_get/get/wchar_t/4.cc: Likewise.
4036         * testsuite/22_locale/money_get/get/char/9.cc: Fix citation from
4037         the standard.
4038         * testsuite/22_locale/money_get/get/wchar_t/9.cc: Likewise.
4040 2004-02-05  Richard Sandiford  <rsandifo@redhat.com>
4042         * config/os/irix/irix6.5/os_defines.h (_GLIBCXX_FIONREAD_TAKES_OFF_T):
4043         Define.
4044         * config/io/basic_file_stdio.cc (__basic_file<char>::showmanyc): Use
4045         it to decide whether FIONREAD should take an off_t or int argument.
4047 2004-02-05  Paolo Carlini  <pcarlini@suse.de>
4049         * include/bits/stl_function.h: Minor formatting changes.
4051 2004-02-04  Zack Weinberg  <zack@codesourcery.com>
4053         Revert previous change to config/abi/*/baseline_symbols.txt.
4055 2004-02-04  Benjamin Kosnik  <bkoz@redhat.com>
4056             Zack Weinberg  <zack@codesourcery.com>
4058         * config/io/basic_file_stdio.cc (__gnu_internal::fopen_mode):
4059         New function.
4060         (__basic_file<char>::sys_open, __basic_file<char>::open): Use it.
4061         (__basic_file<char>::_M_open_mode): Delete.
4062         * config/io/basic_file_stdio.cc: Delete declaration of _M_open_mode.
4064         * testsuite/27_io/basic_filebuf/close/char/9964.cc
4065         * testsuite/27_io/basic_filebuf/open/char/9507.cc:
4066         Correct flags to filebuf::open calls.
4068         * config/abi/alpha-freebsd5/baseline_symbols.txt
4069         * config/abi/alpha-linux-gnu/baseline_symbols.txt
4070         * config/abi/hppa-linux-gnu/baseline_symbols.txt
4071         * config/abi/i386-freebsd4/baseline_symbols.txt
4072         * config/abi/i386-freebsd5/baseline_symbols.txt
4073         * config/abi/i486-linux-gnu/baseline_symbols.txt
4074         * config/abi/ia64-linux-gnu/baseline_symbols.txt
4075         * config/abi/mips-linux-gnu/baseline_symbols.txt
4076         * config/abi/sparc-freebsd5/baseline_symbols.txt
4077         * config/abi/sparc-linux-gnu/baseline_symbols.txt
4078         * config/abi/x86_64-linux-gnu/baseline_symbols.txt:
4079         Remove entry for __basic_file<char>::_M_open_mode.
4081 2004-02-04  Loren J. Rittle  <ljrittle@acm.org>
4083         * testsuite/performance/20_util/allocator/insert.cc (main): Tweak.
4085 2004-02-04  Felix Yen  <fwy@alumni.brown.edu>
4087         * testsuite/performance/20_util/producer_consumer.cc: New.
4088         * testsuite/performance/20_util/allocator/insert_insert.cc: Two loops.
4090 2004-02-04  Benjamin Kosnik  <bkoz@redhat.com>
4092         * testsuite/performance/20_util/allocator.cc: Move to..
4093         * testsuite/performance/20_util/allocator/insert.cc: ...here.
4094         * testsuite/performance/20_util/allocator_thread.cc: Move to...
4095         * testsuite/performance/20_util/allocator/insert_insert.cc: ...here.
4096         * testsuite/performance/20_util/allocator_map_thread.cc: Move to...
4097         * testsuite/performance/20_util/allocator/map_thread.cc: ...here.
4099 2004-02-04  Jonathan Wakely  <redi@gcc.gnu.org>
4101         * docs/html/faq/index.html: Recommend using LD_LIBRARY_PATH.
4102         * docs/html/faq/index.txt: Regenerate.
4104 2004-02-04  Dhruv Matani  <dhruvbird@gmx.net>
4106         * include/ext/debug_allocator.h: _M_extra now stands for the
4107         number of extra objects instead of the number of extra bytes.
4108         (debug_allocator::allocate): Adjust.
4109         (debug_allocator::deallocate): Adjust.
4111         * include/ext/pool_allocator.h: Fix typo.
4113 2004-02-03  Felix Yen  <fwy@alumni.brown.edu>
4114             Benjamin Kosnik  <bkoz@redhat.com>
4116         * testsuite/performance/20_util/allocator.cc: Add map,
4117         deque, set tests.
4118         * testsuite/performance/20_util/allocator_thread.cc: Same.
4120 2004-02-03  Paolo Carlini  <pcarlini@suse.de>
4122         * include/bits/basic_string.h (insert(iterator)): Remove,
4123         non-standard and already scheduled for removal.
4125 2004-02-03  Paolo Carlini  <pcarlini@suse.de>
4127         * include/bits/stl_iterator_base_funcs.h: Minor formatting
4128         and indentation tweaks.
4129         * include/bits/stl_iterator_base_types.h: Likewise.
4130         * include/bits/stl_list.h: Likewise.
4131         * include/bits/stl_map.h: Likewise.
4132         * include/bits/stl_tempbuf.h: Likewise.
4134 2004-02-02  Jerry Quinn  <jlquinn@optonline.net>
4136         * include/bits/gslice.h, include/bits/gslice_array.h,
4137         include/bits/indirect_array.h, include/bits/mask_array.h,
4138         include/bits/slice_array.h, include/bits/stl_numeric.h,
4139         include/std/std_valarray.h:  Update copyright years.
4141 2004-02-02  Jerry Quinn  <jlquinn@optonline.net>
4143         * include/bits/gslice.h (gslice):  Document.
4144         * include/bits/gslice_array.h (gslice_array):  Document.
4145         * include/bits/indirect_array (indirect_array):  Document.
4146         * include/bits/mask_array (mask_array):  Document.
4147         * include/bits/slice_array.h (slice,slice_array):  Document.
4148         * include/bits/stl_numeric.h (accumulate, inner_product, partial_sum,
4149         adjacent_difference):  Document
4150         * include/std/std_valarray.h (valarray):  Document.
4152 2004-02-02  Benjamin Kosnik  <bkoz@redhat.com>
4154         * docs/html/19_diagnostics/howto.html: Move verbose terminate
4155         documentation...
4156         * docs/html/18_support/howto.html: Here.
4157         * docs/html/documentation.html: Add reference here.
4159 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
4161         * config/locale/gnu/c++locale_internal.h: Remove prototypes
4162         of no longer used GLIBC thread locale functions.
4164 2004-02-02  Eric Christopher  <echristo@redhat.com>
4165             Zack Weinberg  <zack@codesourcery.com>
4167         * testsuite/22_locale/collate/compare/wchar_t/2.cc: Remove xfail. Use
4168         -finput-charset.
4169         * testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc: Ditto.
4170         * testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc: Ditto
4171         * testsuite/22_locale/collate/hash/wchar_t/2.cc: Ditto.
4172         * testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc: Ditto.
4173         * testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc: Ditto.
4174         * testsuite/22_locale/collate/transform/wchar_t/2.cc: Ditto.
4175         * testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc: Ditto.
4176         * testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc:
4177         Ditto.
4179 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
4181         * include/bits/stl_function.h: Additional minor tweaks.
4182         * include/bits/stl_multiset.h: Likewise.
4184         * include/bits/stl_queue.h: Minor tweaks.
4186 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
4188         PR libstdc++/13976 (continued)
4189         * include/ext/malloc_allocator.h (malloc_allocator::deallocate):
4190         Make the second parameter unnamed, to void unused parameter
4191         warnings.
4192         * include/ext/new_allocator.h (new_allocator::deallocate): Ditto.
4194 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
4196         PR libstdc++/13976
4197         * include/ext/malloc_allocator.h (malloc_allocator::allocate):
4198         Make the second parameter unnamed, to void unused parameter
4199         warnings.
4200         * include/ext/mt_allocator.h (__mt_alloc::allocate): Ditto.
4201         * include/ext/new_allocator.h (new_allocator::allocate): Ditto.
4203 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
4205         * include/bits/stl_algo.h: Additional minor tweaks.
4206         * include/bits/stl_map.h: Likewise.
4207         * include/bits/stl_multimap.h: Likewise.
4208         * include/bits/stl_multiset.h: Likewise.
4209         * include/bits/stl_set.h: Likewise.
4210         * include/bits/stl_tree.h: Likewise.
4212 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
4214         * include/bits/vector.tcc (vector::_M_insert_aux(iterator)):
4215         Remove, unused.
4217 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
4219         * include/bits/stl_function.h: Additional minor tweaks.
4221 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
4223         * include/bits/deque.tcc: Wrap overlong lines, constify
4224         a few variables, reformat according to the coding standards.
4225         * include/bits/list.tcc: Likewise.
4226         * include/bits/stl_deque.h: Likewise.
4227         * include/bits/stl_function.h: Likewise.
4228         * include/bits/stl_iterator.h: Likewise.
4229         * include/bits/stl_iterator_base_funcs.h: Likewise.
4230         * include/bits/stl_iterator_base_types.h: Likewise.
4231         * include/bits/stl_list.h: Likewise.
4232         * include/bits/stl_map.h: Likewise.
4233         * include/bits/stl_multimap.h: Likewise.
4234         * include/bits/stl_multiset.h: Likewise.
4235         * include/bits/stl_relops.h: Likewise.
4236         * include/bits/stl_set.h: Likewise.
4238 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
4240         * include/bits/stl_bvector.h: Wrap overlong lines, constify
4241         a few variables, reformat according to the coding standards.
4242         * include/bits/stl_tree.h: Likewise.
4244 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
4246         * include/bits/stl_algo.h: Minor additional reformat, add
4247         copyright year.
4248         * include/bits/stl_algobase.h: Add copyright year.
4250 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
4252         * include/bits/stl_algo.h: Wrap overlong lines, constify
4253         a few variables, reformat according to the coding standards.
4254         * include/bits/stl_algobase.h: Likewise.
4255         * include/bits/stl_heap.h: Likewise.
4257 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
4259         * include/bits/basic_string.h (_Rep::operator[]): Remove, unused.
4261         * include/bits/basic_string.h: Fix two comments.
4263 2004-01-31  Per Bothner  <per@bothner.com>
4265         * include/ext/mt_allocator.h
4266         (__mt_alloc::_S_thread_freelist_mutex): Guard with
4267         __GTHREAD_MUTEX_INIT.
4269 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
4271         * include/bits/basic_string.tcc (_Rep::_S_create): Minor tweak.
4273 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
4275         * testsuite/21_strings/basic_string/cons/char/6.cc: New.
4276         * testsuite/21_strings/basic_string/cons/wchar_t/6.cc: New.
4277         * testsuite/performance/21_strings/string_cons_input_iterator.cc: New.
4279 2004-01-30  Felix Yen  <fwy@alumni.brown.edu>
4281         * testsuite/performance/20_util/allocator_thread.cc (do_loop):
4282         Don't use clear, but instead assign. Use insert.
4284 2004-01-30  Benjamin Kosnik  <bkoz@redhat.com>
4286         * src/demangle.cc: Add instantiations.
4287         * src/Makefile.am: Remove special rules for demangle.lo, demangle.o.
4288         * src/Makefile.in: Regenerate.
4290 2004-01-30  David Edelsohn  <edelsohn@gnu.org>
4292         * src/allocator.cc: Protect _S_get_thread_id() and
4293         _S_thread_key_destr() with #ifdef __GTHREADS.
4295 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
4297         Reshuffle performance testsuite.
4298         * testsuite/performance/allocator.cc, allocator_map_thread.cc,
4299         allocator_thread.cc, complex_norm.cc, container_benchmark.cc,
4300         cout_insert_int.cc, filebuf_copy.cc, filebuf_sputc.cc,
4301         fstream_seek_write.cc, ifstream_extract_float.cc,
4302         ifstream_extract_int.cc, ifstream_getline.cc, is_wchar_t.cc,
4303         list_create_fill_sort.cc, map_create_fill.cc,
4304         narrow_widen_char.cc, narrow_widen_wchar_t.cc,
4305         ofstream_insert_float.cc, ofstream_insert_int.cc,
4306         string_append.cc, wchar_t_in.cc, wchar_t_length.cc,
4307         wchar_t_out.cc: Split into...
4308         * testsuite/performance/20_util/allocator.cc: New.
4309         * testsuite/performance/20_util/allocator_map_thread.cc: New.
4310         * testsuite/performance/20_util/allocator_thread.cc: New.
4311         * testsuite/performance/21_strings/string_append: New.
4312         * testsuite/performance/22_locale/is_wchar_t.cc: New.
4313         * testsuite/performance/22_locale/narrow_widen_char.cc: New.
4314         * testsuite/performance/22_locale/narrow_widen_wchar_t.cc: New.
4315         * testsuite/performance/22_locale/wchar_t_in.cc: New.
4316         * testsuite/performance/22_locale/wchar_t_length.cc: New.
4317         * testsuite/performance/22_locale/wchar_t_out.cc: New.
4318         * testsuite/performance/23_containers/container_benchmark.cc: New.
4319         * testsuite/performance/23_containers/list_create_fill_sort.cc: New.
4320         * testsuite/performance/23_containers/map_create_fill.cc: New.
4321         * testsuite/performance/26_numerics/complex_norm.cc: New.
4322         * testsuite/performance/27_io/cout_insert_int.cc: New.
4323         * testsuite/performance/27_io/filebuf_copy.cc: New.
4324         * testsuite/performance/27_io/filebuf_sputc.cc: New.
4325         * testsuite/performance/27_io/fstream_seek_write.cc: New.
4326         * testsuite/performance/27_io/ifstream_extract_float.cc: New.
4327         * testsuite/performance/27_io/ifstream_extract_int.cc: New.
4328         * testsuite/performance/27_io/ifstream_getline.cc: New.
4329         * testsuite/performance/27_io/ofstream_insert_float.cc: New.
4330         * testsuite/performance/27_io/ofstream_insert_int.cc: New.
4332 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
4334         * include/bits/basic_string.tcc (_Rep::_S_create):
4335         Never allocate a string bigger than max_size(); always keep
4336         __capacity and __size in sync to avoid memory leaks at
4337         deallocation time.
4339 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
4341         * include/bits/basic_string.tcc (_S_construct(_InIterator,
4342         _InIterator, const _Alloc&, input_iterator_tag)): Simplify
4343         the double loop, streamline.
4345         * include/bits/basic_string.tcc: Very minor tweaks.
4347 2004-01-30  Loren J. Rittle  <ljrittle@acm.org>
4349         * scripts/check_performance: Only compile with $THREAD_FLAG
4350         when test is marked to require it.  Allow multiple
4351         compilations/executions of marked tests.
4352         * testsuite/testsuite_performance.h (report_performance):
4353         Report dynamic thread support status.
4354         (report_header): Likewise.
4355         * testsuite/performance/allocator.cc: Stabilize iteration
4356         count.  Support more allocators.  Mark each allocator test to
4357         run and report independently.
4358         * testsuite/performance/allocator_map_thread.cc: Likewise.
4359         * testsuite/performance/allocator_thread.cc: Likewise.
4361 2004-01-29  Stephen M. Webb  <stephen.webb@bregmasoft.com>
4363         * config/local/generic/c_locale.h: Change ::malloc() to new char[].
4364         * config/local/gnu/c_locale.h: Change ::malloc() to new char[].
4365         * include/bits/stl_tempbuf.h: Convert _Temporary_buffer to use
4366         std::get_temporary_buffer() instead of duplicating its code.
4367         Update to C++STYLE conventions.
4368         * include/std/std_memory.h (get_temporary_buffer): Use ::operator
4369         new() instead of std::malloc().
4370         (return_temporary_buffer): Use ::operator delete() instead of
4371         std::free().
4373 2004-01-29  Benjamin Kosnik  <bkoz@redhat.com>
4375         * include/bits/allocator.h: Temporary switch to new_allocator as
4376         the default to unjam bootstraps.
4378 2004-01-28  Benjamin Kosnik  <bkoz@redhat.com>
4380         * include/Makefile.am (bits_headers): Remove allocator_traits.h.
4381         * include/Makefile.in: Regenerate.
4382         * include/bits/allocator_traits.h: Remove.
4383         * include/bits/allocator.h: Remove allocator_traits.h include, and
4384         relevant comments.
4385         (allocator): Empty base class, inherit from the underlying allocator.
4386         * src/allocator-inst.cc: Move __pool_alloc instantiation to...
4387         * src/allocator.cc: ...here. New. For the underlying allocators.
4388         Add __mt_alloc, __pool_alloc, new_allocator, malloc_allocator bits.
4389         * config/linker-map.gnu: Remove __pool_alloc bits.
4390         * src/Makefile.am (sources): Add allocator.cc.
4391         * src/Makefile.in: Regenerate.
4392         * testsuite/20_util/allocator/1.cc: Split second test into...
4393         * testsuite/20_util/allocator/8230.cc: ...this.
4394         * include/bits/stl_bvector.h (__gnu_norm): Change bit_vector
4395         typedef to use std::allocatore. Format.
4396         * include/ext/pool_allocator.h: Remove allocator_traits.h include,
4397         _Alloc_traits.
4398         * include/ext/mt_allocator.h (__gnu_cxx): Qualify
4399         __throw_bad_alloc calls. Don't include <memory>.
4400         * include/ext/malloc_allocator.h: Remove <memory> include.
4401         * include/ext/new_allocator.h (new_allocator): Same.
4402         * include/ext/ropeimpl.h (__gnu_cxx): Remove __alloc using
4403         declaration. Switch __alloc to _Alloc.
4404         * include/ext/hashtable.h: Remove __alloc.
4405         * include/backward/alloc.h: Only inject allocator, not
4406         implementation details.
4408         * include/ext/mt_allocator.h: Replace free with delete.
4410 2004-01-28  Benjamin Kosnik  <bkoz@redhat.com>
4412         * src/globals_io.cc: Change to __gnu_internal namespace.
4413         * src/globals_locale.cc: Same.
4414         * src/locale_init.cc: Same.
4415         * src/ios_init.cc: Same.
4417 2004-01-28  Stefan Olsson  <stefan@snon.net>
4419         * include/ext/mt_allocator.h: Replaced all malloc() calls with
4420         operator new(). Added support for the env variable
4421         GLIBCXX_FORCE_NEW (this required the _S_init call to be the first
4422         one in allocate() as well). Fix typos.
4424 2004-01-28  Paolo Carlini  <pcarlini@suse.de>
4426         * include/bits/basic_string.h (_S_create(size_t,
4427         const _Alloc&): Change signature to take two size_type
4428         arguments.
4429         * include/bits/basic_string.tcc (_S_construct(_InIterator,
4430         _InIterator, const _Alloc&, input_iterator_tag)): Update
4431         call, tweak a bit.
4432         (_S_construct(_InIterator, _InIterator, const _Alloc&,
4433         forward_iterator_tag)): Likewise.
4434         (_S_construct(size_type, _CharT, const _Alloc&)): Likewise.
4435         (_M_mutate(size_type, size_type, size_type)): Don't
4436         implement the exponential growth policy, demand it to
4437         _S_create, update call and simplify.
4438         (_M_clone(const _Alloc&, size_type)): Likewise.
4439         (_S_create(size_type, size_type, const _Alloc&)): Implement
4440         the growth policy, simplify otherwise.
4442         * include/bits/basic_string.h (_Rep::operator[]): Tweak
4443         signature to take a size_type, consistently with the other
4444         members.
4446 2004-01-27  Benjamin Kosnik  <bkoz@redhat.com>
4448         * testsuite/27_io/ios_base/storage/11584.cc: Correct new and
4449         delete declarations, add include and test variable.
4451 2003-01-27  Jerry Quinn  <jlquinn@optonline.net>
4453         * include/bits/codecvt.h, include/bits/locale_facets.h,
4454         include/bits/postypes.h, include/bits/stl_bvector.h,
4455         include/bits/stl_multiset.h, include/bits/stl_set.h,
4456         include/bits/stream_iterator.h, include/bits/streambuf_iterator.h,
4457         include/std/std_complex.h:  Document.
4459 2004-01-27  Jerry Quinn  <jlquinn@optonline.net>
4461         PR libstdc++/11584
4462         * include/bits/ios_base.h (ios_base::_M_grow_words):  Add
4463         iword/pword selector.
4464         (ios_base::iword, ios_base::pword):  Use it.
4465         * src/ios.cc (ios_base::_M_grow_words):  Clear _M_word_zero
4466         iword or pword member on alloc failure.
4467         * testsuite/27_io/ios_base/storage/11584.cc:  New test.
4469 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
4470             PJ Darcy  <darcypj@us.ibm.com>
4472         * configure.host: Add support for *-tpf.
4473         * crossconfig.m4: Likewise.
4474         * configure: Regenerate.
4475         * config/os/tpf: New directory.
4476         * config/os/tpf/os_defines.h: New file.
4477         * config/os/tpf/ctype_base.h: Likewise.
4478         * config/os/tpf/ctype_inline.h: Likewise.
4479         * config/os/tpf/ctype_noninline.h: Likewise.
4481 2004-01-27  Paolo Carlini  <pcarlini@suse.de>
4483         PR libstdc++/13884
4484         * include/bits/sstream.tcc: Guard use of extern template.
4486 2004-01-27  Paolo Carlini  <pcarlini@suse.de>
4488         * include/bits/basic_string.tcc
4489         (basic_string(const basic_string&, size_type, size_type),
4490         basic_string(const basic_string&, size_type, size_type,
4491         const _Alloc&)): Avoid unnecessarily constructing iterators.
4493 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
4495         * config/locale/generic/c_locale.cc: Fix throw messages
4496         to use the __N marker.
4497         * config/locale/gnu/c_locale.cc: Likewise.
4498         * config/locale/ieee_1003.1-2001/codecvt_specializations.h:
4499         Likewise.
4500         * docs/html/17_intro/C++STYLE: Likewise.
4501         * include/bits/basic_ios.tcc: Likewise.
4502         * include/bits/fstream.tcc: Likewise.
4503         * include/bits/vector.tcc: Likewise.
4504         * include/ext/ropeimpl.h: Likewise.
4505         * include/std/std_bitset.h: Likewise.
4506         * src/ios.cc: Likewise.
4507         * src/locale.cc: Likewise.
4508         * src/localename.cc: Likewise.
4510 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
4512         * include/bits/basic_string.h (_M_replace_aux): Use the
4513         __N marker in throw message.
4514         * include/bits/basic_string.tcc (assign(const _CharT*,
4515         size_type), insert(size_type, const _CharT*, size_type),
4516         replace(size_type, size_type, const _CharT*, size_type),
4517         reserve, _Rep::_S_create, resize, _M_replace_dispatch):
4518         Likewise.
4520         * include/bits/basic_string.h, include/bits/basic_string.tcc:
4521         Fold overlong lines, minor formatting changes.
4523 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
4525         * include/bits/basic_string.h (replace(iterator, iterator,
4526         const basic_string&)): Remove _GLIBCXX_DEBUG_PEDASSERT.
4527         (replace(iterator, iterator, const _CharT*)): Ditto.
4528         (replace(iterator, iterator, const _CharT*, size_type)):
4529         Add missing _GLIBCXX_DEBUG_PEDASSERT.
4531 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
4533         * include/bits/basic_string.tcc (replace(size_type,
4534         size_type, const _CharT*, size_type)): Implement optimized
4535         in-place algorithm for non-overlapping ranges.
4536         * testsuite/21_strings/basic_string/replace/char/6.cc: New.
4537         * testsuite/21_strings/basic_string/replace/wchar_t/6.cc: New.
4539         * include/bits/basic_string.tcc (insert(size_type,
4540         const _CharT*, size_type)): Tweak slightly.
4542 2004-01-26  Andreas Schwab  <schwab@suse.de>
4544         * config/locale/gnu/monetary_members.cc: Restore locale before
4545         rethrowing exception.
4547 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
4549         * include/bits/basic_string.h (_M_replace_aux, _M_replace_safe):
4550         Define inline here.
4551         * include/bits/basic_string.tcc (_M_replace_aux, _M_replace_safe):
4552         Move inline.
4554         * include/bits/basic_string.tcc: Very minor tweaks.
4556 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
4558         * testsuite/performance/string_append.cc: Increase number
4559         of iterations.
4561 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
4563         * include/bits/basic_string.h (erase(size_type, size_type),
4564         erase(iterator), erase(iterator, iterator)): Call _M_replace_safe
4565         instead, thus avoiding redundant check for length_error.
4567         * include/bits/basic_string.h: Tweak some comments.
4569 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
4571         * include/bits/basic_string.tcc (operator+(const _CharT*,
4572         const basic_string&)): No need to go through the append
4573         taking two iterators.
4575 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
4577         * include/bits/basic_string.tcc (rfind(_CharT, size_type)):
4578         Revert last change to use std::min: machine language is worse.
4579         (find_last_of(const _CharT*, size_type, size_type)): Ditto.
4580         (find_last_not_of(const _CharT*, size_type, size_type)): Ditto.
4581         (find_last_not_of(_CharT, size_type)): Ditto.
4583         * include/bits/basic_string.tcc (insert(size_type, const _CharT*,
4584         size_type)): Discard the value returned by _M_check.
4585         (replace(size_type, size_type, const _CharT*, size_type)): Ditto.
4586         (append(const basic_string&, size_type, size_type)): Ditto.
4587         (copy(_CharT*, size_type, size_type)): Ditto.
4588         (compare(size_type, size_type, const basic_string&)): Ditto.
4589         (compare(size_type, size_type, const basic_string&,
4590         size_type, size_type)): Ditto.
4591         (compare(size_type, size_type, const _CharT*)): Ditto.
4592         (compare(size_type, size_type, const _CharT*, size_type)): Ditto.
4594 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
4596         * include/bits/basic_string.h (insert(size_type,
4597         const basic_string&, size_type, size_type)): Define inline here.
4598         * include/bits/basic_string.tcc (insert(size_type,
4599         const basic_string&, size_type, size_type)): Move inline.
4601 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
4603         * include/bits/basic_string.h (assign(const basic_string&,
4604         size_type, size_type)): Define inline here.
4605         (replace(size_type, size_type, const basic_string&,
4606         size_type, size_type)): Ditto.
4607         (_M_replace_dispatch(iterator, iterator, _InputIterator,
4608         _InputIterator, __false_type)): Only declare.
4609         (_M_replace(iterator, iterator, _InputIterator,
4610         _InputIterator)): Remove.
4611         * include/bits/basic_string.tcc (assign(const basic_string&,
4612         size_type, size_type)): Move inline.
4613         (replace(size_type, size_type, const basic_string&,
4614         size_type, size_type)): Ditto.
4615         (_M_replace_dispatch(iterator, iterator, _InputIterator,
4616         _InputIterator, __false_type)): Define, now does also what
4617         _M_replace did before.
4618         * src/string-inst.cc (_M_replace): Don't instantiate.
4620         * include/bits/basic_string.tcc (find(const _CharT*,
4621         size_type, size_type)): Tidy.
4622         (rfind(_CharT, size_type)): Ditto.
4623         (find_first_not_of(const _CharT*, size_type, size_type)): Ditto.
4624         (find_first_not_of(_CharT, size_type)): Ditto.
4625         (find_last_not_of(const _CharT*, size_type, size_type)): Ditto.
4626         (find_last_not_of(_CharT, size_type)): Ditto.
4628 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
4630         PR libstdc++/13838
4631         * include/debug/bitset (operator|=): Fix typo.
4632         * testsuite/23_containers/bitset/operations/13838.cc: New.
4634 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
4636         * include/bits/basic_string.tcc (insert(size_type,
4637         const _CharT*, size_type __n)): Fix length_error check.
4638         (replace(size_type, size_type, const _CharT*, size_type):
4639         Ditto; call _M_replace_safe.
4640         (_M_replace_aux(size_type, size_type, size_type, _CharT):
4641         Fix length_error check.
4642         (_M_replace(iterator, iterator, _InputIterator,
4643         _InputIterator)): Ditto, tweak.
4644         (_M_replace_safe(size_type, size_type, const _CharT*,
4645         size_type)): Remove length_error check.
4647         * include/bits/basic_string.tcc (append(const basic_string&),
4648         append(const basic_string&, size_type, size_type)): Tweak
4649         comment.
4651         * include/bits/basic_string.tcc (copy(_CharT*, size_type,
4652         size_type)): If __n == 0 don't call traits::copy.
4654 2004-01-23  Stefan Olsson  <stefan@snon.net>
4656         * include/ext/mt_allocator.h: Reduce lock contention.
4658 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
4660         PR libstdc++/13831
4661         * include/bits/fstream.tcc (underflow): Remove unused
4662         variable.
4663         * include/bits/streambuf_iterator.h (equal): Ditto.
4664         * include/bits/locale_facets.h (_M_convert_from_char):
4665         Ditto.
4667 2004-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4669         PR c/13814
4670         * config/linker-map.gnu (nan): Delete.
4671         * libmath/mathconf.h (NAN, nan): Delete.
4672         * linkage.m4 (nan): Don't check for it.
4673         * libmath/nan.c: Delete file.
4675         * config.h.in, configure: Regenerate.
4677 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
4679         * include/bits/basic_string.h (push_back(_CharT)):
4680         Call _M_replace_aux.
4681         (insert(size_type, const basic_string&)): Trivial tweak.
4682         (insert(size_type, size_type, _CharT)): Call _M_replace_aux.
4683         (insert(iterator, _CharT)): Ditto.
4684         (erase(size_type, size_type)): Ditto.
4685         (erase(iterator)): Ditto.
4686         (erase(iterator, iterator)): Ditto.
4687         (replace(size_type, size_type, size_type, _CharT)): Ditto.
4689 2004-01-23  Loren J. Rittle  <ljrittle@acm.org>
4691         libstdc++/13823
4692         * testsuite/performance/allocator_map_thread.cc: New test.
4694 2004-01-22  Paolo Carlini  <pcarlini@suse.de>
4696         * include/bits/locale_facets.tcc
4697         (money_put::do_put(..., long double)): Use the basic_string
4698         constructor for char arrays, not that for C-strings, to pass
4699         __digits to do_put(..., const string_type&): __ws isn't
4700         null-terminated.
4702 2004-01-22  Paolo Carlini  <pcarlini@suse.de>
4704         * include/bits/basic_string.h (_M_replace_safe): Change
4705         signatures to take size_types and const _CharT*.
4706         (_M_replace_aux): Likewise, takes size_types instead of
4707         iterators.
4708         (append(size_type, _CharT)): Update call.
4709         (assign(size_type, _CharT)): Ditto.
4710         (replace(iterator, iterator, size_type, _CharT)): Ditto.
4711         (_M_replace_dispatch(iterator, iterator, _Integer,
4712         _Integer, __true_type)): Ditto.
4713         * include/bits/basic_string.tcc (assign(const _CharT*,
4714         size_type)): Ditto.
4715         (insert(size_type, const _CharT*, size_type)): Ditto.
4716         (replace(size_type, size_type, const _CharT*,
4717         size_type)): Ditto.
4718         (_M_replace(iterator, iterator, _InputIterator,
4719         _InputIterator)): Ditto.
4720         (append(const basic_string&)): Ditto.
4721         (append(const basic_string&, size_type, size_type): Ditto.
4722         (append(const _CharT*, size_type): Ditto.
4723         (_M_replace_safe, _M_replace_safe): Change definitions
4724         accordingly, simplify.
4725         * string-inst.cc (_M_replace_safe): Don't instantiate.
4727 2004-01-21  Paolo Carlini  <pcarlini@suse.de>
4729         * include/bits/basic_string.tcc (append(const basic_string&)):
4730         Revert previous change.
4731         (append(const basic_string&, size_type, size_type)): Revert
4732         previous change, use _M_check and _M_limit.
4734 2004-01-21  Paolo Carlini  <pcarlini@suse.de>
4736         * include/bits/basic_string.h (_M_check): Change to return
4737         a checked __pos and take an additional const char* argument.
4738         (_M_fold): Rename to _M_limit, change to return a size_type,
4739         corresponding to the __off limited to the actual length.
4740         (insert(size_type, size_type, _CharT)): Update call, call
4741         replace.
4742         (insert(iterator, _CharT)): Call replace(iterator, iterator,
4743         size_type, _CharT) instead.
4744         (erase(size_type, size_type)): Update calls.
4745         (replace(size_type, size_type, size_type, _CharT)): Ditto.
4746         (substr(size_type, size_type)): Use _M_check.
4747         * include/bits/basic_string.tcc (basic_string(const basic_string&,
4748         size_type, size_type)): Update calls.
4749         (basic_string(const basic_string&, size_type, size_type,
4750         const _Alloc&)): Ditto.
4751         (assign(const basic_string&, size_type, size_type)): Use the
4752         new _M_check and _M_limit.
4753         (insert(size_type, const basic_string&, size_type, size_type):
4754         Ditto.
4755         (insert(size_type, const _CharT*, size_type)): Ditto.
4756         (replace(size_type, size_type, const _CharT*, size_type): Ditto.
4757         (replace(size_type, size_type, const basic_string&,
4758         size_type, size_type)): Ditto.
4759         (append(const basic_string&)): Ditto.
4760         (append(const basic_string&, size_type, size_type)): Ditto.
4761         (copy(_CharT*, size_type, size_type)): Ditto.
4762         (compare(size_type, size_type, const basic_string&)): Ditto.
4763         (compare(size_type, size_type, const basic_string&,size_type,
4764         size_type)): Ditto.
4765         (compare(size_type, size_type, const _CharT*)): Ditto.
4766         (compare(size_type, size_type, const _CharT*, size_type)): Ditto.
4768 2004-01-19  Stefan Olsson  <stefan@snon.net>
4770         * include/ext/mt_allocator.h: If a thread, when it dies, still has
4771         memory on it's freelist this memory is not returned to global
4772         list. Simplification of deallocate so that memory is always
4773         returned to the calling thread id's freelist instead of to
4774         global. Fix typos. Add volatile where appropriate.
4776 2004-01-19  Loren J. Rittle  <ljrittle@acm.org>
4778         * testsuite/ext/stdio_filebuf/char/10063-2.cc: Treat unbuffered.
4779         * testsuite/ext/stdio_filebuf/char/10063-3.cc: New test.  Like -2 but
4780         use __gnu_cxx::stdio_sync_filebuf<char> instead; allow buffered stream.
4782 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
4784         * src/debug.cc: Make sure all the names are prefixed with
4785         double (or single) underscore.
4787 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
4789         * src/debug.cc: Trivial formatting change.
4791 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
4793         * include/bits/basic_string.tcc (_S_construct(size_type,
4794         _CharT, const _Alloc&)): Remove redundant try/catch.
4795         (_M_mutate(size_type, size_type, size_type)): Ditto.
4796         (_M_clone(const _Alloc&, size_type)): Ditto.
4798 2004-01-18  Paolo Carlini  <pcarlini@suse.de>
4800         * include/bits/basic_string.h (c_str()): Simplify, due to
4801         21.3.4 the internal representation is always kept null-terminated.
4802         * include/bits/basic_string.tcc (_M_clone): Null-terminate.
4803         * testsuite/21_strings/basic_string/element_access/char/4.cc: New.
4804         * testsuite/21_strings/basic_string/element_access/wchar_t/4.cc:
4805         Ditto.
4807 2004-01-18  Paolo Carlini  <pcarlini@suse.de>
4809         * include/bits/basic_string.h (append(size_type, _CharT)):
4810         Moved inline, just call _M_replace_aux, no source iterators at
4811         risk of being clobbered.
4812         (assign(size_type, _CharT)): Call directly _M_replace_aux.
4813         (_M_replace(iterator, iterator, _InputIterator, _InputIterator,
4814         input_iterator_tag)): Remove fifth unused argument.
4815         (_M_replace_dispatch(iterator, iterator, _InputIterator,
4816         _InputIterator, __false_type)): Update call.
4817         * include/bits/basic_string.tcc (replace(size_type, size_type,
4818         const _CharT*, size_type)): Update call.
4819         (_M_replace_aux(iterator, iterator, size_type, _CharT)): Tweak
4820         throw string literal.
4821         (_M_replace_safe(iterator, iterator, _ForwardIterator,
4822         _ForwardIterator)): Likewise.
4823         (_M_replace(iterator, iterator, _InputIterator, _InputIterator,
4824         input_iterator_tag)): Remove fifth unused argument.
4825         (append(size_type __n, _CharT __c)): Move inline.
4826         * src/string-inst.cc (S::_M_replace(S::iterator, S::iterator,
4827         const C*, const C*, input_iterator_tag)): Remove fifth unused
4828         argument.
4830 2004-01-16  Benjamin Kosnik  <bkoz@redhat.com>
4832         * testsuite/ext/enc_filebuf/char/13189.cc: Fix guards.
4833         * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Same.
4835 2004-01-16  Danny Smith  <dannysmith@users.sourceforge.net>
4837         * testsuite/testsuite_hooks.cc (try_mkfifo): Avoid calling
4838         mkfifo for mingw32.
4840 2004-01-15  Stefan Olsson  <stefan@snon.net>
4842         * include/ext/mt_allocator.h: Reuse thread id's as soon as
4843         possible by changing the behaviour of thread_freelist to do
4844         push_front when threads die instead of push_back.
4846 2004-01-14  Paolo Carlini  <pcarlini@suse.de>
4848         * include/bits/locale_facets.h (struct __numpunct_cache):
4849         Add member _M_grouping_size, caching the length of _M_grouping.
4850         (__numpunct_cache<>::_M_cache): Assign the latter.
4851         (__verify_grouping): Move declaration...
4852         * include/bits/locale_facets.tcc (__verify_grouping):
4853         ... here, change signature to take a const char* and a size_t
4854         for the grouping; not a template anymore.
4855         (__add_grouping, num_put::_M_group_int, num_put::_M_group_float):
4856         Likewise change signature and tweak consistently.
4857         (num_get::_M_extract_float, num_get::_M_extract_int,
4858         num_put::_M_insert_int, num_put::_M_insert_float,
4859         money_get::do_get(string_type&), money_get::do_put(string_type)):
4860         Update callers.
4861         * config/locale/generic/numeric_members.cc
4862         (numpunct<>::_M_initialize_numpunct): Assign the new member.
4863         * config/locale/gnu/numeric_members.cc
4864         (numpunct<>::_M_initialize_numpunct): Likewise.
4865         * src/locale-inst.cc (__add_grouping): Tweak signature.
4866         (__verify_grouping): Don't instantiate, not a template anymore.
4868         * include/bits/locale_facets.h: Rename _M_truename_len ->
4869         _M_truename_size, _M_falsename_len -> _M_falsename_size.
4870         * include/bits/locale_facets.tcc: Likewise.
4871         * config/locale/generic/numeric_members.cc: Likewise.
4872         * config/locale/gnu/numeric_members.cc: Likewise.
4874 2004-01-14  Stefan Olsson  <stefan@snon.net>
4876         * include/ext/mt_allocator.h: Fixups.
4877         * testsuite/performance/allocator.cc: Enable __mt_alloc tests.
4878         * testsuite/performance/allocator_thread.cc: Same.
4880 2004-01-13  Benjamin Kosnik  <bkoz@redhat.com>
4882         * testsuite/performance/ifstream_extract_float.cc: Add higher
4883         precision tests.
4884         * testsuite/performance/ofstream_insert_float.cc: Same.
4886 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
4888         * src/locale-misc-inst.cc (__convert_from_v(long),
4889         __convert_from_v(unsigned long), __convert_from_v(long long),
4890         __convert_from_v(unsigned long long)): Remove, unused.
4892 2004-01-13  Benjamin Kosnik  <bkoz@redhat.com>
4894         * testsuite/performance/ifstream_extract_float.cc: New.
4895         * testsuite/performance/ofstream_insert_float.cc: Float generation
4896         matches above.
4898         * 20_util/auto_ptr.cc, auto_ptr_neg.cc: Break into...
4899         * 20_util/auto_ptr/1.cc: ...this.
4900         * 20_util/auto_ptr/2.cc: Same.
4901         * 20_util/auto_ptr/3.cc: Same.
4902         * 20_util/auto_ptr/3946.cc: Same.
4903         * 20_util/auto_ptr/4.cc: Same.
4904         * 20_util/auto_ptr/5.cc: Same.
4905         * 20_util/auto_ptr/6.cc: Same.
4906         * 20_util/auto_ptr/7.cc: Same.
4907         * 20_util/auto_ptr/assign_neg.cc
4908         * 20_util/pairs.cc: Break into...
4909         * 20_util/pair/1.cc: ...this.
4910         * 20_util/pair/2.cc: Same.
4911         * 20_util/pair/3.cc: Same.
4912         * 20_util/pair/4.cc: Same.
4914 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
4916         * include/bits/locale_facets.tcc (num_get::do_get(void*&)):
4917         Set correctly just basefield, the only group that matters.
4919 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
4921         * include/ext/rope (_Rope_rep_alloc_base): Eliminate.
4922         (_Rope_rep_base): Inherit directly from the rope allocator;
4923         use rebinding instead of _Alloc_traits; pick up data member
4924         from _Rope_rep_alloc_base.
4925         (_Rope_alloc_base): Eliminate.
4926         (_Rope_base): Inherit directly from the rope allocator; use
4927         rebinding instead of _Alloc_traits; pick up data member from
4928         _Rope_alloc_base.
4929         (rope::_S_new_RopeLeaf, rope::_S_new_RopeConcatenation,
4930         rope::_S_new_RopeFunction, rope::_S_new_RopeSubstring): Tweak.
4932 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
4934         PR libstdc++/13650
4935         * include/bits/basic_string.tcc (compare(size_type, size_type,
4936         const _CharT*, size_type)): Implement correctly the resolution
4937         of DR 5: basically, s is a char array, -not- a C string.
4938         * include/bits/basic_string.h: Tweak some comments.
4939         * testsuite/21_strings/basic_string/compare/char/13650.cc: New.
4940         * testsuite/21_strings/basic_string/compare/wchar_t/13650.cc: New.
4942 2004-01-12  Andreas Tobler  <a.tobler@schweiz.ch>
4944         * testsuite/lib/libstdc++.exp: Set LD_LIBRARY_PATH_32 for
4945         Solaris.
4947 2004-01-12  Paolo Carlini  <pcarlini@suse.de>
4949         * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc:
4950         Use try_mkfifo.
4951         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc:
4952         Likewise.
4954 2004-01-12  Paolo Carlini  <pcarlini@suse.de>
4956         * include/bits/locale_facets.h (struct __numpunct_cache):
4957         Add members _M_truename_len and _M_falsename_len, caching
4958         the lengths of _M_truename and _M_falsename.
4959         (__numpunct_cache<>::_M_cache): Assign the latter.
4960         * include/bits/locale_facets.tcc (num_get::do_get(bool&),
4961         num_put::do_put(bool)): Use the new members, thus avoiding
4962         computing string lengths again and again.
4963         * config/locale/generic/numeric_members.cc
4964         (numpunct<>::_M_initialize_numpunct): Assign the new members.
4965         * config/locale/gnu/numeric_members.cc
4966         (numpunct<>::_M_initialize_numpunct): Likewise.
4968 2004-01-12  Mark Mitchell  <mark@codesourcery.com>
4970         * testsuite/testsuite_hooks.h (__gnu_test::try_mkfifo): Declare it.
4971         * testsuite/testsuite_hooks.cc (__gnu_test::try_mkfifo): Define
4972         it.
4973         * testsuite/27_io/basic_filebuf/close/char/4879.cc: Use try_mkfifo
4974         and remove Cygwin XFAIL.
4975         * testsuite/27_io/basic_filebuf/close/char/9964.cc: Likewise.
4976         * testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc: Likewise.
4977         * testsuite/27_io/basic_filebuf/open/char/9507.cc: Likewise.
4978         * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc:
4979         Likewise.
4980         * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise.
4981         * testsuite/27_io/objects/char/7.cc: Likewise.
4982         * testsuite/27_io/objects/char/9661-1.cc: Likewise.
4983         * testsuite/27_io/objects/wchar_t/7.cc: Likewise.
4984         * testsuite/27_io/objects/wchar_t/9661-1.cc: Likewise.
4986 2004-01-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
4988         * include/std/std_complex.h (std::complex<>::real): Return a
4989         reference. Add non-const overload.
4990         (std::complex<>::real): Likewise.
4991         (std::real): Likewise.
4992         (std::imag): Likewise.
4993         (std::operator+): Tidy.
4994         (std::operator-): Likewise.
4995         (std::operator*): Likewise.
4996         (std::operator/): Likewise.
4997         (std::operator>>): Likewise.
4999 2004-01-11  Paolo Carlini  <pcarlini@suse.de>
5001         PR libstdc++/13582
5002         * include/bits/fstream.tcc (imbue): Exploit the external
5003         buffer to imbue 'on the fly' a new locale and convert its
5004         remainder with the new codecvt facet.
5005         (underflow): Tweak slightly to deal with this special case.
5006         * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc: New.
5007         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc: Ditto.
5008         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Ditto.
5009         * testsuite/27_io/objects/wchar_t/13582-1_xin.cc: Ditto.
5010         * testsuite/27_io/objects/wchar_t/13582-1_xin.in: Ditto.
5012 2004-01-10  Paolo Carlini  <pcarlini@suse.de>
5014         * docs/html/ext/lwg-active.html, docs/html/ext/lwg-defects.html:
5015         Import Revision 28.
5017 2004-01-10  Paolo Carlini  <pcarlini@suse.de>
5019         PR libstdc++/13630
5020         * include/bits/locale_classes.h (class locale): Fix category
5021         typedef.
5022         * testsuite/22_locale/locale/13630.cc: Add.
5024 2004-01-10  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
5026         * include/bits/locale_facets.h: Make a name really dependent. This
5027         will be needed when Core Issue 224 is implemented.
5029 2004-01-09  Paolo Carlini  <pcarlini@suse.de>
5031         * testsuite/performance/allocator.cc: Demangle typeid(obj).name().
5032         * testsuite/performance/allocator_thread.cc: Likewise.
5034 2004-01-07  Benjamin Kosnik  <bkoz@redhat.com>
5036         * crossconfig.m4: Add LFS, io bits to linux cross config.
5037         * acconfig.h: Remove obsolete bits, reorder.
5038         * config.h.in: Regenerate.
5039         * aclocal.m4: Same.
5040         * configure: Same.
5042 2004-01-07  Gawain Bolton  <gp.bolton@computer.org>
5044         * include/bits/stl_list.h:
5045         * include/bits/list.tc:
5046         * src/list.cc:
5047         Performance enhancements for destructor, push_front(),
5048         push_back(), pop_front(), pop_back(), sort()
5049         Eliminated static_casts where possible.
5050         Moved code out of header files into new src/list.cc
5051         implementation file for library where possible.
5052         Remove inheritance from iterator class and create separate
5053         classes for non-constant and constant iterators.
5054         * include/bits/stl_tree.h (_Rb_tree class):
5055         * src/tree.cc:
5056         Only erase contents in destructor.
5057         Eliminate unnecessary initialization in assignment operator.
5058         Optimize for the nominal case by not checking whether
5059         container is empty in clear().
5060         Re-order test in _M_insert() to improve performance.
5061         Move initialization of new node's left & right pointers to
5062         src/tree.cc to where new node's colour is initialized
5063         and to reduce the amount of inline code.
5064         Use  _M_leftmost() and _M_end() to improve readability where
5065         appropriate.
5066         Create separate classes for non-constant and constant
5067         iterators to clarify code, avoid extra template parameters and
5068         casting away constness.
5070 2004-01-07  Benjamin Kosnik  <bkoz@redhat.com>
5072         * src/Makefile.am (sources): Add list.cc, tree.cc.
5073         * src/stl_tree.cc: Move to...
5074         * src/tree.cc: ...here.
5075         * src/list.cc: Add.
5076         * config/linker-map.gnu: Tweaks.
5077         * testsuite/23_containers/map/operators/1_neg.cc: Add excess errors.
5078         * testsuite/23_containers/set/operators/1_neg.cc: Add excess errors.
5080         * bits/stl_vector.h: Column wrap comments.
5082 2004-01-07  Loren J. Rittle  <ljrittle@acm.org>
5084         (re-open) PR libstdc++/12658
5085         * src/locale_init.cc (locale::locale): Remove ill-scoped mutex.
5086         (locale::global): Likewise.
5088 2004-01-07  Paolo Carlini  <pcarlini@suse.de>
5090         * testsuite/27_io/basic_istream/extractors_other/char/9318-in.cc:
5091         Remove redundant #include.
5092         * testsuite/27_io/basic_ostream/endl/char/1.cc: Likewise.
5093         * testsuite/27_io/basic_ostream/ends/char/1.cc: Likewise,
5094         re-enable normal testing.
5095         * testsuite/27_io/basic_ostream/ends/char/2.cc: Remove redundant
5096         #include.
5097         * testsuite/27_io/basic_ostream/flush/char/1.cc: Likewise.
5098         * testsuite/27_io/basic_ostream/inserters_character/char/1.cc:
5099         Likewise.
5100         * testsuite/27_io/basic_ostream/inserters_character/char/2.cc:
5101         Likewise.
5102         * testsuite/27_io/basic_ostream/inserters_character/char/3.cc:
5103         Likewise.
5104         * testsuite/27_io/basic_ostream/inserters_character/char/4.cc:
5105         Likewise.
5106         * testsuite/27_io/basic_ostream/inserters_character/char/5.cc:
5107         Likewise.
5108         * testsuite/27_io/basic_ostream/inserters_character/char/6.cc:
5109         Likewise.
5110         * testsuite/27_io/basic_ostream/inserters_character/char/8.cc:
5111         Likewise.
5112         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/7.cc:
5113         More properly, #include <locale>.
5114         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/8.cc:
5115         Remove redundant #include.
5116         * testsuite/27_io/basic_ostream/inserters_other/char/2.cc: Likewise.
5117         * testsuite/27_io/basic_ostream/inserters_other/char/3.cc: Remove
5118         redundant DejaGnu directive.
5119         * testsuite/27_io/basic_ostream/inserters_other/char/4.cc: Remove
5120         redundant #include.
5122 2004-01-06  Benjamin Kosnik  <bkoz@redhat.com>
5123             Stefan Olsson  <stefan@snon.net>
5125         * scripts/check_performance: Use -pthread.
5126         * testsuite/performance/allocator.cc: Tweaks, add list.
5127         * testsuite/performance/allocator_thread.cc: New.
5129 2004-01-06  Jerry Quinn  <jlquinn@optonline.net>
5131         * include/bits/locale_facets.h: Document public classes and
5132         functions.
5133         * include/bits/locale_facets.tcc (time_get::_M_extract_via_format):
5134         Add comment.
5136 2004-01-06  Paolo Carlini  <pcarlini@suse.de>
5138         * testsuite/27_io/basic_istream/extractors_other/char/1.cc:
5139         Remove redundant #includes.
5140         * testsuite/27_io/basic_istream/extractors_other/char/2.cc:
5141         Likewise.
5142         * testsuite/27_io/basic_istream/extractors_other/char/3.cc:
5143         Likewise.
5144         * testsuite/27_io/basic_istream/get/char/1.cc: Likewise.
5145         * testsuite/27_io/basic_istream/get/char/2.cc: Likewise.
5146         * testsuite/27_io/basic_istream/getline/char/1.cc: Likewise.
5147         * testsuite/27_io/basic_istream/getline/char/2.cc: Likewise.
5148         * testsuite/27_io/basic_istream/getline/char/3.cc: Likewise.
5149         * testsuite/27_io/basic_istream/ignore/char/1.cc: Likewise.
5150         * testsuite/27_io/basic_istream/ignore/char/6360.cc: Likewise.
5151         * testsuite/27_io/basic_istream/ignore/char/7220.cc: Likewise.
5152         * testsuite/27_io/basic_istream/peek/char/1.cc: Likewise.
5153         * testsuite/27_io/basic_istream/peek/char/6414.cc: Likewise.
5154         * testsuite/27_io/basic_istream/putback/char/1.cc: Likewise.
5155         * testsuite/27_io/basic_istream/read/char/1.cc: Likewise.
5156         * testsuite/27_io/basic_istream/read/char/2.cc: Likewise.
5157         * testsuite/27_io/basic_istream/read/char/3.cc: Likewise.
5158         * testsuite/27_io/basic_istream/readsome/char/6746-1.cc:
5159         Likewise.
5160         * testsuite/27_io/basic_istream/readsome/char/6746-2.cc:
5161         Likewise.
5162         * testsuite/27_io/basic_istream/readsome/char/8258.cc:
5163         Likewise.
5164         * testsuite/27_io/basic_istream/seekg/char/2346-fstream.cc:
5165         Likewise.
5166         * testsuite/27_io/basic_istream/seekg/char/2346-sstream.cc:
5167         Likewise.
5168         * testsuite/27_io/basic_istream/seekg/char/8348-1.cc: Likewise.
5169         * testsuite/27_io/basic_istream/seekg/char/8348-2.cc: Likewise.
5170         * testsuite/27_io/basic_istream/tellg/char/8348.cc: Likewise.
5172 2004-01-04  Paolo Carlini  <pcarlini@suse.de>
5174         * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc:
5175         Remove redundant #includes.
5176         * testsuite/27_io/basic_istream/extractors_arithmetic/char/02.cc:
5177         Likewise.
5178         * testsuite/27_io/basic_istream/extractors_arithmetic/char/03.cc:
5179         Likewise.
5180         * testsuite/27_io/basic_istream/extractors_arithmetic/char/06.cc:
5181         Likewise.
5182         * testsuite/27_io/basic_istream/extractors_arithmetic/char/07.cc:
5183         Likewise.
5184         * testsuite/27_io/basic_istream/extractors_arithmetic/char/08.cc:
5185         Likewise.
5186         * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc:
5187         Likewise.
5188         * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
5189         Likewise.
5190         * testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc:
5191         Likewise.
5192         * testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc:
5193         Likewise.
5194         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/1.cc:
5195         Likewise.
5196         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc:
5197         Likewise.
5198         * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/1.cc:
5199         Likewise.
5201 2004-01-04  Mark Mitchell  <mark@codesourcery.com>
5203         PR c++/12226
5204         * testsuite/27_io/basic_filebuf/4.cc: Remove use of invalid copy
5205         constructor.
5206         * testsuite/27_io/basic_fstream/4.cc: Likewise.
5207         * testsuite/27_io/basic_ifstream/4.cc: Likewise.
5208         * testsuite/27_io/basic_ios/4.cc: Likewise.
5209         * testsuite/27_io/basic_iostream/4.cc: Likewise.
5210         * testsuite/27_io/basic_istream/4.cc: Likewise.
5211         * testsuite/27_io/basic_istingstream/4.cc: Likewise.
5212         * testsuite/27_io/basic_ofstream/4.cc: Likewise.
5213         * testsuite/27_io/basic_ostream/4.cc: Likewise.
5214         * testsuite/27_io/basic_ostringstream/4.cc: Likewise.
5215         * testsuite/27_io/basic_stringbuf/5.cc: Likewise.
5216         * testsuite/27_io/basic_stringstream/4.cc: Likewise.
5218 2004-01-04  Paolo Carlini  <pcarlini@suse.de>
5220         * config/locale/generic/numeric_members.cc (_M_initialize_numpunct):
5221         Avoid unnecessarily zero terminating _M_atoms_out and _M_atoms_in;
5222         always use double underscored names.
5223         * config/locale/gnu/numeric_members.cc (_M_initialize_numpunct):
5224         Likewise.
5225         * include/bits/locale_facets.h (struct __numpunct_cache):
5226         Dimension _M_atoms_out and _M_atoms_in one position smaller.
5227         (__numpunct_cache<>::_M_cache): Don't zero terminate _M_atoms_out
5228         and _M_atoms_in.