OSDN Git Service

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