OSDN Git Service

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