OSDN Git Service

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