OSDN Git Service

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