OSDN Git Service

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