OSDN Git Service

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