OSDN Git Service

193a6a5820bcb8d573fc5f547e6af25660203ae9
[pf3gnuchains/gcc-fork.git] / libstdc++-v3 / ChangeLog
1 2004-03-31  Paolo Carlini  <pcarlini@suse.de>
2
3         * config/locale/generic/c_locale.cc (__convert_to_v(long double&)):
4         In v3 uses of sscanf, the special floating-point numbers INF,
5         INFINITY, etc., cannot occur in input, therefore, if the latter
6         is too large, ERANGE is always stored in errno, no need of finitel.
7
8 2004-03-30  Benjamin Kosnik  <bkoz@redhat.com>
9
10         PR libstdc++/14783
11         * include/bits/stl_tree.h: Adjust initialization list order.
12
13 2004-03-29  Loren J. Rittle  <ljrittle@acm.org>
14
15         * testsuite/thread/pthread7-rope.cc: Update comment to reflect test.
16
17 2004-03-29  Paolo Carlini  <pcarlini@suse.de>
18
19         * testsuite/thread/pthread7-rope.cc: Fix, unpredictably, depending
20         on allocator behavior, the memory pointed by data2 may well be not
21         trashed.
22
23 2004-03-28  Chavdar Botev  <cbotev@yahoo.com>
24
25         PR libstdc++/14245
26         * include/bits/basic_string.tcc
27         (basic_string::basic_string(const basic_string&)): Pass to
28         _Rep::_M_grab the actual allocator of the string being constructed
29         not the default constructed one.
30
31 2004-03-27  Benjamin Kosnik  <bkoz@redhat.com>
32
33         libstdc++ PR/13598
34         * config/locale/ieee_1003.1-2001/codecvt_specializations.h
35         (__enc_traits::_M_destroy): New.
36         (__enc_traits::~__enc_traits): Use it.
37         (__enc_traits::operator=): Use _M_destroy, _M_init.
38         (__enc_traits::__enc_traits): Same.
39
40 2004-03-27  Petur Runolfsson  <peturr02@ru.is>
41
42         * testsuite/ext/enc_filebuf/char/13598.cc: New.
43
44 2004-03-27  Paolo Carlini  <pcarlini@suse.de>
45
46         * include/ext/mt_allocator.h: Uglify consistently names of
47         variables, members and classes; tidy.
48
49 2004-03-27  Dhruv Matani  <dhruvbird@gmx.net>
50
51         * include/ext/mt_allocator.h (__mt_alloc<>::deallocate):
52         Deallocation loop rewrote.
53
54 2004-03-26  Paolo Carlini  <pcarlini@suse.de>
55
56         * include/ext/mt_allocator.h (__mt_alloc<>::allocate,
57         __mt_alloc<>::deallocate): Protect two instances of
58         block->thread_id with __GTHREADS.
59
60 2004-03-25  Gawain Bolton  <gp.bolton@computer.org>
61
62         * include/bits/stl_tree.h (_Rb_tree_impl): Add _Node_allocator
63         default argument in constructors.
64         (_Rb_tree::_M_empty_initialize): Remove.
65         
66 2004-03-25  Benjamin Kosnik  <bkoz@redhat.com>
67         
68         * testsuite/23_containers/map/operators/1_neg.cc: Adjust line numbers.
69         * testsuite/23_containers/set/operators/1_neg.cc: Same.
70
71 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
72
73         * include/bits/cpp_type_traits.h: Changed __is_pod
74         completely. Now, it does not use any of the previous type_traits
75         to detect the pod types, and it also detects function pointers as
76         POD types.
77
78         * include/bits/stl_tree.h: Introduced a new class _Rb_tree_impl,
79         which encapsulates the internal implementation of an rb_tree. Made
80         the allocator a base class of this class instead of the rb_tree,
81         which was not conforming. This _Rb_tree_impl class is also
82         specialized on whether the _Compare parameter is a POD type or
83         not. If so, then it maintains the comparison function as a data
84         member, otherwise it makes the _Compare parameter a base class of
85         itself. Also, _M_key_compare is now a function instead of a data
86         member, so that the above trick can work properly. Delegated the
87         initialization of the other data members to this newly created
88         class. Also, now other member functions of rb_tree must refer to
89         _M_key_compare as _M_impl._M_key_compare(). The other data members
90         (*) can be referenced to as _M_impl.(*), where
91         (*) includes _M_header, and _M_node_count.
92
93 2004-03-25  Paolo Carlini  <pcarlini@suse.de>
94
95         * include/ext/mt_allocator.h (__mt_alloc<>::tune):
96         Add _M_min_bin, the size in bytes of the smallest bin.
97         (__mt_alloc<>::tune()): Tweak accordingly.
98         (__mt_alloc<>::tune(size_t, ...)): Likewise.
99         (__mt_alloc<>::block_record): Change to a union: members next
100         and thread_id are never used at the same time.
101         (__mt_alloc<>::allocate): Update consistently.
102         (__mt_alloc<>::deallocate): Likewise.
103         (__mt_alloc<>::_S_initialize): Update setups of _S_binmap and
104         _S_bin_size for the configurable _M_min_size.
105
106 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
107
108         * include/bits/stl_list.h: Created a _List_impl class and made it
109         derive from the allocator, instead of the list deriving from the
110         allocator class, which was not conformant. Changed all references
111         from this->_M_node to this->_M_impl._M_node * bits/list.tcc: Same
112         as above (changed all references to the concerned variables).
113
114 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
115
116         * include/bits/stl_deque.h: Created a _Deque_impl class and made
117         it derive from the allocator, instead of the deque deriving from
118         the allocator class, which was not conformant. Changed all
119         references to the _M_start, _M_finish, _M_map, and _M_map_size to
120         _M_impl.*.
121         (_Deque_base<_Tp,_Alloc>::~_Deque_base()): Added this->
122         qualification in 2 places where it was missing.
123         (_Deque_base<_Tp,_Alloc>::_M_initialize_map(size_t)): Same as
124         above.
125         * include/bits/deque.tcc: Same as above (changed all references to
126         the concerned variables).
127
128 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
129
130         * include/bits/stl_vector.h: Created a _Vector_impl class and made
131         it derive from the allocator, instead of the _Vector_base class,
132         deriving from the allocator which was not conformant. Changed all
133         references to the _M_start, _M_finish, and _M_end_of_storage to
134         _M_impl.*.
135         * include/bits/vector.tcc: Same as above (changed all references
136         to the concerned variables).
137
138 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
139
140         * testsuite/23_containers/deque/cons/clear_allocator.cc: New.
141         * testsuite/23_containers/list/cons/clear_allocator.cc: New.
142         * testsuite/23_containers/vector/cons/clear_allocator.cc: New.
143         
144 2004-03-24  Dhruv Matani  <dhruvbird@gmx.net>
145
146         * include/ext/malloc_allocator.h: Fixed the construct function to
147         call global placement new instead of assignment. Added a check
148         after the return from malloc to check whether returned pointer is
149         NULL, and if so, throw std::bad_alloc().
150         * include/ext/debug_allocator.h: Added a check in the deallocate
151         function to check whether the user has passed a NULL pointer or
152         not.
153         
154 2004-03-24  Benjamin Kosnik  <bkoz@redhat.com>
155
156         * docs/html/20_util/allocator.html: Add bitmap_allocator links.
157
158 2004-03-24  Andreas Schwab  <schwab@suse.de>
159
160         * testsuite/lib/prune.exp (prune_g++_output): Ignore errata
161         warning from IA64 assembler.
162
163 2004-03-24  Dhruv Matani  <dhruvbird@gmx.net>
164         
165         * include/ext/bitmap_allocator.h: (_Bit_scan_forward) -> Made this
166         function call __builtin_ctz instead of the while loop.
167         (allocate) -> If condition has __builtin_expect.
168         (deallocate) -> Ditto.
169         Renamed a few left-over variables and typedefs according to the
170         C++STYLE mentioned in the documentation.
171         Protected calls to __gthread* by __gthread_active_p(), whose value
172         is cached in the local variable __threads_active.
173
174 2004-03-24  Felix Yen  <fwy@alumni.brown.edu>
175
176         * testsuite/performance/20_util/allocator/producer_consumer.cc:
177         Use linear algorithm for producer.
178         
179 2004-03-24  Paolo Carlini  <pcarlini@suse.de>
180
181         * include/ext/mt_allocator.h (__mt_alloc<>::allocate,
182         __mt_alloc<>::deallocate): Avoid redundant conditionals.
183
184 2004-03-23  Benjamin Kosnik  <bkoz@redhat.com>
185
186         * include/bits/locale_facets.h: Tweaks for 80 column.
187         (__numpunct_cache::_M_cache): Move to locale_facets.tcc.
188         (__moneypunct_cache::_M_cache): Same.
189         (num_get): Don't inherit from __num_base.
190         (num_put): Same.
191         (money_get): Don't inherit from money_base.
192         (money_put): Same.
193         (__timepunct::_M_am_pm_format): New.
194         (time_get::_M_extract_num): Return iterator, use ios_base as argument.
195         (time_get::_M_extract_name): Same.
196         (time_get::_M_extract_via_format): Same.
197         * include/bits/locale_facets.tcc: Tweaks for 80 column.
198         Use _M_getloc instead of getloc.
199         * testsuite/22_locale/money_put/put/char/9780-3.cc: New.
200         * testsuite/22_locale/num_put/put/char/9780-2.cc: New.
201         * testsuite/22_locale/time_put/put/char/9780-1.cc: New.
202
203 2004-03-22  Paolo Carlini  <pcarlini@suse.de>
204
205         * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Add pool_allocator.
206         * configure: Regenerate.
207         * config/allocator/pool_allocator_base.h: New.
208         * include/ext/pool_allocator.h: Convert to a standard-conforming
209         allocator.
210         * src/allocator.cc: Tweak instantiations.
211         * testsuite/performance/20_util/allocator/insert.cc: Add __pool_alloc.
212         * testsuite/performance/20_util/allocator/insert_insert.cc: Ditto.
213         * testsuite/performance/20_util/allocator/list_sort_search.cc: Ditto.
214         * testsuite/performance/20_util/allocator/map_mt_find.cc: Ditto.
215         * testsuite/performance/20_util/allocator/map_thread.cc: Ditto.
216         * testsuite/performance/20_util/allocator/producer_consumer.cc: Ditto.
217
218 2004-03-22  Hans-Peter Nilsson  <hp@axis.com>
219
220         * config/cpu/cris/atomicity.h (__atomic_add): Remove "static
221         inline" and attribute-unused.  Qualify parameter __mem with
222         "volatile".
223         (__exchange_and_add): Ditto.  Add back memory clobber to asm.
224
225 2004-03-20  Paolo Carlini  <pcarlini@suse.de>
226
227         * testsuite/27_io/basic_istream/extractors_arithmetic/char/2.cc:
228         Remove junk.
229         * testsuite/27_io/basic_istream/extractors_arithmetic/char/3.cc:
230         Likewise.
231         * testsuite/27_io/basic_istream/extractors_arithmetic/char/6.cc:
232         Likewise.
233         * testsuite/27_io/basic_istream/extractors_arithmetic/char/7.cc:
234         Likewise.
235         * testsuite/27_io/basic_istream/extractors_arithmetic/char/8.cc:
236         Likewise.
237         * testsuite/27_io/basic_istream/extractors_arithmetic/char/9.cc:
238         Likewise.
239         * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
240         Likewise.
241         * testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc:
242         Likewise.
243         * testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
244         Likewise.
245         * testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc:
246         Likewise.       
247
248 2004-03-20  Paolo Carlini  <pcarlini@suse.de>
249
250         * include/std/std_valarray.h: Document DR389 [Ready].
251         * docs/html/ext/howto.html: Add an entry for DR389.
252
253 2004-03-19  Michael Eager  <eager@mvista.com>
254
255         * config/cpu/mips/atomicity.h:  Prevent reg loads between LL and
256         SC instructions.
257
258 2004-03-19  Paolo Carlini  <pcarlini@suse.de>
259
260         * testsuite/22_locale/num_get/get/char/11.cc: Remove redundant
261         static_cast-s.
262         * testsuite/22_locale/num_get/get/char/12.cc: Likewise.
263         * testsuite/22_locale/num_get/get/char/13.cc: Likewise.
264         * testsuite/22_locale/num_get/get/char/14.cc: Likewise.
265         * testsuite/22_locale/num_get/get/char/15.cc: Likewise.
266         * testsuite/22_locale/num_get/get/wchar_t/11.cc: Likewise.
267         * testsuite/22_locale/num_get/get/wchar_t/12.cc: Likewise.
268         * testsuite/22_locale/num_get/get/wchar_t/13.cc: Likewise.
269         * testsuite/22_locale/num_get/get/wchar_t/14.cc: Likewise.
270         * testsuite/22_locale/num_get/get/wchar_t/15.cc: Likewise.
271
272 2004-03-19  Paolo Carlini  <pcarlini@suse.de>
273             Petur Runolfsson  <peturr02@ru.is>
274
275         PR libstdc++/12077
276         * include/ext/stdio_sync_filebuf.h (showmanyc): Remove, there's
277         no way to find out the conversion used by the underlying FILE*.
278         * testsuite/ext/stdio_sync_filebuf/wchar_t/12077.cc: New.
279         * testsuite/27_io/objects/char/9.cc: Tweak.
280
281 2004-03-19  Paolo Carlini  <pcarlini@suse.de>
282
283         PR libstdc++/14648
284         * include/ext/ropeimpl.h (rope<>::_S_apply_to_pieces): Fix
285         memory allocation/deallocation calls.
286         * testsuite/ext/14648.cc: New.
287
288 2004-03-19  Peter Schmid  <schmid@snake.iap.physik.tu-darmstadt.de>
289
290         PR libstdc++/14647
291         * include/backward/bvector.h (bit_vector): Allocator is in std
292         namespace.
293
294 2004-03-19  Phil Edwards  <phil@codesourcery.com>
295
296         * acinclude.m4 (GLIBCXX_CHECK_WCHAR_T_SUPPORT):  Set LIBICONV,
297         not libiconv.  SUBST this variable as well.
298         * testsuite/Makefile.am (site.exp):  New target, based on that
299         created by automake.  Also set libiconv.
300
301         * configure, Makefile.in, include/Makefile.in, libmath/Makefile.in,
302         libsupc++/Makefile.in, po/Makefile.in, src/Makefile.in,
303         testsuite/Makefile.in:  Regenerate.
304
305 2004-03-16  Benjamin Kosnik  <bkoz@redhat.com>
306
307         * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Default setting is
308         new_allocator for all hosts.
309         * configure: Regenerate.
310         
311 2004-03-16  Paolo Carlini  <pcarlini@suse.de>
312
313         * testsuite/22_locale/num_put/put/char/4.cc: Fix for 64-bit pointers.
314         * testsuite/22_locale/num_put/put/wchar_t/4.cc: Likewise.
315         
316 2004-03-15  Paolo Carlini  <pcarlini@suse.de>
317
318         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
319         Adjust the logic underlying the parsing of symbol to deal
320         correctly with an optional sign component (i.e., when either
321         negative_sign or positive_sign is empty) 
322         * testsuite/22_locale/money_get/get/char/19.cc: New.
323         * testsuite/22_locale/money_get/get/wchar_t/19.cc: New.
324
325 2004-03-15  Paolo Carlini  <pcarlini@suse.de>
326
327         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
328         Do not accept an incomplete currency symbol.
329         * testsuite/22_locale/money_get/get/char/18.cc: New.
330         * testsuite/22_locale/money_get/get/wchar_t/18.cc: New.
331
332 2004-03-13  Benjamin Kosnik  <bkoz@redhat.com>
333
334         * config/allocator: New.
335         * config/allocator/bitmap_allocator_base.h: New.
336         * config/allocator/malloc_allocator_base.h: New.
337         * config/allocator/mt_allocator_base.h: New.
338         * config/allocator/new_allocator_base.h: New.
339         * include/bits/allocator.h: Include c++allocator.h.
340         * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): New.
341         * aclocal.m4: Regenerate.
342         * configure.ac: Use GLIBCXX_ENABLE_ALLOCATOR. 
343         * configure: Regenerate.
344         * include/Makefile.am (host_headers_extra): Add c++allocator.h.
345         * include/Makefile.in: Regenerate.
346         * docs/html/configopts.html: Add enable-libstdcxx-allocator.
347
348 2004-03-12  Benjamin Kosnik  <bkoz@redhat.com>
349
350         * include/bits/allocator.h: Revert.
351
352 2004-03-12  Paolo Carlini  <pcarlini@suse.de>
353
354         * docs/html/ext/howto.html: Add entry for DR 253 [Ready].
355         * include/bits/gslice_array.h: Add comment about DR 253.
356         * include/bits/indirect_array.h: Likewise.
357         * include/bits/mask_array.h: Likewise.
358         * include/bits/slice_array.h: Likewise.
359
360 2004-03-12  Benjamin Kosnik  <bkoz@redhat.com>
361
362         * testsuite/20_util/allocator/14176.cc: New.
363         * include/ext/mt_allocator.h: Formatting fixes.
364         
365 2004-03-11  Dhruv Matani  <dhruvbird@HotPOP.com>
366
367         * include/Makefile.am (ext_headers): Add
368         ${ext_srcdir}/bitmap_allocator.h .
369         * include/Makefile.in: Regenerate.
370         * docs/html/ext/ballocator_doc.txt: New file.
371         * include/ext/bitmap_allocator.h: New file.
372         * testsuite/performance/20_util/allocator/list_sort_search.cc: Add 
373         test.
374         * testsuite/performance/20_util/allocator/map_mt_find.cc: Likewise.
375         * testsuite/performance/20_util/allocator/producer_consumer.cc: Add
376         test for the bitmap_allocator<>.
377         * testsuite/performance/20_util/allocator/insert.cc: Likewise.
378         * testsuite/performance/20_util/allocator/insert_insert.cc: Likewise.
379         * testsuite/performance/20_util/allocator/map_thread.cc: Likewise.
380
381 2004-03-11  Paolo Carlini  <pcarlini@suse.de>
382
383         * include/std/std_complex.h (pow(const complex&, const _Tp&),
384         pow(const _Tp&, const complex&), pow(const complex&,
385         const complex&)): Fully qualify with std:: a few calls.
386         * testsuite/26_numerics/complex/13450.cc: Minor tweak.
387
388 2004-03-11  Steven Bosscher  <stevenb@suse.de>
389
390         PR libstdc++/11706
391         * include/c_std/cmath.tcc (__cmath_power): Define inline.
392
393 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
394
395         * configure.ac: Bump AC_PREREQ to 2.59.
396
397 2004-03-10  Paolo Carlini  <pcarlini@suse.de>
398
399         * testsuite/26_numerics/valarray_subset_assignment.cc: Fix typos.
400
401 2004-03-10  Paul Kienzle  <pkienzle@nist.gov>
402             Paolo Carlini  <pcarlini@suse.de>
403
404         PR libstdc++/13450
405         * include/std/std_complex.h (pow(const complex&, const _Tp&),
406         pow(const _Tp&, const complex&)): Use cmath pow only when safe.
407         * testsuite/26_numerics/complex/13450.cc: New.
408
409         * testsuite/26_numerics/cmath/overloads.C: Rename to overloads.cc.
410         * testsuite/26_numerics/complex/pow.C: Rename to pow.cc and fix.
411
412 2004-03-10  Jerry Quinn  <jlquinn@optonline.net>
413
414         PR libstdc++/3247
415         * include/bits/gslice_array.h (gslice_array()): Make public.
416         (operator=(gslice_array)): Make public.  Implement.
417         * include/bits/indirect_array.h (indirect_array()): Make public.
418         * include/bits/mask_array.h (mask_array()): Make public.
419         (operator=(mask_array)): Make public.  Implement.
420         * include/bits/valarray_array.tcc (__valarray_copy):
421         Comment.  Add versions for gslice_array and mask_array.
422         * testsuite/26_numerics/valarray_subset_assignment.cc:  New test.
423
424 2004-03-09  Benjamin Kosnik  <bkoz@redhat.com>
425
426         * testsuite/23_containers/deque/modifiers/swap.cc: Add in bits for
427         non-weak systems.
428         * testsuite/23_containers/vector/modifiers/swap.cc: Same.
429         * testsuite/23_containers/set/modifiers/swap.cc: Same.
430         * testsuite/23_containers/multiset/modifiers/swap.cc: Same.
431         * testsuite/23_containers/multimap/modifiers/swap.cc: Same.
432         * testsuite/23_containers/map/modifiers/swap.cc: Same.
433         * testsuite/23_containers/list/modifiers/swap.cc: Same.
434
435         * testsuite/22_locale/locale/cons/12658_thread.cc: Catch exceptions.
436
437 2004-03-08  Benjamin Kosnik  <bkoz@redhat.com>
438         
439         PR c++/13658
440         * testsuite/23_containers/deque/modifiers/swap.cc: New.
441         * testsuite/23_containers/list/modifiers/swap.cc: New.
442         * testsuite/23_containers/map/modifiers/swap.cc: New.
443         * testsuite/23_containers/multimap/modifiers/swap.cc: New.
444         * testsuite/23_containers/multiset/modifiers/swap.cc: New.
445         * testsuite/23_containers/set/modifiers/swap.cc: New.
446         * testsuite/23_containers/vector/modifiers/swap.cc: New.
447         
448 2004-03-08  Petur Runolfsson  <peturr02@ru.is>
449
450         PR libstdc++/12658
451         * testsuite/22_locale/locale/cons/12658_thread.cc: New.
452
453 2004-03-08  Paolo Carlini  <pcarlini@suse.de>
454
455         * docs/html/ext/howto.html: Add entry for DR 103 [WP].
456         * include/bits/stl_multiset.h: Add comment about DR 103.
457         * include/bits/stl_set.h: Likewise.
458
459 2004-03-08  Paolo Carlini  <pcarlini@suse.de>
460
461         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
462         The value _space_ indicates that at least one space is required
463         at that position.
464         * testsuite/22_locale/money_get/get/char/17.cc: New.
465         * testsuite/22_locale/money_get/get/wchar_t/17.cc: New.
466
467         * testsuite/22_locale/money_get/get/char/7.cc: Minor tweaks.
468         * testsuite/22_locale/money_get/get/wchar_t/7.cc: Likewise.
469
470         * include/bits/locale_facets.tcc (money_get<>::do_get(long_double&)):
471         Remove redundant conditional on __str.size().
472         
473 2004-03-08  Benjamin Kosnik  <bkoz@redhat.com>
474
475         * include/bits/allocator.h: Switch defaults to mt_alloc.
476
477 2004-03-06  Benjamin Kosnik  <bkoz@redhat.com>
478
479         * include/ext/mt_allocator.h (_S_initialize): If
480         !__GTHREAD_MUTEX_INIT, then initialize _S_thread_freelist_mutex.
481
482 2004-03-06  Benjamin Kosnik  <bkoz@redhat.com>
483
484         PR libstdc++/12658
485         * src/locale_init.cc (locale::locale): Lock critical regions with
486         external mutexes.
487         (locale::global): Same. 
488         * include/bits/concurrence.h (__glibcxx_mutex_define_initialized): 
489         Add in once bits for cases without __GTHREAD_MUTEX_INIT.
490         (__glibcxx_mutex_lock): Same.
491
492         * config/cpu/generic/atomicity.h: Remove
493         _GLIBCXX_NEED_GENERIC_MUTEX, use concurrence.h.
494         * src/misc-inst.cc: Move all locking bits out of this file.
495
496         * config/os/hpux/os_defines.h: Remove _GLIBCXX_INST_ATOMICITY_LOCK.
497         * src/misc-inst.cc: Same.
498         * config/cpu/hppa/atomicity.h: Same.
499
500         * config/linker-map.gnu: Remove types in the signature of atomic
501         exports, as they may vary.
502         
503 2004-03-06  Paolo Carlini  <pcarlini@suse.de>
504
505         * include/bits/locale_facets.tcc: Tweak the comment preceding
506         has_facet: doesn't throw.
507
508 2004-03-06  Paolo Carlini  <pcarlini@suse.de>
509
510         * testsuite/22_locale/money_get/get/char/1.cc: Clean up.
511         * testsuite/22_locale/money_get/get/char/2.cc: Likewise.
512         * testsuite/22_locale/money_get/get/char/3.cc: Likewise.
513         * testsuite/22_locale/money_get/get/char/4.cc: Likewise.
514         * testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise.
515         * testsuite/22_locale/money_get/get/wchar_t/2.cc: Likewise.
516         * testsuite/22_locale/money_get/get/wchar_t/3.cc: Likewise.
517         * testsuite/22_locale/money_get/get/wchar_t/4.cc: Likewise.
518
519 2004-03-06  Paolo Carlini  <pcarlini@suse.de>
520
521         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
522         num_get<>::_M_extract_int, num_get<>::do_get(bool&),
523         __pad<>::_S_pad): Prefer plain operator== to traits::eq().
524         * testsuite/testsuite_character.h (struct __gnu_test::character):
525         Provide operator==.
526         * testsuite/testsuite_hooks.h (struct __gnu_test::pod_char):
527         Likewise.
528
529 2004-03-05  Paolo Carlini  <pcarlini@suse.de>
530
531         * testsuite/27_io/fpos/14320-2.cc: Remove xfail.
532
533 2004-03-04  Benjamin Kosnik  <bkoz@redhat.com>
534
535         * testsuite/23_containers/multiset/insert/1.cc: Test result string.
536
537         * testsuite/23_containers/bitset/invalidation/1.cc: Main always
538         returns 0.      
539         * testsuite/23_containers/deque/invalidation/4.cc: Same.
540         * testsuite/23_containers/list/invalidation/1.cc: Same.
541         * testsuite/23_containers/list/invalidation/2.cc: Same.
542         * testsuite/23_containers/list/invalidation/3.cc: Same.
543         * testsuite/23_containers/list/invalidation/4.cc: Same.
544         * testsuite/23_containers/map/invalidation/2.cc: Same.
545         * testsuite/23_containers/multimap/invalidation/1.cc: Same.
546         * testsuite/23_containers/multimap/invalidation/2.cc: Same.
547         * testsuite/23_containers/multiset/invalidation/1.cc: Same.
548         * testsuite/23_containers/multiset/invalidation/2.cc: Same.
549         * testsuite/23_containers/set/invalidation/1.cc: Same.
550         * testsuite/23_containers/set/invalidation/2.cc: Same.
551         * testsuite/23_containers/vector/invalidation/1.cc: Same.
552         * testsuite/23_containers/vector/invalidation/2.cc: Same.
553         * testsuite/23_containers/vector/invalidation/3.cc: Same.
554         * testsuite/23_containers/vector/invalidation/4.cc: Same.
555
556 2004-03-04  Paolo Carlini  <pcarlini@suse.de>
557
558         * scripts/testsuite_flags.in: Add "-D_GLIBCXX_ASSERT" to
559         CXXFLAGS_save.
560         * testsuite/lib/libstdc++.exp: Don't add it conditionally to
561         DEFAULT_CXXFLAGS. 
562         * testsuite/18_support/numeric_limits.cc: Remove "-D_GLIBCXX_ASSERT"
563         from the dg-options.
564         * testsuite/23_containers/vector/invalidation/1.cc: Likewise.
565         * testsuite/23_containers/vector/invalidation/2.cc: Likewise.
566         * testsuite/23_containers/vector/invalidation/3.cc: Likewise.
567         * testsuite/23_containers/vector/invalidation/4.cc: Likewise.
568         * testsuite/23_containers/vector/resize/1.cc: Likewise.
569         * testsuite/26_numerics/complex_value.cc: Likewise.
570         * testsuite/27_io/ios_base/storage/1.cc: Likewise.
571         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
572         * testsuite/27_io/ios_base/storage/3.cc: Likewise.
573         * testsuite/27_io/manipulators/standard/char/2.cc: Likewise.
574         * testsuite/27_io/objects/char/5.cc: Likewise.
575         * testsuite/27_io/objects/wchar_t/5.cc: Likewise.
576         * testsuite/backward/11460.cc: Likewise.
577         * testsuite/thread/pthread7-rope.cc: Likewise.
578
579         * testsuite/21_strings/basic_string/compare/char/1.cc: Add
580         missing test variable.
581         * testsuite/21_strings/basic_string/compare/wchar_t/1.cc: Add
582         missing test variable.
583
584 2004-03-04  Benjamin Kosnik  <bkoz@redhat.com>
585
586         * testsuite/20_util/allocator/1.cc: Provide explicit
587         instantiations for non-weak systems.
588         * testsuite/20_util/binders.cc: Same.
589         * testsuite/20_util/allocator/8230.cc: Same.
590         * testsuite/20_util/allocator/10378.cc: Same.
591         * testsuite/22_locale/ctype/is/wchar_t/2.cc: Same.
592         * testsuite/22_locale/ctype/is/char/2.cc: Same.
593         * testsuite/thread/pthread7-rope.cc: Same.
594         * testsuite/thread/pthread6.cc: Same.   
595         * testsuite/thread/pthread5.cc: Same.           
596         * testsuite/thread/pthread4.cc: Same.   
597         * testsuite/thread/pthread1.cc: Same.
598         * testsuite/ext/rope.cc: Same.
599         * testsuite/ext/hash_set.cc: Same.
600         * testsuite/ext/hash_map.cc: Same.      
601         * testsuite/ext/concept_checks.cc: Same.
602         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc: Same.
603         * testsuite/25_algorithms/unique/2.cc: Same.
604         * testsuite/25_algorithms/unique/1.cc: Same.
605         * testsuite/25_algorithms/rotate.cc: Same.
606         * testsuite/25_algorithms/min_max.cc: Same.
607         * testsuite/25_algorithms/equal.cc: Same.       
608         * testsuite/24_iterators/rel_ops.cc: Same.
609         * testsuite/24_iterators/iterator.cc: Same.
610         * testsuite/24_iterators/insert_iterator.cc: Same.
611         * testsuite/24_iterators/front_insert_iterator.cc: Same.
612         * testsuite/24_iterators/back_insert_iterator.cc: Same.
613         * testsuite/23_containers/vector/resize/1.cc: Same.
614         * testsuite/23_containers/vector/modifiers/2.cc: Same.
615         * testsuite/23_containers/vector/modifiers/1.cc: Same.
616         * testsuite/23_containers/vector/invalidation/4.cc: Same.
617         * testsuite/23_containers/vector/invalidation/3.cc: Same.
618         * testsuite/23_containers/vector/invalidation/2.cc: Same.       
619         * testsuite/23_containers/vector/invalidation/1.cc: Same.
620         * testsuite/23_containers/vector/element_access/1.cc: Same.
621         * testsuite/23_containers/vector/cons/6513.cc: Same.
622         * testsuite/23_containers/vector/cons/3.cc: Same.
623         * testsuite/23_containers/vector/cons/2.cc: Same.
624         * testsuite/23_containers/vector/cons/1.cc: Same.
625         * testsuite/23_containers/vector/capacity/8230.cc: Same.
626         * testsuite/23_containers/vector/capacity/1.cc: Same.
627         * testsuite/23_containers/vector/bool/6886.cc: Same.
628         * testsuite/23_containers/stack/members/7158.cc: Same.
629         * testsuite/23_containers/set/invalidation/2.cc: Same.
630         * testsuite/23_containers/set/invalidation/1.cc: Same.
631         * testsuite/23_containers/queue/members/7157.cc: Same.
632         * testsuite/23_containers/priority_queue/members/7161.cc: Same.
633         * testsuite/23_containers/multiset/invalidation/2.cc: Same.
634         * testsuite/23_containers/multiset/invalidation/2.cc: Same.     
635         * testsuite/23_containers/multiset/insert/1.cc: Same.
636         * testsuite/23_containers/multimap/invalidation/2.cc: Same.
637         * testsuite/23_containers/multimap/invalidation/2.cc: Same.
638         * testsuite/23_containers/map/operators/1.cc: Same.
639         * testsuite/23_containers/map/invalidation/2.cc: Same.
640         * testsuite/23_containers/map/invalidation/1.cc: Same.
641         * testsuite/23_containers/map/insert/1.cc: Same.
642         * testsuite/23_containers/list/operators/4.cc: Same.
643         * testsuite/23_containers/list/operators/3.cc: Same.
644         * testsuite/23_containers/list/operators/2.cc: Same.
645         * testsuite/23_containers/list/operators/1.cc: Same.
646         * testsuite/23_containers/list/modifiers/3.cc: Same.
647         * testsuite/23_containers/list/modifiers/2.cc: Same.
648         * testsuite/23_containers/list/modifiers/1.cc: Same.
649         * testsuite/23_containers/list/invalidation/4.cc: Same.
650         * testsuite/23_containers/list/invalidation/3.cc: Same.
651         * testsuite/23_containers/list/invalidation/2.cc: Same.
652         * testsuite/23_containers/list/invalidation/1.cc: Same. 
653         * testsuite/23_containers/list/cons/9.cc: Same.
654         * testsuite/23_containers/list/cons/8.cc: Same.
655         * testsuite/23_containers/list/cons/7.cc: Same.
656         * testsuite/23_containers/list/cons/6.cc: Same.
657         * testsuite/23_containers/list/cons/5.cc: Same.
658         * testsuite/23_containers/list/cons/4.cc: Same.
659         * testsuite/23_containers/list/cons/3.cc: Same.
660         * testsuite/23_containers/list/cons/2.cc: Same.
661         * testsuite/23_containers/list/cons/1.cc: Same.
662         * testsuite/23_containers/list/capacity/1.cc: Same.
663         * testsuite/23_containers/deque/operators/1.cc: Same.
664         * testsuite/23_containers/deque/invalidation/4.cc: Same.
665         * testsuite/23_containers/deque/invalidation/3.cc: Same.
666         * testsuite/23_containers/deque/invalidation/2.cc: Same.
667         * testsuite/23_containers/deque/invalidation/1.cc: Same.
668         * testsuite/23_containers/deque/cons/2.cc: Same.
669         * testsuite/23_containers/deque/cons/1.cc: Same.
670
671         * src/allocator.cc: Add char, wchar_t instantiations
672         to match extern template declarations in memory.h.
673
674 2004-03-03  Paolo Carlini  <pcarlini@suse.de>
675
676         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
677         Fix warning regression.
678
679 2004-03-03  Paolo Carlini  <pcarlini@suse.de>
680
681         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
682         Deal properly with empty __digits and negative frac_digits,
683         clean-up a bit.
684
685 2004-03-03  Jonathan Wakely  <redi@gcc.gnu.org>
686
687         * docs/html/documentation.html: Regenerate.
688
689 2004-03-02  Paolo Carlini  <pcarlini@suse.de>
690
691         PR libstdc++/14320
692         * include/bits/postypes.h (class streamoff): Remove, now
693         streamoff is just typedef a 64 bit signed integer type.
694         (class fpos): Tweak consistently.
695         * testsuite/27_io/fpos/14320-1.cc: New.
696         * testsuite/27_io/fpos/14320-2.cc: New.
697         * testsuite/27_io/fpos/14320-3.cc: New.
698         * testsuite/27_io/fpos/14320-4.cc: New.
699         * testsuite/27_io/fpos/14320-5.cc: New.
700         * testsuite/27_io/fpos/mbstate_t/4_neg.cc: xfail for now.
701
702 2004-03-02  Paolo Carlini  <pcarlini@suse.de>
703
704         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
705         Reorganize a bit the main parsing loop, thus early detecting
706         an empty value component.
707         * testsuite/22_locale/money_get/get/char/16.cc: New.
708         * testsuite/22_locale/money_get/get/wchar_t/16.cc: New.
709
710 2004-03-02  Benjamin Kosnik  <bkoz@redhat.com>
711
712         Support automake 1.8.2
713         * configure.ac (AM_INIT_AUTOMAKE): Add -Wno-override.
714         * po/Makefile.am (EXTRA_DIST): New.
715         * po/Makefile.in: Regenerate.
716         * Makefile.in: Same.
717         * include/Makefile.in: Same.
718         * libmath/Makefile.in: Same.
719         * libsupc++/Makefile.in: Same.
720         * src/Makefile.in: Same.
721         * testsuite/Makefile.in: Same.
722
723         * include/Makefile.am (${host_builddir}/gthr-posix.h): Use
724         __GXX_WEAK__ instead of SUPPORTS_WEAK.
725         (${host_builddir}/gthr-default.h): Same.
726         (${host_builddir}/gthr.h): Same.
727         * acinclude.m4 (GLIBCXX_ENABLE_THREAD): Remove
728         _GLIBCXX_SUPPORTS_WEAK, as this behavior can be modified via
729         -fno-weak.
730         * aclocal.m4: Regenerate.
731         * acconfig.h: Remove _GLIBCXX_SUPPORTS_WEAK.
732         * config.h.in: Regenerate.
733         * configure: Same.
734         
735 2004-03-01  Benjamin Kosnik  <bkoz@redhat.com>
736
737         Support autoconf 2.59
738         * acinclude.m4: Quote correctly.
739         * aclocal.m4: Regenerate.
740         * linkage.m4: Same.
741
742 2004-03-01  Benjamin Kosnik  <bkoz@redhat.com>
743
744         * docs/html/test.html: Add multilib RUNTESTFLAGS example.
745
746         * docs/html/18_support/howto.html: Add bit about writing to
747         stderr, mostly by Zack.
748         
749 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
750
751         * include/bits/locale_facets.tcc (money_get<>::_M_extract,
752         money_get<>::do_get(string_type&)): ... and two more.
753
754 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
755
756         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
757         Fix thinkos in the switch from string_type& to string& as last
758         argument.
759
760 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
761
762         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float):
763         Also when parsing exponent sign, first look for thousands_sep
764         and decimal_point; tweak a bit.
765         * testsuite/22_locale/num_get/get/char/15.cc: New.
766         * testsuite/22_locale/num_get/get/wchar_t/15.cc: New.
767         
768         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
769         num_get<>::_M_extract_int): Reorder some conditionals.
770
771 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
772
773         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
774         Consistently with numpunct, enforce the requirements in
775         22.2.6.3, p3 for the thousands separators; tweak a bit.
776         * testsuite/22_locale/money_get/get/char/15.cc: New.
777         * testsuite/22_locale/money_get/get/wchar_t/15.cc: New.
778         
779 2004-03-01  David Billinghurst <David.Billinghurst@riotinto.com>
780
781         * testsuite/lib/libstdc++.exp (v3-list-tests): Use 
782         testsuite_files from correct multilib blddir when running
783         testsuite.
784
785 2004-02-29  Phil Edwards  <phil@codesourcery.com>
786
787         * testsuite/Makefile.am (check-abi, check-abi-verbose):  Copy
788         the summary file to the logfile.
789         * testsuite/Makefile.in:  Regenerate.
790
791 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
792
793         * config/cpu/hppa/atomicity.h (__atomic_add): Make first argument
794         volatile.
795         * config/os/hpux/os_defines.h (_GLIBCXX_INST_ATOMICITY_LOCK): Use
796         __GXX_WEAK__ instead of _GLIBCXX_SUPPORTS_WEAK.
797
798 2004-02-28  Paolo Carlini  <pcarlini@suse.de>
799
800         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float):
801         According to 22.2.3.1, p2, 'units' may be followed by 'e' with
802         no 'decimal-point' in the middle: in this case too we must fix
803         up __found_grouping; slightly tweak.
804         * testsuite/22_locale/num_get/get/char/14.cc: New.
805         * testsuite/22_locale/num_get/get/wchar_t/14.cc: New.
806
807 2004-02-27  Eric Christopher  <echristo@redhat.com>
808             Phil Edwards  <phil@codesourcery.com>
809
810         * testsuite/22_locale/collate/compare/wchar_t/2.cc,
811         testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc,
812         testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc,
813         testsuite/22_locale/collate/hash/wchar_t/2.cc,
814         testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc,
815         testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc,
816         testsuite/22_locale/collate/transform/wchar_t/2.cc,
817         testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc,
818         testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc:
819         Use dg-require-iconv.
820         * testsuite/lib/libstdc++.exp:  Load target-supports.exp.
821
822 2004-02-27  Phil Edwards  <phil@codesourcery.com>
823             Eric Christopher  <echristo@redhat.com>
824
825         * testsuite/config/default.exp:  Update with comments.
826         (${tool}_target_compile):  New wrapper routine.
827         * testsuite/lib/dg-options.exp:  New file, with dg-require-iconv.
828         * testsuite/lib/libstdc++.exp:  Update with comments and cosmetic
829         fixes.
830         (load_gcc_lib, v3track):  New routines.
831         (v3-init):  Rename to libstdc++_init.
832         * testsuite/libstdc++-dg/normal.exp:  No longer call v3-init.
833         Move DEFAULT_CXXFLAGS handling into libstdc++_init.
834
835 2004-02-27  Benjamin Kosnik  <bkoz@redhat.com>
836
837         * config/cpu/hppa/atomicity.h: Include c++config.h to get defines.
838
839         * src/misc-inst.cc (_S_atomicity_lock): Move to __gnu_cxx.
840
841         * config/os/irix/irix5.2/atomicity.h: Merge..
842         * config/os/irix/irix6.5/atomicity.h: Merge..
843         * config/os/irix/atomicity.h: ...into this.
844         * config/os/irix/atomic_word.h: New.
845         * configure.host: Set atomic_word_dir for irix.
846
847         * hppa/atomicity.h: Change __Atomicity_lock to _Atomicity_lock.
848         * i386/atomicity.h: Same.
849         * m68k/atomicity.h: Same.
850         * sparc/atomicity.h: Same.
851
852 2004-02-27  David Edelsohn  <edelsohn@gnu.org>
853
854         * config/os/aix/atomicity.h: Use __gnu_cxx namespace. Remove
855         static, and inline keywords.
856
857 2004-02-27  Paolo Carlini  <pcarlini@suse.de>
858
859         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
860         num_get<>::_M_extract_int, money_get<>::_M_extract): If appropriate,
861         call reserve on the __tmp_gruping string.
862         (num_get<>::_M_extract_float): Don't append unnecessarily a
863         char() to the returned string.
864         * include/bits/locale_facets.tcc: Trivial reformattings.
865
866 2004-02-27  Paolo Carlini  <pcarlini@suse.de>
867
868         * include/bits/locale_facets.h (money_get<>::_M_extract):
869         Change signature: now takes a plain string&.
870         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
871         Update consistently the definition; use the moneypunct cache
872         to parse the value; use swap to change __units.
873         (money_get<>::do_get(long double&)): Update call of _M_extract,
874         avoid ctype::narrow, not correct wrt the standard.
875         (money_get<>::do_get(string_type&)): Likewise, update call
876         of _M_extract, use ctype::widen.
877         * src/locale-inst.cc: Tweak instantiations of _M_extract.
878
879 2004-02-26  Ian Lance Taylor  <ian@wasabisystems.com>
880
881         * testsuite/demangle/abi_examples/01.cc: Expect error -2.
882         * testsuite/demangle/abi_examples/02.cc: Likewise.
883         * testsuite/demangle/regression/cw-11.cc: Likewise.
884         * testsuite/demangle/regression/cw-16.cc: Change two expected
885         results to match libiberty demangler output.
886
887 2004-02-26  Benjamin Kosnik  <bkoz@redhat.com>
888
889         PR libstdc++/10246
890         * libsupc++/Makefile.am: Use libiberty demangler.
891         (c_sources): Add cp-demangle.c.
892         * libsupc++/Makefile.in: Regenerate.
893         * src/Makefile.am (sources): Remove demangle.cc.
894         * src/Makefile.in: Regenerate.
895         * include/Makefile.am (bits_headers): Move demangle.h.
896         (ext_headers): ...here.
897         * include/Makefile.in: Regenerate.
898         * include/bits/demangle.h: Move...
899         * include/ext/demangle.h: ...here.
900         * src/demangle.cc: Remove.
901
902 2004-02-26  Benjamin Kosnik  <bkoz@redhat.com>
903  
904         * include/bits/demangle.h: Add type template parameter to all
905         templates with just an Allocator template parameter.
906  
907 2004-02-25  Benjamin Kosnik  <bkoz@redhat.com>
908
909         * include/bits/atomicity.h: New, forward declarations for __atomic_add
910         and __exchange_and_add.
911         * config/cpu/generic/atomic_word.h: New, typdef for atomic word.
912         * config/cpu/cris/atomic_word.h: Same.
913         * config/cpu/sparc/atomic_word.h: Same.
914         * include/bits/ios_base.h (_Callback_list::_M_remove_reference):
915         Qualifiy with __gnu_cxx.
916         (_Callback_list::_M_add_reference): Same.
917         * include/bits/locale_classes.h (locale::facet::_M_add_reference): Add.
918         (locale::facet::_M_remove_reference): Same.
919         (locale::_Impl::_M_add_reference): Add.
920         (locale::_Impl::_M_remove_reference): Same.
921         * include/bits/basic_string.h (basic_string::_Rep::_M_refcopy): Same.
922         (basic_string::_Rep::_M_dispose): Same.
923         * src/ios.cc (ios_base::xalloc): Same.
924         * src/ios_init.cc (ios_base::Init::Init): Same.
925         (ios_base::Init::~Init): Same.
926         * src/locale.cc (locale::id::_M_id): Same.
927         * config/cpu/i486/atomicity.h: Use __gnu_cxx namespace. Remove
928         static, and inline keywords.
929         * config/cpu/alpha/atomicity.h: Same.
930         * config/cpu/cris/atomicity.h: Same.
931         * config/cpu/generic/atomicity.h: Same.
932         * config/cpu/hppa/atomicity.h: Same.
933         * config/cpu/i386/atomicity.h: Same.
934         * config/cpu/ia64/atomicity.h: Same.
935         * config/cpu/m68k/atomicity.h: Same.
936         * config/cpu/mips/atomicity.h: Same.
937         * config/cpu/powerpc/atomicity.h: Same.
938         * config/cpu/s390/atomicity.h: Same.
939         * config/cpu/sparc/atomicity.h: Same.
940         
941         * src/Makefile.am (host_sources): Add atomicity.cc.
942         (atomicity.cc): New rule.
943         * src/Makefile.in: Regenerate.
944         * include/Makefile.am (host_headers): Remove host atomicity.h.
945         (host_headers): Add atomic_word.h.
946         (bits_headers): Add bits atomicity.h.
947         Change ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR.
948         * include/Makefile.in: Regenerate.
949         * configure.host (atomic_word_dir): Add.
950         * configure.ac: Substitute ATOMIC_WORD_SRCDIR. Change
951         ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR.
952         * configure: Regenerate.
953         * config/linker-map.gnu: Export __exchange_and_add, and __atomic_add.
954
955         * testsuite/27_io/ios_base/cons/assign_neg.cc: Adjust line numbers.
956         * testsuite/27_io/ios_base/cons/copy_neg.cc: Same.      
957         
958 2004-02-25  Jonathan Wakely  <redi@gcc.gnu.org>
959
960         * docs/html/20_util/howto.html, docs/html/20_util/allocator.html,
961         docs/html/ext/howto.html, docs/html/ext/mt_allocator.html:
962         Fix markup, more <link> tags.
963
964 2004-02-25  Carlo Wood  <carlo@alinoe.com>
965
966         * bits/demangle.h
967         namespace __gnu_cxx::demangler
968         (session<Allocator>::qualifier_list_Allocator): Add
969         (session<Allocator>::M_qualifier_list_alloc): Add
970         (session<Allocator>::decode_type_with_postfix):
971         Use M_qualifier_list_alloc instead of calling operator new/delete.
972
973 2004-02-24  Paolo Carlini  <pcarlini@suse.de>
974
975         PR libstdc++/14252
976         * include/bits/postypes.h (class streamoff): Add operator++(),
977         operator++(int), operator--() and operator--(int).
978         * testsuite/27_io/fpos/14252.cc: New.
979
980 2004-02-24  Richard Sandiford  <rsandifo@redhat.com>
981
982         * include/bits/locale_facets.tcc (num_get::_M_extract_int): Fix bounds
983         error in handling of hex constants.
984
985 2004-02-24  Paolo Carlini  <pcarlini@suse.de>
986
987         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
988         Prefer basic_string::append to operator+= and a temporary.
989
990 2004-02-23  Benjamin Kosnik  <bkoz@redhat.com>
991
992         * libsupc++/vterminate.cc (__gnu_cxx::__verbose_terminate_handler):
993         Only use fputs, not write.
994         
995 2004-02-23  Benjamin Kosnik  <bkoz@redhat.com>
996
997         * include/ext/malloc_allocator.h: Add operators ==, !=.
998         * include/ext/new_allocator.h: Add operators ==, !=.
999         * include/ext/mt_allocator.h (__mt_alloc::tune): New.
1000         (__mt_alloc::_S_get_options): New.
1001         (__mt_alloc::_S_set_options): New.      
1002         (__mt_alloc::_S_thread_key_destr): To _S_destroy_thread_key.
1003         (__mt_alloc::_S_no_of_bins): To _S_bin_size.
1004         Move functions out of line, simplify, format.
1005         * src/allocator.cc: Simplify explicit instantiations.
1006         * include/bits/allocator.h: Tweak.
1007         
1008 2004-02-22  Paolo Carlini  <pcarlini@suse.de>
1009
1010         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
1011         Restructure formatting of value component, first dealing with
1012         the non-decimal digits; use reserve.
1013
1014 2004-02-22  Paolo Carlini  <pcarlini@suse.de>
1015
1016         * include/bits/locale_facets.h (class money_get): Inherit
1017         from money_base too; tweak declaration of _M_extract, now
1018         parameterized on _Intl too.
1019         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
1020         Update definition to use the cache; call reserve on __res to
1021         avoid multiple reallocations; fix parsing of sign component
1022         according to 22.2.6.1.2, p3.
1023         (money_get<>::do_get(long double&),
1024         money_get<>::do_get(string_type&)): Update calls of _M_extract. 
1025         * src/locale-inst.cc:  Add instantiations of
1026         money_get::_M_extract<false> and money_get::_M_extract<true>.
1027         * testsuite/22_locale/money_get/get/char/14.cc: New.
1028         * testsuite/22_locale/money_get/get/wchar_t/14.cc: Ditto.
1029         
1030 2004-02-21  Mark Mitchell  <mark@codesourcery.com>
1031
1032         * libsupc++/vterminate.cc
1033         (__gnu_cxx::__verbose_terminate_handler): Guard against recursive
1034         calls to terminate.
1035         * src/demangle.cc (__cxa_demangle): Wrap in try-catch block.
1036
1037         * testsuite/testsuite_hooks.cc (__gnu_test::set_memory_limits): Do
1038         not set RLIMIT_AS on HP-UX.
1039
1040 2004-02-21  Mark Mitchell  <mark@codesourcery.com>
1041
1042         * testsuite/testsuite_hooks.cc (__gnu_test::set_memory_limits): Do
1043         not set RLIMIT_AS on HP-UX.
1044
1045 2004-02-21  Paolo Carlini  <pcarlini@suse.de>
1046
1047         * include/bits/locale_facets.h (class money_base): Add { _S_minus,
1048         _S_zero, _S_end } enum, _S_atoms.
1049         (struct __moneypunct_cache<>): Parameterize on _Intl too; add
1050         _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size,
1051         _M_negative_sign_size, _M_atoms; tweak constructor consistently.
1052         (__moneypunct_cache<>::~__moneypunct_cache): Update.
1053         (__moneypunct_cache<>::_M_cache): Fill the cache.
1054         (class moneypunct): Tweak __cache_type typedef.
1055         (class money_put): Inherit from money_base too; tweak declaration
1056         of _M_insert, now parameterized on _Intl.
1057         * include/bits/locale_facets.tcc
1058         (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New.
1059         (money_put<>::_M_insert): Update definition to use the cache;
1060         call reserve on __res to avoid multiple reallocations.
1061         (money_put<>::do_put(long double),
1062         money_put<>::do_put(const string_type&): Update calls of _M_insert.
1063         * config/locale/generic/monetary_members.cc
1064         (moneypunct<char, true>::_M_initialize_moneypunct,
1065         moneypunct<char, false>::_M_initialize_moneypunct,
1066         moneypunct<wchar_t, true>::_M_initialize_moneypunct,
1067         moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update.
1068         * config/locale/gnu/monetary_members.cc: Likewise.
1069         * config/locale/gnu/monetary_members.cc
1070         (moneypunct<wchar_t, true>::~moneypunct(),
1071         moneypunct<wchar_t, false>::~moneypunct()): Likewise.
1072         * src/globals_locale.cc: Tweak fake_money_cache_c.
1073         * src/locale-inst.cc: Add instantiations for
1074         money_put::_M_insert<false> and money_put::_M_insert<true> and
1075         __moneypunct_cache<C, false>, __moneypunct_cache<C, true>.
1076         * src/locale_facets.cc: Define money_base::_S_atoms.
1077         * src/locale_init.cc: Update placement new of
1078         __moneypunct_cache<char, false>, __moneypunct_cache<char, true>,
1079         __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>.
1080
1081         * config/locale/generic/numeric_members.cc: Clean up.
1082         * config/locale/gnu/numeric_members.cc: Likewise.
1083         * testsuite/22_locale/money_put/put/char/1.cc: Likewise.
1084         * testsuite/22_locale/money_put/put/char/2.cc: Likewise.
1085         * testsuite/22_locale/money_put/put/char/3.cc: Likewise.
1086         * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise.
1087         * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise.
1088         * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise.
1089
1090 2004-02-20  Mark Mitchell  <mark@codesourcery.com>
1091
1092         * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc: Open
1093         FIFO for writing with ios_base::in|ios_base::out.
1094         * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise.
1095         * testsuite/27_io/objects/char/7.cc: Likewise.
1096         * testsuite/27_io/objects/char/9661-1.cc: Open FIFO for writing
1097         with "r+".
1098
1099 2004-02-19  David Edelsohn  <edelsohn@gnu.org>
1100
1101         * 22_locale/collate/compare/wchar_t/2.cc: Change input-charset
1102         from iso-8859-1 to ISO8859-1.
1103         * 22_locale/collate/compare/wchar_t/wrapped_env.cc: Same.
1104         * 22_locale/collate/compare/wchar_t/wrapped_locale.cc: Same.
1105         * 22_locale/collate/hash/wchar_t/2.cc: Same.
1106         * 22_locale/collate/hash/wchar_t/wrapped_env.cc: Same.
1107         * 22_locale/collate/hash/wchar_t/wrapped_locale.cc: Same.
1108         * 22_locale/collate/transform/wchar_t/2.cc: Same.
1109         * 22_locale/collate/transform/wchar_t/wrapped_env.cc: Same.
1110         * 22_locale/collate/transform/wchar_t/wrapped_locale.cc: Same.
1111
1112 2004-02-18  Paolo Carlini  <pcarlini@suse.de>
1113
1114         * include/bits/locale_facets.h (money_get<>::_M_extract):
1115         New, helper for do_get.
1116         (money_put<>::_M_insert): Likewise, for do_put.
1117         * include/bits/locale_facets.tcc (money_get<>::_M_extract,
1118         money_put<>::_M_insert): Define.
1119         (money_get<>::do_get(long double&), money_get<>::do_get(
1120         string_type&), money_put::do_put(long double),
1121         money_put::do_put(const string_type&)): Use the helpers.
1122
1123 2004-02-18  Paolo Carlini  <pcarlini@suse.de>
1124
1125         * config/io/basic_file_stdio.cc (__gnu_internal::xwritev):
1126         Rewrite, avoiding recursion.
1127         (__gnu_internal::xwrite): Minor tweaks.
1128
1129 2004-02-17  Stefan Olsson  <stefan@xapa.se>
1130
1131         * include/ext/mt_allocator.h: Removed the last
1132         pointer. Deallocated blocks are now added to the front of
1133         freelists as proposed by Felix Yen.  This gives roughly 10%
1134         performance boost and saves some memory.
1135         * docs/html/ext/mt_allocator.html: Change due to that deallocated
1136         blocks now are added to the front of freelists. The reason to this
1137         approach is also explained.
1138
1139 2004-02-17  Paolo Carlini  <pcarlini@suse.de>
1140
1141         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
1142         num_get<>::_M_extract_int, money_get<>::do_get): Simplify
1143         grouping fidelity conditional.
1144
1145 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
1146
1147         * testsuite/27_io/basic_filebuf/overflow/char/13858.cc:
1148         Qualify exception with std::.
1149         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Ditto.
1150         * testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc: Ditto.
1151         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
1152         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
1153         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
1154
1155 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
1156
1157         * testsuite/ext/enc_filebuf/char/13189.cc: Don't check
1158         for now that the catch block is not reached.
1159         * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Likewise.
1160
1161 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
1162
1163         * include/bits/locale_facets.tcc (money_get::do_get(string_type&)):
1164         Fix parsing of the remaining sign characters.
1165         * 22_locale/money_get/get/char/2.cc: Tweak: now, correctly,
1166         the input is scanned 'til eof.
1167         * 22_locale/money_get/get/char/4.cc: Likewise.
1168         * 22_locale/money_get/get/wchar_t/2.cc: Likewise.
1169         * 22_locale/money_get/get/wchar_t/4.cc: Likewise.
1170         * 22_locale/money_get/get/char/8.cc: Tweak: override do_neg_format,
1171         not do_pos_format: the former is the only one that matters during
1172         input.
1173         * 22_locale/money_get/get/wchar_t/8.cc: Likewise.
1174
1175         * 22_locale/money_get/get/char/6.cc: Minor tweak.
1176         * 22_locale/money_get/get/wchar_t/6.cc: Likewise.
1177
1178 2004-02-15  David Asher  <david.asher@cavium.com>
1179
1180         PR libstdc++/11352
1181         * include/bits/locale_facets.tcc (__pad<>::_S_pad): Don't
1182         access __olds beyond __oldlen.
1183
1184 2004-02-14  Paolo Carlini  <pcarlini@suse.de>
1185
1186         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Make
1187         sure the exception is actually thrown.
1188         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
1189         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
1190         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
1191
1192 2004-02-14  Paolo Carlini  <pcarlini@suse.de>
1193
1194         PR libstdc++/13858
1195         * include/bits/fstream.tcc (basic_filebuf<>::_M_convert_to_external):
1196         In case of conversion errors, throw ios_failure; simplify.
1197         * testsuite/27_io/basic_filebuf/overflow/char/13858.cc: New.
1198         * testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc: Ditto.
1199         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Tweak,
1200         previously we didn't throw in case of conversion errors, instead
1201         just returned eof().
1202         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
1203         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
1204         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
1205
1206         * include/bits/fstream.tcc (basic_filebuf<>::overflow):
1207         Trivial simplification of a conditional.
1208
1209 2004-02-12  Paolo Carlini  <pcarlini@suse.de>
1210
1211         PR libstdc++/13731 (final part: writev)
1212         * config/io/basic_file_stdio.cc (__gnu_internal::xwritev):
1213         New, a wrapper around writev() handling partial writes.
1214         (__basic_file<char>::xwrite): Move to __gnu_internal and make
1215         static.
1216         (__basic_file<char>::xsputn): Update call.
1217         (__basic_file<char>::xsputn_2): Likewise.       
1218         * config/io/basic_file_stdio.h (__basic_file<char>::xwrite):
1219         Don't declare, now static.
1220
1221 2004-02-11  Stefan Olsson  <stefan@xapa.se>
1222
1223         * docs/html/ext/mt_allocator.html: New.
1224
1225 2004-02-11  Benjamin Kosnik  <bkoz@redhat.com>
1226
1227         * docs/html/20_util/allocator.html: New file, consolidate
1228         allocator information here. Revamp.
1229         * docs/html/documentation.html: Change links.
1230         * docs/html/20_util/howto.html: Same.
1231         * docs/html/ext/howto.html: Same.
1232
1233 2004-02-11  Paolo Carlini  <pcarlini@suse.de>
1234
1235         PR libstdc++/13731 (first part: write)
1236         * config/io/basic_file_stdio.h (__basic_file<char>::xwrite):
1237         New, declare.
1238         * config/io/basic_file_stdio.cc (__basic_file<char>::xwrite):
1239         Define it: a wrapper around write() handling partial write.
1240         (__basic_file<char>::xsputn): Use it.
1241         (__basic_file<char>::xsputn_2): Likewise.
1242
1243 2004-02-11  Paolo Carlini  <pcarlini@suse.de>
1244             Petur Runolfsson  <peturr02@ru.is>
1245
1246         PR libstdc++/14078
1247         * include/std/std_istream.h (operator>>(__istream_type& (*)
1248         (__istream_type&)), operator>>(__ios_type& (*)(__ios_type&)),
1249         operator>>(ios_base& (*)(ios_base&))): Declare inline.
1250         * include/std/std_ostream.h (operator<<(__ostream_type& (*)
1251         (__ostream_type&)), operator<<(__ios_type& (*)(__ios_type&)),
1252         operator<<(ios_base& (*) (ios_base&))): Likewise.
1253         * testsuite/performance/27_io/fmtflags_manipulators.cc: New.
1254
1255 2004-02-10  Loren J. Rittle  <ljrittle@acm.org>
1256
1257         PR libstdc++/14098
1258         * config/linker-map.gnu: Add typeinfo and typeinfo name for
1259         __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> >.
1260
1261         PR libstdc++/14097
1262         * config/linker-map.gnu: Add typeinfo and typeinfo name for
1263         __gnu_cxx::stdio_filebuf<char, std::char_traits<char> >.
1264
1265 2004-02-09  Loren J. Rittle  <ljrittle@acm.org>
1266
1267         * include/ext/pool_allocator.h: Include c++config.h.
1268
1269 2004-02-09  Stefan Olsson  <stefan@xapa.se>
1270
1271         * include/ext/mt_allocator.h: thread_id is unused in non threaded
1272         applications and now has a ifdef to remove it completely on
1273         compilers without thread support. Include stdlib.h due to a
1274         compiler warning on getenv().
1275
1276 2004-02-09  Paul Brook  <paul@codesourcery.com>
1277
1278         * libstdc++-v3/configure.host: Explicitly check for atomicity.h file.
1279
1280 2004-02-09  Paolo Carlini  <pcarlini@suse.de>
1281
1282         PR libstdc++/14071
1283         * src/locale_init.cc (locale::global(const locale&)): Use
1284         locale::name() in order to decide whether calling setlocale.
1285         * testsuite/22_locale/locale/global_locale_objects/14071.cc: New.
1286
1287         * include/bits/locale_classes.h (locale::_Impl::_M_check_same_name()):
1288         Avoid computing &= unnecessarily.
1289
1290 2004-02-09  James E Wilson  <wilson@specifixinc.com>
1291
1292         PR libstdc++/5625
1293         * libsuspc++/eh_personality.cc (PERSONALITY_FUNCTION): Use
1294         __builtin_extend_pointer.
1295
1296 2004-02-09  Paolo Carlini  <pcarlini@suse.de>
1297
1298         PR libstdc++/14072
1299         * include/bits/basic_ios.tcc (basic_ios<>::_M_cache_locale):
1300         Don't leave dangling pointers.
1301         * testsuite/27_io/basic_ios/imbue/14072.cc: New.
1302         * testsuite/22_locale/numpunct/members/pod/2.cc: Tweak, the num_put
1303         facet is needed in the final test.
1304
1305 2004-02-09  Bernardo Innocenti  <bernie@develer.com>
1306
1307         * crossconfig.m4: Don't enable _GLIBCXX_USE_LFS on *-uclinux*.
1308         * configure: Regenerate.
1309
1310 2004-02-08  Richard Henderson  <rth@redhat.com>
1311
1312         PR libstdc++/14026
1313         * libsupc++/eh_catch.cc (__cxa_begin_catch): Don't adjust 
1314         uncaughtExceptions during nested catch rethrow.
1315         * testsuite/18_support/14026.cc: New.
1316
1317 2004-02-08  Paolo Carlini  <pcarlini@suse.de>
1318
1319         * include/bits/basic_string.tcc (assign(const _CharT*, size_type)):
1320         When working in place remember to set the state to sharable
1321         (otherwise, _M_mutate does it).
1322
1323 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
1324
1325         * include/bits/allocator.h, include/bits/basic_ios.h,
1326         include/bits/basic_ios.tcc, include/bits/basic_string.h,
1327         include/bits/basic_string.tcc, include/bits/boost_concept_check.h,
1328         include/bits/char_traits.h, include/bits/codecvt.h,
1329         include/bits/concurrence.h, include/bits/cpp_type_traits.h,
1330         include/bits/demangle.h, include/bits/deque.tcc,
1331         include/bits/fstream.tcc, include/bits/functexcept.h,
1332         include/bits/gslice.h, include/bits/gslice_array.h,
1333         include/bits/indirect_array.h, include/bits/ios_base.h,
1334         include/bits/istream.tcc, include/bits/list.tcc,
1335         include/bits/locale_classes.h, include/bits/locale_facets.h,
1336         include/bits/locale_facets.tcc, include/bits/localefwd.h,
1337         include/bits/mask_array.h, include/bits/ostream.tcc,
1338         include/bits/postypes.h, include/bits/slice_array.h,
1339         include/bits/sstream.tcc, include/bits/stl_algo.h,
1340         include/bits/stl_algobase.h, include/bits/stl_bvector.h,
1341         include/bits/stl_construct.h, include/bits/stl_deque.h,
1342         include/bits/stl_function.h, include/bits/stl_heap.h,
1343         include/bits/stl_iterator.h, include/bits/stl_iterator_base_funcs.h,
1344         include/bits/stl_list.h, include/bits/stl_map.h,
1345         include/bits/stl_multimap.h, include/bits/stl_multiset.h,
1346         include/bits/stl_numeric.h, include/bits/stl_pair.h,
1347         include/bits/stl_queue.h, include/bits/stl_raw_storage_iter.h,
1348         include/bits/stl_relops.h, include/bits/stl_set.h,
1349         include/bits/stl_stack.h, include/bits/stl_tempbuf.h,
1350         include/bits/stl_threads.h, include/bits/stl_tree.h,
1351         include/bits/stl_uninitialized.h, include/bits/stl_vector.h,
1352         include/bits/stream_iterator.h, include/bits/streambuf.tcc,
1353         include/bits/streambuf_iterator.h,include/bits/stringfwd.h,
1354         include/bits/type_traits.h, include/bits/valarray_after.h,
1355         include/bits/valarray_array.h, include/bits/valarray_array.tcc,
1356         include/bits/valarray_before.h, include/bits/vector.tcc: Remove
1357         trailing whitespace.
1358
1359 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
1360
1361         * include/bits/basic_string.h: Fix comment.
1362
1363 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
1364
1365         * include/bits/stl_construct.h: Wrap overlong lines, reformat
1366         according to the coding standards.
1367         * include/bits/stl_pair.h: Likewise.
1368         * include/bits/stl_raw_storage_iter.h: Likewise.
1369         * include/bits/stl_stack.h: Likewise.
1370         * include/bits/stl_uninitialized.h: Likewise.
1371         * include/bits/stream_iterator.h: Likewise.
1372         * include/bits/streambuf_iterator.h: Likewise.
1373         * include/bits/type_traits.h: Likewise.
1374
1375 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
1376
1377         * testsuite/27_io/basic_filebuf/open/char/9507.cc:
1378         Adjust timings.
1379
1380 2004-02-05  Loren J. Rittle  <ljrittle@acm.org>
1381
1382         * scripts/check_performance: Support PCH.
1383
1384         * scripts/check_performance (CXX): Add -DNOTHREAD.
1385         * testsuite/performance/20_util/allocator/insert.cc: Integrate
1386         threaded tests from insert_insert.cc.  Tweak iterations,
1387         remove special cases.
1388         * testsuite/performance/20_util/allocator/insert_insert.cc:
1389         Make all tests single-threaded. Tweak iterations.
1390         * testsuite/performance/20_util/allocator/map_thread.cc:
1391         Tweak iterations.
1392         * testsuite/performance/20_util/allocator/producer_consumer.cc:
1393         Likewise.
1394
1395 2004-02-05  Geoffrey Keating  <geoffk@apple.com>
1396
1397         PR 12179
1398         * .cvsignore: New.
1399         * acinclude.m4 (GLIBCXX_EXPORT_INSTALL_INFO): Use 'gcc', not
1400         'gcc-lib'.  Add comment about poorly-named variables.
1401         * aclocal.m4: Regenerate.
1402         * configure: Regenerate.
1403
1404 2004-02-05  Paolo Carlini  <pcarlini@suse.de>
1405
1406         * include/bits/locale_facets.tcc (money_get::do_get(string_type&)):
1407         Thousands-sep are always optional; thousands-sep are not allowed
1408         after the decimal_point.
1409         * testsuite/22_locale/money_get/get/char/12.cc: New.
1410         * testsuite/22_locale/money_get/get/char/13.cc: New.
1411         * testsuite/22_locale/money_get/get/wchar_t/12.cc: New.
1412         * testsuite/22_locale/money_get/get/wchar_t/13.cc: New.
1413
1414         * testsuite/22_locale/money_get/get/char/1.cc: Clean-up.
1415         * testsuite/22_locale/money_get/get/char/2.cc: Likewise.
1416         * testsuite/22_locale/money_get/get/char/3.cc: Likewise.
1417         * testsuite/22_locale/money_get/get/char/4.cc: Likewise.
1418         * testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise.
1419         * testsuite/22_locale/money_get/get/wchar_t/2.cc: Likewise.
1420         * testsuite/22_locale/money_get/get/wchar_t/3.cc: Likewise.
1421         * testsuite/22_locale/money_get/get/wchar_t/4.cc: Likewise.
1422
1423         * testsuite/22_locale/money_get/get/char/9.cc: Fix citation from
1424         the standard.
1425         * testsuite/22_locale/money_get/get/wchar_t/9.cc: Likewise.
1426
1427 2004-02-05  Richard Sandiford  <rsandifo@redhat.com>
1428
1429         * config/os/irix/irix6.5/os_defines.h (_GLIBCXX_FIONREAD_TAKES_OFF_T):
1430         Define.
1431         * config/io/basic_file_stdio.cc (__basic_file<char>::showmanyc): Use
1432         it to decide whether FIONREAD should take an off_t or int argument.
1433
1434 2004-02-05  Paolo Carlini  <pcarlini@suse.de>
1435
1436         * include/bits/stl_function.h: Minor formatting changes.
1437
1438 2004-02-04  Zack Weinberg  <zack@codesourcery.com>
1439
1440         Revert previous change to config/abi/*/baseline_symbols.txt.
1441
1442 2004-02-04  Benjamin Kosnik  <bkoz@redhat.com>
1443             Zack Weinberg  <zack@codesourcery.com>
1444
1445         * config/io/basic_file_stdio.cc (__gnu_internal::fopen_mode):
1446         New function.
1447         (__basic_file<char>::sys_open, __basic_file<char>::open): Use it.
1448         (__basic_file<char>::_M_open_mode): Delete.
1449         * config/io/basic_file_stdio.cc: Delete declaration of _M_open_mode.
1450
1451         * testsuite/27_io/basic_filebuf/close/char/9964.cc
1452         * testsuite/27_io/basic_filebuf/open/char/9507.cc:
1453         Correct flags to filebuf::open calls.
1454
1455         * config/abi/alpha-freebsd5/baseline_symbols.txt
1456         * config/abi/alpha-linux-gnu/baseline_symbols.txt
1457         * config/abi/hppa-linux-gnu/baseline_symbols.txt
1458         * config/abi/i386-freebsd4/baseline_symbols.txt
1459         * config/abi/i386-freebsd5/baseline_symbols.txt
1460         * config/abi/i486-linux-gnu/baseline_symbols.txt
1461         * config/abi/ia64-linux-gnu/baseline_symbols.txt
1462         * config/abi/mips-linux-gnu/baseline_symbols.txt
1463         * config/abi/sparc-freebsd5/baseline_symbols.txt
1464         * config/abi/sparc-linux-gnu/baseline_symbols.txt
1465         * config/abi/x86_64-linux-gnu/baseline_symbols.txt:
1466         Remove entry for __basic_file<char>::_M_open_mode.
1467
1468 2004-02-04  Loren J. Rittle  <ljrittle@acm.org>
1469
1470         * testsuite/performance/20_util/allocator/insert.cc (main): Tweak.
1471
1472 2004-02-04  Felix Yen  <fwy@alumni.brown.edu>
1473
1474         * testsuite/performance/20_util/producer_consumer.cc: New.
1475         * testsuite/performance/20_util/allocator/insert_insert.cc: Two loops.
1476
1477 2004-02-04  Benjamin Kosnik  <bkoz@redhat.com>
1478
1479         * testsuite/performance/20_util/allocator.cc: Move to..
1480         * testsuite/performance/20_util/allocator/insert.cc: ...here.
1481         * testsuite/performance/20_util/allocator_thread.cc: Move to...
1482         * testsuite/performance/20_util/allocator/insert_insert.cc: ...here.
1483         * testsuite/performance/20_util/allocator_map_thread.cc: Move to...
1484         * testsuite/performance/20_util/allocator/map_thread.cc: ...here.
1485
1486 2004-02-04  Jonathan Wakely  <redi@gcc.gnu.org>
1487
1488         * docs/html/faq/index.html: Recommend using LD_LIBRARY_PATH.
1489         * docs/html/faq/index.txt: Regenerate.
1490
1491 2004-02-04  Dhruv Matani  <dhruvbird@gmx.net>
1492
1493         * include/ext/debug_allocator.h: _M_extra now stands for the
1494         number of extra objects instead of the number of extra bytes.
1495         (debug_allocator::allocate): Adjust.
1496         (debug_allocator::deallocate): Adjust.
1497
1498         * include/ext/pool_allocator.h: Fix typo.
1499
1500 2004-02-03  Felix Yen  <fwy@alumni.brown.edu>
1501             Benjamin Kosnik  <bkoz@redhat.com>
1502
1503         * testsuite/performance/20_util/allocator.cc: Add map,
1504         deque, set tests.
1505         * testsuite/performance/20_util/allocator_thread.cc: Same.
1506
1507 2004-02-03  Paolo Carlini  <pcarlini@suse.de>
1508
1509         * include/bits/basic_string.h (insert(iterator)): Remove,
1510         non-standard and already scheduled for removal.
1511
1512 2004-02-03  Paolo Carlini  <pcarlini@suse.de>
1513
1514         * include/bits/stl_iterator_base_funcs.h: Minor formatting
1515         and indentation tweaks.
1516         * include/bits/stl_iterator_base_types.h: Likewise.
1517         * include/bits/stl_list.h: Likewise.
1518         * include/bits/stl_map.h: Likewise.
1519         * include/bits/stl_tempbuf.h: Likewise.
1520
1521 2004-02-02  Jerry Quinn  <jlquinn@optonline.net>
1522
1523         * include/bits/gslice.h, include/bits/gslice_array.h,
1524         include/bits/indirect_array.h, include/bits/mask_array.h,
1525         include/bits/slice_array.h, include/bits/stl_numeric.h,
1526         include/std/std_valarray.h:  Update copyright years.
1527
1528 2004-02-02  Jerry Quinn  <jlquinn@optonline.net>
1529
1530         * include/bits/gslice.h (gslice):  Document.
1531         * include/bits/gslice_array.h (gslice_array):  Document.
1532         * include/bits/indirect_array (indirect_array):  Document.
1533         * include/bits/mask_array (mask_array):  Document.
1534         * include/bits/slice_array.h (slice,slice_array):  Document.
1535         * include/bits/stl_numeric.h (accumulate, inner_product, partial_sum,
1536         adjacent_difference):  Document
1537         * include/std/std_valarray.h (valarray):  Document.
1538
1539 2004-02-02  Benjamin Kosnik  <bkoz@redhat.com>
1540
1541         * docs/html/19_diagnostics/howto.html: Move verbose terminate
1542         documentation...
1543         * docs/html/18_support/howto.html: Here.
1544         * docs/html/documentation.html: Add reference here.
1545
1546 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
1547
1548         * config/locale/gnu/c++locale_internal.h: Remove prototypes
1549         of no longer used GLIBC thread locale functions.
1550
1551 2004-02-02  Eric Christopher  <echristo@redhat.com>
1552             Zack Weinberg  <zack@codesourcery.com>
1553
1554         * testsuite/22_locale/collate/compare/wchar_t/2.cc: Remove xfail. Use
1555         -finput-charset.
1556         * testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc: Ditto.
1557         * testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc: Ditto
1558         * testsuite/22_locale/collate/hash/wchar_t/2.cc: Ditto.
1559         * testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc: Ditto.
1560         * testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc: Ditto.
1561         * testsuite/22_locale/collate/transform/wchar_t/2.cc: Ditto.
1562         * testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc: Ditto.
1563         * testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc:
1564         Ditto.
1565
1566 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
1567
1568         * include/bits/stl_function.h: Additional minor tweaks.
1569         * include/bits/stl_multiset.h: Likewise.
1570
1571         * include/bits/stl_queue.h: Minor tweaks.
1572
1573 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
1574
1575         PR libstdc++/13976 (continued)
1576         * include/ext/malloc_allocator.h (malloc_allocator::deallocate):
1577         Make the second parameter unnamed, to void unused parameter
1578         warnings.
1579         * include/ext/new_allocator.h (new_allocator::deallocate): Ditto.
1580
1581 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
1582
1583         PR libstdc++/13976
1584         * include/ext/malloc_allocator.h (malloc_allocator::allocate):
1585         Make the second parameter unnamed, to void unused parameter
1586         warnings.
1587         * include/ext/mt_allocator.h (__mt_alloc::allocate): Ditto.
1588         * include/ext/new_allocator.h (new_allocator::allocate): Ditto.
1589
1590 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
1591
1592         * include/bits/stl_algo.h: Additional minor tweaks.
1593         * include/bits/stl_map.h: Likewise.
1594         * include/bits/stl_multimap.h: Likewise.
1595         * include/bits/stl_multiset.h: Likewise.
1596         * include/bits/stl_set.h: Likewise.
1597         * include/bits/stl_tree.h: Likewise.
1598
1599 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
1600
1601         * include/bits/vector.tcc (vector::_M_insert_aux(iterator)):
1602         Remove, unused.
1603
1604 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
1605
1606         * include/bits/stl_function.h: Additional minor tweaks.
1607
1608 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
1609
1610         * include/bits/deque.tcc: Wrap overlong lines, constify
1611         a few variables, reformat according to the coding standards.
1612         * include/bits/list.tcc: Likewise.
1613         * include/bits/stl_deque.h: Likewise.
1614         * include/bits/stl_function.h: Likewise.
1615         * include/bits/stl_iterator.h: Likewise.
1616         * include/bits/stl_iterator_base_funcs.h: Likewise.
1617         * include/bits/stl_iterator_base_types.h: Likewise.
1618         * include/bits/stl_list.h: Likewise.
1619         * include/bits/stl_map.h: Likewise.
1620         * include/bits/stl_multimap.h: Likewise.
1621         * include/bits/stl_multiset.h: Likewise.
1622         * include/bits/stl_relops.h: Likewise.
1623         * include/bits/stl_set.h: Likewise.
1624
1625 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
1626
1627         * include/bits/stl_bvector.h: Wrap overlong lines, constify
1628         a few variables, reformat according to the coding standards.
1629         * include/bits/stl_tree.h: Likewise.
1630
1631 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
1632
1633         * include/bits/stl_algo.h: Minor additional reformat, add
1634         copyright year.
1635         * include/bits/stl_algobase.h: Add copyright year.
1636
1637 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
1638
1639         * include/bits/stl_algo.h: Wrap overlong lines, constify
1640         a few variables, reformat according to the coding standards.
1641         * include/bits/stl_algobase.h: Likewise.
1642         * include/bits/stl_heap.h: Likewise.
1643
1644 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
1645
1646         * include/bits/basic_string.h (_Rep::operator[]): Remove, unused.
1647
1648         * include/bits/basic_string.h: Fix two comments.
1649
1650 2004-01-31  Per Bothner  <per@bothner.com>
1651
1652         * include/ext/mt_allocator.h
1653         (__mt_alloc::_S_thread_freelist_mutex): Guard with
1654         __GTHREAD_MUTEX_INIT.
1655
1656 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
1657
1658         * include/bits/basic_string.tcc (_Rep::_S_create): Minor tweak.
1659
1660 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
1661
1662         * testsuite/21_strings/basic_string/cons/char/6.cc: New.
1663         * testsuite/21_strings/basic_string/cons/wchar_t/6.cc: New.
1664         * testsuite/performance/21_strings/string_cons_input_iterator.cc: New.
1665
1666 2004-01-30  Felix Yen  <fwy@alumni.brown.edu>
1667
1668         * testsuite/performance/20_util/allocator_thread.cc (do_loop):
1669         Don't use clear, but instead assign. Use insert.
1670
1671 2004-01-30  Benjamin Kosnik  <bkoz@redhat.com>
1672
1673         * src/demangle.cc: Add instantiations.
1674         * src/Makefile.am: Remove special rules for demangle.lo, demangle.o.
1675         * src/Makefile.in: Regenerate.
1676
1677 2004-01-30  David Edelsohn  <edelsohn@gnu.org>
1678
1679         * src/allocator.cc: Protect _S_get_thread_id() and
1680         _S_thread_key_destr() with #ifdef __GTHREADS.
1681
1682 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
1683
1684         Reshuffle performance testsuite.
1685         * testsuite/performance/allocator.cc, allocator_map_thread.cc,
1686         allocator_thread.cc, complex_norm.cc, container_benchmark.cc,
1687         cout_insert_int.cc, filebuf_copy.cc, filebuf_sputc.cc,
1688         fstream_seek_write.cc, ifstream_extract_float.cc,
1689         ifstream_extract_int.cc, ifstream_getline.cc, is_wchar_t.cc,
1690         list_create_fill_sort.cc, map_create_fill.cc,
1691         narrow_widen_char.cc, narrow_widen_wchar_t.cc,
1692         ofstream_insert_float.cc, ofstream_insert_int.cc,
1693         string_append.cc, wchar_t_in.cc, wchar_t_length.cc,
1694         wchar_t_out.cc: Split into...
1695         * testsuite/performance/20_util/allocator.cc: New.
1696         * testsuite/performance/20_util/allocator_map_thread.cc: New.
1697         * testsuite/performance/20_util/allocator_thread.cc: New.
1698         * testsuite/performance/21_strings/string_append: New.
1699         * testsuite/performance/22_locale/is_wchar_t.cc: New.
1700         * testsuite/performance/22_locale/narrow_widen_char.cc: New.
1701         * testsuite/performance/22_locale/narrow_widen_wchar_t.cc: New.
1702         * testsuite/performance/22_locale/wchar_t_in.cc: New.
1703         * testsuite/performance/22_locale/wchar_t_length.cc: New.
1704         * testsuite/performance/22_locale/wchar_t_out.cc: New.
1705         * testsuite/performance/23_containers/container_benchmark.cc: New.
1706         * testsuite/performance/23_containers/list_create_fill_sort.cc: New.
1707         * testsuite/performance/23_containers/map_create_fill.cc: New.
1708         * testsuite/performance/26_numerics/complex_norm.cc: New.
1709         * testsuite/performance/27_io/cout_insert_int.cc: New.
1710         * testsuite/performance/27_io/filebuf_copy.cc: New.
1711         * testsuite/performance/27_io/filebuf_sputc.cc: New.
1712         * testsuite/performance/27_io/fstream_seek_write.cc: New.
1713         * testsuite/performance/27_io/ifstream_extract_float.cc: New.
1714         * testsuite/performance/27_io/ifstream_extract_int.cc: New.
1715         * testsuite/performance/27_io/ifstream_getline.cc: New.
1716         * testsuite/performance/27_io/ofstream_insert_float.cc: New.
1717         * testsuite/performance/27_io/ofstream_insert_int.cc: New.
1718
1719 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
1720
1721         * include/bits/basic_string.tcc (_Rep::_S_create):
1722         Never allocate a string bigger than max_size(); always keep
1723         __capacity and __size in sync to avoid memory leaks at
1724         deallocation time.
1725
1726 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
1727
1728         * include/bits/basic_string.tcc (_S_construct(_InIterator,
1729         _InIterator, const _Alloc&, input_iterator_tag)): Simplify
1730         the double loop, streamline.
1731
1732         * include/bits/basic_string.tcc: Very minor tweaks.
1733
1734 2004-01-30  Loren J. Rittle  <ljrittle@acm.org>
1735
1736         * scripts/check_performance: Only compile with $THREAD_FLAG
1737         when test is marked to require it.  Allow multiple
1738         compilations/executions of marked tests.
1739         * testsuite/testsuite_performance.h (report_performance):
1740         Report dynamic thread support status.
1741         (report_header): Likewise.
1742         * testsuite/performance/allocator.cc: Stabilize iteration
1743         count.  Support more allocators.  Mark each allocator test to
1744         run and report independently.
1745         * testsuite/performance/allocator_map_thread.cc: Likewise.
1746         * testsuite/performance/allocator_thread.cc: Likewise.
1747
1748 2004-01-29  Stephen M. Webb  <stephen.webb@bregmasoft.com>
1749
1750         * config/local/generic/c_locale.h: Change ::malloc() to new char[].
1751         * config/local/gnu/c_locale.h: Change ::malloc() to new char[].
1752         * include/bits/stl_tempbuf.h: Convert _Temporary_buffer to use
1753         std::get_temporary_buffer() instead of duplicating its code.
1754         Update to C++STYLE conventions.
1755         * include/std/std_memory.h (get_temporary_buffer): Use ::operator
1756         new() instead of std::malloc().
1757         (return_temporary_buffer): Use ::operator delete() instead of
1758         std::free().
1759
1760 2004-01-29  Benjamin Kosnik  <bkoz@redhat.com>
1761
1762         * include/bits/allocator.h: Temporary switch to new_allocator as
1763         the default to unjam bootstraps.
1764
1765 2004-01-28  Benjamin Kosnik  <bkoz@redhat.com>
1766
1767         * include/Makefile.am (bits_headers): Remove allocator_traits.h.
1768         * include/Makefile.in: Regenerate.
1769         * include/bits/allocator_traits.h: Remove.
1770         * include/bits/allocator.h: Remove allocator_traits.h include, and
1771         relevant comments.
1772         (allocator): Empty base class, inherit from the underlying allocator.
1773         * src/allocator-inst.cc: Move __pool_alloc instantiation to...
1774         * src/allocator.cc: ...here. New. For the underlying allocators.
1775         Add __mt_alloc, __pool_alloc, new_allocator, malloc_allocator bits.
1776         * config/linker-map.gnu: Remove __pool_alloc bits.
1777         * src/Makefile.am (sources): Add allocator.cc.
1778         * src/Makefile.in: Regenerate.
1779         * testsuite/20_util/allocator/1.cc: Split second test into...
1780         * testsuite/20_util/allocator/8230.cc: ...this.
1781         * include/bits/stl_bvector.h (__gnu_norm): Change bit_vector
1782         typedef to use std::allocatore. Format.
1783         * include/ext/pool_allocator.h: Remove allocator_traits.h include,
1784         _Alloc_traits.
1785         * include/ext/mt_allocator.h (__gnu_cxx): Qualify
1786         __throw_bad_alloc calls. Don't include <memory>.
1787         * include/ext/malloc_allocator.h: Remove <memory> include.
1788         * include/ext/new_allocator.h (new_allocator): Same.
1789         * include/ext/ropeimpl.h (__gnu_cxx): Remove __alloc using
1790         declaration. Switch __alloc to _Alloc.
1791         * include/ext/hashtable.h: Remove __alloc.
1792         * include/backward/alloc.h: Only inject allocator, not
1793         implementation details.
1794
1795         * include/ext/mt_allocator.h: Replace free with delete.
1796
1797 2004-01-28  Benjamin Kosnik  <bkoz@redhat.com>
1798
1799         * src/globals_io.cc: Change to __gnu_internal namespace.
1800         * src/globals_locale.cc: Same.
1801         * src/locale_init.cc: Same.
1802         * src/ios_init.cc: Same.
1803
1804 2004-01-28  Stefan Olsson  <stefan@snon.net>
1805
1806         * include/ext/mt_allocator.h: Replaced all malloc() calls with
1807         operator new(). Added support for the env variable
1808         GLIBCXX_FORCE_NEW (this required the _S_init call to be the first
1809         one in allocate() as well). Fix typos.
1810
1811 2004-01-28  Paolo Carlini  <pcarlini@suse.de>
1812
1813         * include/bits/basic_string.h (_S_create(size_t,
1814         const _Alloc&): Change signature to take two size_type
1815         arguments.
1816         * include/bits/basic_string.tcc (_S_construct(_InIterator,
1817         _InIterator, const _Alloc&, input_iterator_tag)): Update
1818         call, tweak a bit.
1819         (_S_construct(_InIterator, _InIterator, const _Alloc&,
1820         forward_iterator_tag)): Likewise.
1821         (_S_construct(size_type, _CharT, const _Alloc&)): Likewise.
1822         (_M_mutate(size_type, size_type, size_type)): Don't
1823         implement the exponential growth policy, demand it to
1824         _S_create, update call and simplify.
1825         (_M_clone(const _Alloc&, size_type)): Likewise.
1826         (_S_create(size_type, size_type, const _Alloc&)): Implement
1827         the growth policy, simplify otherwise.
1828
1829         * include/bits/basic_string.h (_Rep::operator[]): Tweak
1830         signature to take a size_type, consistently with the other
1831         members.
1832
1833 2004-01-27  Benjamin Kosnik  <bkoz@redhat.com>
1834
1835         * testsuite/27_io/ios_base/storage/11584.cc: Correct new and
1836         delete declarations, add include and test variable.
1837
1838 2003-01-27  Jerry Quinn  <jlquinn@optonline.net>
1839
1840         * include/bits/codecvt.h, include/bits/locale_facets.h,
1841         include/bits/postypes.h, include/bits/stl_bvector.h,
1842         include/bits/stl_multiset.h, include/bits/stl_set.h,
1843         include/bits/stream_iterator.h, include/bits/streambuf_iterator.h,
1844         include/std/std_complex.h:  Document.
1845
1846 2004-01-27  Jerry Quinn  <jlquinn@optonline.net>
1847
1848         PR libstdc++/11584
1849         * include/bits/ios_base.h (ios_base::_M_grow_words):  Add
1850         iword/pword selector.
1851         (ios_base::iword, ios_base::pword):  Use it.
1852         * src/ios.cc (ios_base::_M_grow_words):  Clear _M_word_zero
1853         iword or pword member on alloc failure.
1854         * testsuite/27_io/ios_base/storage/11584.cc:  New test.
1855
1856 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
1857             PJ Darcy  <darcypj@us.ibm.com>
1858
1859         * configure.host: Add support for *-tpf.
1860         * crossconfig.m4: Likewise.
1861         * configure: Regenerate.
1862         * config/os/tpf: New directory.
1863         * config/os/tpf/os_defines.h: New file.
1864         * config/os/tpf/ctype_base.h: Likewise.
1865         * config/os/tpf/ctype_inline.h: Likewise.
1866         * config/os/tpf/ctype_noninline.h: Likewise.
1867
1868 2004-01-27  Paolo Carlini  <pcarlini@suse.de>
1869
1870         PR libstdc++/13884
1871         * include/bits/sstream.tcc: Guard use of extern template.
1872
1873 2004-01-27  Paolo Carlini  <pcarlini@suse.de>
1874
1875         * include/bits/basic_string.tcc
1876         (basic_string(const basic_string&, size_type, size_type),
1877         basic_string(const basic_string&, size_type, size_type,
1878         const _Alloc&)): Avoid unnecessarily constructing iterators.
1879
1880 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
1881
1882         * config/locale/generic/c_locale.cc: Fix throw messages
1883         to use the __N marker.
1884         * config/locale/gnu/c_locale.cc: Likewise.
1885         * config/locale/ieee_1003.1-2001/codecvt_specializations.h:
1886         Likewise.
1887         * docs/html/17_intro/C++STYLE: Likewise.
1888         * include/bits/basic_ios.tcc: Likewise.
1889         * include/bits/fstream.tcc: Likewise.
1890         * include/bits/vector.tcc: Likewise.
1891         * include/ext/ropeimpl.h: Likewise.
1892         * include/std/std_bitset.h: Likewise.
1893         * src/ios.cc: Likewise.
1894         * src/locale.cc: Likewise.
1895         * src/localename.cc: Likewise.
1896
1897 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
1898
1899         * include/bits/basic_string.h (_M_replace_aux): Use the
1900         __N marker in throw message.
1901         * include/bits/basic_string.tcc (assign(const _CharT*,
1902         size_type), insert(size_type, const _CharT*, size_type),
1903         replace(size_type, size_type, const _CharT*, size_type),
1904         reserve, _Rep::_S_create, resize, _M_replace_dispatch):
1905         Likewise.
1906
1907         * include/bits/basic_string.h, include/bits/basic_string.tcc:
1908         Fold overlong lines, minor formatting changes.
1909
1910 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
1911
1912         * include/bits/basic_string.h (replace(iterator, iterator,
1913         const basic_string&)): Remove _GLIBCXX_DEBUG_PEDASSERT.
1914         (replace(iterator, iterator, const _CharT*)): Ditto.
1915         (replace(iterator, iterator, const _CharT*, size_type)):
1916         Add missing _GLIBCXX_DEBUG_PEDASSERT.
1917
1918 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
1919
1920         * include/bits/basic_string.tcc (replace(size_type,
1921         size_type, const _CharT*, size_type)): Implement optimized
1922         in-place algorithm for non-overlapping ranges.
1923         * testsuite/21_strings/basic_string/replace/char/6.cc: New.
1924         * testsuite/21_strings/basic_string/replace/wchar_t/6.cc: New.
1925
1926         * include/bits/basic_string.tcc (insert(size_type,
1927         const _CharT*, size_type)): Tweak slightly.
1928
1929 2004-01-26  Andreas Schwab  <schwab@suse.de>
1930
1931         * config/locale/gnu/monetary_members.cc: Restore locale before
1932         rethrowing exception.
1933
1934 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
1935
1936         * include/bits/basic_string.h (_M_replace_aux, _M_replace_safe):
1937         Define inline here.
1938         * include/bits/basic_string.tcc (_M_replace_aux, _M_replace_safe):
1939         Move inline.
1940
1941         * include/bits/basic_string.tcc: Very minor tweaks.
1942
1943 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
1944
1945         * testsuite/performance/string_append.cc: Increase number
1946         of iterations.
1947
1948 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
1949
1950         * include/bits/basic_string.h (erase(size_type, size_type),
1951         erase(iterator), erase(iterator, iterator)): Call _M_replace_safe
1952         instead, thus avoiding redundant check for length_error.
1953
1954         * include/bits/basic_string.h: Tweak some comments.
1955
1956 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
1957
1958         * include/bits/basic_string.tcc (operator+(const _CharT*,
1959         const basic_string&)): No need to go through the append
1960         taking two iterators.
1961
1962 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
1963
1964         * include/bits/basic_string.tcc (rfind(_CharT, size_type)):
1965         Revert last change to use std::min: machine language is worse.
1966         (find_last_of(const _CharT*, size_type, size_type)): Ditto.
1967         (find_last_not_of(const _CharT*, size_type, size_type)): Ditto.
1968         (find_last_not_of(_CharT, size_type)): Ditto.
1969
1970         * include/bits/basic_string.tcc (insert(size_type, const _CharT*,
1971         size_type)): Discard the value returned by _M_check.
1972         (replace(size_type, size_type, const _CharT*, size_type)): Ditto.
1973         (append(const basic_string&, size_type, size_type)): Ditto.
1974         (copy(_CharT*, size_type, size_type)): Ditto.
1975         (compare(size_type, size_type, const basic_string&)): Ditto.
1976         (compare(size_type, size_type, const basic_string&,
1977         size_type, size_type)): Ditto.
1978         (compare(size_type, size_type, const _CharT*)): Ditto.
1979         (compare(size_type, size_type, const _CharT*, size_type)): Ditto.
1980
1981 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
1982
1983         * include/bits/basic_string.h (insert(size_type,
1984         const basic_string&, size_type, size_type)): Define inline here.
1985         * include/bits/basic_string.tcc (insert(size_type,
1986         const basic_string&, size_type, size_type)): Move inline.
1987
1988 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
1989
1990         * include/bits/basic_string.h (assign(const basic_string&,
1991         size_type, size_type)): Define inline here.
1992         (replace(size_type, size_type, const basic_string&,
1993         size_type, size_type)): Ditto.
1994         (_M_replace_dispatch(iterator, iterator, _InputIterator,
1995         _InputIterator, __false_type)): Only declare.
1996         (_M_replace(iterator, iterator, _InputIterator,
1997         _InputIterator)): Remove.
1998         * include/bits/basic_string.tcc (assign(const basic_string&,
1999         size_type, size_type)): Move inline.
2000         (replace(size_type, size_type, const basic_string&,
2001         size_type, size_type)): Ditto.
2002         (_M_replace_dispatch(iterator, iterator, _InputIterator,
2003         _InputIterator, __false_type)): Define, now does also what
2004         _M_replace did before.
2005         * src/string-inst.cc (_M_replace): Don't instantiate.
2006
2007         * include/bits/basic_string.tcc (find(const _CharT*,
2008         size_type, size_type)): Tidy.
2009         (rfind(_CharT, size_type)): Ditto.
2010         (find_first_not_of(const _CharT*, size_type, size_type)): Ditto.
2011         (find_first_not_of(_CharT, size_type)): Ditto.
2012         (find_last_not_of(const _CharT*, size_type, size_type)): Ditto.
2013         (find_last_not_of(_CharT, size_type)): Ditto.
2014
2015 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
2016
2017         PR libstdc++/13838
2018         * include/debug/bitset (operator|=): Fix typo.
2019         * testsuite/23_containers/bitset/operations/13838.cc: New.
2020
2021 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
2022
2023         * include/bits/basic_string.tcc (insert(size_type,
2024         const _CharT*, size_type __n)): Fix length_error check.
2025         (replace(size_type, size_type, const _CharT*, size_type):
2026         Ditto; call _M_replace_safe.
2027         (_M_replace_aux(size_type, size_type, size_type, _CharT):
2028         Fix length_error check.
2029         (_M_replace(iterator, iterator, _InputIterator,
2030         _InputIterator)): Ditto, tweak.
2031         (_M_replace_safe(size_type, size_type, const _CharT*,
2032         size_type)): Remove length_error check.
2033
2034         * include/bits/basic_string.tcc (append(const basic_string&),
2035         append(const basic_string&, size_type, size_type)): Tweak
2036         comment.
2037
2038         * include/bits/basic_string.tcc (copy(_CharT*, size_type,
2039         size_type)): If __n == 0 don't call traits::copy.
2040
2041 2004-01-23  Stefan Olsson  <stefan@snon.net>
2042
2043         * include/ext/mt_allocator.h: Reduce lock contention.
2044
2045 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
2046
2047         PR libstdc++/13831
2048         * include/bits/fstream.tcc (underflow): Remove unused
2049         variable.
2050         * include/bits/streambuf_iterator.h (equal): Ditto.
2051         * include/bits/locale_facets.h (_M_convert_from_char):
2052         Ditto.
2053
2054 2004-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2055
2056         PR c/13814
2057         * config/linker-map.gnu (nan): Delete.
2058         * libmath/mathconf.h (NAN, nan): Delete.
2059         * linkage.m4 (nan): Don't check for it.
2060         * libmath/nan.c: Delete file.
2061
2062         * config.h.in, configure: Regenerate.
2063
2064 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
2065
2066         * include/bits/basic_string.h (push_back(_CharT)):
2067         Call _M_replace_aux.
2068         (insert(size_type, const basic_string&)): Trivial tweak.
2069         (insert(size_type, size_type, _CharT)): Call _M_replace_aux.
2070         (insert(iterator, _CharT)): Ditto.
2071         (erase(size_type, size_type)): Ditto.
2072         (erase(iterator)): Ditto.
2073         (erase(iterator, iterator)): Ditto.
2074         (replace(size_type, size_type, size_type, _CharT)): Ditto.
2075
2076 2004-01-23  Loren J. Rittle  <ljrittle@acm.org>
2077
2078         libstdc++/13823
2079         * testsuite/performance/allocator_map_thread.cc: New test.
2080
2081 2004-01-22  Paolo Carlini  <pcarlini@suse.de>
2082
2083         * include/bits/locale_facets.tcc
2084         (money_put::do_put(..., long double)): Use the basic_string
2085         constructor for char arrays, not that for C-strings, to pass
2086         __digits to do_put(..., const string_type&): __ws isn't
2087         null-terminated.
2088
2089 2004-01-22  Paolo Carlini  <pcarlini@suse.de>
2090
2091         * include/bits/basic_string.h (_M_replace_safe): Change
2092         signatures to take size_types and const _CharT*.
2093         (_M_replace_aux): Likewise, takes size_types instead of
2094         iterators.
2095         (append(size_type, _CharT)): Update call.
2096         (assign(size_type, _CharT)): Ditto.
2097         (replace(iterator, iterator, size_type, _CharT)): Ditto.
2098         (_M_replace_dispatch(iterator, iterator, _Integer,
2099         _Integer, __true_type)): Ditto.
2100         * include/bits/basic_string.tcc (assign(const _CharT*,
2101         size_type)): Ditto.
2102         (insert(size_type, const _CharT*, size_type)): Ditto.
2103         (replace(size_type, size_type, const _CharT*,
2104         size_type)): Ditto.
2105         (_M_replace(iterator, iterator, _InputIterator,
2106         _InputIterator)): Ditto.
2107         (append(const basic_string&)): Ditto.
2108         (append(const basic_string&, size_type, size_type): Ditto.
2109         (append(const _CharT*, size_type): Ditto.
2110         (_M_replace_safe, _M_replace_safe): Change definitions
2111         accordingly, simplify.
2112         * string-inst.cc (_M_replace_safe): Don't instantiate.
2113
2114 2004-01-21  Paolo Carlini  <pcarlini@suse.de>
2115
2116         * include/bits/basic_string.tcc (append(const basic_string&)):
2117         Revert previous change.
2118         (append(const basic_string&, size_type, size_type)): Revert
2119         previous change, use _M_check and _M_limit.
2120
2121 2004-01-21  Paolo Carlini  <pcarlini@suse.de>
2122
2123         * include/bits/basic_string.h (_M_check): Change to return
2124         a checked __pos and take an additional const char* argument.
2125         (_M_fold): Rename to _M_limit, change to return a size_type,
2126         corresponding to the __off limited to the actual length.
2127         (insert(size_type, size_type, _CharT)): Update call, call
2128         replace.
2129         (insert(iterator, _CharT)): Call replace(iterator, iterator,
2130         size_type, _CharT) instead.
2131         (erase(size_type, size_type)): Update calls.
2132         (replace(size_type, size_type, size_type, _CharT)): Ditto.
2133         (substr(size_type, size_type)): Use _M_check.
2134         * include/bits/basic_string.tcc (basic_string(const basic_string&,
2135         size_type, size_type)): Update calls.
2136         (basic_string(const basic_string&, size_type, size_type,
2137         const _Alloc&)): Ditto.
2138         (assign(const basic_string&, size_type, size_type)): Use the
2139         new _M_check and _M_limit.
2140         (insert(size_type, const basic_string&, size_type, size_type):
2141         Ditto.
2142         (insert(size_type, const _CharT*, size_type)): Ditto.
2143         (replace(size_type, size_type, const _CharT*, size_type): Ditto.
2144         (replace(size_type, size_type, const basic_string&,
2145         size_type, size_type)): Ditto.
2146         (append(const basic_string&)): Ditto.
2147         (append(const basic_string&, size_type, size_type)): Ditto.
2148         (copy(_CharT*, size_type, size_type)): Ditto.
2149         (compare(size_type, size_type, const basic_string&)): Ditto.
2150         (compare(size_type, size_type, const basic_string&,size_type,
2151         size_type)): Ditto.
2152         (compare(size_type, size_type, const _CharT*)): Ditto.
2153         (compare(size_type, size_type, const _CharT*, size_type)): Ditto.
2154
2155 2004-01-19  Stefan Olsson  <stefan@snon.net>
2156
2157         * include/ext/mt_allocator.h: If a thread, when it dies, still has
2158         memory on it's freelist this memory is not returned to global
2159         list. Simplification of deallocate so that memory is always
2160         returned to the calling thread id's freelist instead of to
2161         global. Fix typos. Add volatile where appropriate.
2162
2163 2004-01-19  Loren J. Rittle  <ljrittle@acm.org>
2164
2165         * testsuite/ext/stdio_filebuf/char/10063-2.cc: Treat unbuffered.
2166         * testsuite/ext/stdio_filebuf/char/10063-3.cc: New test.  Like -2 but
2167         use __gnu_cxx::stdio_sync_filebuf<char> instead; allow buffered stream.
2168
2169 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
2170
2171         * src/debug.cc: Make sure all the names are prefixed with
2172         double (or single) underscore.
2173
2174 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
2175
2176         * src/debug.cc: Trivial formatting change.
2177
2178 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
2179
2180         * include/bits/basic_string.tcc (_S_construct(size_type,
2181         _CharT, const _Alloc&)): Remove redundant try/catch.
2182         (_M_mutate(size_type, size_type, size_type)): Ditto.
2183         (_M_clone(const _Alloc&, size_type)): Ditto.
2184
2185 2004-01-18  Paolo Carlini  <pcarlini@suse.de>
2186
2187         * include/bits/basic_string.h (c_str()): Simplify, due to
2188         21.3.4 the internal representation is always kept null-terminated.
2189         * include/bits/basic_string.tcc (_M_clone): Null-terminate.
2190         * testsuite/21_strings/basic_string/element_access/char/4.cc: New.
2191         * testsuite/21_strings/basic_string/element_access/wchar_t/4.cc:
2192         Ditto.
2193
2194 2004-01-18  Paolo Carlini  <pcarlini@suse.de>
2195
2196         * include/bits/basic_string.h (append(size_type, _CharT)):
2197         Moved inline, just call _M_replace_aux, no source iterators at
2198         risk of being clobbered.
2199         (assign(size_type, _CharT)): Call directly _M_replace_aux.
2200         (_M_replace(iterator, iterator, _InputIterator, _InputIterator,
2201         input_iterator_tag)): Remove fifth unused argument.
2202         (_M_replace_dispatch(iterator, iterator, _InputIterator,
2203         _InputIterator, __false_type)): Update call.
2204         * include/bits/basic_string.tcc (replace(size_type, size_type,
2205         const _CharT*, size_type)): Update call.
2206         (_M_replace_aux(iterator, iterator, size_type, _CharT)): Tweak
2207         throw string literal.
2208         (_M_replace_safe(iterator, iterator, _ForwardIterator,
2209         _ForwardIterator)): Likewise.
2210         (_M_replace(iterator, iterator, _InputIterator, _InputIterator,
2211         input_iterator_tag)): Remove fifth unused argument.
2212         (append(size_type __n, _CharT __c)): Move inline.
2213         * src/string-inst.cc (S::_M_replace(S::iterator, S::iterator,
2214         const C*, const C*, input_iterator_tag)): Remove fifth unused
2215         argument.
2216
2217 2004-01-16  Benjamin Kosnik  <bkoz@redhat.com>
2218
2219         * testsuite/ext/enc_filebuf/char/13189.cc: Fix guards.
2220         * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Same.
2221
2222 2004-01-16  Danny Smith  <dannysmith@users.sourceforge.net>
2223
2224         * testsuite/testsuite_hooks.cc (try_mkfifo): Avoid calling
2225         mkfifo for mingw32.
2226
2227 2004-01-15  Stefan Olsson  <stefan@snon.net>
2228
2229         * include/ext/mt_allocator.h: Reuse thread id's as soon as
2230         possible by changing the behaviour of thread_freelist to do
2231         push_front when threads die instead of push_back.
2232
2233 2004-01-14  Paolo Carlini  <pcarlini@suse.de>
2234
2235         * include/bits/locale_facets.h (struct __numpunct_cache):
2236         Add member _M_grouping_size, caching the length of _M_grouping.
2237         (__numpunct_cache<>::_M_cache): Assign the latter.
2238         (__verify_grouping): Move declaration...
2239         * include/bits/locale_facets.tcc (__verify_grouping):
2240         ... here, change signature to take a const char* and a size_t
2241         for the grouping; not a template anymore.
2242         (__add_grouping, num_put::_M_group_int, num_put::_M_group_float):
2243         Likewise change signature and tweak consistently.
2244         (num_get::_M_extract_float, num_get::_M_extract_int,
2245         num_put::_M_insert_int, num_put::_M_insert_float,
2246         money_get::do_get(string_type&), money_get::do_put(string_type)):
2247         Update callers.
2248         * config/locale/generic/numeric_members.cc
2249         (numpunct<>::_M_initialize_numpunct): Assign the new member.
2250         * config/locale/gnu/numeric_members.cc
2251         (numpunct<>::_M_initialize_numpunct): Likewise.
2252         * src/locale-inst.cc (__add_grouping): Tweak signature.
2253         (__verify_grouping): Don't instantiate, not a template anymore.
2254
2255         * include/bits/locale_facets.h: Rename _M_truename_len ->
2256         _M_truename_size, _M_falsename_len -> _M_falsename_size.
2257         * include/bits/locale_facets.tcc: Likewise.
2258         * config/locale/generic/numeric_members.cc: Likewise.
2259         * config/locale/gnu/numeric_members.cc: Likewise.
2260
2261 2004-01-14  Stefan Olsson  <stefan@snon.net>
2262
2263         * include/ext/mt_allocator.h: Fixups.
2264         * testsuite/performance/allocator.cc: Enable __mt_alloc tests.
2265         * testsuite/performance/allocator_thread.cc: Same.
2266
2267 2004-01-13  Benjamin Kosnik  <bkoz@redhat.com>
2268
2269         * testsuite/performance/ifstream_extract_float.cc: Add higher
2270         precision tests.
2271         * testsuite/performance/ofstream_insert_float.cc: Same.
2272
2273 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
2274
2275         * src/locale-misc-inst.cc (__convert_from_v(long),
2276         __convert_from_v(unsigned long), __convert_from_v(long long),
2277         __convert_from_v(unsigned long long)): Remove, unused.
2278
2279 2004-01-13  Benjamin Kosnik  <bkoz@redhat.com>
2280
2281         * testsuite/performance/ifstream_extract_float.cc: New.
2282         * testsuite/performance/ofstream_insert_float.cc: Float generation
2283         matches above.
2284
2285         * 20_util/auto_ptr.cc, auto_ptr_neg.cc: Break into...
2286         * 20_util/auto_ptr/1.cc: ...this.
2287         * 20_util/auto_ptr/2.cc: Same.
2288         * 20_util/auto_ptr/3.cc: Same.
2289         * 20_util/auto_ptr/3946.cc: Same.
2290         * 20_util/auto_ptr/4.cc: Same.
2291         * 20_util/auto_ptr/5.cc: Same.
2292         * 20_util/auto_ptr/6.cc: Same.
2293         * 20_util/auto_ptr/7.cc: Same.
2294         * 20_util/auto_ptr/assign_neg.cc
2295         * 20_util/pairs.cc: Break into...
2296         * 20_util/pair/1.cc: ...this.
2297         * 20_util/pair/2.cc: Same.
2298         * 20_util/pair/3.cc: Same.
2299         * 20_util/pair/4.cc: Same.
2300
2301 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
2302
2303         * include/bits/locale_facets.tcc (num_get::do_get(void*&)):
2304         Set correctly just basefield, the only group that matters.
2305
2306 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
2307
2308         * include/ext/rope (_Rope_rep_alloc_base): Eliminate.
2309         (_Rope_rep_base): Inherit directly from the rope allocator;
2310         use rebinding instead of _Alloc_traits; pick up data member
2311         from _Rope_rep_alloc_base.
2312         (_Rope_alloc_base): Eliminate.
2313         (_Rope_base): Inherit directly from the rope allocator; use
2314         rebinding instead of _Alloc_traits; pick up data member from
2315         _Rope_alloc_base.
2316         (rope::_S_new_RopeLeaf, rope::_S_new_RopeConcatenation,
2317         rope::_S_new_RopeFunction, rope::_S_new_RopeSubstring): Tweak.
2318
2319 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
2320
2321         PR libstdc++/13650
2322         * include/bits/basic_string.tcc (compare(size_type, size_type,
2323         const _CharT*, size_type)): Implement correctly the resolution
2324         of DR 5: basically, s is a char array, -not- a C string.
2325         * include/bits/basic_string.h: Tweak some comments.
2326         * testsuite/21_strings/basic_string/compare/char/13650.cc: New.
2327         * testsuite/21_strings/basic_string/compare/wchar_t/13650.cc: New.
2328
2329 2004-01-12  Andreas Tobler  <a.tobler@schweiz.ch>
2330
2331         * testsuite/lib/libstdc++.exp: Set LD_LIBRARY_PATH_32 for
2332         Solaris.
2333
2334 2004-01-12  Paolo Carlini  <pcarlini@suse.de>
2335
2336         * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc:
2337         Use try_mkfifo.
2338         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc:
2339         Likewise.
2340
2341 2004-01-12  Paolo Carlini  <pcarlini@suse.de>
2342
2343         * include/bits/locale_facets.h (struct __numpunct_cache):
2344         Add members _M_truename_len and _M_falsename_len, caching
2345         the lengths of _M_truename and _M_falsename.
2346         (__numpunct_cache<>::_M_cache): Assign the latter.
2347         * include/bits/locale_facets.tcc (num_get::do_get(bool&),
2348         num_put::do_put(bool)): Use the new members, thus avoiding
2349         computing string lengths again and again.
2350         * config/locale/generic/numeric_members.cc
2351         (numpunct<>::_M_initialize_numpunct): Assign the new members.
2352         * config/locale/gnu/numeric_members.cc
2353         (numpunct<>::_M_initialize_numpunct): Likewise.
2354
2355 2004-01-12  Mark Mitchell  <mark@codesourcery.com>
2356
2357         * testsuite/testsuite_hooks.h (__gnu_test::try_mkfifo): Declare it.
2358         * testsuite/testsuite_hooks.cc (__gnu_test::try_mkfifo): Define
2359         it.
2360         * testsuite/27_io/basic_filebuf/close/char/4879.cc: Use try_mkfifo
2361         and remove Cygwin XFAIL.
2362         * testsuite/27_io/basic_filebuf/close/char/9964.cc: Likewise.
2363         * testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc: Likewise.
2364         * testsuite/27_io/basic_filebuf/open/char/9507.cc: Likewise.
2365         * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc:
2366         Likewise.
2367         * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise.
2368         * testsuite/27_io/objects/char/7.cc: Likewise.
2369         * testsuite/27_io/objects/char/9661-1.cc: Likewise.
2370         * testsuite/27_io/objects/wchar_t/7.cc: Likewise.
2371         * testsuite/27_io/objects/wchar_t/9661-1.cc: Likewise.
2372
2373 2004-01-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2374
2375         * include/std/std_complex.h (std::complex<>::real): Return a
2376         reference. Add non-const overload.
2377         (std::complex<>::real): Likewise.
2378         (std::real): Likewise.
2379         (std::imag): Likewise.
2380         (std::operator+): Tidy.
2381         (std::operator-): Likewise.
2382         (std::operator*): Likewise.
2383         (std::operator/): Likewise.
2384         (std::operator>>): Likewise.
2385
2386 2004-01-11  Paolo Carlini  <pcarlini@suse.de>
2387
2388         PR libstdc++/13582
2389         * include/bits/fstream.tcc (imbue): Exploit the external
2390         buffer to imbue 'on the fly' a new locale and convert its
2391         remainder with the new codecvt facet.
2392         (underflow): Tweak slightly to deal with this special case.
2393         * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc: New.
2394         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc: Ditto.
2395         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Ditto.
2396         * testsuite/27_io/objects/wchar_t/13582-1_xin.cc: Ditto.
2397         * testsuite/27_io/objects/wchar_t/13582-1_xin.in: Ditto.
2398
2399 2004-01-10  Paolo Carlini  <pcarlini@suse.de>
2400
2401         * docs/html/ext/lwg-active.html, docs/html/ext/lwg-defects.html:
2402         Import Revision 28.
2403
2404 2004-01-10  Paolo Carlini  <pcarlini@suse.de>
2405
2406         PR libstdc++/13630
2407         * include/bits/locale_classes.h (class locale): Fix category
2408         typedef.
2409         * testsuite/22_locale/locale/13630.cc: Add.
2410
2411 2004-01-10  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
2412
2413         * include/bits/locale_facets.h: Make a name really dependent. This
2414         will be needed when Core Issue 224 is implemented.
2415
2416 2004-01-09  Paolo Carlini  <pcarlini@suse.de>
2417
2418         * testsuite/performance/allocator.cc: Demangle typeid(obj).name().
2419         * testsuite/performance/allocator_thread.cc: Likewise.
2420
2421 2004-01-07  Benjamin Kosnik  <bkoz@redhat.com>
2422
2423         * crossconfig.m4: Add LFS, io bits to linux cross config.
2424         * acconfig.h: Remove obsolete bits, reorder.
2425         * config.h.in: Regenerate.
2426         * aclocal.m4: Same.
2427         * configure: Same.
2428
2429 2004-01-07  Gawain Bolton  <gp.bolton@computer.org>
2430
2431         * include/bits/stl_list.h:
2432         * include/bits/list.tc:
2433         * src/list.cc:
2434         Performance enhancements for destructor, push_front(),
2435         push_back(), pop_front(), pop_back(), sort()
2436         Eliminated static_casts where possible.
2437         Moved code out of header files into new src/list.cc
2438         implementation file for library where possible.
2439         Remove inheritance from iterator class and create separate
2440         classes for non-constant and constant iterators.
2441         * include/bits/stl_tree.h (_Rb_tree class):
2442         * src/tree.cc:
2443         Only erase contents in destructor.
2444         Eliminate unnecessary initialization in assignment operator.
2445         Optimize for the nominal case by not checking whether
2446         container is empty in clear().
2447         Re-order test in _M_insert() to improve performance.
2448         Move initialization of new node's left & right pointers to
2449         src/tree.cc to where new node's colour is initialized
2450         and to reduce the amount of inline code.
2451         Use  _M_leftmost() and _M_end() to improve readability where
2452         appropriate.
2453         Create separate classes for non-constant and constant
2454         iterators to clarify code, avoid extra template parameters and
2455         casting away constness.
2456
2457 2004-01-07  Benjamin Kosnik  <bkoz@redhat.com>
2458
2459         * src/Makefile.am (sources): Add list.cc, tree.cc.
2460         * src/stl_tree.cc: Move to...
2461         * src/tree.cc: ...here.
2462         * src/list.cc: Add.
2463         * config/linker-map.gnu: Tweaks.
2464         * testsuite/23_containers/map/operators/1_neg.cc: Add excess errors.
2465         * testsuite/23_containers/set/operators/1_neg.cc: Add excess errors.
2466
2467         * bits/stl_vector.h: Column wrap comments.
2468
2469 2004-01-07  Loren J. Rittle  <ljrittle@acm.org>
2470
2471         (re-open) PR libstdc++/12658
2472         * src/locale_init.cc (locale::locale): Remove ill-scoped mutex.
2473         (locale::global): Likewise.
2474
2475 2004-01-07  Paolo Carlini  <pcarlini@suse.de>
2476
2477         * testsuite/27_io/basic_istream/extractors_other/char/9318-in.cc:
2478         Remove redundant #include.
2479         * testsuite/27_io/basic_ostream/endl/char/1.cc: Likewise.
2480         * testsuite/27_io/basic_ostream/ends/char/1.cc: Likewise,
2481         re-enable normal testing.
2482         * testsuite/27_io/basic_ostream/ends/char/2.cc: Remove redundant
2483         #include.
2484         * testsuite/27_io/basic_ostream/flush/char/1.cc: Likewise.
2485         * testsuite/27_io/basic_ostream/inserters_character/char/1.cc:
2486         Likewise.
2487         * testsuite/27_io/basic_ostream/inserters_character/char/2.cc:
2488         Likewise.
2489         * testsuite/27_io/basic_ostream/inserters_character/char/3.cc:
2490         Likewise.
2491         * testsuite/27_io/basic_ostream/inserters_character/char/4.cc:
2492         Likewise.
2493         * testsuite/27_io/basic_ostream/inserters_character/char/5.cc:
2494         Likewise.
2495         * testsuite/27_io/basic_ostream/inserters_character/char/6.cc:
2496         Likewise.
2497         * testsuite/27_io/basic_ostream/inserters_character/char/8.cc:
2498         Likewise.
2499         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/7.cc:
2500         More properly, #include <locale>.
2501         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/8.cc:
2502         Remove redundant #include.
2503         * testsuite/27_io/basic_ostream/inserters_other/char/2.cc: Likewise.
2504         * testsuite/27_io/basic_ostream/inserters_other/char/3.cc: Remove
2505         redundant DejaGnu directive.
2506         * testsuite/27_io/basic_ostream/inserters_other/char/4.cc: Remove
2507         redundant #include.
2508
2509 2004-01-06  Benjamin Kosnik  <bkoz@redhat.com>
2510             Stefan Olsson  <stefan@snon.net>
2511
2512         * scripts/check_performance: Use -pthread.
2513         * testsuite/performance/allocator.cc: Tweaks, add list.
2514         * testsuite/performance/allocator_thread.cc: New.
2515
2516 2004-01-06  Jerry Quinn  <jlquinn@optonline.net>
2517
2518         * include/bits/locale_facets.h: Document public classes and
2519         functions.
2520         * include/bits/locale_facets.tcc (time_get::_M_extract_via_format):
2521         Add comment.
2522
2523 2004-01-06  Paolo Carlini  <pcarlini@suse.de>
2524
2525         * testsuite/27_io/basic_istream/extractors_other/char/1.cc:
2526         Remove redundant #includes.
2527         * testsuite/27_io/basic_istream/extractors_other/char/2.cc:
2528         Likewise.
2529         * testsuite/27_io/basic_istream/extractors_other/char/3.cc:
2530         Likewise.
2531         * testsuite/27_io/basic_istream/get/char/1.cc: Likewise.
2532         * testsuite/27_io/basic_istream/get/char/2.cc: Likewise.
2533         * testsuite/27_io/basic_istream/getline/char/1.cc: Likewise.
2534         * testsuite/27_io/basic_istream/getline/char/2.cc: Likewise.
2535         * testsuite/27_io/basic_istream/getline/char/3.cc: Likewise.
2536         * testsuite/27_io/basic_istream/ignore/char/1.cc: Likewise.
2537         * testsuite/27_io/basic_istream/ignore/char/6360.cc: Likewise.
2538         * testsuite/27_io/basic_istream/ignore/char/7220.cc: Likewise.
2539         * testsuite/27_io/basic_istream/peek/char/1.cc: Likewise.
2540         * testsuite/27_io/basic_istream/peek/char/6414.cc: Likewise.
2541         * testsuite/27_io/basic_istream/putback/char/1.cc: Likewise.
2542         * testsuite/27_io/basic_istream/read/char/1.cc: Likewise.
2543         * testsuite/27_io/basic_istream/read/char/2.cc: Likewise.
2544         * testsuite/27_io/basic_istream/read/char/3.cc: Likewise.
2545         * testsuite/27_io/basic_istream/readsome/char/6746-1.cc:
2546         Likewise.
2547         * testsuite/27_io/basic_istream/readsome/char/6746-2.cc:
2548         Likewise.
2549         * testsuite/27_io/basic_istream/readsome/char/8258.cc:
2550         Likewise.
2551         * testsuite/27_io/basic_istream/seekg/char/2346-fstream.cc:
2552         Likewise.
2553         * testsuite/27_io/basic_istream/seekg/char/2346-sstream.cc:
2554         Likewise.
2555         * testsuite/27_io/basic_istream/seekg/char/8348-1.cc: Likewise.
2556         * testsuite/27_io/basic_istream/seekg/char/8348-2.cc: Likewise.
2557         * testsuite/27_io/basic_istream/tellg/char/8348.cc: Likewise.
2558
2559 2004-01-04  Paolo Carlini  <pcarlini@suse.de>
2560
2561         * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc:
2562         Remove redundant #includes.
2563         * testsuite/27_io/basic_istream/extractors_arithmetic/char/02.cc:
2564         Likewise.
2565         * testsuite/27_io/basic_istream/extractors_arithmetic/char/03.cc:
2566         Likewise.
2567         * testsuite/27_io/basic_istream/extractors_arithmetic/char/06.cc:
2568         Likewise.
2569         * testsuite/27_io/basic_istream/extractors_arithmetic/char/07.cc:
2570         Likewise.
2571         * testsuite/27_io/basic_istream/extractors_arithmetic/char/08.cc:
2572         Likewise.
2573         * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc:
2574         Likewise.
2575         * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
2576         Likewise.
2577         * testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc:
2578         Likewise.
2579         * testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc:
2580         Likewise.
2581         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/1.cc:
2582         Likewise.
2583         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc:
2584         Likewise.
2585         * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/1.cc:
2586         Likewise.
2587
2588 2004-01-04  Mark Mitchell  <mark@codesourcery.com>
2589
2590         PR c++/12226
2591         * testsuite/27_io/basic_filebuf/4.cc: Remove use of invalid copy
2592         constructor.
2593         * testsuite/27_io/basic_fstream/4.cc: Likewise.
2594         * testsuite/27_io/basic_ifstream/4.cc: Likewise.
2595         * testsuite/27_io/basic_ios/4.cc: Likewise.
2596         * testsuite/27_io/basic_iostream/4.cc: Likewise.
2597         * testsuite/27_io/basic_istream/4.cc: Likewise.
2598         * testsuite/27_io/basic_istingstream/4.cc: Likewise.
2599         * testsuite/27_io/basic_ofstream/4.cc: Likewise.
2600         * testsuite/27_io/basic_ostream/4.cc: Likewise.
2601         * testsuite/27_io/basic_ostringstream/4.cc: Likewise.
2602         * testsuite/27_io/basic_stringbuf/5.cc: Likewise.
2603         * testsuite/27_io/basic_stringstream/4.cc: Likewise.
2604
2605 2004-01-04  Paolo Carlini  <pcarlini@suse.de>
2606
2607         * config/locale/generic/numeric_members.cc (_M_initialize_numpunct):
2608         Avoid unnecessarily zero terminating _M_atoms_out and _M_atoms_in;
2609         always use double underscored names.
2610         * config/locale/gnu/numeric_members.cc (_M_initialize_numpunct):
2611         Likewise.
2612         * include/bits/locale_facets.h (struct __numpunct_cache):
2613         Dimension _M_atoms_out and _M_atoms_in one position smaller.
2614         (__numpunct_cache<>::_M_cache): Don't zero terminate _M_atoms_out
2615         and _M_atoms_in.