* function.c (assign_parms): Don't count pretend args for alignment.
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob4fbf39cc57b0fd005c1fc3a70322f456b8b0788c
1 2004-02-27  Paolo Carlini  <pcarlini@suse.de>
3         * include/bits/locale_facets.h (money_get<>::_M_extract):
4         Change signature: now takes a plain string&.
5         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
6         Update consistently the definition; use the moneypunct cache
7         to parse the value; use swap to change __units.
8         (money_get<>::do_get(long double&)): Update call of _M_extract,
9         avoid ctype::narrow, not correct wrt the standard.
10         (money_get<>::do_get(string_type&)): Likewise, update call
11         of _M_extract, use ctype::widen.
12         * src/locale-inst.cc: Tweak instantiations of _M_extract.
14 2004-02-26  Ian Lance Taylor  <ian@wasabisystems.com>
16         * testsuite/demangle/abi_examples/01.cc: Expect error -2.
17         * testsuite/demangle/abi_examples/02.cc: Likewise.
18         * testsuite/demangle/regression/cw-11.cc: Likewise.
19         * testsuite/demangle/regression/cw-16.cc: Change two expected
20         results to match libiberty demangler output.
22 2004-02-26  Benjamin Kosnik  <bkoz@redhat.com>
24         PR libstdc++/10246
25         * libsupc++/Makefile.am: Use libiberty demangler.
26         (c_sources): Add cp-demangle.c.
27         * libsupc++/Makefile.in: Regenerate.
28         * src/Makefile.am (sources): Remove demangle.cc.
29         * src/Makefile.in: Regenerate.
30         * include/Makefile.am (bits_headers): Move demangle.h.
31         (ext_headers): ...here.
32         * include/Makefile.in: Regenerate.
33         * include/bits/demangle.h: Move...
34         * include/ext/demangle.h: ...here.
35         * src/demangle.cc: Remove.
37 2004-02-26  Benjamin Kosnik  <bkoz@redhat.com>
39         * include/bits/demangle.h: Add type template parameter to all
40         templates with just an Allocator template parameter.
42 2004-02-25  Benjamin Kosnik  <bkoz@redhat.com>
44         * include/bits/atomicity.h: New, forward declarations for __atomic_add
45         and __exchange_and_add.
46         * config/cpu/generic/atomic_word.h: New, typdef for atomic word.
47         * config/cpu/cris/atomic_word.h: Same.
48         * config/cpu/sparc/atomic_word.h: Same.
49         * include/bits/ios_base.h (_Callback_list::_M_remove_reference):
50         Qualifiy with __gnu_cxx.
51         (_Callback_list::_M_add_reference): Same.
52         * include/bits/locale_classes.h (locale::facet::_M_add_reference): Add.
53         (locale::facet::_M_remove_reference): Same.
54         (locale::_Impl::_M_add_reference): Add.
55         (locale::_Impl::_M_remove_reference): Same.
56         * include/bits/basic_string.h (basic_string::_Rep::_M_refcopy): Same.
57         (basic_string::_Rep::_M_dispose): Same.
58         * src/ios.cc (ios_base::xalloc): Same.
59         * src/ios_init.cc (ios_base::Init::Init): Same.
60         (ios_base::Init::~Init): Same.
61         * src/locale.cc (locale::id::_M_id): Same.
62         * config/cpu/i486/atomicity.h: Use __gnu_cxx namespace. Remove
63         static, and inline keyworks.
64         * config/cpu/alpha/atomicity.h: Same.
65         * config/cpu/cris/atomicity.h: Same.
66         * config/cpu/generic/atomicity.h: Same.
67         * config/cpu/hppa/atomicity.h: Same.
68         * config/cpu/i386/atomicity.h: Same.
69         * config/cpu/ia64/atomicity.h: Same.
70         * config/cpu/m68k/atomicity.h: Same.
71         * config/cpu/mips/atomicity.h: Same.
72         * config/cpu/powerpc/atomicity.h: Same.
73         * config/cpu/s390/atomicity.h: Same.
74         * config/cpu/sparc/atomicity.h: Same.
75         
76         * src/Makefile.am (host_sources): Add atomicity.cc.
77         (atomicity.cc): New rule.
78         * src/Makefile.in: Regenerate.
79         * include/Makefile.am (host_headers): Remove host atomicity.h.
80         (host_headers): Add atomic_word.h.
81         (bits_headers): Add bits atomicity.h.
82         Change ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR.
83         * include/Makefile.in: Regenerate.
84         * configure.host (atomic_word_dir): Add.
85         * configure.ac: Substitute ATOMIC_WORD_SRCDIR. Change
86         ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR.
87         * configure: Regenerate.
88         * config/linker-map.gnu: Export __exchange_and_add, and __atomic_add.
90         * testsuite/27_io/ios_base/cons/assign_neg.cc: Adjust line numbers.
91         * testsuite/27_io/ios_base/cons/copy_neg.cc: Same.      
92         
93 2004-02-25  Jonathan Wakely  <redi@gcc.gnu.org>
95         * docs/html/20_util/howto.html, docs/html/20_util/allocator.html,
96         docs/html/ext/howto.html, docs/html/ext/mt_allocator.html:
97         Fix markup, more <link> tags.
99 2004-02-25  Carlo Wood  <carlo@alinoe.com>
101         * bits/demangle.h
102         namespace __gnu_cxx::demangler
103         (session<Allocator>::qualifier_list_Allocator): Add
104         (session<Allocator>::M_qualifier_list_alloc): Add
105         (session<Allocator>::decode_type_with_postfix):
106         Use M_qualifier_list_alloc instead of calling operator new/delete.
108 2004-02-24  Paolo Carlini  <pcarlini@suse.de>
110         PR libstdc++/14252
111         * include/bits/postypes.h (class streamoff): Add operator++(),
112         operator++(int), operator--() and operator--(int).
113         * testsuite/27_io/fpos/14252.cc: New.
115 2004-02-24  Richard Sandiford  <rsandifo@redhat.com>
117         * include/bits/locale_facets.tcc (num_get::_M_extract_int): Fix bounds
118         error in handling of hex constants.
120 2004-02-24  Paolo Carlini  <pcarlini@suse.de>
122         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
123         Prefer basic_string::append to operator+= and a temporary.
125 2004-02-23  Benjamin Kosnik  <bkoz@redhat.com>
127         * libsupc++/vterminate.cc (__gnu_cxx::__verbose_terminate_handler):
128         Only use fputs, not write.
129         
130 2004-02-23  Benjamin Kosnik  <bkoz@redhat.com>
132         * include/ext/malloc_allocator.h: Add operators ==, !=.
133         * include/ext/new_allocator.h: Add operators ==, !=.
134         * include/ext/mt_allocator.h (__mt_alloc::tune): New.
135         (__mt_alloc::_S_get_options): New.
136         (__mt_alloc::_S_set_options): New.      
137         (__mt_alloc::_S_thread_key_destr): To _S_destroy_thread_key.
138         (__mt_alloc::_S_no_of_bins): To _S_bin_size.
139         Move functions out of line, simplify, format.
140         * src/allocator.cc: Simplify explicit instantiations.
141         * include/bits/allocator.h: Tweak.
142         
143 2004-02-22  Paolo Carlini  <pcarlini@suse.de>
145         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
146         Restructure formatting of value component, first dealing with
147         the non-decimal digits; use reserve.
149 2004-02-22  Paolo Carlini  <pcarlini@suse.de>
151         * include/bits/locale_facets.h (class money_get): Inherit
152         from money_base too; tweak declaration of _M_extract, now
153         parameterized on _Intl too.
154         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
155         Update definition to use the cache; call reserve on __res to
156         avoid multiple reallocations; fix parsing of sign component
157         according to 22.2.6.1.2, p3.
158         (money_get<>::do_get(long double&),
159         money_get<>::do_get(string_type&)): Update calls of _M_extract. 
160         * src/locale-inst.cc:  Add instantiations of
161         money_get::_M_extract<false> and money_get::_M_extract<true>.
162         * testsuite/22_locale/money_get/get/char/14.cc: New.
163         * testsuite/22_locale/money_get/get/wchar_t/14.cc: Ditto.
164         
165 2004-02-21  Mark Mitchell  <mark@codesourcery.com>
167         * libsupc++/vterminate.cc
168         (__gnu_cxx::__verbose_terminate_handler): Guard against recursive
169         calls to terminate.
170         * src/demangle.cc (__cxa_demangle): Wrap in try-catch block.
172         * testsuite/testsuite_hooks.cc (__gnu_test::set_memory_limits): Do
173         not set RLIMIT_AS on HP-UX.
175 2004-02-21  Mark Mitchell  <mark@codesourcery.com>
177         * testsuite/testsuite_hooks.cc (__gnu_test::set_memory_limits): Do
178         not set RLIMIT_AS on HP-UX.
180 2004-02-21  Paolo Carlini  <pcarlini@suse.de>
182         * include/bits/locale_facets.h (class money_base): Add { _S_minus,
183         _S_zero, _S_end } enum, _S_atoms.
184         (struct __moneypunct_cache<>): Parameterize on _Intl too; add
185         _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size,
186         _M_negative_sign_size, _M_atoms; tweak constructor consistently.
187         (__moneypunct_cache<>::~__moneypunct_cache): Update.
188         (__moneypunct_cache<>::_M_cache): Fill the cache.
189         (class moneypunct): Tweak __cache_type typedef.
190         (class money_put): Inherit from money_base too; tweak declaration
191         of _M_insert, now parameterized on _Intl.
192         * include/bits/locale_facets.tcc
193         (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New.
194         (money_put<>::_M_insert): Update definition to use the cache;
195         call reserve on __res to avoid multiple reallocations.
196         (money_put<>::do_put(long double),
197         money_put<>::do_put(const string_type&): Update calls of _M_insert.
198         * config/locale/generic/monetary_members.cc
199         (moneypunct<char, true>::_M_initialize_moneypunct,
200         moneypunct<char, false>::_M_initialize_moneypunct,
201         moneypunct<wchar_t, true>::_M_initialize_moneypunct,
202         moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update.
203         * config/locale/gnu/monetary_members.cc: Likewise.
204         * config/locale/gnu/monetary_members.cc
205         (moneypunct<wchar_t, true>::~moneypunct(),
206         moneypunct<wchar_t, false>::~moneypunct()): Likewise.
207         * src/globals_locale.cc: Tweak fake_money_cache_c.
208         * src/locale-inst.cc: Add instantiations for
209         money_put::_M_insert<false> and money_put::_M_insert<true> and
210         __moneypunct_cache<C, false>, __moneypunct_cache<C, true>.
211         * src/locale_facets.cc: Define money_base::_S_atoms.
212         * src/locale_init.cc: Update placement new of
213         __moneypunct_cache<char, false>, __moneypunct_cache<char, true>,
214         __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>.
216         * config/locale/generic/numeric_members.cc: Clean up.
217         * config/locale/gnu/numeric_members.cc: Likewise.
218         * testsuite/22_locale/money_put/put/char/1.cc: Likewise.
219         * testsuite/22_locale/money_put/put/char/2.cc: Likewise.
220         * testsuite/22_locale/money_put/put/char/3.cc: Likewise.
221         * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise.
222         * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise.
223         * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise.
225 2004-02-20  Mark Mitchell  <mark@codesourcery.com>
227         * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc: Open
228         FIFO for writing with ios_base::in|ios_base::out.
229         * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise.
230         * testsuite/27_io/objects/char/7.cc: Likewise.
231         * testsuite/27_io/objects/char/9661-1.cc: Open FIFO for writing
232         with "r+".
234 2004-02-19  David Edelsohn  <edelsohn@gnu.org>
236         * 22_locale/collate/compare/wchar_t/2.cc: Change input-charset
237         from iso-8859-1 to ISO8859-1.
238         * 22_locale/collate/compare/wchar_t/wrapped_env.cc: Same.
239         * 22_locale/collate/compare/wchar_t/wrapped_locale.cc: Same.
240         * 22_locale/collate/hash/wchar_t/2.cc: Same.
241         * 22_locale/collate/hash/wchar_t/wrapped_env.cc: Same.
242         * 22_locale/collate/hash/wchar_t/wrapped_locale.cc: Same.
243         * 22_locale/collate/transform/wchar_t/2.cc: Same.
244         * 22_locale/collate/transform/wchar_t/wrapped_env.cc: Same.
245         * 22_locale/collate/transform/wchar_t/wrapped_locale.cc: Same.
247 2004-02-18  Paolo Carlini  <pcarlini@suse.de>
249         * include/bits/locale_facets.h (money_get<>::_M_extract):
250         New, helper for do_get.
251         (money_put<>::_M_insert): Likewise, for do_put.
252         * include/bits/locale_facets.tcc (money_get<>::_M_extract,
253         money_put<>::_M_insert): Define.
254         (money_get<>::do_get(long double&), money_get<>::do_get(
255         string_type&), money_put::do_put(long double),
256         money_put::do_put(const string_type&)): Use the helpers.
258 2004-02-18  Paolo Carlini  <pcarlini@suse.de>
260         * config/io/basic_file_stdio.cc (__gnu_internal::xwritev):
261         Rewrite, avoiding recursion.
262         (__gnu_internal::xwrite): Minor tweaks.
264 2004-02-17  Stefan Olsson  <stefan@xapa.se>
266         * include/ext/mt_allocator.h: Removed the last
267         pointer. Deallocated blocks are now added to the front of
268         freelists as proposed by Felix Yen.  This gives roughly 10%
269         performance boost and saves some memory.
270         * docs/html/ext/mt_allocator.html: Change due to that deallocated
271         blocks now are added to the front of freelists. The reason to this
272         approach is also explained.
274 2004-02-17  Paolo Carlini  <pcarlini@suse.de>
276         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
277         num_get<>::_M_extract_int, money_get<>::do_get): Simplify
278         grouping fidelity conditional.
280 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
282         * testsuite/27_io/basic_filebuf/overflow/char/13858.cc:
283         Qualify exception with std::.
284         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Ditto.
285         * testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc: Ditto.
286         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
287         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
288         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
290 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
292         * testsuite/ext/enc_filebuf/char/13189.cc: Don't check
293         for now that the catch block is not reached.
294         * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Likewise.
296 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
298         * include/bits/locale_facets.tcc (money_get::do_get(string_type&)):
299         Fix parsing of the remaining sign characters.
300         * 22_locale/money_get/get/char/2.cc: Tweak: now, correctly,
301         the input is scanned 'til eof.
302         * 22_locale/money_get/get/char/4.cc: Likewise.
303         * 22_locale/money_get/get/wchar_t/2.cc: Likewise.
304         * 22_locale/money_get/get/wchar_t/4.cc: Likewise.
305         * 22_locale/money_get/get/char/8.cc: Tweak: override do_neg_format,
306         not do_pos_format: the former is the only one that matters during
307         input.
308         * 22_locale/money_get/get/wchar_t/8.cc: Likewise.
310         * 22_locale/money_get/get/char/6.cc: Minor tweak.
311         * 22_locale/money_get/get/wchar_t/6.cc: Likewise.
313 2004-02-15  David Asher  <david.asher@cavium.com>
315         PR libstdc++/11352
316         * include/bits/locale_facets.tcc (__pad<>::_S_pad): Don't
317         access __olds beyond __oldlen.
319 2004-02-14  Paolo Carlini  <pcarlini@suse.de>
321         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Make
322         sure the exception is actually thrown.
323         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
324         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
325         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
327 2004-02-14  Paolo Carlini  <pcarlini@suse.de>
329         PR libstdc++/13858
330         * include/bits/fstream.tcc (basic_filebuf<>::_M_convert_to_external):
331         In case of conversion errors, throw ios_failure; simplify.
332         * testsuite/27_io/basic_filebuf/overflow/char/13858.cc: New.
333         * testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc: Ditto.
334         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Tweak,
335         previously we didn't throw in case of conversion errors, instead
336         just returned eof().
337         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
338         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
339         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
341         * include/bits/fstream.tcc (basic_filebuf<>::overflow):
342         Trivial simplification of a conditional.
344 2004-02-12  Paolo Carlini  <pcarlini@suse.de>
346         PR libstdc++/13731 (final part: writev)
347         * config/io/basic_file_stdio.cc (__gnu_internal::xwritev):
348         New, a wrapper around writev() handling partial writes.
349         (__basic_file<char>::xwrite): Move to __gnu_internal and make
350         static.
351         (__basic_file<char>::xsputn): Update call.
352         (__basic_file<char>::xsputn_2): Likewise.       
353         * config/io/basic_file_stdio.h (__basic_file<char>::xwrite):
354         Don't declare, now static.
356 2004-02-11  Stefan Olsson  <stefan@xapa.se>
358         * docs/html/ext/mt_allocator.html: New.
360 2004-02-11  Benjamin Kosnik  <bkoz@redhat.com>
362         * docs/html/20_util/allocator.html: New file, consolidate
363         allocator information here. Revamp.
364         * docs/html/documentation.html: Change links.
365         * docs/html/20_util/howto.html: Same.
366         * docs/html/ext/howto.html: Same.
368 2004-02-11  Paolo Carlini  <pcarlini@suse.de>
370         PR libstdc++/13731 (first part: write)
371         * config/io/basic_file_stdio.h (__basic_file<char>::xwrite):
372         New, declare.
373         * config/io/basic_file_stdio.cc (__basic_file<char>::xwrite):
374         Define it: a wrapper around write() handling partial write.
375         (__basic_file<char>::xsputn): Use it.
376         (__basic_file<char>::xsputn_2): Likewise.
378 2004-02-11  Paolo Carlini  <pcarlini@suse.de>
379             Petur Runolfsson  <peturr02@ru.is>
381         PR libstdc++/14078
382         * include/std/std_istream.h (operator>>(__istream_type& (*)
383         (__istream_type&)), operator>>(__ios_type& (*)(__ios_type&)),
384         operator>>(ios_base& (*)(ios_base&))): Declare inline.
385         * include/std/std_ostream.h (operator<<(__ostream_type& (*)
386         (__ostream_type&)), operator<<(__ios_type& (*)(__ios_type&)),
387         operator<<(ios_base& (*) (ios_base&))): Likewise.
388         * testsuite/performance/27_io/fmtflags_manipulators.cc: New.
390 2004-02-10  Loren J. Rittle  <ljrittle@acm.org>
392         PR libstdc++/14098
393         * config/linker-map.gnu: Add typeinfo and typeinfo name for
394         __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> >.
396         PR libstdc++/14097
397         * config/linker-map.gnu: Add typeinfo and typeinfo name for
398         __gnu_cxx::stdio_filebuf<char, std::char_traits<char> >.
400 2004-02-09  Loren J. Rittle  <ljrittle@acm.org>
402         * include/ext/pool_allocator.h: Include c++config.h.
404 2004-02-09  Stefan Olsson  <stefan@xapa.se>
406         * include/ext/mt_allocator.h: thread_id is unused in non threaded
407         applications and now has a ifdef to remove it completely on
408         compilers without thread support. Include stdlib.h due to a
409         compiler warning on getenv().
411 2004-02-09  Paul Brook  <paul@codesourcery.com>
413         * libstdc++-v3/configure.host: Explicitly check for atomicity.h file.
415 2004-02-09  Paolo Carlini  <pcarlini@suse.de>
417         PR libstdc++/14071
418         * src/locale_init.cc (locale::global(const locale&)): Use
419         locale::name() in order to decide whether calling setlocale.
420         * testsuite/22_locale/locale/global_locale_objects/14071.cc: New.
422         * include/bits/locale_classes.h (locale::_Impl::_M_check_same_name()):
423         Avoid computing &= unnecessarily.
425 2004-02-09  James E Wilson  <wilson@specifixinc.com>
427         PR libstdc++/5625
428         * libsuspc++/eh_personality.cc (PERSONALITY_FUNCTION): Use
429         __builtin_extend_pointer.
431 2004-02-09  Paolo Carlini  <pcarlini@suse.de>
433         PR libstdc++/14072
434         * include/bits/basic_ios.tcc (basic_ios<>::_M_cache_locale):
435         Don't leave dangling pointers.
436         * testsuite/27_io/basic_ios/imbue/14072.cc: New.
437         * testsuite/22_locale/numpunct/members/pod/2.cc: Tweak, the num_put
438         facet is needed in the final test.
440 2004-02-09  Bernardo Innocenti  <bernie@develer.com>
442         * crossconfig.m4: Don't enable _GLIBCXX_USE_LFS on *-uclinux*.
443         * configure: Regenerate.
445 2004-02-08  Richard Henderson  <rth@redhat.com>
447         PR libstdc++/14026
448         * libsupc++/eh_catch.cc (__cxa_begin_catch): Don't adjust 
449         uncaughtExceptions during nested catch rethrow.
450         * testsuite/18_support/14026.cc: New.
452 2004-02-08  Paolo Carlini  <pcarlini@suse.de>
454         * include/bits/basic_string.tcc (assign(const _CharT*, size_type)):
455         When working in place remember to set the state to sharable
456         (otherwise, _M_mutate does it).
458 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
460         * include/bits/allocator.h, include/bits/basic_ios.h,
461         include/bits/basic_ios.tcc, include/bits/basic_string.h,
462         include/bits/basic_string.tcc, include/bits/boost_concept_check.h,
463         include/bits/char_traits.h, include/bits/codecvt.h,
464         include/bits/concurrence.h, include/bits/cpp_type_traits.h,
465         include/bits/demangle.h, include/bits/deque.tcc,
466         include/bits/fstream.tcc, include/bits/functexcept.h,
467         include/bits/gslice.h, include/bits/gslice_array.h,
468         include/bits/indirect_array.h, include/bits/ios_base.h,
469         include/bits/istream.tcc, include/bits/list.tcc,
470         include/bits/locale_classes.h, include/bits/locale_facets.h,
471         include/bits/locale_facets.tcc, include/bits/localefwd.h,
472         include/bits/mask_array.h, include/bits/ostream.tcc,
473         include/bits/postypes.h, include/bits/slice_array.h,
474         include/bits/sstream.tcc, include/bits/stl_algo.h,
475         include/bits/stl_algobase.h, include/bits/stl_bvector.h,
476         include/bits/stl_construct.h, include/bits/stl_deque.h,
477         include/bits/stl_function.h, include/bits/stl_heap.h,
478         include/bits/stl_iterator.h, include/bits/stl_iterator_base_funcs.h,
479         include/bits/stl_list.h, include/bits/stl_map.h,
480         include/bits/stl_multimap.h, include/bits/stl_multiset.h,
481         include/bits/stl_numeric.h, include/bits/stl_pair.h,
482         include/bits/stl_queue.h, include/bits/stl_raw_storage_iter.h,
483         include/bits/stl_relops.h, include/bits/stl_set.h,
484         include/bits/stl_stack.h, include/bits/stl_tempbuf.h,
485         include/bits/stl_threads.h, include/bits/stl_tree.h,
486         include/bits/stl_uninitialized.h, include/bits/stl_vector.h,
487         include/bits/stream_iterator.h, include/bits/streambuf.tcc,
488         include/bits/streambuf_iterator.h,include/bits/stringfwd.h,
489         include/bits/type_traits.h, include/bits/valarray_after.h,
490         include/bits/valarray_array.h, include/bits/valarray_array.tcc,
491         include/bits/valarray_before.h, include/bits/vector.tcc: Remove
492         trailing whitespace.
494 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
496         * include/bits/basic_string.h: Fix comment.
498 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
500         * include/bits/stl_construct.h: Wrap overlong lines, reformat
501         according to the coding standards.
502         * include/bits/stl_pair.h: Likewise.
503         * include/bits/stl_raw_storage_iter.h: Likewise.
504         * include/bits/stl_stack.h: Likewise.
505         * include/bits/stl_uninitialized.h: Likewise.
506         * include/bits/stream_iterator.h: Likewise.
507         * include/bits/streambuf_iterator.h: Likewise.
508         * include/bits/type_traits.h: Likewise.
510 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
512         * testsuite/27_io/basic_filebuf/open/char/9507.cc:
513         Adjust timings.
515 2004-02-05  Loren J. Rittle  <ljrittle@acm.org>
517         * scripts/check_performance: Support PCH.
519         * scripts/check_performance (CXX): Add -DNOTHREAD.
520         * testsuite/performance/20_util/allocator/insert.cc: Integrate
521         threaded tests from insert_insert.cc.  Tweak iterations,
522         remove special cases.
523         * testsuite/performance/20_util/allocator/insert_insert.cc:
524         Make all tests single-threaded. Tweak iterations.
525         * testsuite/performance/20_util/allocator/map_thread.cc:
526         Tweak iterations.
527         * testsuite/performance/20_util/allocator/producer_consumer.cc:
528         Likewise.
530 2004-02-05  Geoffrey Keating  <geoffk@apple.com>
532         PR 12179
533         * .cvsignore: New.
534         * acinclude.m4 (GLIBCXX_EXPORT_INSTALL_INFO): Use 'gcc', not
535         'gcc-lib'.  Add comment about poorly-named variables.
536         * aclocal.m4: Regenerate.
537         * configure: Regenerate.
539 2004-02-05  Paolo Carlini  <pcarlini@suse.de>
541         * include/bits/locale_facets.tcc (money_get::do_get(string_type&)):
542         Thousands-sep are always optional; thousands-sep are not allowed
543         after the decimal_point.
544         * testsuite/22_locale/money_get/get/char/12.cc: New.
545         * testsuite/22_locale/money_get/get/char/13.cc: New.
546         * testsuite/22_locale/money_get/get/wchar_t/12.cc: New.
547         * testsuite/22_locale/money_get/get/wchar_t/13.cc: New.
549         * testsuite/22_locale/money_get/get/char/1.cc: Clean-up.
550         * testsuite/22_locale/money_get/get/char/2.cc: Likewise.
551         * testsuite/22_locale/money_get/get/char/3.cc: Likewise.
552         * testsuite/22_locale/money_get/get/char/4.cc: Likewise.
553         * testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise.
554         * testsuite/22_locale/money_get/get/wchar_t/2.cc: Likewise.
555         * testsuite/22_locale/money_get/get/wchar_t/3.cc: Likewise.
556         * testsuite/22_locale/money_get/get/wchar_t/4.cc: Likewise.
558         * testsuite/22_locale/money_get/get/char/9.cc: Fix citation from
559         the standard.
560         * testsuite/22_locale/money_get/get/wchar_t/9.cc: Likewise.
562 2004-02-05  Richard Sandiford  <rsandifo@redhat.com>
564         * config/os/irix/irix6.5/os_defines.h (_GLIBCXX_FIONREAD_TAKES_OFF_T):
565         Define.
566         * config/io/basic_file_stdio.cc (__basic_file<char>::showmanyc): Use
567         it to decide whether FIONREAD should take an off_t or int argument.
569 2004-02-05  Paolo Carlini  <pcarlini@suse.de>
571         * include/bits/stl_function.h: Minor formatting changes.
573 2004-02-04  Zack Weinberg  <zack@codesourcery.com>
575         Revert previous change to config/abi/*/baseline_symbols.txt.
577 2004-02-04  Benjamin Kosnik  <bkoz@redhat.com>
578             Zack Weinberg  <zack@codesourcery.com>
580         * config/io/basic_file_stdio.cc (__gnu_internal::fopen_mode):
581         New function.
582         (__basic_file<char>::sys_open, __basic_file<char>::open): Use it.
583         (__basic_file<char>::_M_open_mode): Delete.
584         * config/io/basic_file_stdio.cc: Delete declaration of _M_open_mode.
586         * testsuite/27_io/basic_filebuf/close/char/9964.cc
587         * testsuite/27_io/basic_filebuf/open/char/9507.cc:
588         Correct flags to filebuf::open calls.
590         * config/abi/alpha-freebsd5/baseline_symbols.txt
591         * config/abi/alpha-linux-gnu/baseline_symbols.txt
592         * config/abi/hppa-linux-gnu/baseline_symbols.txt
593         * config/abi/i386-freebsd4/baseline_symbols.txt
594         * config/abi/i386-freebsd5/baseline_symbols.txt
595         * config/abi/i486-linux-gnu/baseline_symbols.txt
596         * config/abi/ia64-linux-gnu/baseline_symbols.txt
597         * config/abi/mips-linux-gnu/baseline_symbols.txt
598         * config/abi/sparc-freebsd5/baseline_symbols.txt
599         * config/abi/sparc-linux-gnu/baseline_symbols.txt
600         * config/abi/x86_64-linux-gnu/baseline_symbols.txt:
601         Remove entry for __basic_file<char>::_M_open_mode.
603 2004-02-04  Loren J. Rittle  <ljrittle@acm.org>
605         * testsuite/performance/20_util/allocator/insert.cc (main): Tweak.
607 2004-02-04  Felix Yen  <fwy@alumni.brown.edu>
609         * testsuite/performance/20_util/producer_consumer.cc: New.
610         * testsuite/performance/20_util/allocator/insert_insert.cc: Two loops.
612 2004-02-04  Benjamin Kosnik  <bkoz@redhat.com>
614         * testsuite/performance/20_util/allocator.cc: Move to..
615         * testsuite/performance/20_util/allocator/insert.cc: ...here.
616         * testsuite/performance/20_util/allocator_thread.cc: Move to...
617         * testsuite/performance/20_util/allocator/insert_insert.cc: ...here.
618         * testsuite/performance/20_util/allocator_map_thread.cc: Move to...
619         * testsuite/performance/20_util/allocator/map_thread.cc: ...here.
621 2004-02-04  Jonathan Wakely  <redi@gcc.gnu.org>
623         * docs/html/faq/index.html: Recommend using LD_LIBRARY_PATH.
624         * docs/html/faq/index.txt: Regenerate.
626 2004-02-04  Dhruv Matani  <dhruvbird@gmx.net>
628         * include/ext/debug_allocator.h: _M_extra now stands for the
629         number of extra objects instead of the number of extra bytes.
630         (debug_allocator::allocate): Adjust.
631         (debug_allocator::deallocate): Adjust.
633         * include/ext/pool_allocator.h: Fix typo.
635 2004-02-03  Felix Yen  <fwy@alumni.brown.edu>
636             Benjamin Kosnik  <bkoz@redhat.com>
638         * testsuite/performance/20_util/allocator.cc: Add map,
639         deque, set tests.
640         * testsuite/performance/20_util/allocator_thread.cc: Same.
642 2004-02-03  Paolo Carlini  <pcarlini@suse.de>
644         * include/bits/basic_string.h (insert(iterator)): Remove,
645         non-standard and already scheduled for removal.
647 2004-02-03  Paolo Carlini  <pcarlini@suse.de>
649         * include/bits/stl_iterator_base_funcs.h: Minor formatting
650         and indentation tweaks.
651         * include/bits/stl_iterator_base_types.h: Likewise.
652         * include/bits/stl_list.h: Likewise.
653         * include/bits/stl_map.h: Likewise.
654         * include/bits/stl_tempbuf.h: Likewise.
656 2004-02-02  Jerry Quinn  <jlquinn@optonline.net>
658         * include/bits/gslice.h, include/bits/gslice_array.h,
659         include/bits/indirect_array.h, include/bits/mask_array.h,
660         include/bits/slice_array.h, include/bits/stl_numeric.h,
661         include/std/std_valarray.h:  Update copyright years.
663 2004-02-02  Jerry Quinn  <jlquinn@optonline.net>
665         * include/bits/gslice.h (gslice):  Document.
666         * include/bits/gslice_array.h (gslice_array):  Document.
667         * include/bits/indirect_array (indirect_array):  Document.
668         * include/bits/mask_array (mask_array):  Document.
669         * include/bits/slice_array.h (slice,slice_array):  Document.
670         * include/bits/stl_numeric.h (accumulate, inner_product, partial_sum,
671         adjacent_difference):  Document
672         * include/std/std_valarray.h (valarray):  Document.
674 2004-02-02  Benjamin Kosnik  <bkoz@redhat.com>
676         * docs/html/19_diagnostics/howto.html: Move verbose terminate
677         documentation...
678         * docs/html/18_support/howto.html: Here.
679         * docs/html/documentation.html: Add reference here.
681 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
683         * config/locale/gnu/c++locale_internal.h: Remove prototypes
684         of no longer used GLIBC thread locale functions.
686 2004-02-02  Eric Christopher  <echristo@redhat.com>
687             Zack Weinberg  <zack@codesourcery.com>
689         * testsuite/22_locale/collate/compare/wchar_t/2.cc: Remove xfail. Use
690         -finput-charset.
691         * testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc: Ditto.
692         * testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc: Ditto
693         * testsuite/22_locale/collate/hash/wchar_t/2.cc: Ditto.
694         * testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc: Ditto.
695         * testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc: Ditto.
696         * testsuite/22_locale/collate/transform/wchar_t/2.cc: Ditto.
697         * testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc: Ditto.
698         * testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc:
699         Ditto.
701 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
703         * include/bits/stl_function.h: Additional minor tweaks.
704         * include/bits/stl_multiset.h: Likewise.
706         * include/bits/stl_queue.h: Minor tweaks.
708 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
710         PR libstdc++/13976 (continued)
711         * include/ext/malloc_allocator.h (malloc_allocator::deallocate):
712         Make the second parameter unnamed, to void unused parameter
713         warnings.
714         * include/ext/new_allocator.h (new_allocator::deallocate): Ditto.
716 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
718         PR libstdc++/13976
719         * include/ext/malloc_allocator.h (malloc_allocator::allocate):
720         Make the second parameter unnamed, to void unused parameter
721         warnings.
722         * include/ext/mt_allocator.h (__mt_alloc::allocate): Ditto.
723         * include/ext/new_allocator.h (new_allocator::allocate): Ditto.
725 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
727         * include/bits/stl_algo.h: Additional minor tweaks.
728         * include/bits/stl_map.h: Likewise.
729         * include/bits/stl_multimap.h: Likewise.
730         * include/bits/stl_multiset.h: Likewise.
731         * include/bits/stl_set.h: Likewise.
732         * include/bits/stl_tree.h: Likewise.
734 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
736         * include/bits/vector.tcc (vector::_M_insert_aux(iterator)):
737         Remove, unused.
739 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
741         * include/bits/stl_function.h: Additional minor tweaks.
743 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
745         * include/bits/deque.tcc: Wrap overlong lines, constify
746         a few variables, reformat according to the coding standards.
747         * include/bits/list.tcc: Likewise.
748         * include/bits/stl_deque.h: Likewise.
749         * include/bits/stl_function.h: Likewise.
750         * include/bits/stl_iterator.h: Likewise.
751         * include/bits/stl_iterator_base_funcs.h: Likewise.
752         * include/bits/stl_iterator_base_types.h: Likewise.
753         * include/bits/stl_list.h: Likewise.
754         * include/bits/stl_map.h: Likewise.
755         * include/bits/stl_multimap.h: Likewise.
756         * include/bits/stl_multiset.h: Likewise.
757         * include/bits/stl_relops.h: Likewise.
758         * include/bits/stl_set.h: Likewise.
760 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
762         * include/bits/stl_bvector.h: Wrap overlong lines, constify
763         a few variables, reformat according to the coding standards.
764         * include/bits/stl_tree.h: Likewise.
766 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
768         * include/bits/stl_algo.h: Minor additional reformat, add
769         copyright year.
770         * include/bits/stl_algobase.h: Add copyright year.
772 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
774         * include/bits/stl_algo.h: Wrap overlong lines, constify
775         a few variables, reformat according to the coding standards.
776         * include/bits/stl_algobase.h: Likewise.
777         * include/bits/stl_heap.h: Likewise.
779 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
781         * include/bits/basic_string.h (_Rep::operator[]): Remove, unused.
783         * include/bits/basic_string.h: Fix two comments.
785 2004-01-31  Per Bothner  <per@bothner.com>
787         * include/ext/mt_allocator.h
788         (__mt_alloc::_S_thread_freelist_mutex): Guard with
789         __GTHREAD_MUTEX_INIT.
791 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
793         * include/bits/basic_string.tcc (_Rep::_S_create): Minor tweak.
795 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
797         * testsuite/21_strings/basic_string/cons/char/6.cc: New.
798         * testsuite/21_strings/basic_string/cons/wchar_t/6.cc: New.
799         * testsuite/performance/21_strings/string_cons_input_iterator.cc: New.
801 2004-01-30  Felix Yen  <fwy@alumni.brown.edu>
803         * testsuite/performance/20_util/allocator_thread.cc (do_loop):
804         Don't use clear, but instead assign. Use insert.
806 2004-01-30  Benjamin Kosnik  <bkoz@redhat.com>
808         * src/demangle.cc: Add instantiations.
809         * src/Makefile.am: Remove special rules for demangle.lo, demangle.o.
810         * src/Makefile.in: Regenerate.
812 2004-01-30  David Edelsohn  <edelsohn@gnu.org>
814         * src/allocator.cc: Protect _S_get_thread_id() and
815         _S_thread_key_destr() with #ifdef __GTHREADS.
817 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
819         Reshuffle performance testsuite.
820         * testsuite/performance/allocator.cc, allocator_map_thread.cc,
821         allocator_thread.cc, complex_norm.cc, container_benchmark.cc,
822         cout_insert_int.cc, filebuf_copy.cc, filebuf_sputc.cc,
823         fstream_seek_write.cc, ifstream_extract_float.cc,
824         ifstream_extract_int.cc, ifstream_getline.cc, is_wchar_t.cc,
825         list_create_fill_sort.cc, map_create_fill.cc,
826         narrow_widen_char.cc, narrow_widen_wchar_t.cc,
827         ofstream_insert_float.cc, ofstream_insert_int.cc,
828         string_append.cc, wchar_t_in.cc, wchar_t_length.cc,
829         wchar_t_out.cc: Split into...
830         * testsuite/performance/20_util/allocator.cc: New.
831         * testsuite/performance/20_util/allocator_map_thread.cc: New.
832         * testsuite/performance/20_util/allocator_thread.cc: New.
833         * testsuite/performance/21_strings/string_append: New.
834         * testsuite/performance/22_locale/is_wchar_t.cc: New.
835         * testsuite/performance/22_locale/narrow_widen_char.cc: New.
836         * testsuite/performance/22_locale/narrow_widen_wchar_t.cc: New.
837         * testsuite/performance/22_locale/wchar_t_in.cc: New.
838         * testsuite/performance/22_locale/wchar_t_length.cc: New.
839         * testsuite/performance/22_locale/wchar_t_out.cc: New.
840         * testsuite/performance/23_containers/container_benchmark.cc: New.
841         * testsuite/performance/23_containers/list_create_fill_sort.cc: New.
842         * testsuite/performance/23_containers/map_create_fill.cc: New.
843         * testsuite/performance/26_numerics/complex_norm.cc: New.
844         * testsuite/performance/27_io/cout_insert_int.cc: New.
845         * testsuite/performance/27_io/filebuf_copy.cc: New.
846         * testsuite/performance/27_io/filebuf_sputc.cc: New.
847         * testsuite/performance/27_io/fstream_seek_write.cc: New.
848         * testsuite/performance/27_io/ifstream_extract_float.cc: New.
849         * testsuite/performance/27_io/ifstream_extract_int.cc: New.
850         * testsuite/performance/27_io/ifstream_getline.cc: New.
851         * testsuite/performance/27_io/ofstream_insert_float.cc: New.
852         * testsuite/performance/27_io/ofstream_insert_int.cc: New.
854 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
856         * include/bits/basic_string.tcc (_Rep::_S_create):
857         Never allocate a string bigger than max_size(); always keep
858         __capacity and __size in sync to avoid memory leaks at
859         deallocation time.
861 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
863         * include/bits/basic_string.tcc (_S_construct(_InIterator,
864         _InIterator, const _Alloc&, input_iterator_tag)): Simplify
865         the double loop, streamline.
867         * include/bits/basic_string.tcc: Very minor tweaks.
869 2004-01-30  Loren J. Rittle  <ljrittle@acm.org>
871         * scripts/check_performance: Only compile with $THREAD_FLAG
872         when test is marked to require it.  Allow multiple
873         compilations/executions of marked tests.
874         * testsuite/testsuite_performance.h (report_performance):
875         Report dynamic thread support status.
876         (report_header): Likewise.
877         * testsuite/performance/allocator.cc: Stabilize iteration
878         count.  Support more allocators.  Mark each allocator test to
879         run and report independently.
880         * testsuite/performance/allocator_map_thread.cc: Likewise.
881         * testsuite/performance/allocator_thread.cc: Likewise.
883 2004-01-29  Stephen M. Webb  <stephen.webb@bregmasoft.com>
885         * config/local/generic/c_locale.h: Change ::malloc() to new char[].
886         * config/local/gnu/c_locale.h: Change ::malloc() to new char[].
887         * include/bits/stl_tempbuf.h: Convert _Temporary_buffer to use
888         std::get_temporary_buffer() instead of duplicating its code.
889         Update to C++STYLE conventions.
890         * include/std/std_memory.h (get_temporary_buffer): Use ::operator
891         new() instead of std::malloc().
892         (return_temporary_buffer): Use ::operator delete() instead of
893         std::free().
895 2004-01-29  Benjamin Kosnik  <bkoz@redhat.com>
897         * include/bits/allocator.h: Temporary switch to new_allocator as
898         the default to unjam bootstraps.
900 2004-01-28  Benjamin Kosnik  <bkoz@redhat.com>
902         * include/Makefile.am (bits_headers): Remove allocator_traits.h.
903         * include/Makefile.in: Regenerate.
904         * include/bits/allocator_traits.h: Remove.
905         * include/bits/allocator.h: Remove allocator_traits.h include, and
906         relevant comments.
907         (allocator): Empty base class, inherit from the underlying allocator.
908         * src/allocator-inst.cc: Move __pool_alloc instantiation to...
909         * src/allocator.cc: ...here. New. For the underlying allocators.
910         Add __mt_alloc, __pool_alloc, new_allocator, malloc_allocator bits.
911         * config/linker-map.gnu: Remove __pool_alloc bits.
912         * src/Makefile.am (sources): Add allocator.cc.
913         * src/Makefile.in: Regenerate.
914         * testsuite/20_util/allocator/1.cc: Split second test into...
915         * testsuite/20_util/allocator/8230.cc: ...this.
916         * include/bits/stl_bvector.h (__gnu_norm): Change bit_vector
917         typedef to use std::allocatore. Format.
918         * include/ext/pool_allocator.h: Remove allocator_traits.h include,
919         _Alloc_traits.
920         * include/ext/mt_allocator.h (__gnu_cxx): Qualify
921         __throw_bad_alloc calls. Don't include <memory>.
922         * include/ext/malloc_allocator.h: Remove <memory> include.
923         * include/ext/new_allocator.h (new_allocator): Same.
924         * include/ext/ropeimpl.h (__gnu_cxx): Remove __alloc using
925         declaration. Switch __alloc to _Alloc.
926         * include/ext/hashtable.h: Remove __alloc.
927         * include/backward/alloc.h: Only inject allocator, not
928         implementation details.
930         * include/ext/mt_allocator.h: Replace free with delete.
932 2004-01-28  Benjamin Kosnik  <bkoz@redhat.com>
934         * src/globals_io.cc: Change to __gnu_internal namespace.
935         * src/globals_locale.cc: Same.
936         * src/locale_init.cc: Same.
937         * src/ios_init.cc: Same.
939 2004-01-28  Stefan Olsson  <stefan@snon.net>
941         * include/ext/mt_allocator.h: Replaced all malloc() calls with
942         operator new(). Added support for the env variable
943         GLIBCXX_FORCE_NEW (this required the _S_init call to be the first
944         one in allocate() as well). Fix typos.
946 2004-01-28  Paolo Carlini  <pcarlini@suse.de>
948         * include/bits/basic_string.h (_S_create(size_t,
949         const _Alloc&): Change signature to take two size_type
950         arguments.
951         * include/bits/basic_string.tcc (_S_construct(_InIterator,
952         _InIterator, const _Alloc&, input_iterator_tag)): Update
953         call, tweak a bit.
954         (_S_construct(_InIterator, _InIterator, const _Alloc&,
955         forward_iterator_tag)): Likewise.
956         (_S_construct(size_type, _CharT, const _Alloc&)): Likewise.
957         (_M_mutate(size_type, size_type, size_type)): Don't
958         implement the exponential growth policy, demand it to
959         _S_create, update call and simplify.
960         (_M_clone(const _Alloc&, size_type)): Likewise.
961         (_S_create(size_type, size_type, const _Alloc&)): Implement
962         the growth policy, simplify otherwise.
964         * include/bits/basic_string.h (_Rep::operator[]): Tweak
965         signature to take a size_type, consistently with the other
966         members.
968 2004-01-27  Benjamin Kosnik  <bkoz@redhat.com>
970         * testsuite/27_io/ios_base/storage/11584.cc: Correct new and
971         delete declarations, add include and test variable.
973 2003-01-27  Jerry Quinn  <jlquinn@optonline.net>
975         * include/bits/codecvt.h, include/bits/locale_facets.h,
976         include/bits/postypes.h, include/bits/stl_bvector.h,
977         include/bits/stl_multiset.h, include/bits/stl_set.h,
978         include/bits/stream_iterator.h, include/bits/streambuf_iterator.h,
979         include/std/std_complex.h:  Document.
981 2004-01-27  Jerry Quinn  <jlquinn@optonline.net>
983         PR libstdc++/11584
984         * include/bits/ios_base.h (ios_base::_M_grow_words):  Add
985         iword/pword selector.
986         (ios_base::iword, ios_base::pword):  Use it.
987         * src/ios.cc (ios_base::_M_grow_words):  Clear _M_word_zero
988         iword or pword member on alloc failure.
989         * testsuite/27_io/ios_base/storage/11584.cc:  New test.
991 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
992             PJ Darcy  <darcypj@us.ibm.com>
994         * configure.host: Add support for *-tpf.
995         * crossconfig.m4: Likewise.
996         * configure: Regenerate.
997         * config/os/tpf: New directory.
998         * config/os/tpf/os_defines.h: New file.
999         * config/os/tpf/ctype_base.h: Likewise.
1000         * config/os/tpf/ctype_inline.h: Likewise.
1001         * config/os/tpf/ctype_noninline.h: Likewise.
1003 2004-01-27  Paolo Carlini  <pcarlini@suse.de>
1005         PR libstdc++/13884
1006         * include/bits/sstream.tcc: Guard use of extern template.
1008 2004-01-27  Paolo Carlini  <pcarlini@suse.de>
1010         * include/bits/basic_string.tcc
1011         (basic_string(const basic_string&, size_type, size_type),
1012         basic_string(const basic_string&, size_type, size_type,
1013         const _Alloc&)): Avoid unnecessarily constructing iterators.
1015 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
1017         * config/locale/generic/c_locale.cc: Fix throw messages
1018         to use the __N marker.
1019         * config/locale/gnu/c_locale.cc: Likewise.
1020         * config/locale/ieee_1003.1-2001/codecvt_specializations.h:
1021         Likewise.
1022         * docs/html/17_intro/C++STYLE: Likewise.
1023         * include/bits/basic_ios.tcc: Likewise.
1024         * include/bits/fstream.tcc: Likewise.
1025         * include/bits/vector.tcc: Likewise.
1026         * include/ext/ropeimpl.h: Likewise.
1027         * include/std/std_bitset.h: Likewise.
1028         * src/ios.cc: Likewise.
1029         * src/locale.cc: Likewise.
1030         * src/localename.cc: Likewise.
1032 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
1034         * include/bits/basic_string.h (_M_replace_aux): Use the
1035         __N marker in throw message.
1036         * include/bits/basic_string.tcc (assign(const _CharT*,
1037         size_type), insert(size_type, const _CharT*, size_type),
1038         replace(size_type, size_type, const _CharT*, size_type),
1039         reserve, _Rep::_S_create, resize, _M_replace_dispatch):
1040         Likewise.
1042         * include/bits/basic_string.h, include/bits/basic_string.tcc:
1043         Fold overlong lines, minor formatting changes.
1045 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
1047         * include/bits/basic_string.h (replace(iterator, iterator,
1048         const basic_string&)): Remove _GLIBCXX_DEBUG_PEDASSERT.
1049         (replace(iterator, iterator, const _CharT*)): Ditto.
1050         (replace(iterator, iterator, const _CharT*, size_type)):
1051         Add missing _GLIBCXX_DEBUG_PEDASSERT.
1053 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
1055         * include/bits/basic_string.tcc (replace(size_type,
1056         size_type, const _CharT*, size_type)): Implement optimized
1057         in-place algorithm for non-overlapping ranges.
1058         * testsuite/21_strings/basic_string/replace/char/6.cc: New.
1059         * testsuite/21_strings/basic_string/replace/wchar_t/6.cc: New.
1061         * include/bits/basic_string.tcc (insert(size_type,
1062         const _CharT*, size_type)): Tweak slightly.
1064 2004-01-26  Andreas Schwab  <schwab@suse.de>
1066         * config/locale/gnu/monetary_members.cc: Restore locale before
1067         rethrowing exception.
1069 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
1071         * include/bits/basic_string.h (_M_replace_aux, _M_replace_safe):
1072         Define inline here.
1073         * include/bits/basic_string.tcc (_M_replace_aux, _M_replace_safe):
1074         Move inline.
1076         * include/bits/basic_string.tcc: Very minor tweaks.
1078 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
1080         * testsuite/performance/string_append.cc: Increase number
1081         of iterations.
1083 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
1085         * include/bits/basic_string.h (erase(size_type, size_type),
1086         erase(iterator), erase(iterator, iterator)): Call _M_replace_safe
1087         instead, thus avoiding redundant check for length_error.
1089         * include/bits/basic_string.h: Tweak some comments.
1091 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
1093         * include/bits/basic_string.tcc (operator+(const _CharT*,
1094         const basic_string&)): No need to go through the append
1095         taking two iterators.
1097 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
1099         * include/bits/basic_string.tcc (rfind(_CharT, size_type)):
1100         Revert last change to use std::min: machine language is worse.
1101         (find_last_of(const _CharT*, size_type, size_type)): Ditto.
1102         (find_last_not_of(const _CharT*, size_type, size_type)): Ditto.
1103         (find_last_not_of(_CharT, size_type)): Ditto.
1105         * include/bits/basic_string.tcc (insert(size_type, const _CharT*,
1106         size_type)): Discard the value returned by _M_check.
1107         (replace(size_type, size_type, const _CharT*, size_type)): Ditto.
1108         (append(const basic_string&, size_type, size_type)): Ditto.
1109         (copy(_CharT*, size_type, size_type)): Ditto.
1110         (compare(size_type, size_type, const basic_string&)): Ditto.
1111         (compare(size_type, size_type, const basic_string&,
1112         size_type, size_type)): Ditto.
1113         (compare(size_type, size_type, const _CharT*)): Ditto.
1114         (compare(size_type, size_type, const _CharT*, size_type)): Ditto.
1116 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
1118         * include/bits/basic_string.h (insert(size_type,
1119         const basic_string&, size_type, size_type)): Define inline here.
1120         * include/bits/basic_string.tcc (insert(size_type,
1121         const basic_string&, size_type, size_type)): Move inline.
1123 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
1125         * include/bits/basic_string.h (assign(const basic_string&,
1126         size_type, size_type)): Define inline here.
1127         (replace(size_type, size_type, const basic_string&,
1128         size_type, size_type)): Ditto.
1129         (_M_replace_dispatch(iterator, iterator, _InputIterator,
1130         _InputIterator, __false_type)): Only declare.
1131         (_M_replace(iterator, iterator, _InputIterator,
1132         _InputIterator)): Remove.
1133         * include/bits/basic_string.tcc (assign(const basic_string&,
1134         size_type, size_type)): Move inline.
1135         (replace(size_type, size_type, const basic_string&,
1136         size_type, size_type)): Ditto.
1137         (_M_replace_dispatch(iterator, iterator, _InputIterator,
1138         _InputIterator, __false_type)): Define, now does also what
1139         _M_replace did before.
1140         * src/string-inst.cc (_M_replace): Don't instantiate.
1142         * include/bits/basic_string.tcc (find(const _CharT*,
1143         size_type, size_type)): Tidy.
1144         (rfind(_CharT, size_type)): Ditto.
1145         (find_first_not_of(const _CharT*, size_type, size_type)): Ditto.
1146         (find_first_not_of(_CharT, size_type)): Ditto.
1147         (find_last_not_of(const _CharT*, size_type, size_type)): Ditto.
1148         (find_last_not_of(_CharT, size_type)): Ditto.
1150 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
1152         PR libstdc++/13838
1153         * include/debug/bitset (operator|=): Fix typo.
1154         * testsuite/23_containers/bitset/operations/13838.cc: New.
1156 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
1158         * include/bits/basic_string.tcc (insert(size_type,
1159         const _CharT*, size_type __n)): Fix length_error check.
1160         (replace(size_type, size_type, const _CharT*, size_type):
1161         Ditto; call _M_replace_safe.
1162         (_M_replace_aux(size_type, size_type, size_type, _CharT):
1163         Fix length_error check.
1164         (_M_replace(iterator, iterator, _InputIterator,
1165         _InputIterator)): Ditto, tweak.
1166         (_M_replace_safe(size_type, size_type, const _CharT*,
1167         size_type)): Remove length_error check.
1169         * include/bits/basic_string.tcc (append(const basic_string&),
1170         append(const basic_string&, size_type, size_type)): Tweak
1171         comment.
1173         * include/bits/basic_string.tcc (copy(_CharT*, size_type,
1174         size_type)): If __n == 0 don't call traits::copy.
1176 2004-01-23  Stefan Olsson  <stefan@snon.net>
1178         * include/ext/mt_allocator.h: Reduce lock contention.
1180 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
1182         PR libstdc++/13831
1183         * include/bits/fstream.tcc (underflow): Remove unused
1184         variable.
1185         * include/bits/streambuf_iterator.h (equal): Ditto.
1186         * include/bits/locale_facets.h (_M_convert_from_char):
1187         Ditto.
1189 2004-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1191         PR c/13814
1192         * config/linker-map.gnu (nan): Delete.
1193         * libmath/mathconf.h (NAN, nan): Delete.
1194         * linkage.m4 (nan): Don't check for it.
1195         * libmath/nan.c: Delete file.
1197         * config.h.in, configure: Regenerate.
1199 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
1201         * include/bits/basic_string.h (push_back(_CharT)):
1202         Call _M_replace_aux.
1203         (insert(size_type, const basic_string&)): Trivial tweak.
1204         (insert(size_type, size_type, _CharT)): Call _M_replace_aux.
1205         (insert(iterator, _CharT)): Ditto.
1206         (erase(size_type, size_type)): Ditto.
1207         (erase(iterator)): Ditto.
1208         (erase(iterator, iterator)): Ditto.
1209         (replace(size_type, size_type, size_type, _CharT)): Ditto.
1211 2004-01-23  Loren J. Rittle  <ljrittle@acm.org>
1213         libstdc++/13823
1214         * testsuite/performance/allocator_map_thread.cc: New test.
1216 2004-01-22  Paolo Carlini  <pcarlini@suse.de>
1218         * include/bits/locale_facets.tcc
1219         (money_put::do_put(..., long double)): Use the basic_string
1220         constructor for char arrays, not that for C-strings, to pass
1221         __digits to do_put(..., const string_type&): __ws isn't
1222         null-terminated.
1224 2004-01-22  Paolo Carlini  <pcarlini@suse.de>
1226         * include/bits/basic_string.h (_M_replace_safe): Change
1227         signatures to take size_types and const _CharT*.
1228         (_M_replace_aux): Likewise, takes size_types instead of
1229         iterators.
1230         (append(size_type, _CharT)): Update call.
1231         (assign(size_type, _CharT)): Ditto.
1232         (replace(iterator, iterator, size_type, _CharT)): Ditto.
1233         (_M_replace_dispatch(iterator, iterator, _Integer,
1234         _Integer, __true_type)): Ditto.
1235         * include/bits/basic_string.tcc (assign(const _CharT*,
1236         size_type)): Ditto.
1237         (insert(size_type, const _CharT*, size_type)): Ditto.
1238         (replace(size_type, size_type, const _CharT*,
1239         size_type)): Ditto.
1240         (_M_replace(iterator, iterator, _InputIterator,
1241         _InputIterator)): Ditto.
1242         (append(const basic_string&)): Ditto.
1243         (append(const basic_string&, size_type, size_type): Ditto.
1244         (append(const _CharT*, size_type): Ditto.
1245         (_M_replace_safe, _M_replace_safe): Change definitions
1246         accordingly, simplify.
1247         * string-inst.cc (_M_replace_safe): Don't instantiate.
1249 2004-01-21  Paolo Carlini  <pcarlini@suse.de>
1251         * include/bits/basic_string.tcc (append(const basic_string&)):
1252         Revert previous change.
1253         (append(const basic_string&, size_type, size_type)): Revert
1254         previous change, use _M_check and _M_limit.
1256 2004-01-21  Paolo Carlini  <pcarlini@suse.de>
1258         * include/bits/basic_string.h (_M_check): Change to return
1259         a checked __pos and take an additional const char* argument.
1260         (_M_fold): Rename to _M_limit, change to return a size_type,
1261         corresponding to the __off limited to the actual length.
1262         (insert(size_type, size_type, _CharT)): Update call, call
1263         replace.
1264         (insert(iterator, _CharT)): Call replace(iterator, iterator,
1265         size_type, _CharT) instead.
1266         (erase(size_type, size_type)): Update calls.
1267         (replace(size_type, size_type, size_type, _CharT)): Ditto.
1268         (substr(size_type, size_type)): Use _M_check.
1269         * include/bits/basic_string.tcc (basic_string(const basic_string&,
1270         size_type, size_type)): Update calls.
1271         (basic_string(const basic_string&, size_type, size_type,
1272         const _Alloc&)): Ditto.
1273         (assign(const basic_string&, size_type, size_type)): Use the
1274         new _M_check and _M_limit.
1275         (insert(size_type, const basic_string&, size_type, size_type):
1276         Ditto.
1277         (insert(size_type, const _CharT*, size_type)): Ditto.
1278         (replace(size_type, size_type, const _CharT*, size_type): Ditto.
1279         (replace(size_type, size_type, const basic_string&,
1280         size_type, size_type)): Ditto.
1281         (append(const basic_string&)): Ditto.
1282         (append(const basic_string&, size_type, size_type)): Ditto.
1283         (copy(_CharT*, size_type, size_type)): Ditto.
1284         (compare(size_type, size_type, const basic_string&)): Ditto.
1285         (compare(size_type, size_type, const basic_string&,size_type,
1286         size_type)): Ditto.
1287         (compare(size_type, size_type, const _CharT*)): Ditto.
1288         (compare(size_type, size_type, const _CharT*, size_type)): Ditto.
1290 2004-01-19  Stefan Olsson  <stefan@snon.net>
1292         * include/ext/mt_allocator.h: If a thread, when it dies, still has
1293         memory on it's freelist this memory is not returned to global
1294         list. Simplification of deallocate so that memory is always
1295         returned to the calling thread id's freelist instead of to
1296         global. Fix typos. Add volatile where appropriate.
1298 2004-01-19  Loren J. Rittle  <ljrittle@acm.org>
1300         * testsuite/ext/stdio_filebuf/char/10063-2.cc: Treat unbuffered.
1301         * testsuite/ext/stdio_filebuf/char/10063-3.cc: New test.  Like -2 but
1302         use __gnu_cxx::stdio_sync_filebuf<char> instead; allow buffered stream.
1304 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
1306         * src/debug.cc: Make sure all the names are prefixed with
1307         double (or single) underscore.
1309 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
1311         * src/debug.cc: Trivial formatting change.
1313 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
1315         * include/bits/basic_string.tcc (_S_construct(size_type,
1316         _CharT, const _Alloc&)): Remove redundant try/catch.
1317         (_M_mutate(size_type, size_type, size_type)): Ditto.
1318         (_M_clone(const _Alloc&, size_type)): Ditto.
1320 2004-01-18  Paolo Carlini  <pcarlini@suse.de>
1322         * include/bits/basic_string.h (c_str()): Simplify, due to
1323         21.3.4 the internal representation is always kept null-terminated.
1324         * include/bits/basic_string.tcc (_M_clone): Null-terminate.
1325         * testsuite/21_strings/basic_string/element_access/char/4.cc: New.
1326         * testsuite/21_strings/basic_string/element_access/wchar_t/4.cc:
1327         Ditto.
1329 2004-01-18  Paolo Carlini  <pcarlini@suse.de>
1331         * include/bits/basic_string.h (append(size_type, _CharT)):
1332         Moved inline, just call _M_replace_aux, no source iterators at
1333         risk of being clobbered.
1334         (assign(size_type, _CharT)): Call directly _M_replace_aux.
1335         (_M_replace(iterator, iterator, _InputIterator, _InputIterator,
1336         input_iterator_tag)): Remove fifth unused argument.
1337         (_M_replace_dispatch(iterator, iterator, _InputIterator,
1338         _InputIterator, __false_type)): Update call.
1339         * include/bits/basic_string.tcc (replace(size_type, size_type,
1340         const _CharT*, size_type)): Update call.
1341         (_M_replace_aux(iterator, iterator, size_type, _CharT)): Tweak
1342         throw string literal.
1343         (_M_replace_safe(iterator, iterator, _ForwardIterator,
1344         _ForwardIterator)): Likewise.
1345         (_M_replace(iterator, iterator, _InputIterator, _InputIterator,
1346         input_iterator_tag)): Remove fifth unused argument.
1347         (append(size_type __n, _CharT __c)): Move inline.
1348         * src/string-inst.cc (S::_M_replace(S::iterator, S::iterator,
1349         const C*, const C*, input_iterator_tag)): Remove fifth unused
1350         argument.
1352 2004-01-16  Benjamin Kosnik  <bkoz@redhat.com>
1354         * testsuite/ext/enc_filebuf/char/13189.cc: Fix guards.
1355         * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Same.
1357 2004-01-16  Danny Smith  <dannysmith@users.sourceforge.net>
1359         * testsuite/testsuite_hooks.cc (try_mkfifo): Avoid calling
1360         mkfifo for mingw32.
1362 2004-01-15  Stefan Olsson  <stefan@snon.net>
1364         * include/ext/mt_allocator.h: Reuse thread id's as soon as
1365         possible by changing the behaviour of thread_freelist to do
1366         push_front when threads die instead of push_back.
1368 2004-01-14  Paolo Carlini  <pcarlini@suse.de>
1370         * include/bits/locale_facets.h (struct __numpunct_cache):
1371         Add member _M_grouping_size, caching the length of _M_grouping.
1372         (__numpunct_cache<>::_M_cache): Assign the latter.
1373         (__verify_grouping): Move declaration...
1374         * include/bits/locale_facets.tcc (__verify_grouping):
1375         ... here, change signature to take a const char* and a size_t
1376         for the grouping; not a template anymore.
1377         (__add_grouping, num_put::_M_group_int, num_put::_M_group_float):
1378         Likewise change signature and tweak consistently.
1379         (num_get::_M_extract_float, num_get::_M_extract_int,
1380         num_put::_M_insert_int, num_put::_M_insert_float,
1381         money_get::do_get(string_type&), money_get::do_put(string_type)):
1382         Update callers.
1383         * config/locale/generic/numeric_members.cc
1384         (numpunct<>::_M_initialize_numpunct): Assign the new member.
1385         * config/locale/gnu/numeric_members.cc
1386         (numpunct<>::_M_initialize_numpunct): Likewise.
1387         * src/locale-inst.cc (__add_grouping): Tweak signature.
1388         (__verify_grouping): Don't instantiate, not a template anymore.
1390         * include/bits/locale_facets.h: Rename _M_truename_len ->
1391         _M_truename_size, _M_falsename_len -> _M_falsename_size.
1392         * include/bits/locale_facets.tcc: Likewise.
1393         * config/locale/generic/numeric_members.cc: Likewise.
1394         * config/locale/gnu/numeric_members.cc: Likewise.
1396 2004-01-14  Stefan Olsson  <stefan@snon.net>
1398         * include/ext/mt_allocator.h: Fixups.
1399         * testsuite/performance/allocator.cc: Enable __mt_alloc tests.
1400         * testsuite/performance/allocator_thread.cc: Same.
1402 2004-01-13  Benjamin Kosnik  <bkoz@redhat.com>
1404         * testsuite/performance/ifstream_extract_float.cc: Add higher
1405         precision tests.
1406         * testsuite/performance/ofstream_insert_float.cc: Same.
1408 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
1410         * src/locale-misc-inst.cc (__convert_from_v(long),
1411         __convert_from_v(unsigned long), __convert_from_v(long long),
1412         __convert_from_v(unsigned long long)): Remove, unused.
1414 2004-01-13  Benjamin Kosnik  <bkoz@redhat.com>
1416         * testsuite/performance/ifstream_extract_float.cc: New.
1417         * testsuite/performance/ofstream_insert_float.cc: Float generation
1418         matches above.
1420         * 20_util/auto_ptr.cc, auto_ptr_neg.cc: Break into...
1421         * 20_util/auto_ptr/1.cc: ...this.
1422         * 20_util/auto_ptr/2.cc: Same.
1423         * 20_util/auto_ptr/3.cc: Same.
1424         * 20_util/auto_ptr/3946.cc: Same.
1425         * 20_util/auto_ptr/4.cc: Same.
1426         * 20_util/auto_ptr/5.cc: Same.
1427         * 20_util/auto_ptr/6.cc: Same.
1428         * 20_util/auto_ptr/7.cc: Same.
1429         * 20_util/auto_ptr/assign_neg.cc
1430         * 20_util/pairs.cc: Break into...
1431         * 20_util/pair/1.cc: ...this.
1432         * 20_util/pair/2.cc: Same.
1433         * 20_util/pair/3.cc: Same.
1434         * 20_util/pair/4.cc: Same.
1436 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
1438         * include/bits/locale_facets.tcc (num_get::do_get(void*&)):
1439         Set correctly just basefield, the only group that matters.
1441 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
1443         * include/ext/rope (_Rope_rep_alloc_base): Eliminate.
1444         (_Rope_rep_base): Inherit directly from the rope allocator;
1445         use rebinding instead of _Alloc_traits; pick up data member
1446         from _Rope_rep_alloc_base.
1447         (_Rope_alloc_base): Eliminate.
1448         (_Rope_base): Inherit directly from the rope allocator; use
1449         rebinding instead of _Alloc_traits; pick up data member from
1450         _Rope_alloc_base.
1451         (rope::_S_new_RopeLeaf, rope::_S_new_RopeConcatenation,
1452         rope::_S_new_RopeFunction, rope::_S_new_RopeSubstring): Tweak.
1454 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
1456         PR libstdc++/13650
1457         * include/bits/basic_string.tcc (compare(size_type, size_type,
1458         const _CharT*, size_type)): Implement correctly the resolution
1459         of DR 5: basically, s is a char array, -not- a C string.
1460         * include/bits/basic_string.h: Tweak some comments.
1461         * testsuite/21_strings/basic_string/compare/char/13650.cc: New.
1462         * testsuite/21_strings/basic_string/compare/wchar_t/13650.cc: New.
1464 2004-01-12  Andreas Tobler  <a.tobler@schweiz.ch>
1466         * testsuite/lib/libstdc++.exp: Set LD_LIBRARY_PATH_32 for
1467         Solaris.
1469 2004-01-12  Paolo Carlini  <pcarlini@suse.de>
1471         * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc:
1472         Use try_mkfifo.
1473         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc:
1474         Likewise.
1476 2004-01-12  Paolo Carlini  <pcarlini@suse.de>
1478         * include/bits/locale_facets.h (struct __numpunct_cache):
1479         Add members _M_truename_len and _M_falsename_len, caching
1480         the lengths of _M_truename and _M_falsename.
1481         (__numpunct_cache<>::_M_cache): Assign the latter.
1482         * include/bits/locale_facets.tcc (num_get::do_get(bool&),
1483         num_put::do_put(bool)): Use the new members, thus avoiding
1484         computing string lengths again and again.
1485         * config/locale/generic/numeric_members.cc
1486         (numpunct<>::_M_initialize_numpunct): Assign the new members.
1487         * config/locale/gnu/numeric_members.cc
1488         (numpunct<>::_M_initialize_numpunct): Likewise.
1490 2004-01-12  Mark Mitchell  <mark@codesourcery.com>
1492         * testsuite/testsuite_hooks.h (__gnu_test::try_mkfifo): Declare it.
1493         * testsuite/testsuite_hooks.cc (__gnu_test::try_mkfifo): Define
1494         it.
1495         * testsuite/27_io/basic_filebuf/close/char/4879.cc: Use try_mkfifo
1496         and remove Cygwin XFAIL.
1497         * testsuite/27_io/basic_filebuf/close/char/9964.cc: Likewise.
1498         * testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc: Likewise.
1499         * testsuite/27_io/basic_filebuf/open/char/9507.cc: Likewise.
1500         * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc:
1501         Likewise.
1502         * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise.
1503         * testsuite/27_io/objects/char/7.cc: Likewise.
1504         * testsuite/27_io/objects/char/9661-1.cc: Likewise.
1505         * testsuite/27_io/objects/wchar_t/7.cc: Likewise.
1506         * testsuite/27_io/objects/wchar_t/9661-1.cc: Likewise.
1508 2004-01-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1510         * include/std/std_complex.h (std::complex<>::real): Return a
1511         reference. Add non-const overload.
1512         (std::complex<>::real): Likewise.
1513         (std::real): Likewise.
1514         (std::imag): Likewise.
1515         (std::operator+): Tidy.
1516         (std::operator-): Likewise.
1517         (std::operator*): Likewise.
1518         (std::operator/): Likewise.
1519         (std::operator>>): Likewise.
1521 2004-01-11  Paolo Carlini  <pcarlini@suse.de>
1523         PR libstdc++/13582
1524         * include/bits/fstream.tcc (imbue): Exploit the external
1525         buffer to imbue 'on the fly' a new locale and convert its
1526         remainder with the new codecvt facet.
1527         (underflow): Tweak slightly to deal with this special case.
1528         * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc: New.
1529         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc: Ditto.
1530         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Ditto.
1531         * testsuite/27_io/objects/wchar_t/13582-1_xin.cc: Ditto.
1532         * testsuite/27_io/objects/wchar_t/13582-1_xin.in: Ditto.
1534 2004-01-10  Paolo Carlini  <pcarlini@suse.de>
1536         * docs/html/ext/lwg-active.html, docs/html/ext/lwg-defects.html:
1537         Import Revision 28.
1539 2004-01-10  Paolo Carlini  <pcarlini@suse.de>
1541         PR libstdc++/13630
1542         * include/bits/locale_classes.h (class locale): Fix category
1543         typedef.
1544         * testsuite/22_locale/locale/13630.cc: Add.
1546 2004-01-10  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1548         * include/bits/locale_facets.h: Make a name really dependent. This
1549         will be needed when Core Issue 224 is implemented.
1551 2004-01-09  Paolo Carlini  <pcarlini@suse.de>
1553         * testsuite/performance/allocator.cc: Demangle typeid(obj).name().
1554         * testsuite/performance/allocator_thread.cc: Likewise.
1556 2004-01-07  Benjamin Kosnik  <bkoz@redhat.com>
1558         * crossconfig.m4: Add LFS, io bits to linux cross config.
1559         * acconfig.h: Remove obsolete bits, reorder.
1560         * config.h.in: Regenerate.
1561         * aclocal.m4: Same.
1562         * configure: Same.
1564 2004-01-07  Gawain Bolton  <gp.bolton@computer.org>
1566         * include/bits/stl_list.h:
1567         * include/bits/list.tc:
1568         * src/list.cc:
1569         Performance enhancements for destructor, push_front(),
1570         push_back(), pop_front(), pop_back(), sort()
1571         Eliminated static_casts where possible.
1572         Moved code out of header files into new src/list.cc
1573         implementation file for library where possible.
1574         Remove inheritance from iterator class and create separate
1575         classes for non-constant and constant iterators.
1576         * include/bits/stl_tree.h (_Rb_tree class):
1577         * src/tree.cc:
1578         Only erase contents in destructor.
1579         Eliminate unnecessary initialization in assignment operator.
1580         Optimize for the nominal case by not checking whether
1581         container is empty in clear().
1582         Re-order test in _M_insert() to improve performance.
1583         Move initialization of new node's left & right pointers to
1584         src/tree.cc to where new node's colour is initialized
1585         and to reduce the amount of inline code.
1586         Use  _M_leftmost() and _M_end() to improve readability where
1587         appropriate.
1588         Create separate classes for non-constant and constant
1589         iterators to clarify code, avoid extra template parameters and
1590         casting away constness.
1592 2004-01-07  Benjamin Kosnik  <bkoz@redhat.com>
1594         * src/Makefile.am (sources): Add list.cc, tree.cc.
1595         * src/stl_tree.cc: Move to...
1596         * src/tree.cc: ...here.
1597         * src/list.cc: Add.
1598         * config/linker-map.gnu: Tweaks.
1599         * testsuite/23_containers/map/operators/1_neg.cc: Add excess errors.
1600         * testsuite/23_containers/set/operators/1_neg.cc: Add excess errors.
1602         * bits/stl_vector.h: Column wrap comments.
1604 2004-01-07  Loren J. Rittle  <ljrittle@acm.org>
1606         (re-open) PR libstdc++/12658
1607         * src/locale_init.cc (locale::locale): Remove ill-scoped mutex.
1608         (locale::global): Likewise.
1610 2004-01-07  Paolo Carlini  <pcarlini@suse.de>
1612         * testsuite/27_io/basic_istream/extractors_other/char/9318-in.cc:
1613         Remove redundant #include.
1614         * testsuite/27_io/basic_ostream/endl/char/1.cc: Likewise.
1615         * testsuite/27_io/basic_ostream/ends/char/1.cc: Likewise,
1616         re-enable normal testing.
1617         * testsuite/27_io/basic_ostream/ends/char/2.cc: Remove redundant
1618         #include.
1619         * testsuite/27_io/basic_ostream/flush/char/1.cc: Likewise.
1620         * testsuite/27_io/basic_ostream/inserters_character/char/1.cc:
1621         Likewise.
1622         * testsuite/27_io/basic_ostream/inserters_character/char/2.cc:
1623         Likewise.
1624         * testsuite/27_io/basic_ostream/inserters_character/char/3.cc:
1625         Likewise.
1626         * testsuite/27_io/basic_ostream/inserters_character/char/4.cc:
1627         Likewise.
1628         * testsuite/27_io/basic_ostream/inserters_character/char/5.cc:
1629         Likewise.
1630         * testsuite/27_io/basic_ostream/inserters_character/char/6.cc:
1631         Likewise.
1632         * testsuite/27_io/basic_ostream/inserters_character/char/8.cc:
1633         Likewise.
1634         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/7.cc:
1635         More properly, #include <locale>.
1636         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/8.cc:
1637         Remove redundant #include.
1638         * testsuite/27_io/basic_ostream/inserters_other/char/2.cc: Likewise.
1639         * testsuite/27_io/basic_ostream/inserters_other/char/3.cc: Remove
1640         redundant DejaGnu directive.
1641         * testsuite/27_io/basic_ostream/inserters_other/char/4.cc: Remove
1642         redundant #include.
1644 2004-01-06  Benjamin Kosnik  <bkoz@redhat.com>
1645             Stefan Olsson  <stefan@snon.net>
1647         * scripts/check_performance: Use -pthread.
1648         * testsuite/performance/allocator.cc: Tweaks, add list.
1649         * testsuite/performance/allocator_thread.cc: New.
1651 2004-01-06  Jerry Quinn  <jlquinn@optonline.net>
1653         * include/bits/locale_facets.h: Document public classes and
1654         functions.
1655         * include/bits/locale_facets.tcc (time_get::_M_extract_via_format):
1656         Add comment.
1658 2004-01-06  Paolo Carlini  <pcarlini@suse.de>
1660         * testsuite/27_io/basic_istream/extractors_other/char/1.cc:
1661         Remove redundant #includes.
1662         * testsuite/27_io/basic_istream/extractors_other/char/2.cc:
1663         Likewise.
1664         * testsuite/27_io/basic_istream/extractors_other/char/3.cc:
1665         Likewise.
1666         * testsuite/27_io/basic_istream/get/char/1.cc: Likewise.
1667         * testsuite/27_io/basic_istream/get/char/2.cc: Likewise.
1668         * testsuite/27_io/basic_istream/getline/char/1.cc: Likewise.
1669         * testsuite/27_io/basic_istream/getline/char/2.cc: Likewise.
1670         * testsuite/27_io/basic_istream/getline/char/3.cc: Likewise.
1671         * testsuite/27_io/basic_istream/ignore/char/1.cc: Likewise.
1672         * testsuite/27_io/basic_istream/ignore/char/6360.cc: Likewise.
1673         * testsuite/27_io/basic_istream/ignore/char/7220.cc: Likewise.
1674         * testsuite/27_io/basic_istream/peek/char/1.cc: Likewise.
1675         * testsuite/27_io/basic_istream/peek/char/6414.cc: Likewise.
1676         * testsuite/27_io/basic_istream/putback/char/1.cc: Likewise.
1677         * testsuite/27_io/basic_istream/read/char/1.cc: Likewise.
1678         * testsuite/27_io/basic_istream/read/char/2.cc: Likewise.
1679         * testsuite/27_io/basic_istream/read/char/3.cc: Likewise.
1680         * testsuite/27_io/basic_istream/readsome/char/6746-1.cc:
1681         Likewise.
1682         * testsuite/27_io/basic_istream/readsome/char/6746-2.cc:
1683         Likewise.
1684         * testsuite/27_io/basic_istream/readsome/char/8258.cc:
1685         Likewise.
1686         * testsuite/27_io/basic_istream/seekg/char/2346-fstream.cc:
1687         Likewise.
1688         * testsuite/27_io/basic_istream/seekg/char/2346-sstream.cc:
1689         Likewise.
1690         * testsuite/27_io/basic_istream/seekg/char/8348-1.cc: Likewise.
1691         * testsuite/27_io/basic_istream/seekg/char/8348-2.cc: Likewise.
1692         * testsuite/27_io/basic_istream/tellg/char/8348.cc: Likewise.
1694 2004-01-04  Paolo Carlini  <pcarlini@suse.de>
1696         * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc:
1697         Remove redundant #includes.
1698         * testsuite/27_io/basic_istream/extractors_arithmetic/char/02.cc:
1699         Likewise.
1700         * testsuite/27_io/basic_istream/extractors_arithmetic/char/03.cc:
1701         Likewise.
1702         * testsuite/27_io/basic_istream/extractors_arithmetic/char/06.cc:
1703         Likewise.
1704         * testsuite/27_io/basic_istream/extractors_arithmetic/char/07.cc:
1705         Likewise.
1706         * testsuite/27_io/basic_istream/extractors_arithmetic/char/08.cc:
1707         Likewise.
1708         * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc:
1709         Likewise.
1710         * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
1711         Likewise.
1712         * testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc:
1713         Likewise.
1714         * testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc:
1715         Likewise.
1716         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/1.cc:
1717         Likewise.
1718         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc:
1719         Likewise.
1720         * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/1.cc:
1721         Likewise.
1723 2004-01-04  Mark Mitchell  <mark@codesourcery.com>
1725         PR c++/12226
1726         * testsuite/27_io/basic_filebuf/4.cc: Remove use of invalid copy
1727         constructor.
1728         * testsuite/27_io/basic_fstream/4.cc: Likewise.
1729         * testsuite/27_io/basic_ifstream/4.cc: Likewise.
1730         * testsuite/27_io/basic_ios/4.cc: Likewise.
1731         * testsuite/27_io/basic_iostream/4.cc: Likewise.
1732         * testsuite/27_io/basic_istream/4.cc: Likewise.
1733         * testsuite/27_io/basic_istingstream/4.cc: Likewise.
1734         * testsuite/27_io/basic_ofstream/4.cc: Likewise.
1735         * testsuite/27_io/basic_ostream/4.cc: Likewise.
1736         * testsuite/27_io/basic_ostringstream/4.cc: Likewise.
1737         * testsuite/27_io/basic_stringbuf/5.cc: Likewise.
1738         * testsuite/27_io/basic_stringstream/4.cc: Likewise.
1740 2004-01-04  Paolo Carlini  <pcarlini@suse.de>
1742         * config/locale/generic/numeric_members.cc (_M_initialize_numpunct):
1743         Avoid unnecessarily zero terminating _M_atoms_out and _M_atoms_in;
1744         always use double underscored names.
1745         * config/locale/gnu/numeric_members.cc (_M_initialize_numpunct):
1746         Likewise.
1747         * include/bits/locale_facets.h (struct __numpunct_cache):
1748         Dimension _M_atoms_out and _M_atoms_in one position smaller.
1749         (__numpunct_cache<>::_M_cache): Don't zero terminate _M_atoms_out
1750         and _M_atoms_in.