OSDN Git Service

2004-10-15 Paolo Carlini <pcarlini@suse.de>
[pf3gnuchains/gcc-fork.git] / libstdc++-v3 / ChangeLog
1 2004-10-15  Paolo Carlini  <pcarlini@suse.de>
2
3         * include/ext/bitmap_allocator.h: Qualify ::operator delete.
4         * src/bitmap_allocator.cc: Likewise.
5         * src/mt_allocator.cc: Use ::operator delete, not delete,
6         consistently with ::operator new.
7
8         * include/ext/bitmap_allocator.h (deallocate): Check for null
9         pointer.
10         * testsuite/ext/bitmap_allocator/check_deallocate_null.cc: New.
11         * testsuite/testsuite_allocator.h (check_deallocate_null): Add test.
12
13 2004-10-14  Benjamin Kosnik  <bkoz@redhat.com>
14
15         * include/ext/mt_allocator.h (__mt_alloc::deallocate): Check for
16         null pointer.
17         * include/ext/pool_allocator.h (debug_allocator::deallocate):
18         Check pointer value.
19         * include/ext/debug_allocator.h (debug_allocator::deallocate):
20         Throw exceptions, don't abort.
21         * include/ext/array_allocator.h
22         (array_allocator_base::deallocate): Remove unused parameters.
23         * testsuite/testsuite_allocator.h (check_deallocate_null): New.
24         * testsuite/ext/mt_allocator/check_deallocate_null.cc: New.
25         * testsuite/ext/mt_allocator/check_deallocate_null_thread.cc: New.
26         * testsuite/ext/array_allocator/check_deallocate_null.cc: New.
27         * testsuite/ext/debug_allocator/check_deallocate_null.cc: New.
28         * testsuite/ext/malloc_allocator/check_deallocate_null.cc: New.
29         * testsuite/ext/new_allocator/check_deallocate_null.cc: New.
30         * testsuite/ext/pool_allocator/check_deallocate_null.cc: New.
31
32         * testsuite/testsuite_allocator.h (check_new): Add instance argument.
33         * testsuite/ext/array_allocator/check_new.cc: New.
34         
35 2004-10-14  Paolo Carlini  <pcarlini@suse.de>
36
37         * include/ext/bitmap_allocator.h (bitmap_allocator::_Alloc_block):
38         Rename __unused to __M_unused.
39
40 2004-10-14  Benjamin Kosnik  <bkoz@redhat.com>
41
42         * testsuite/ext/headers.cc: Add includes, compile only.
43         * testsuite/ext/hash_map.cc: Move to...
44         * testsuite/ext/hash_map/1.cc: ...here.
45         * testsuite/ext/14648.cc: Move to...
46         * testsuite/ext/hash_map/14648.cc: ...here.
47         * testsuite/ext/hash_map/instantiate.cc: Add.
48         * testsuite/ext/hash_set.cc: Move to...
49         * testsuite/ext/hash_set/1.cc: ...here.
50         * testsuite/ext/hash_set_explicit_instantiation.cc: Move to...
51         * testsuite/ext/hash_set/instantiate.cc: ...here.
52         * testsuite/ext/hash_check_construct_destroy.cc: Move to...
53         * testsuite/ext/hash_set/check_construct_destroy.cc: ...here.
54         * testsuite/ext/slist_check_construct_destroy.cc: Move to...
55         * testsuite/ext/slist/check_construct_destroy.cc: ...here.
56         * testsuite/ext/slist_explicit_instantiation.cc: Move to...
57         * testsuite/ext/slist/instantiate.cc: ...here.
58         
59 2004-10-14  Benjamin Kosnik  <bkoz@redhat.com>
60
61         * include/ext/mt_allocator.h: Tweaks.
62         * src/mt_allocator.cc: Same.
63
64 2004-10-14  Dhruv Matani  <dhruvbird@gmx.net>
65
66         * ext/bitmap_allocator.h: Clean-up add/remove functions.
67         * src/bitmap_allocator.cc: New file. Contains the out-of-line
68         function definitions, static initialization of variables, and
69         explicit instantiations needed for the allocator.
70         * src/Makefile.am: Add.
71         * src/Makefile.in: Regenerate.
72         * config/linker.map.gnu: Add the necessary symbols.
73
74 2004-10-13  Paolo Carlini  <pcarlini@suse.de>
75
76         * include/bits/basic_string.tcc (_S_create): Use consistently
77         the exponential policy, simplify.
78         * testsuite/performance/21_strings/string_append_2.cc: New.
79
80         * include/ext/array_allocator.h (allocate): Fix bad_alloc check.
81         * testsuite/ext/array_allocator/2.cc: Fix wrt 64-bit archs (in
82         that case sizeof(_Rep) == 24).
83
84 2004-10-12  Paolo Carlini  <pcarlini@suse.de>
85
86         PR libstdc++/17948
87         * include/bits/stl_tree.h (erase(iterator, iterator)): Revert
88         wrong commit of 2004-10-07.
89         
90 2004-10-12  Scott Snyder  <snyder@fnal.gov>
91
92         PR libstdc++/17948
93         * testsuite/23_containers/set/modifiers/17948.cc: New.
94
95 2004-10-11  Benjamin Kosnik  <bkoz@redhat.com>
96
97         * include/bits/stl_deque.h: Correct for over-long lines.
98
99 2004-10-11  Benjamin Kosnik  <bkoz@redhat.com>
100
101         PR libstdc++/17937
102         * include/ext/mt_allocator.h (__pool::_M_destroy): New.
103         * src/mt_allocator.cc (__pool::~__pool): Change definitions to
104         _M_destroy.
105         * acconfig.h: Remove _GLIBCXX_USE___CXA_ATEXIT.
106         * acinclude.m4 (GLIBCXX_ENABLE_CXA_ATEXIT): Remove.
107         * configure.ac: Remove call to GLIBCXX_ENABLE_CXA_EXIT.
108         * configure: Regenerate.
109         * config/linker-map.gnu: Tweak exports.
110         * docs/html/ext/mt_allocator.html: Update docs.
111         * testsuite/ext/mt_allocator/deallocate_global-2.cc: Fix.
112         * testsuite/ext/mt_allocator/deallocate_global-4.cc: Fix.       
113         * testsuite/ext/mt_allocator/deallocate_global_thread-1.cc: Fix.
114         * testsuite/ext/mt_allocator/deallocate_global_thread-3.cc: Fix.
115         * testsuite/ext/mt_allocator/deallocate_local-2.cc: Fix.
116         * testsuite/ext/mt_allocator/deallocate_local-4.cc: Fix.
117         * testsuite/ext/mt_allocator/deallocate_local_thread-3.cc: Fix.
118         * testsuite/ext/mt_allocator/deallocate_local_thread-1.cc: Fix.
119
120 2004-10-11  Benjamin Kosnik  <bkoz@redhat.com>
121
122         PR libstdc++/16614 continued.
123         * include/ext/mt_allocator.h
124         (__per_type_pool_policy::_S_get_pool): Use saner defaults based on
125         specific type characteristics.
126         (__pool_base): Add constructor that takes a _Tune argument.
127         (__pool): Same.
128         * testsuite/ext/mt_allocator/tune-2.cc: Adjust default.
129         * testsuite/ext/mt_allocator/tune-4.cc: Same.
130         * testsuite/ext/mt_allocator/tune-3.cc: Same.
131
132 2004-10-11  Joachim Kuebart  <kuebart@mathematik.uni-ulm.de>
133             Paolo Carlini  <pcarlini@suse.de>
134
135         * src/pool_allocator.cc (__pool_alloc_base::_M_allocate_chunk):
136         Deal properly with exceptions thrown by ::operator new(size_t).
137         * testsuite/ext/pool_allocator/allocate_chunk.cc: New.
138
139         * include/ext/pool_allocator.h: Include <cstdlib>.
140
141 2004-10-10  Benjamin Kosnik  <bkoz@redhat.com>
142
143         * include/bits/functexcept.h: Add guards.
144
145         * acinclude.m4 (GLIBCXX_ENABLE_THREADS): Tweak test.
146         * configure: Regenerate.
147         
148 2004-10-10  Paolo Carlini  <pcarlini@suse.de>
149
150         * config/locale/gnu/monetary_members.cc (_S_construct_pattern):
151         Give __ret a default value, thus avoiding spurious warnings.
152
153         * testsuite/performance/27_io/filebuf_sgetn_unbuf.cc: Open either
154         words or linux.words, otherwise exit.
155         * testsuite/performance/27_io/ifstream_getline.cc: Slighlty tweak.
156
157 2004-10-09  Paolo Carlini  <pcarlini@suse.de>
158
159         * include/std/std_memory.h (__get_temporary_buffer): Don't use
160         INT_MAX, prefer numeric_limits<ptrdiff_t>::max(), ok on 64-bit
161         platforms too.
162         * testsuite/20_util/memory/auto_ptr/assign_neg.cc: Adjust dg-error
163         line numbers.
164
165 2004-10-08  Benjamin Kosnik  <bkoz@redhat.com>
166
167         * acconfig.h: Add _GLIBCXX_USE___CXA_ATEXIT.
168         * acinclude.m4 (GLIBCXX_ENABLE_CXA_ATEXIT): New.
169         * configure.ac: Call GLIBCXX_ENABLE_CXA_EXIT.
170         * configure: Regenerate.
171         * src/mt_allocator.cc (__pool::~__pool): Make conditional on
172         _GLIBCXX_USE___CXA_ATEXIT macro.
173         * docs/html/ext/mt_allocator.html: Add note about deallocation.
174         * testsuite/ext/mt_allocator/deallocate_local-2.cc: Guard checks
175         with _GLIBCXX_USE___CXA_ATEXIT.
176         * testsuite/ext/mt_allocator/deallocate_global_thread-3.cc: Same.
177         * testsuite/ext/mt_allocator/deallocate_global_thread-1.cc: Same.
178         * testsuite/ext/mt_allocator/deallocate_global-4.cc: Same.
179         * testsuite/ext/mt_allocator/deallocate_global-2.cc: Same.
180         * testsuite/ext/mt_allocator/deallocate_local_thread-3.cc: Same.
181         * testsuite/ext/mt_allocator/deallocate_local_thread-1.cc: Same.
182         * testsuite/ext/mt_allocator/deallocate_local-4.cc: Same.
183         
184 2004-10-07  Phil Edwards  <phil@codesourcery.com>
185
186         * testsuite/lib/libstdc++.exp:  Update list of undefined functions.
187
188 2004-10-07  Paolo Carlini  <pcarlini@suse.de>
189
190         * include/bits/list.tcc (operator=): Avoid iterator postincrement.
191         * include/bits/stl_tree.h (erase(iterator, iterator)): Likewise.
192
193 2004-10-07  Benjamin Kosnik  <bkoz@redhat.com>
194
195         * include/tr1: New.
196         * include/tr1/array: New.
197         * include/Makefile.am (tr1_headers): New.
198         (stamp-tr1): New.
199         (install-headers): New.
200         (allstamped): Add stamp-tr1.
201
202         * include/ext/array_allocator.h: New.
203         * include/Makefile.am: Add.
204         * include/Makefile.in: Regenerate.
205         * testsuite/ext/array_allocator/1.cc: New.
206         * testsuite/ext/array_allocator/2.cc: New.
207
208 2004-10-07  Richard Earnshaw  <rearnsha@arm.com>
209
210         * testsuite/lib/libstdc++.exp (libstdc++_exit): New proc.
211
212 2004-10-07  Roger Sayle  <roger@eyesopen.com>
213
214         PR libstdc++/17850
215         * configure.ac: Newlib does not provide strtold.
216         * configure: Regenerate.
217
218 2004-10-06  Benjamin Kosnik  <bkoz@redhat.com>
219
220         * acinclude.m4 (GLIBCXX_ENABLE_THREADS): Set enable_thread.
221         (GLIBCXX_CONFIGURE_TESTSUITE): Use it.
222         * configure: Regenerated.
223         * testsuite/Makefile.am (CLEANFILES): Add TEST for
224         check-performance executables.
225         (stamp_thread): New.
226         (all-local): Use it.
227         * testsuite/Makefile.in: Regenerate.
228         * scripts/create_testsuite_files: Filter thread tests.
229
230         * testsuite/thread/pthread1.cc: Remove macro conditionals: this
231         file will only be run by thread enabled configurations.
232         * testsuite/thread/pthread7-rope.cc: Same, add rope_type typedef.
233         * testsuite/thread/pthread6.cc: Same.
234         * testsuite/thread/pthread5.cc: Same.
235         * testsuite/thread/pthread4.cc: Same.
236         * testsuite/thread/pthread3.cc: Same.
237         * testsuite/thread/pthread2.cc: Same.
238
239         * testsuite/ext/mt_allocator/instantiate.cc: Add in __GTHREADS guard.
240         * testsuite/ext/mt_allocator/deallocate_global-1.cc: Move to...
241         * testsuite/ext/mt_allocator/deallocate_global_thread-1.cc: ...here.
242         * testsuite/ext/mt_allocator/deallocate_global-3.cc: Move to...
243         * testsuite/ext/mt_allocator/deallocate_global_thread-3.cc: ...here. 
244         * testsuite/ext/mt_allocator/deallocate_local-1.cc: Move to...
245         * testsuite/ext/mt_allocator/deallocate_local_thread-1.cc: ...here.
246         * testsuite/ext/mt_allocator/deallocate_local-3.cc: Move to...
247         * testsuite/ext/mt_allocator/deallocate_local_thread-3.cc: ...here.
248
249 2004-10-06  Benjamin Kosnik  <bkoz@redhat.com>
250             Paolo Carlini  <pcarlini@suse.de>
251
252         PR libstdc++/17780
253         * src/mt_allocator.cc (__pool<true>::_M_reserve_block): Revert
254         to old locking order.
255
256 2004-10-06  Paolo Carlini  <pcarlini@suse.de>
257
258         * include/std/std_sstream.h (_M_sync): When the caller is
259         setbuf, don't trust _M_string.capacity() to be the size of
260         the buffer area, use _M_string.size() in this case.
261         * testsuite/27_io/basic_stringbuf/setbuf/char/4.cc: New.
262         * testsuite/27_io/basic_stringbuf/setbuf/wchar_t/4.cc: Likewise.
263
264         * include/bits/sstream.tcc (overflow): Avoid calling string::assign
265         unnecessarily when the current _M_string is empty.
266
267 2004-10-06  Paolo Carlini  <pcarlini@suse.de>
268
269         * include/bits/stl_algo.h (__reverse(bidirectional_iterator_tag)):
270         Avoid iterator postincrement.
271         (__rotate): Likewise.
272
273         * include/bits/stl_algo.h: Minor formatting tweaks.
274
275 2004-10-06  Christopher Jefferson <caj@cs.york.ac.uk>
276
277         * include/bits/stl_algo.h (__reverse(random_access_iterator_tag)):
278         Avoid iterator postincrement; fix swapping middle element with
279         itself on odd-length inputs.
280
281 2004-10-05  Benjamin Kosnik  <bkoz@redhat.com>
282
283         PR libstdc++/17780
284         * include/ext/mt_allocator.h (__pool_base::_Tune): Add default
285         options as compile-time constant enums.
286         (__pool_base::_Tune::is_default): New.
287         (__pool_base::_Block_address): New.
288         (__pool_base): Rearrange data members.
289         (__pool::_M_reserve_memory): To _M_reserve_block.
290         (__pool::_M_reclaim_memory): To _M_reclaim_block.       
291         (__pool::_Bin_record): Add _Block_address data member.
292         (__pool<false>): Add _M_thread_freelist_initial.
293         (__pool::~__pool): Declare.     
294         (__common_pool_policy): Move static data member to...
295         (__common_pool_policy::_S_get_pool): ...here, make static local.
296         (__per_type_pool_policy): Move static data member to...
297         (__per_type_pool_policy::_S_get_pool): ...here, make static local.
298         (__mt_alloc::__mt_alloc): Call __policy_type::_S_get_pool.
299         Remove static member definitions. Use define for __default_policy.
300         * src/mt_allocator.cc: Same.
301         * config/linker-map.gnu: Don't export _S_get_pool. Renames.
302         * testsuite/ext/new_allocator: New.
303         * testsuite/ext/new_allocator/instantiate.cc: New.
304         * testsuite/ext/new_allocator/check_new.cc: New.
305         * testsuite/ext/new_allocator/deallocate_global.cc: New.
306         * testsuite/ext/new_allocator/deallocate_local.cc: New.
307         * testsuite/ext/mt_allocator/instantiate.cc: Instantiate all
308         template arguments.
309         * testsuite/ext/mt_allocator/deallocate_global-1.cc: New.
310         * testsuite/ext/mt_allocator/deallocate_global-2.cc: New.
311         * testsuite/ext/mt_allocator/deallocate_global-3.cc: New.
312         * testsuite/ext/mt_allocator/deallocate_global-4.cc: New.
313         * testsuite/ext/mt_allocator/deallocate_local-1.cc: New.
314         * testsuite/ext/mt_allocator/deallocate_local-2.cc: New.
315         * testsuite/ext/mt_allocator/deallocate_local-3.cc: New.
316         * testsuite/ext/mt_allocator/deallocate_local-4.cc: New.
317         * testsuite/ext/mt_allocator/deallocate.cc: New.
318         * testsuite/ext/malloc_allocator/deallocate.cc: New.    
319         * testsuite/ext/malloc_allocator/deallocate_global.cc: New.
320         * testsuite/ext/malloc_allocator/deallocate_local.cc: New.
321         
322 2004-10-05  Ulrich Weigand  <uweigand@de.ibm.com>
323
324         * configure.host (abi_baseline_pair): Define for s390-*-linux* and
325         s390x-*-linux*.
326         * config/abi/s390-linux-gnu/baseline_symbols.txt: Add missing symbols.
327         * config/abi/s390x-linux-gnu/baseline_symbols.txt: New file.
328
329 2004-10-05  Christopher Jefferson  <caj@cs.york.ac.uk>
330
331         * include/bits/stl_algobase.h (iter_swap): delegate to swap via
332         __iter_swap when iterator's value_types are equal.
333         (struct __iter_swap): New.
334
335 2004-10-04  Benjamin Kosnik  <bkoz@redhat.com>
336
337         * configure.ac (libtool_VERSION): To 6:3:0.
338         * configure: Regnerate.
339         * testsuite/testsuite_abi.cc (check_version): Add 3.4.3.
340
341 2004-10-04  Roger Sayle  <roger@eyesopen.com>
342             Eric Botcazou  <ebotcazou@libertysurf.fr>
343
344         PR libstdc++/17505
345         * config/linker-map.gnu: Synchronize the current list of stub
346         functions from libmath.
347
348 2004-10-03  Roger Sayle  <roger@eyesopen.com>
349
350         * config/locale/generic/c_locale.cc (__convert_to_v): Use
351         _GLIBCXX_HAVE_STRTOF instead _GLIBCXX_USE_C99 to check for strtof.
352         Likewise, use _GLIBCXX_HAVE_STRTOLD instead of _GLIBCXX_USE_C99
353         to check for presence of strtold.
354
355 2004-10-03  Paolo Carlini  <pcarlini@suse.de>
356
357         * include/bits/stl_list.h: Trivial formatting fixes.
358         * include/bits/stl_tree.h: Likewise.
359
360 2004-10-03  Paolo Carlini  <pcarlini@suse.de>
361
362         * include/bits/sstream.tcc (seekpos): In case of success, just
363         return __sp.
364
365 2004-10-01  Paolo Carlini  <pcarlini@suse.de>
366
367         * include/bits/sstream.tcc (pbackfail): Implement correctly
368         27.7.1.3/2, bullet 2: if mode & ios_base::out is false do not
369         write in the buffer.
370         * testsuite/27_io/basic_stringbuf/pbackfail/char/1.cc: New.
371         * testsuite/27_io/basic_stringbuf/pbackfail/char/2.cc: Likewise.
372         * testsuite/27_io/basic_stringbuf/pbackfail/wchar_t/1.cc: Likewise.
373         * testsuite/27_io/basic_stringbuf/pbackfail/wchar_t/2.cc: Likewise.
374         * testsuite/27_io/basic_istream/putback/char/1.cc: Tweak consistently.
375
376 2004-10-01  Paolo Carlini  <pcarlini@suse.de>
377
378         * include/bits/sstream.tcc (seekpos): Minor rearrangement of two
379         conditionals consistently with seekoff.
380         * include/std/std_sstream.h (setbuf): Avoid a string temporary.
381         (_M_sync): Simplify a bit, clean-up comment.
382
383 2004-09-30  Paolo Carlini  <pcarlini@suse.de>
384
385         PR libstdc++/10975 (DR 453)
386         * include/bits/sstream.tcc (seekoff): Don't fail if __beg == 0
387         and __off == 0.
388         * docs/html/ext/howto.html: Add an entry for DR 453.
389         * testsuite/27_io/basic_stringbuf/seekoff/char/10975.cc: New.
390         * testsuite/27_io/basic_stringbuf/seekoff/wchar_t/10975.cc: Likewise.
391         * testsuite/27_io/basic_istream/tellg/char/1.cc: Tweak consistently.
392         * testsuite/27_io/basic_ostream/tellp/char/1.cc: Likewise.
393         * testsuite/27_io/basic_ostream/tellp/char/2.cc: Likewise.
394         * testsuite/27_io/basic_istream/seekg/char/2346-fstream.cc: Fix and
395         move to...
396         * testsuite/27_io/basic_istream/seekp/char/2346-fstream.cc: ... here.
397         * testsuite/27_io/basic_istream/seekg/char/2346-sstream.cc: Fix and
398         move to...
399         * testsuite/27_io/basic_istream/seekp/char/2346-sstream.cc: ... here.
400
401 2004-09-29  Paolo Carlini  <pcarlini@suse.de>
402
403         * include/std/std_sstream.h (basic_stringbuf(ios_base::openmode)):
404         Don't use _M_stringbuf_init, keep the pointers null, per 27.7.1.1.
405         (str()): Slightly tweak, protect from pptr() == 0.
406         (_M_update_egptr()): Likewise.
407         * include/bits/sstream.tcc (ssekoff, seekpos): In order to check
408         for an empty buffer use __beg instead of _M_string.capacity().
409         * testsuite/27_io/basic_stringbuf/cons/char/1.cc: New.
410         * testsuite/27_io/basic_stringbuf/cons/wchar_t/1.cc: Likewise.
411
412         * testsuite/27_io/basic_filebuf/cons/char/1.cc: New.
413         * testsuite/27_io/basic_filebuf/cons/wchar_t/1.cc: Likewise.
414         * testsuite/27_io/basic_streambuf/cons/char/1.cc: Update.
415         * testsuite/27_io/basic_streambuf/cons/wchar_t/1.cc: Likewise.
416
417 2004-09-29  Paolo Carlini  <pcarlini@suse.de>
418             Benjamin Kosnik  <bkoz@redhat.com>
419         
420         * testsuite/testsuite_io.h (class constraint_buf): New, extended
421         and templatized version of constraint_filebuf; add typedefs for
422         streambuf/stringbuf/filebuf and wchar_t counterparts.
423
424 2004-09-28  Paolo Carlini  <pcarlini@suse.de>
425
426         PR libstdc++/16612
427         * include/bits/basic_string.h (_M_dispose, _M_refcopy,
428         basic_string()): When _GLIBCXX_FULLY_DYNAMIC_STRING is defined,
429         don't deal with _S_empty_rep.
430         * include/bits/basic_string.tcc (_S_construct, _M_destroy,
431         _M_leak_hard, _M_mutate): Likewise.
432         * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): New.
433         * acconfig.h: Add corresponding undef.  
434         * configure.ac: Use GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING.
435         * docs/html/configopts.html: Document --enable-fully-dynamic-string.
436         * configure: Regenerate.
437         * config.h.in: Likewise.
438
439 2004-09-28  Benjamin Kosnik  <bkoz@redhat.com>
440             Paolo Carlini  <pcarlini@suse.de>
441
442         * testsuite/21_strings/basic_string/operations/char/1.cc: New.
443         * testsuite/21_strings/basic_string/operations/wchar_t/1.cc: New.
444         * testsuite/21_strings/basic_string/element_access/char/empty.cc: New.
445         * testsuite/21_strings/basic_string/element_access/wchar_t/empty.cc: 
446         New.
447
448 2004-09-28  Paolo Carlini  <pcarlini@suse.de>
449
450         * README: Remove obsolete entry about include/c_shadow.
451
452 2004-09-24  H.J. Lu  <hongjiu.lu@intel.com>
453
454         PR libstdc++/17469
455         * testsuite/lib/libstdc++.exp: Don't use global ld_library_path.
456
457 2004-09-24  Paolo Carlini  <pcarlini@suse.de>
458
459         * src/localename.cc (locale::locale(const char*)): Minor tweaks:
460         rename a variable, move an assignment.
461         (locale::_Impl::_Impl(const char*, size_t)): Likewise, minor tweak.
462
463 2004-09-24  Paul Brook  <paul@codesourcery.com>
464
465         * testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc: XFAIL more arm
466         simulator targets.
467         * testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc: Ditto.
468         * testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc: Ditto.
469         * testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc: Ditto.
470         * testsuite/27_io/basic_istream/readsome/char/6746-2.cc: Ditto.
471         * testsuite/ext/stdio_filebuf/char/10063-2.cc: Ditto.
472         * testsuite/ext/stdio_filebuf/char/10063-3.cc: Ditto.
473
474 2004-09-23  Zack Weinberg  <zack@codesourcery.com>
475
476         * testsuite/20_util/memory/auto_ptr/assign_neg.cc
477         * testsuite/23_containers/map/operators/1_neg.cc
478         * testsuite/23_containers/set/operators/1_neg.cc:
479         Update locations and/or regexps of dg-error markers.
480
481 2004-09-23  P.J. Darcy  <darcypj@us.ibm.com>
482
483         * include/Makefile.am (thread_host_headers): Add gthr-tpf.h.
484         Add rule to build ${host_builddir}/gthr-tpf.h.
485         * include/Makefile.in: Regenerate.
486
487 2004-09-23  Paolo Carlini  <pcarlini@suse.de>
488             Magnus Fromreide  <magfr@lysator.liu.se>
489
490         * include/bits/boost_concept_check.h (struct _SequenceConcept):
491         Remove wrong requirement, i.e., not present in Table 67.
492
493 2004-09-21  Paolo Carlini  <pcarlini@suse.de>
494
495         PR libstdc++/12882 (cont)
496         * acinclude.m4 (GLIBCXX_CHECK_LFS): Check for fstat64 too.
497         * configure: Regenerate.
498         * config/io/basic_file_stdio.cc (__basic_file<>::showmanyc): When
499         _GLIBCXX_USE_LFS use fstat64 and lseek64, thus providing a non
500         trivial showmanyc for large files too.
501
502 2004-09-17  Jonathan Wakely  <redi@gcc.gnu.org>
503
504         * include/bits/stl_algo.h (remove): Remove too restrictive
505         concept-check.
506
507 2004-09-17  Paolo Carlini  <pcarlini@suse.de>
508
509         * include/bits/fstream.tcc (xsgetn): Slightly tweak conditional,
510         as per Nathan's original suggestion.
511
512 2004-09-17  Paolo Carlini  <pcarlini@suse.de>
513
514         * testsuite/ext/mt_allocator/tune-1.cc: Use VERIFY, clean
515         up a bit.
516         * testsuite/ext/mt_allocator/tune-2.cc: Likewise.
517         * testsuite/ext/mt_allocator/tune-3.cc: Likewise.
518         * testsuite/ext/mt_allocator/tune-4.cc: Likewise.
519
520 2004-09-17  Paolo Carlini  <pcarlini@suse.de>
521             Andrea Arcangeli  <andrea@suse.de>
522
523         * config/io/basic_file_stdio.cc (__basic_file<>::close)): Don't
524         call unnecessarily sync, that is fflush: the library, since 3.4.0
525         does not use buffered fread/fwrite.
526         * include/bits/fstream.tcc (basic_filebuf<>::overflow): Likewise.
527
528 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
529
530         * config/cpu/arm/cxxabi_tweaks.h (__cxa_cdtor_return_type):
531         Define.
532         * config/cpu/generic/cxxabi_tweaks.h (__cxa_cdtor_return_type):
533         Define.
534         * libsupc++/cxxabi.h (__cxa_cdtor_return_type): New type.
535         (__cxa_vec_new): Use it.
536         (__cxa_vec_new2): Likewise.
537         (__cxa_vec_new3): Likewise.
538         (__cxa_vec_cdtor): Likewise.
539         (__cxa_vec_cctor): Likeiwse.
540         (__cxa_vec_dtor): Likewise.
541         (__cxa_vec_cleanup): Likewise.
542         (__cxa_vec_delete2): Likewise.
543         (__cxa_vec_delete3): Likewise.
544         * libsupc++/vec.cc (__cxa_vec_new): Likewise.
545         (__cxa_vec_new2): Likewise.
546         (__cxa_vec_new3): Likewise.
547         (__cxa_vec_cdtor): Likewise.
548         (__cxa_vec_cctor): Likeiwse.
549         (__cxa_vec_dtor): Likewise.
550         (__cxa_vec_cleanup): Likewise.
551         (__cxa_vec_delete2): Likewise.
552         (__cxa_vec_delete3): Likewise.
553         (__aeabi_vec_ctor_nocookie_nodtor): New function.
554         (__aeabi_vec_ctor_cookie_nodtor): Likewise.
555         (__aeabi_vec_cctor_nocookie_nodtor): Likewise.
556         (__aeabi_vec_new_cookie_noctor): Likewise.
557         (__aeabi_vec_new_nocookie): Likewise.
558         (__aeabi_vec_new_cookie_nodtor): Likewise.
559         (__aeabi_vec_new_cookie): Likewise.
560         (__aeabi_vec_dtor): Likewise.
561         (__aeabi_vec_dtor_cookie): Likewise.
562         (__aeabi_vec_delete): Likewise.
563         (__aeabi_vec_delete3): Likewise.
564         (__aeabi_vec_delete3_nodtor): Likewise.
565         (__aeabi_atexit): Likewise.
566
567 2004-09-14  Nathan Myers  <ncm@cantrip.org>
568
569         * include/bits/fstream.tcc (xsgetn): Slightly tweak the recent fix
570         for 11722: copy can replace move; the common case is __avail == 0.
571
572 2004-09-14  Paolo Carlini  <pcarlini@suse.de>
573
574         * include/bits/cpp_type_traits.h: Rename __is_trivially_copyable
575         to __is_scalar, more clear and consistent with "tr1" naming.
576         * include/bits/stl_algobase.h: Update consistently throughout.
577
578 2004-09-13  Paolo Carlini  <pcarlini@suse.de>
579
580         PR libstdc++/11722
581         * include/std/std_fstream.h (xsgetn): Declare only.
582         * include/bits/fstream.tcc (xsgetn): Define, optimize for the
583         always_noconv() case: when __n > __buflen, copy the available
584         buffer and issue a direct read.
585         * testsuite/performance/27_io/filebuf_sgetn_unbuf.cc: New.
586
587         * include/bits/fstream.tcc (xsputn): Minor tweak, reorder a
588         conditional.
589
590 2004-09-13  Hans-Peter Nilsson  <hp@bitrange.com>
591
592         * testsuite/lib/libstdc++.exp: Use gcc wrapper.exp and call
593         libstdc++_maybe_build_wrapper instead of using local code.
594
595 2004-09-08  Benjamin Kosnik  <bkoz@redhat.com>
596
597         * config/linker-map.gnu (GLIBCXX_3.4.3): New, adjust symbol exports.
598
599 2004-09-03  Jan Beulich  <jbeulich@novell.com>
600
601         * crossconfig.m4: Add NetWare as a target.
602         * configure: Regenerate.
603
604 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
605
606         * libsupc++/typeinfo: Honor __GXX_MERGED_TYPEINFO_NAMES if already
607         defined.
608
609 2004-09-02  Benjamin Kosnik  <bkoz@redhat.com>
610             Simon Richter  <Simon.Richter@hogyros.de>
611
612         PR libstdc++/16715
613         * include/bits/istream.tcc: Add extern template for iostream
614         char and wchar_t instantiations.
615
616 2004-09-02  Benjamin Kosnik  <bkoz@redhat.com>
617             Leland Wang  <llwang@infor.org>
618
619         PR libstdc++/17259
620         * include/ext/ropeimpl.h (rope::_S_compare): Use
621         _Rope_constants::_S_leaf.
622
623 2004-09-02  Benjamin Kosnik  <bkoz@redhat.com>
624
625         PR libstdc++/16848
626         * include/Makefile.am (ext_headers): Remove demangle.h.
627         * include/Makefile.in: Regenerate.
628         * include/ext/demangle.h: Remove.
629
630 2004-09-01  Benjamin Kosnik  <bkoz@redhat.com>
631
632         PR libstdc++/16614
633         * include/ext/mt_allocator.h (__mt_base): Not type dependent,
634         split into..
635         (__pool): New, specialize.
636         (__common_pool): New, static bits here.
637         (__per_type_pool): New, and here.
638         (__mt_alloc_base): New.
639         (__mt_alloc): Add template parameter, inherit from it.
640         * src/allocator.cc: Split this...
641         * src/allocator-inst.cc: And this...
642         * src/pool_allocator.cc: ...into this.
643         * src/mt_allocator.cc: ... and this. Add definitions for
644         __mt_base.
645         * src/Makefile.am (sources): Split allocator.cc to
646         pool_allocator.cc and mt_allocator.cc.
647         * src/Makefile.in: Regenerate.
648         * config/linker-map.gnu: Add symbols.
649         * docs/html/ext/mt_allocator.html: Document new design.
650         * testsuite/ext/mt_allocator/tune-1.cc: New.
651         * testsuite/ext/mt_allocator/tune-2.cc: New.
652         * testsuite/ext/mt_allocator/tune-3.cc: New.
653         * testsuite/ext/mt_allocator/tune-4.cc: New.
654
655         * testsuite/testsuite_allocator.h (__gnu_test::check_new): New.
656         * testsuite/ext/allocators.cc: Use check_new, split into...
657         * testsuite/ext/mt_allocator/check_new.cc: this.
658         * testsuite/ext/pool_allocator/check_new.cc: this.
659         * testsuite/ext/malloc_allocator/check_new.cc: this.
660         * testsuite/ext/debug_allocator/check_new.cc: this.
661         * testsuite/ext/mt_allocator/instantiate.cc: this.
662         * testsuite/ext/pool_allocator/instantiate.cc: this.
663         * testsuite/ext/malloc_allocator/instantiate.cc: this.
664         * testsuite/ext/debug_allocator/instantiate.cc: this.
665
666 2004-08-30  Phil Edwards  <phil@codesourcery.com>
667
668         * docs/html/install.html:  Update locales list (from Paolo).
669         Remove other redundant information and point to the GCC install
670         documentation.
671
672 2004-08-30  Benjamin Kosnik  <bkoz@redhat.com>
673
674         * include/ext/pool_allocator.h: Rename __pool_base to
675         __pool_alloc_base.
676         * src/allocator.cc: Same.
677         * config/linker-map.gnu: Same.
678
679 2004-08-30  Paolo Carlini  <pcarlini@suse.de>
680             Kenneth C. Schalk  <ken@xorian.net>
681
682         PR libstdc++/17215
683         * config/io/basic_file_stdio.cc (__basic_file<char>::close()):
684         Check the return value of fclose/sync, loop on EINTR.
685         (__basic_file<char>::sys_open): Likewise, for sync.
686
687 2004-08-29  Paolo Carlini  <pcarlini@suse.de>
688
689         * include/bits/locale_facets.tcc (time_get<>::_M_extract_via_format,
690         case 'S'): Allow for at least one leap-second (as per C99, 7.23.1
691         and 7.23.3.5), two if !_GLIBCXX_USE_C99.
692         * testsuite/22_locale/time_get/get_time/char/4.cc: New.
693         * testsuite/22_locale/time_get/get_time/wchar_t/4.cc: Likewise.
694
695 2004-08-27  Jason Merrill  <jason@redhat.com>
696
697         PR c++/13684
698         * libsupc++/guard.cc (static_mutex): Internal class implementing a
699         recursive mutex which controls initialization of local statics.
700         (__gnu_cxx::recursive_init): New exception class.
701         (__cxa_guard_acquire): Deal with locking and recursion detection.
702         (acquire_1, __cxa_guard_abort, __cxa_guard_release): Likewise.
703
704 2004-08-27  Matthias Klose  <doko@debian.org>
705
706         * configure.host: For mips*-*-linux* update cpu_include_dir
707         after atomicity_dir is set.
708
709 2004-08-27  Matthias Klose  <doko@debian.org>
710
711         * config/abi/arm-linux-gnu/baseline_symbols.txt: New.
712         * config/abi/mips-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
713         * configure.host: Set abi_baseline_pair for arm*-*-linux* and
714         mips*-*-linux*.
715
716 2004-08-27  Paolo Carlini  <pcarlini@suse.de>
717
718         * testsuite/27_io/manipulators/adjustfield/wchar_t/1.cc: New.
719         * testsuite/27_io/manipulators/adjustfield/wchar_t/2.cc: Likewise.
720         * testsuite/27_io/manipulators/basefield/wchar_t/1.cc: Likewise.
721         * testsuite/27_io/manipulators/standard/wchar_t/1.cc: Likewise.
722         * testsuite/27_io/manipulators/standard/wchar_t/2.cc: Likewise.
723
724         * testsuite/27_io/manipulators/adjustfield/char/1.cc: Minor
725         formatting fixes.
726         * testsuite/27_io/manipulators/adjustfield/char/2.cc: Likewise.
727         * testsuite/27_io/manipulators/basefield/char/1.cc: Likewise.
728         * testsuite/27_io/manipulators/standard/char/1.cc: Likewise.
729         * testsuite/27_io/manipulators/standard/char/2.cc: Likewise.
730
731 2004-08-25  Paolo Carlini  <pcarlini@suse.de>
732
733         PR libstdc++/17038 (partial)
734         * include/bits/locale_facets.tcc (time_put<>::do_put): Increase
735         __maxlen to 128.
736         * include/bits/locale_facets.h (class __timepunct): Add FIXME
737         comment about _M_put.
738         * config/locale/generic/time_members.cc (_M_put): Always null
739         terminate __s.
740         * config/locale/gnu/time_members.cc (_M_put): Likewise.
741         * testsuite/22_locale/time_put/put/char/17038.cc: New.
742         * testsuite/22_locale/time_put/put/wchar_t/17038.cc: New.
743
744 2004-08-24  Paolo Carlini  <pcarlini@suse.de>
745
746         * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc: New.
747         * testsuite/27_io/basic_istringstream/str/wchar_t/1.cc: Likewise.
748         * testsuite/27_io/basic_ostringstream/cons/wchar_t/3.cc: Likewise.
749         * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc: Likewise.
750         * testsuite/27_io/basic_ostringstream/str/wchar_t/1.cc: Likewise.
751         * testsuite/27_io/basic_ostringstream/str/wchar_t/2.cc: Likewise.
752
753         * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Trim excess
754         newlines.
755         * testsuite/27_io/basic_istringstream/str/char/1.cc: Likewise.
756
757 2004-08-22  Matthias Klose  <doko@debian.org>
758
759         * config/abi/m68k-linux-gnu/baseline_symbols.txt: New.
760         * config/abi/sparc-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
761
762 2004-08-23  Paolo Carlini  <pcarlini@suse.de>
763
764         * configure.ac: Specify version 1.9.1 in AM_INIT_AUTOMAKE.
765         * aclocal.m4: Regenerate with automake-1.9.1.
766         * configure: Regenerate.
767         * Makefile.in: Likewise.
768         * include/Makefile.in: Likewise.
769         * libmath/Makefile.in: Likewise.
770         * libsupc++/Makefile.in: Likewise.
771         * po/Makefile.in: Likewise.
772         * src/Makefile.in: Likewise.
773         * testsuite/Makefile.in: Likewise.
774
775 2004-08-22  Paolo Carlini  <pcarlini@suse.de>
776
777         * include/bits/locale_facets.tcc (num_put<>::do_put(bool)): Cast
778         to a signed type, long according to the resolution of DR 359.
779         * testsuite/22_locale/num_put/put/char/9.cc: New.
780         * testsuite/22_locale/num_put/put/wchar_t/9.cc: New.
781
782         * include/bits/locale_facets.tcc (num_put<>::do_put(const void*)):
783         Simplify a bit: no need to clear showpos.
784
785 2004-08-21  Paolo Carlini  <pcarlini@suse.de>
786
787         * include/bits/char_traits.h (struct _Char_traits_match): Remove,
788         unused.
789
790 2004-08-21  Paolo Carlini  <pcarlini@suse.de>
791
792         * testsuite/22_locale/money_put/put/wchar_t/1.cc: Use proper
793         wchar_t type for the fill argument; minor formatting tweaks.
794         * testsuite/22_locale/money_put/put/wchar_t/12971.cc: Likewise.
795         * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise.
796         * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise.
797         * testsuite/22_locale/money_put/put/wchar_t/4.cc: Likewise.
798         * testsuite/22_locale/money_put/put/wchar_t/5.cc: Likewise.
799         * testsuite/22_locale/money_put/put/wchar_t/6.cc: Likewise.
800
801 2004-08-21  Paolo Carlini  <pcarlini@suse.de>
802
803         * include/bits/basic_ios.tcc (basic_ios<>::copyfmt): Don't deal
804         with _M_word != _M_local_word two times, redundantly.
805
806 2004-08-20  Jason Merrill  <jason@redhat.com>
807
808         * include/Makefile.am (${host_builddir}/gthr.h): Don't add
809         _GLIBCXX_ to #pragma lines.
810         * include/Makefile.in: Update.
811
812 2004-08-20  Paolo Carlini  <pcarlini@suse.de>
813
814         PR libstdc++/7219 (continued)
815         * include/bits/ios_base.h (class ios_base): Expose Annex D.6
816         typedefs by default.
817         * testsuite/27_io/types/1.cc: Remove #if _GLIBCXX_DEPRECATED.
818         * testsuite/27_io/ios_base/cons/assign_neg.cc: Tweak dg-error
819         line number.
820         * testsuite/27_io/ios_base/cons/copy_neg.cc: Likewise.
821
822 2004-08-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
823
824         * cpu/hppa/atomicity.h (__exchange_and_add, __atomic_add): Add memory
825         barrier to locking asm.
826
827 2004-08-20  Paolo Carlini  <pcarlini@suse.de>
828
829         * include/c_std/cmath.tcc (__cmath_power): Revert previous commit:
830         actually the warning is a front-end bug (c++/17120).
831
832 2004-08-20  Matthias Klose  <doko@debian.org>
833
834         * config/abi/s390-linux-gnu/baseline_symbols.txt: New.
835
836 2004-08-20  Paolo Carlini  <pcarlini@suse.de>
837
838         * include/c_std/cmath.tcc (__cmath_power): Suppress assignment
839         used as truth value warning.
840
841 2004-08-20  Paolo Carlini  <pcarlini@suse.de>
842
843         * config/abi/x86_64-linux-gnu/32/baseline_symbols.txt: Add 32 bit
844         baseline.
845
846 2004-08-20  Paolo Carlini  <pcarlini@suse.de>
847
848         * config/abi/x86_64-linux-gnu/baseline_symbols.txt: Fix it.
849
850 2004-08-19  Benjamin Kosnik  <bkoz@redhat.com>
851
852         * testsuite/22_locale/time_put/put/char/3.cc (test03): Don't check
853         timezone.
854         * testsuite/22_locale/time_put/put/wchar_t/3.cc (test03): Same.
855
856 2004-08-19  Paolo Carlini  <pcarlini@suse.de>
857
858         * testsuite/performance/20_util/allocator/insert.cc: For std::map
859         instantiate the allocator for a correct pair type.
860         * testsuite/performance/20_util/allocator/insert_insert.cc: Likewise.
861         * testsuite/performance/20_util/allocator/map_thread.cc: Likewise.
862         * testsuite/performance/20_util/allocator/producer_consumer.cc:
863         Likewise.
864
865         * testsuite/performance/20_util/allocator/list_sort_search.cc: Very
866         minor formatting fixes.
867         * testsuite/performance/20_util/allocator/map_mt_find.cc: Likewise.
868
869 2004-08-19  Paolo Carlini  <pcarlini@suse.de>
870
871         * testsuite/22_locale/time_put/put/char/1.cc: Add VERIFY on the
872         results.
873         * testsuite/22_locale/time_put/put/char/2.cc: Likewise.
874         * testsuite/22_locale/time_put/put/char/3.cc: Likewise.
875         * testsuite/22_locale/time_put/put/char/4.cc: Likewise.
876         * testsuite/22_locale/time_put/put/wchar_t/1.cc: Likewise.
877         * testsuite/22_locale/time_put/put/wchar_t/2.cc: Likewise.
878         * testsuite/22_locale/time_put/put/wchar_t/3.cc: Likewise.
879         * testsuite/22_locale/time_put/put/wchar_t/4.cc: Likewise.
880
881 2004-08-19  Paolo Carlini  <pcarlini@suse.de>
882
883         * config/abi/x86_64-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
884
885 2004-08-18  Matthias Klose  <doko@debian.org>
886
887         * config/abi/hppa-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
888         * config/abi/i386-linux-gnu/baseline_symbols.txt: New.
889         * config/abi/powerpc-linux-gnu/baseline_symbols.txt: New.
890
891 2004-08-17  Paolo Carlini  <pcarlini@suse.de>
892
893         * config/abi/alpha-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
894
895 2004-08-17  Paolo Carlini  <pcarlini@suse.de>
896
897         * config/abi/ia64-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
898
899 2004-08-17  Benjamin Kosnik  <bkoz@redhat.com>
900
901         * config/abi/i486-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
902
903 2004-08-16  Paolo Carlini  <pcarlini@suse.de>
904
905         * include/bits/indirect_array.h: Trivial formatting fixes.
906         * include/bits/valarray_after.h: Likewise.
907         * include/bits/valarray_array.h: Likewise.
908         * src/valarray-inst.cc: Likewise.
909
910 2004-08-15  Paolo Carlini  <pcarlini@suse.de>
911
912         * testsuite/27_io/basic_stringstream/rdbuf/char/2832.cc: Remove junk.
913         * testsuite/27_io/basic_stringstream/str/char/1.cc: Likewise.
914         * testsuite/27_io/basic_stringstream/str/char/3.cc: Likewise.
915
916         * testsuite/27_io/basic_stringstream/rdbuf/wchar_t/2832.cc: New.
917         * testsuite/27_io/basic_stringstream/str/wchar_t/1.cc: Likewise.
918         * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc: Likewise.
919         * testsuite/27_io/basic_stringstream/str/wchar_t/3.cc: Likewise.
920         * testsuite/27_io/basic_stringstream/str/wchar_t/4.cc: Likewise.
921
922 2004-08-15  Paolo Carlini  <pcarlini@suse.de>
923
924         * include/bits/deque.tcc: Trivial formatting fixes.
925
926 2004-08-15  Paolo Carlini  <pcarlini@suse.de>
927
928         * include/bits/deque.tcc: Trivial formatting fixes.
929
930         * include/bits/locale_facets.tcc (num_get<>::do_get(&bool)):
931         Remove unneded typedef.
932
933         * include/bits/locale_facets.tcc: Very minor tweaks.
934
935         * testsuite/22_locale/time_put/put/wchar_t/1.cc: Use proper
936         type for the fill argument.
937         * testsuite/22_locale/time_put/put/wchar_t/10.cc: Likewise.
938         * testsuite/22_locale/time_put/put/wchar_t/2.cc: Likewise.
939         * testsuite/22_locale/time_put/put/wchar_t/3.cc: Likewise.
940         * testsuite/22_locale/time_put/put/wchar_t/4.cc: Likewise.
941         * testsuite/22_locale/time_put/put/wchar_t/5.cc: Likewise.
942         * testsuite/22_locale/time_put/put/wchar_t/6.cc: Likewise.
943         * testsuite/22_locale/time_put/put/wchar_t/7.cc: Likewise.
944         * testsuite/22_locale/time_put/put/wchar_t/8.cc: Likewise.
945
946 2004-08-13  Paolo Carlini  <pcarlini@suse.de>
947
948         * src/debug.cc (_Error_formatter::_M_print_string): Fix thinko,
949         memmove is not needed, memcpy suffices.
950
951 2004-08-13  Paolo Carlini  <pcarlini@suse.de>
952
953         * include/std/std_fstream.h (class basic_ifstream,
954         class basic_ofstream, class basic_fstream): Add const overloads
955         of is_open, as per DR 365 [WP].
956         * docs/html/ext/howto.html: Add an entry for DR 365.
957
958 2004-08-12  Paolo Carlini  <pcarlini@suse.de>
959
960         * configure.ac: Specify version 1.8.5 in AM_INIT_AUTOMAKE.
961
962 2004-08-12  Paolo Carlini  <pcarlini@suse.de>
963
964         PR libstdc++/16956
965         * include/bits/sstream.tcc (basic_stringbuf<>::seekoff): Add __off
966         to the returned value, reorganize a bit.
967         * testsuite/27_io/basic_stringbuf/seekoff/char/16956.cc: New.
968         * testsuite/27_io/basic_stringbuf/seekoff/wchar_t/16956.cc: New.
969
970         * testsuite/27_io/basic_stringbuf/seekoff/char/1.cc: Remove junk.
971         * testsuite/27_io/basic_stringbuf/seekoff/wchar_t/1.cc: Likewise.
972         * testsuite/27_io/basic_stringbuf/seekpos/char/1.cc: Likewise.
973         * testsuite/27_io/basic_stringbuf/seekpos/wchar_t/1.cc: Likewise.
974
975 2004-08-12  Paul Brook  <paul@codesourcery.com>
976
977         * config/cpu/arm/cxxabi_tweaks.h: Define __cxa_vec_ctor_return and
978         _GLIBCXX_CXA_VEC_CTOR_RETURN.
979         * config/cpu/generic/cxxabi_tweaks.h: Ditto.
980         * libsupc++/cxxabi.h (__cxa_vec_ctor, __cxa_vec_cctor): Use
981         __cxa_vec_ctor_return.
982         * libsupc++/vec.cc (__cxa_vec_ctor, __cxa_vec_cctor): Ditto.
983         Use _GLIBCXX_CXA_VEC_CTOR_RETURN.
984
985 2004-08-12  Kelley Cook  <kcook@gcc.gnu.org>
986
987         * Makefile.in, aclocal.m4, configure, include/Makefile.in,
988         libmath/Makefile.in, libsupc++/Makefile.in, po/Makefile.in,
989         src/Makefile.in, testsuite/Makefile.in: Regenerate
990
991 2004-08-12  Jan Beulich  <jbeulich@novell.com>
992
993         * config/locale/generic/ctype_members.cc
994         (ctype<wchar_t>::_M_convert_to_wmask): Default case must not use 0 as
995         initializer for return value, as that is invalid for enumerated types.
996         * config/locale/gnu/ctype_members.cc
997         (ctype<wchar_t>::_M_convert_to_wmask): Likewise.
998
999 2004-08-11  Paolo Carlini  <pcarlini@suse.de>
1000
1001         * testsuite/27_io/basic_stringbuf/sbumpc/wchar_t/1.cc: Fix typo.
1002
1003 2004-08-11  Paolo Carlini  <pcarlini@suse.de>
1004
1005         * testsuite/27_io/basic_stringbuf/imbue/char/1.cc: Declare test
1006         variable.
1007         * testsuite/27_io/basic_stringbuf/imbue/wchar_t/1.cc: Ditto.
1008         * testsuite/27_io/basic_stringbuf/in_avail/char/1.cc: Remove junk.
1009         * testsuite/27_io/basic_stringbuf/in_avail/wchar_t/1.cc: Ditto.
1010         * testsuite/27_io/basic_stringbuf/sbumpc/char/1.cc: Ditto.
1011         * testsuite/27_io/basic_stringbuf/sbumpc/wchar_t/1.cc: Ditto.
1012         * testsuite/27_io/basic_stringbuf/setbuf/char/1.cc: Ditto.
1013         * testsuite/27_io/basic_stringbuf/setbuf/wchar_t/1.cc: Ditto.
1014         * testsuite/27_io/basic_stringbuf/sgetc/char/1.cc: Ditto.
1015         * testsuite/27_io/basic_stringbuf/sgetc/wchar_t/1.cc: Ditto.
1016         * testsuite/27_io/basic_stringbuf/sgetn/char/1.cc: Ditto.
1017         * testsuite/27_io/basic_stringbuf/sgetn/wchar_t/1.cc: Ditto.
1018         * testsuite/27_io/basic_stringbuf/snextc/char/1.cc: Ditto.
1019         * testsuite/27_io/basic_stringbuf/snextc/wchar_t/1.cc: Ditto.
1020         * testsuite/27_io/basic_stringbuf/sputbackc/char/1.cc: Ditto.
1021         * testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/1.cc: Ditto.
1022         * testsuite/27_io/basic_stringbuf/sputc/char/1.cc: Ditto.
1023         * testsuite/27_io/basic_stringbuf/sputc/wchar_t/1.cc: Ditto.
1024         * testsuite/27_io/basic_stringbuf/sputn/char/1.cc: Ditto.
1025         * testsuite/27_io/basic_stringbuf/sputn/wchar_t/1.cc: Ditto.
1026         * testsuite/27_io/basic_stringbuf/sungetc/char/1.cc: Ditto.
1027         * testsuite/27_io/basic_stringbuf/sungetc/wchar_t/1.cc: Ditto.
1028
1029 2004-08-11  Paolo Carlini  <pcarlini@suse.de>
1030             Petur Runolfsson  <peturr02@ru.is>
1031
1032         PR libstdc++/16959
1033         * src/ios_init.cc (ios_base::sync_with_stdio): Make sure the
1034         standard streams are constructed.
1035         * testsuite/27_io/ios_base/sync_with_stdio/16959.cc: New.
1036
1037 2004-08-09  Paolo Carlini  <pcarlini@suse.de>
1038
1039         * include/bits/stl_bvector.h: Trivial formatting fixes.
1040
1041 2004-08-09  Paolo Carlini  <pcarlini@suse.de>
1042
1043         * src/ios.cc (ios_base::_M_grow_words): Uglify the names.
1044
1045 2004-08-07  Jonathan Wakely  <redi@gcc.gnu.org>
1046             Paolo Carlini  <pcarlini@suse.de>
1047
1048         * src/debug.cc (_Error_formatter::_M_print_string): In order
1049         to print individual words from __string, _M_format_word can't
1050         be called since may be just sprintf, thus ignoring completely
1051         __n: instead, use memmove and append '\0' by hand.
1052
1053 2004-08-07  Paolo Carlini  <pcarlini@suse.de>
1054
1055         * config/locale/generic/c_locale.h (__convert_from_v): Don't
1056         use a default for __prec, assume __prec >= 0 and simplify.
1057         * config/locale/gnu/c_locale.h (__convert_from_v): Likewise.
1058         * include/bits/locale_facets.tcc (money_put<>::do_put(long double)):
1059         Pass format "%.*Lf" + precision == 0, equivalent to "%.0Lf".
1060
1061 2004-08-04  Phil Edwards  <phil@codesourcery.com>
1062
1063         * docs/html/configopts.html:  Emphasize that options change.
1064         * docs/html/17_intro/configury.html:  Update links.
1065
1066 2004-08-03  Paolo Carlini  <pcarlini@suse.de>
1067
1068         * include/bits/list.tcc: Trivial formatting fixes.
1069
1070 2004-08-03  Mark Mitchell  <mark@codesourcery.com>
1071
1072         * libsupc++/new_op.cc: Update comments.
1073         * libsupc++/del_op.cc: Likewise.
1074
1075 2004-08-02  Mark Mitchell  <mark@codesourcery.com>
1076
1077         * libsupc++/cxxabi.h: Make all declarations have default
1078         visibility.
1079         * libsupc++/exception: Likewise.
1080         * libsupc++/new: Likewise.
1081         * libsupc++/typeinfo: Likewise.
1082         * libsupc++/unwind-cxx.h: Likewise.
1083         * libsupc++/eh_alloc.cc (__cxa_allocate_exception): Put it into
1084         the __cxxabiv1 namespace.
1085         (__cxa_free_exception): Likewise.
1086         * libsupc++/eh_aux_runtime.cc (__cxa_bad_cast): Likewise.
1087         (__cxa_bad_typeid): Likewise.
1088         * libsupc++/eh_catch.cc (__cxa_begin_catch): Likewise.
1089         (__cxa_end_catch): Likewise.
1090         * libsupc++/eh_globals.cc (__cxa_get_globals_fast): Likewise.
1091         (__cxa_get_globals): Likewise.
1092         * libsupc++/eh_throw.cc (__cxa_throw): Likewise.
1093         (__cxa_rethrow): Likewise.
1094         * libsupc++/pure.cc (__cxa_pure_virtual): Likewise.
1095         * libsupc++/eh_type.cc: Include <cxxabi.h>.
1096
1097         * Makefile.am (hosted_source): Add libmath and testsuite.
1098         (SUBDIRS): Remove them.
1099         * acinclude.m4: (GLIBCXX_ENABLED_HOSTED): Default to freestanding
1100         on arm*-*-symbianelf*.
1101         * crossconfig.m4: Add arm*-*-symbianelf* support.
1102         * include/c_std/std/std_cstdlib.h (stdlib.h): Do not include it
1103         when freestanding.  Do not bring names into std:: namespace with
1104         "using" when freestanding.  Declare required functions and macros
1105         when freestanding.
1106         * libsupc++/Makefile.am (c_sources): Do not include cp-demangle.c
1107         when freestanding.
1108         * libsupc++/del_op.cc: Declare "free" only when freestanding.
1109         * libsupc++/eh_alloc.cc (cstring): Include it only when hosted.
1110         (malloc): Declare when freestanding.
1111         (free): Likewise.
1112         (memset): Likewise.
1113         (__cxa_allocate_exception): Call malloc, not std::malloc.  Likewise
1114         for memset.
1115         (__cxa_free_exception): Likewise for free.
1116         * libsupc++/new_op.cc: Declare "malloc" when freestanding.
1117         * libsupc++/pure.cc (writestr): Define to nothing when
1118         freestanding.
1119         * libsupc++/vterminate.cc: Do not define anything when
1120         freestanding.
1121         * Makefile.in: Regenerated.
1122         * aclocal.m4: Likewise.
1123         * configure: Likewise.
1124         * include/Makefile.in: Likewise.
1125         * libmath/Makefile.in: Likewise.
1126         * libsupc++/Makefile.in: Likewise.
1127         * po/Makefile.in: Likewise.
1128         * src/Makefile.in: Likewise.
1129         * testsuite/Makefile.in: Likewise.
1130
1131 2004-08-01  Matt Austern  <austern@apple.com>
1132
1133         PR libstdc++/16844
1134         * include/bits/stl_list.h (_M_create_node): Remove unused
1135         zero-argument version.
1136         * include/ext/slist (_M_create_node): Pass two arguments to
1137         allocator's construct() member function.
1138         * testsuite/23_containers/deque/explicit_instantiation.cc: New.
1139         * testsuite/23_containers/list/explicit_instantiation.cc: New.
1140         * testsuite/23_containers/vector/explicit_instantiation.cc: New.
1141         * testsuite/23_containers/map/explicit_instantiation.cc: New.
1142         * testsuite/23_containers/set/explicit_instantiation.cc: New.
1143         * testsuite/23_containers/multimap/explicit_instantiation.cc: New.
1144         * testsuite/23_containers/multiset/explicit_instantiation.cc: New.
1145         * testsuite/ext/hash_set_explicit_instantiation.cc: New.
1146         * testsuite/ext/slist_explicit_instantiation.cc: New.
1147
1148 2004-07-30  Paolo Carlini  <pcarlini@suse.de>
1149
1150         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
1151         num_get<>::_M_extract_int): In the main parsing loop delay the
1152         life of __q to the actual use point.
1153
1154 2004-07-29  Paolo Carlini  <pcarlini@suse.de>
1155
1156         PR libstdc++/14220
1157         * include/bits/locale_facets.tcc (num_put<>::_M_insert_float):
1158         Don't clip the precision passed down to __convert_from_v:
1159         22.2.2.2.2 nowhere says so.
1160         * testsuite/22_locale/num_put/put/char/14220.cc: New.
1161         * testsuite/22_locale/num_put/put/wchar_t/14220.c: Likewise.
1162
1163 2004-07-29  Paolo Carlini  <pcarlini@suse.de>
1164
1165         * docs/html/ext/lwg-active.html, lwg-defects.html: Import Revision 31.
1166
1167 2004-07-29  Paolo Carlini  <pcarlini@suse.de>
1168             Petur Runolfsson  <peturr02@ru.is>
1169
1170         PR libstdc++/12658 (continued)
1171         * src/locale_init.cc (locale::locale, locale::global): Use
1172         a single locale_mutex instead of two separate mutexes.
1173
1174 2004-07-29  Paolo Carlini  <pcarlini@suse.de>
1175
1176         PR libstdc++/16813
1177         * include/debug/map.h (insert(_InputIterator, _InputIterator)):
1178         Fix typo.
1179         * testsuite/23_containers/map/insert/16813.cc: New.
1180
1181 2004-07-29  Phil Edwards  <phil@codesourcery.com>
1182
1183         * docs/html/faq/index.html:  Update version references.  Make
1184         clear that code from SGI has diverged greatly.  Remove references
1185         to library snapshots and what's-new sections.
1186         * docs/html/faq/index.txt:  Regenerate.
1187
1188 2004-07-28  Matt Austern  <austern@apple.com>
1189
1190         * include/bits/stl_construct.h (_Destroy): New three-argument
1191         overload that takes an allocator argument.  Another inline
1192         three-argument overload that takes std::allocator and dispatches
1193         to the two-argument version.
1194         * include/bits/stl_uninitialized.h (__uninitialized_fill_n_aux):
1195         Change return type to void to match uninitialized_fill_n.
1196         (__uninitialized_copy_a_): New function.  Like uninitialized_copy
1197         except that it takes an allocator and uses it for construct and
1198         destroy.  If the allocator is std::allocator, dispatches to
1199         uninitialized_copy.
1200         (__uninitialized_fill_a): Likewise.
1201         (__uninitialized_fill_n_a): Likewise.
1202         (__uninitialized_copy_copy): Give it an allocator argument.
1203         (__uninitialized_fill_copy): Likewise.
1204         (__uninitialized_copy_fill): Likewise.
1205         * include/bits/deque.tcc: Use new forms defined in stl_construct.h
1206         and stl_uninitialized.h.  Replace use of single-argument _Construct
1207         and _Destroy with use of allocator's construct and destroy methods.
1208         * include/bits/list.tcc: Likewise.
1209         * include/bits/stl_deque.h: Likewise.
1210         * include/bits/stl_list.h: Likewise.
1211         * include/bits/stl_tree.h: Likewise.
1212         * include/bits/stl_vector.h: Likewise.
1213         * include/bits/vector.tcc: Likewise.
1214         * include/ext/hashtable.h: Use rebind so that allocator_type
1215         has correct type for a container's allocator.  Replace use of
1216         single-argument _Construct and _Destroy with use of allocator's
1217         construct and destroy methods.
1218         * include/ext/memory (__uninitialized_copy_n_a): New function.
1219         Like uninitialized_copy_n except that it takes an extra parameter,
1220         an allocator, and uses it for construct and destroy operations.
1221         * include/ext/rope: Use new forms defined in stl_construct.h,
1222         stl_uninitialized.h, and ext/memory.  Replace use of single-argument
1223         _Construct and _Destroy with allocator construct and destroy methods.
1224         * include/ext/ropeimpl.h: Likewise.
1225         * include/ext/slist.h: Likewise.
1226         * testsuite/testsuite_allocator.h (check_construct_destroy): New.
1227         * testsuite/testsuite_allocator.cc (check_construct_destroy): New.
1228         * testsuite/23_containers/deque/check_construct_destroy.cc: New.
1229         * testsuite/23_containers/list/check_construct_destroy.cc: New.
1230         * testsuite/23_containers/set/check_construct_destroy.cc: New.
1231         * testsuite/23_containers/vector/check_construct_destroy.cc: New.
1232         * testsuite/ext/hash_check_construct_destroy.cc: New.
1233         * testsuite/ext/slist_check_construct_destroy.cc: New.
1234
1235 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
1236
1237         2003-10-01  Eric Christopher  <echristo@redhat.com>
1238         * config/cpu/sh/atomicity.h (__exchange_and_add): Remove 'm'
1239         constraint.
1240         2003-07-09  Alexandre Oliva  <aoliva@redhat.com>
1241         * config/cpu/sh/atomicity.h: New.  Use movli and movco on SH4a.
1242
1243 2004-07-23  Benjamin Kosnik  <bkoz@redhat.com>
1244
1245         PR libstdc++/16678
1246         * include/bits/locale_facets.tcc: Fix for -Werror.
1247
1248 2004-07-23  Jonathan Wakely  <redi@gcc.gnu.org>
1249
1250         * docs/html/debug.html: Say debug mode only available since 3.4.0.
1251
1252 2004-07-21  Benjamin Kosnik  <bkoz@redhat.com>
1253
1254         * docs/doxygen/mainpage.html: Clarify links.
1255         * docs/doxygen/stdheader.cc: Add files.
1256         * docs/doxygen/style.css: Remove bolds, add h2, h3 styles.
1257         * docs/doxygen/user.cfg.in: New options, wrap.
1258
1259 2004-07-20  Danny Smith  <dannysmith@users.sourceforge.net>
1260
1261         * include/c_std/std_cwchar.h (wcsstr): Correct signature.
1262
1263 2004-07-19  Benjamin Kosnik  <bkoz@redhat.com>
1264
1265         PR libstdc++/15488
1266         * testsuite/lib/libstdc++.exp (v3-copy-files): Revert.
1267
1268 2004-07-17  Richard Sandiford  <rsandifo@redhat.com>
1269
1270         PR bootstrap/16469
1271         * scripts/create_testsuite_files: Pass -print to find.
1272
1273 2004-07-15  Paolo Carlini  <pcarlini@suse.de>
1274
1275         * docs/html/ext/lwg-active.html, lwg-defects.html: Import Revision 30.
1276         * docs/html/ext/howto.html: Tweak entries for DRs 167/253/389/402.
1277
1278 2004-07-15  Jakub Jelinek  <jakub@redhat.com>
1279
1280         PR libstdc++/14697
1281         * acinclude.m4 (glibcxx_shared_libgcc): Correct
1282         glibcxx_shared_libgcc test for multilibs.
1283         * configure: Rebuilt.
1284
1285 2004-07-14  Paolo Carlini  <pcarlini@suse.de>
1286
1287         PR libstdc++/16505
1288         * include/bits/stl_uninitialized.h (uninitialized_fill_n): Fix
1289         the signature to return void, as per 20.4.4.3.
1290         * include/bits/stl_vector.h (vector::vector(size_type,
1291         const value_type&, const allocator_type&), vector::vector(size_type),
1292         vector::_M_initialize_dispatch): Adjust callers.
1293         * include/bits/vector.tcc (vector<>::_M_fill_assign,
1294         vector<>::_M_fill_insert): Likewise.
1295         * testsuite/20_util/memory/16505.cc: New.
1296
1297 2004-07-14  Paolo Carlini  <pcarlini@suse.de>
1298
1299         * testsuite/22_locale/locale/cons/12658_thread-1.cc,
1300         12658_thread-2.cc: Use __gnu_test::try_named_locale.
1301
1302 2004-07-13  Benjamin Kosnik  <bkoz@redhat.com>
1303
1304         * docs/html/ext/mt_allocator.html: Add docs for _Tune.
1305         * include/ext/mt_allocator.h (__mt_alloc::_S_get_options): Make public.
1306         (__mt_alloc::_S_set_options): Same.
1307         Add to comments.
1308
1309 2004-07-13  Benjamin Kosnik  <bkoz@redhat.com>
1310
1311         * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Add allocator defaults
1312         for linux.
1313         * configure: Regenerated.
1314
1315 2004-07-13  Paolo Carlini  <pcarlini@suse.de>
1316
1317         * testsuite/22_locale/locale/cons/12658_thread.cc: Move/rename
1318         to 12658_thread-1.cc and xfail.
1319         * testsuite/22_locale/locale/cons/12658_thread-2.c: New, much
1320         simpler version of 12658_thread-1.cc, still failing on 3_3 and
1321         not failing on 3_4/mainline - both on single processor and
1322         multiprocessor machines.
1323
1324 2004-07-12  Benjamin Kosnik  <bkoz@redhat.com>
1325
1326         * docs/html/abi.html: Remove non-public qualification.
1327
1328         * include/bits/concurrence.h: Tweak comments.
1329
1330 2004-07-11  Paolo Carlini  <pcarlini@suse.de>
1331
1332         Add wchar_t counterparts of the basic_streambbuf<char> tests.
1333         * testsuite/27_io/basic_streambuf/cons/wchar_t/1.cc: New.
1334         * testsuite/27_io/basic_streambuf/imbue/wchar_t/1.cc, 9322.cc:
1335         Likewise.
1336         * testsuite/27_io/basic_streambuf/in_avail/wchar_t/9701-3.cc: Likewise.
1337         * testsuite/27_io/basic_streambuf/overflow/wchar_t/1.cc, 2.cc,
1338         3599.cc: Likewise.
1339         * testsuite/27_io/basic_streambuf/sgetc/wchar_t/1.cc: Likewise.
1340         * testsuite/27_io/basic_streambuf/sgetn/wchar_t/1.cc: Likewise.
1341         * testsuite/27_io/basic_streambuf/sputbackc/wchar_t/9538.cc: Likewise.
1342         * testsuite/27_io/basic_streambuf/sputc/wchar_t/1057.cc: Likewise.
1343         * testsuite/27_io/basic_streambuf/sputn/wchar_t/1.cc, 1057.cc:
1344         Likewise.
1345         * testsuite/27_io/basic_streambuf/sync/wchar_t/1057.cc: Likewise.
1346
1347         * testsuite/27_io/basic_streambuf/imbue/char/1.cc, 9322.cc: Minor
1348         tweaks.
1349         * testsuite/27_io/basic_streambuf/overflow/char/2.cc, 3599.cc:
1350         Likewise.
1351         * testsuite/27_io/basic_streambuf/sputn/char/1057.cc: Likewise.
1352         * testsuite/27_io/basic_streambuf/sync/char/1057.cc: Likewise.
1353
1354 2004-07-11  Phil Edwards  <phil@codesourcery.com>
1355
1356         * acinclude.m4:  Cosmetic shell syntax fixes.
1357         * configure.ac:  Bring comment inline with reality.
1358         * configure.host:  Both of the above.  Move 'arm' case to right
1359         place in host_cpu switch.
1360         * aclocal.m4, configure:  Regenerate.
1361
1362 2004-07-09  Paolo Carlini  <pcarlini@suse.de>
1363
1364         Add wchar_t counterparts of the basic_stringbuf<char> tests.
1365         * testsuite/27_io/basic_stringbuf/imbue/wchar_t/1.cc, 9322.cc: New.
1366         * testsuite/27_io/basic_stringbuf/in_avail/wchar_t/1.cc: Likewise.
1367         * testsuite/27_io/basic_stringbuf/overflow/wchar_t/1.cc, 2.cc,
1368         3599.cc, 9988.cc: Likewise.
1369         * testsuite/27_io/basic_stringbuf/sbumpc/wchar_t/1.cc, 9825.cc:
1370         Likewise.
1371         * testsuite/27_io/basic_stringbuf/seekoff/wchar_t/1.cc, 2.cc:
1372         Likewise.
1373         * testsuite/27_io/basic_stringbuf/seekoff/wchar_t/1.cc, 2.cc, 3.cc:
1374         Likewise.
1375         * testsuite/27_io/basic_stringbuf/setbuf/wchar_t/1.cc, 2.cc, 3.cc:
1376         Likewise.
1377         * testsuite/27_io/basic_stringbuf/sgetc/wchar_t/1.cc: Likewise.
1378         * testsuite/27_io/basic_stringbuf/sgetn/wchar_t/1.cc: Likewise.
1379         * testsuite/27_io/basic_stringbuf/snextc/wchar_t/1.cc: Likewise.
1380         * testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/1.cc, 9425.cc:
1381         Likewise.
1382         * testsuite/27_io/basic_stringbuf/sputc/wchar_t/1.cc, 1057.cc,
1383         9404-1.cc: Likewise.
1384         * testsuite/27_io/basic_stringbuf/sputn/wchar_t/1.cc, 1057.cc,
1385         9404-2.cc: Likewise.
1386         * testsuite/27_io/basic_stringbuf/str/wchar_t/1.cc, 2.cc, 3.cc,
1387         3955.cc: Likewise.
1388         * testsuite/27_io/basic_stringbuf/sungetc/wchar_t/1.cc: Likewise.
1389         * testsuite/27_io/basic_stringbuf/sync/wchar_t/1057.cc: Likewise.
1390
1391 2004-07-08  Paolo Carlini  <pcarlini@suse.de>
1392
1393         * include/bits/gslice.h: Trivial formatting fixes.
1394         * include/bits/gslice_array.h: Likewise.
1395         * include/bits/indirect_array.h: Likewise.
1396         * include/bits/mask_array.h: Likewise.
1397         * include/bits/slice_array.h: Likewise.
1398         * include/bits/valarray_after.h: Likewise.
1399         * include/bits/valarray_array.h: Likewise.
1400         * include/bits/valarray_before.h: Likewise.
1401         * include/std/std_valarray.h: Likewise.
1402
1403 2004-07-08  Benjamin Kosnik  <bkoz@redhat.com>
1404
1405         PR c++/16169
1406         * include/bits/basic_string.h (basic_string::operator=): Revert.
1407
1408 2004-07-07  Benjamin Kosnik  <bkoz@redhat.com>
1409
1410         * configure.ac (libtool_VERSION): To 6:2:0.
1411         * configure: Regenerated.
1412
1413         * testsuite/testsuite_abi.cc (check_version): Add 3.4.2.
1414
1415 2004-07-07  Aaron W. LaFramboise  <aaronraolete36@aaronwl.com>
1416
1417         PR libstdc++/16411
1418         * config/linker-map.gnu: Add stdio_sync_filebuf::file exports.
1419
1420 2004-07-07  Benjamin Kosnik  <bkoz@redhat.com>
1421
1422         * docs/html/abi.html: Updates for 3.4.1 release. Add summary of
1423         -Weffc++ issues.
1424
1425 2004-07-07  Paolo Carlini  <pcarlini@suse.de>
1426
1427         PR libstdc++/16401
1428         * include/bits/sstream.tcc (overflow): When reallocating _M_string
1429         use an exponential grow policy.
1430         * testsuite/27_io/basic_stringbuf/overflow/char/1.cc: New.
1431         * testsuite/performance/27_io/stringbuf_overflow.cc: New.
1432
1433 2004-07-06  Anssi Hannula  <anssi.hannula@mbnet.fi>
1434
1435         PR libstdc++/15928
1436         * crossconfig.m4: Add in bits for djgpp.
1437         * configure: Regenerate.
1438
1439 2004-07-05  Jonathan Wakely  <redi@gcc.gnu.org>
1440
1441         * testsuite/23_containers/{set,multiset}/14340.cc: Fix typos in
1442         instantiation of set and multiset (functor param given as int).
1443
1444 2004-07-04  Paolo Carlini  <pcarlini@suse.de>
1445
1446         * include/bits/basic_string.h: Trivial formatting fixes and/or
1447         const-ification of some variables.
1448         * include/bits/deque.tcc: Likewise.
1449         * include/bits/stl_algobase.h: Likewise.
1450         * include/bits/stl_bvector.h: Likewise.
1451         * include/bits/stl_construct.h: Likewise.
1452         * include/bits/stl_deque.h: Likewise.
1453         * include/bits/stl_pair.h: Likewise.
1454         * include/bits/stl_vector.h: Likewise.
1455         * include/bits/vector.tcc: Likewise.
1456
1457 2004-07-04  Paolo Carlini  <pcarlini@suse.de>
1458
1459         * testsuite/25_algorithms/copy/1.cc: Add instantiations for
1460         systems with no COMDAT or weak support.
1461         * testsuite/25_algorithms/copy/2.cc: Likewise.
1462         * testsuite/25_algorithms/copy/3.cc: Likewise.
1463         * testsuite/25_algorithms/copy/4.cc: Likewise.
1464
1465 2004-07-03  Paul Brook  <paul@codesourcery.com>
1466
1467         * configure.ac: Set ABI_TWEAKS_SRCDIR.
1468         * configure.host: Set abi_tweaks_dir.  Check for atomicity.h when
1469         setting atomicity_dir.  Override type_cpu for arm based targets.
1470         * include/Makefile.am (host_headers): Add cxxabi_tweaks.h.
1471         * libsupc++/cxxabi.h: Include bits/cxxabi.h. Don't declare __guard.
1472         * libsupc++/guard.cc: Use definitions from cxxabi_tweaks.h.
1473         * libsupc++/vec.cc: Ditto.
1474         * config/cpu/arm/cxxabi_tweaks.h: New file.
1475         * config/cpu/generic/cxxabi_tweaks.h: New file.
1476         * */Makefile.in: Regenerate.
1477         * configure: Regenerate.
1478
1479 2004-07-02  Paolo Carlini  <pcarlini@suse.de>
1480
1481         * include/bits/type_traits.h (_Is_normal_iterator): Move...
1482         * include/bits/cpp_type_traits.h: ... here, renamed to
1483         __is_normal_iterator and consistent with the other traits.
1484         * include/bits/stl_algobase.h (__copy_ni1, __copy_ni2): Convert
1485         to the struct __copy_normal and three specializations.
1486         (__copy_backward_output_normal_iterator,
1487         __copy_backward_input_normal_iterator): Likewise, convert to
1488         the struct __copy_backward_normal and three specializations.
1489         (copy, copy_backward): Use the latter.
1490         (__copy_aux, __copy_backward_aux): Very minor tweaks.
1491
1492 2004-07-01  Paolo Carlini  <pcarlini@suse.de>
1493
1494         * include/bits/stl_algobase.h (__copy_trivial): Remove.
1495         (__copy_aux2): Rewrite as __copy_aux to use __is_pointer,
1496         __is_trivially_copyable, __are_same and __copy::copy.
1497         (__copy): Rewrite as a class template and two specializations.
1498         (__copy_ni2): Simplify, just call __copy_aux.
1499
1500         * include/bits/stl_algobase.h (__copy_backward_aux): Add __are_same
1501         check.
1502         * testsuite/25_algorithms/copy/1.cc, 2.cc, 3.cc, 4.cc: Test also
1503         for destination value type != source value type.
1504
1505 2004-07-01  Benjamin Kosnik  <bkoz@redhat.com>
1506             Per Bothner  <per@bothner.com>
1507             Mohan Embar  <gnustuff@thisiscool.com>
1508
1509         PR libstdc++/16248
1510         * include/bits/concurrence.h (__glibcxx_mutex_type): New.
1511         (__glibcxx_mutex): Encapsulate mutex init function into type for
1512         threaded configurations without __GTHREAD_MUTEX_INIT.
1513         (lock::lock): Make device member a reference.
1514         (lock::~lock): Same.
1515         * include/ext/pool_allocator.h (__pool_base::_M_get_mutex): Change
1516         to mutex_type.
1517         * src/allocator.cc: Same.
1518
1519 2004-06-30  Brad Spencer  <spencer@infointeractive.com>
1520
1521         * include/ext/mt_allocator.h: Handle allocations at static
1522         initialization that happen before _S_options is (automatically)
1523         constructed; set _S_init even if _M_force_new is true.
1524
1525 2004-06-30  Benjamin Kosnik  <bkoz@redhat.com>
1526
1527         * config/linker-map.gnu: Revert new exports.
1528
1529 2004-06-30  Benjamin Kosnik  <bkoz@redhat.com>
1530             Stuart Anderson  <anderson@netsweng.com>
1531
1532         * config/linker-map.gnu: Add destructor exports for abstract base
1533         classes to conform to LSB.
1534
1535 2004-06-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1536             Paolo Carlini  <pcarlini@suse.de>
1537
1538         * include/bits/cpp_type_traits.h: Add __is_pointer and
1539         __is_trivially_copyable.
1540         * include/bits/stl_algobase.h (fill, fill_n): Slightly
1541         tweak to use the latter.
1542         (__copy_backward_dispatch): Remove.
1543         (__copy_backward_aux): Rewrite to use __is_pointer and
1544         __is_trivially_copyable and __copy_backward::copy_b.
1545         (__copy_backward): Rewrite as a class template and two
1546         specializations.
1547
1548 2004-06-30  Paolo Carlini  <pcarlini@suse.de>
1549
1550         * testsuite/25_algorithms/copy.cc: Move to...
1551         * testsuite/25_algorithms/copy/1.cc: ... here, extend.
1552         * testsuite/25_algorithms/copy/2.cc: New.
1553         * testsuite/25_algorithms/copy/3.cc: New.
1554         * testsuite/25_algorithms/copy/4.cc: New.
1555
1556 2004-06-29  Paul Brook  <paul@codesourcery.com>
1557
1558         * libsupc++/vec.cc (__cxa_vec_new2, __cxa_vec_new3): Store the
1559         element size in the cookie.
1560
1561 2004-06-28  Paolo Carlini  <pcarlini@suse.de>
1562
1563         * include/bits/cpp_type_traits.h: Move the additions to
1564         namespace __gnu_internal outside of namespace std; trivial
1565         formatting fixes.
1566
1567 2004-06-28  Benjamin Kosnik  <bkoz@redhat.com>
1568
1569         * include/debug/safe_base.h (__gnu_debug::_Safe_sequence_base):
1570         Revert -Weffc++ changes that defined copy ctory and or assignment
1571         operator.
1572         * libsupc++/tinfo.cc (__upcast_result): Same.
1573
1574 2004-06-28  Paolo Carlini  <pcarlini@suse.de>
1575
1576         * src/localename.cc (locale::_Impl::_Impl): Slightly improve
1577         the algorithm used to name the categories.
1578
1579 2004-06-28  Paolo Bonzini  <bonzini@gnu.org>
1580
1581         * include/Makefile.am: Give a .gch extension to
1582         the PCH files, not only to the directory.
1583         * include/Makefile.in: Regenerate.
1584
1585 2004-06-28  Paolo Carlini  <pcarlini@suse.de>
1586
1587         * config/locale/gnu/monetary_members.cc
1588         (moneypunct<wchar_t>::_M_initialize_moneypunct): Clean up
1589         assignments of _M_decimal_point and _M_thousands_sep.
1590
1591 2004-06-27  Paolo Carlini  <pcarlini@suse.de>
1592
1593         * docs/html/17_intro/contribute.html: Update some links.
1594         * docs/html/17_intro/porting-howto.html: Likewise.
1595         * docs/html/17_intro/porting-howto.xml: Likewise.
1596         * docs/html/18_support/howto.html: Likewise.
1597         * docs/html/21_strings/howto.html: Likewise.
1598         * docs/html/27_io/howto.html: Likewise.
1599         * docs/html/configopts.html: Likewise.
1600         * docs/html/ext/howto.html: Likewise.
1601         * docs/html/faq/index.html: Likewise.
1602         * docs/html/install.html: Don't mention 2.x compilers.
1603
1604 2004-06-27  Paolo Carlini  <pcarlini@suse.de>
1605
1606         * include/ext/rope: Trivial formatting fixes.
1607         * include/ext/ropeimpl.h: Likewise.
1608
1609 2004-06-26  Paolo Carlini  <pcarlini@suse.de>
1610
1611         PR libstdc++/16210
1612         * acinclude.m4 (GLIBCXX_ENABLE_LONG_LONG): Do not check for the
1613         availability of strto(u)ll, not used anymore in the iostreams.
1614         * configure: Regenerate.
1615
1616 2004-06-25  Benjamin Kosnik  <bkoz@redhat.com>
1617
1618         PR libstdc++/16182
1619         * linkage.m4 (GLIBCXX_CHECK_BUILTIN_MATH_DEC): Revert to
1620         AC_DEFINE_UNQUOTED.
1621         * configure: Regenerate.
1622
1623 2004-06-25  Paul Brook  <paul@codesourcery.com>
1624
1625         * libsupc++/cxxabi.h: Define __ARM_EABI__
1626         (__guard): Use it.
1627         * libsupc++/guard.h (__cxa_guard_acquire, __cxa_guard_release): Ditto.
1628
1629 2004-06-25  Paul Brook  <paul@codesourcery.com>
1630
1631         * include/bits/concurrence.h: Still create mutex object when
1632         single-threaded.
1633
1634 2004-06-25  Paolo Carlini  <pcarlini@suse.de>
1635
1636         * include/bits/stl_algobase.h (fill, fill_n): Revert last
1637         change: actually we need to copy construct an object of type
1638         _Tp, not of type iterator_traits<>::value_type, therefore the
1639         code is ok.
1640
1641 2004-06-25  Paolo Carlini  <pcarlini@suse.de>
1642
1643         * include/bits/stl_algobase.h (fill, fill_n): Tighten the
1644         dispatch: use iterator_traits<>::value_type, not _Tp.
1645
1646 2004-06-25  Paolo Carlini  <pcarlini@suse.de>
1647
1648         * testsuite/25_algorithms/fill/1.cc: Tweak instantiations.
1649         * testsuite/25_algorithms/fill/2.cc: Likewise.
1650
1651 2004-06-25  Dan Nicolaescu  <dann@ics.uci.edu>
1652             Paolo Carlini  <pcarlini@suse.de>
1653
1654         * include/bits/stl_algobase.h (__fill, __fill_n): New helpers
1655         for fill and fill_n, respectively: when copying is cheap, use a
1656         temporary to avoid a memory read in each iteration.
1657
1658 2004-06-25  Paolo Carlini  <pcarlini@suse.de>
1659
1660         * testsuite/25_algorithms/fill/1.cc: New.
1661         * testsuite/25_algorithms/fill/2.cc: Likewise.
1662
1663 2004-06-25  Benjamin Kosnik  <bkoz@redhat.com>
1664
1665         * include/debug/formatter.h (__gnu_debug::_Error_formatter):
1666         Remove copy constructor and assignment operator.
1667
1668 2004-06-24  Benjamin Kosnik  <bkoz@redhat.com>
1669
1670         * include/bits/concurrence.h (__gnu_cxx::lock): New.
1671         * include/ext/pool_allocator.h (__pool_base::_Lock::_S_lock): Remove.
1672         (__pool_base::_M_get_mutex): New.
1673         * include/bits/allocator.h: Tweak.
1674         * src/allocator.cc (__pool_base::_M_get_free_list): Correct offset.
1675         * config/linker-map.gnu: Remove __pool_base::_Lock::_S_lock.
1676         * include/bits/stl_threads.h: Remove.
1677         * include/Makefile.am: Also here.
1678         * include/Makefile.in: Regenerate.
1679
1680         * src/locale_init.cc: Use __gnu_cxx::lock.
1681
1682         * src/allocator.cc: Move all instantiations...
1683         * src/allocator-inst.cc: ...here.
1684
1685 2004-06-23  Andrew Pinski  <apinski@apple.com>
1686
1687         * linkage.m4: Remove check for libmx.
1688         * configure: Regenerate.
1689
1690 2004-06-23  Paolo Carlini  <pcarlini@suse.de>
1691
1692         PR libstdc++/16154
1693         * include/bits/boost_concept_check.h (struct _TrivialIteratorConcept):
1694         Don't require the _DefaultConstructibleConcept.
1695         (struct _ForwardIteratorConcept): Require it here.
1696
1697 2004-06-22  Alexandre Oliva  <aoliva@redhat.com>
1698
1699         * include/bits/istream.tcc (getline): Make sure arguments passed
1700         to min/max have the same type.
1701         * include/bits/locale_facets.tcc (__verify_grouping): Likewise.
1702         * include/bits/stl_deque.h (_Deque_base::_Deque_base): Likewise.
1703
1704 2004-06-22  Benjamin Kosnik  <bkoz@redhat.com>
1705
1706         * docs/html/abi.html: Update links.
1707
1708 2004-06-22  Paolo Carlini  <pcarlini@suse.de>
1709
1710         * testsuite/26_numerics/complex_inserters_extractors.cc,
1711         complex_value.cc, buggy_complex.cc: Move to...
1712         * testsuite/26_numerics/complex/: ... here.
1713         * testsuite/26_numerics/c99_classification_macros_c++.cc,
1714         c99_classification_macros_c.cc, c_math.cc, c_math_dynamic.cc,
1715         fabs_inline.cc: Move to...
1716         * testsuite/26_numerics/cmath/: ... here.
1717         * testsuite/26_numerics/binary_closure.cc, slice.cc,
1718         slice_array_assignment.cc, valarray.cc, valarray_const_bracket.cc,
1719         valarray_name_lookup.cc, valarray_operators.cc,
1720         valarray_subset_assignment.cc: Move to...
1721         * testsuite/26_numerics/valarray/: ... here (new dir).
1722         * testsuite/26_numerics/sum_diff.cc: Move to...
1723         * testsuite/26_numerics/numeric/: ... here (new dir).
1724
1725 2004-06-22  Paolo Carlini  <pcarlini@suse.de>
1726
1727         * include/std/std_istream.h (ignore(streamsize __n = 1,
1728         int_type __delim = traits_type::eof())): Split into...
1729         (ignore(), ignore(streamsize __n), ignore(streamsize __n,
1730         int_type __delim)): The first two can be much more simpler
1731         and efficient than the fully general case; also, the last
1732         two can take advantage of the same mechanism already used
1733         for getline.
1734         * include/bits/istream.tcc (ignore(streamsize __n = 1,
1735         int_type __delim = traits_type::eof()): Remove.
1736         (ignore(), ignore(streamsize __n), ignore(streamsize __n,
1737         int_type __delim)): New.
1738
1739 2004-06-21  Loren J. Rittle  <ljrittle@acm.org>
1740
1741         * config/linker-map.gnu: Use wildcards for
1742         __basic_file::sys_open(FILE*, _Ios_Openmode).
1743
1744 2004-06-20  Paolo Carlini  <pcarlini@suse.de>
1745
1746         * testsuite/27_io/basic_istream/ignore/char/3.cc: New.
1747
1748 2004-06-18  Paolo Carlini  <pcarlini@suse.de>
1749
1750         * include/ext/mt_allocator (__mt_alloc<>::_Tune): Add _M_align,
1751         the alignment requested.
1752         (__mt_alloc<>::_Tune::_Tune): Tweak consistently.
1753         (__mt_alloc<>::allocate): Use it instead of sizeof(_Block_record).
1754         (__mt_alloc<>::deallocate): Likewise.
1755
1756 2004-06-18  Paolo Carlini  <pcarlini@suse.de>
1757
1758         PR libstdc++/16020
1759         * include/debug/safe_base.h
1760         (_Safe_sequence_base::_Safe_sequence_base(const _Safe_sequence_base&),
1761         _Safe_sequence_base::operator=): Provide definitions.
1762         * testsuite/23_containers/bitset/cons/16020.cc: New.
1763
1764 2004-06-18  Benjamin Kosnik  <bkoz@redhat.com>
1765
1766         * include/ext/pool_allocator.h: Qualify __throw_bad_alloc.
1767         (__pool_base): Remove unused template parameter.  Add
1768         protected. Move lock data into __pool_base::_Lock. Remove static
1769         on member functions.
1770         (__pool_base::_M_get_free_list): New.
1771         (__pool_alloc): Move _S_force new here.
1772         * src/allocator.cc: Move out of line __pool_base definitions here.
1773         * config/linker-map.gnu: Export bits from __pool_base.
1774
1775 2004-06-18  Paolo Carlini  <pcarlini@suse.de>
1776
1777         * config/locale/gnu/numeric_members.cc
1778         (numpunct<wchar_t>::_M_initialize_numpunct): Clean up
1779         assignments of _M_decimal_point and _M_thousands_sep.
1780         * config/locale/gnu/time_members.cc
1781         (__timepunct<wchar_t>::_M_initialize_timepunct): Clean up
1782         and reformat assignments of date and time fields.
1783
1784 2004-06-16  Paolo Carlini  <pcarlini@suse.de>
1785
1786         * include/ext/rope (rope(_CharT, const allocator_type&)): Fix
1787         to use _Data_allocate.
1788         * include/ext/ropeimpl.h (rope<>::_S_leaf_concat_char_iter): Likewise.
1789         (rope<>::_S_substring): Likewise.
1790         (rope<>::rope(size_t, _CharT, const allocator_type&)): Likewise.
1791         (rope<>::c_str()): Likewise.
1792         (rope<>::replace_with_c_str()): Likewise.
1793
1794         * include/ext/ropeimpl.h (_Rope_iterator_base<>::_S_setbuf):
1795         Correctly qualify _S_leaf, _S_function, etc., with _Rope_constants::,
1796         not _RopeRep.
1797         (_Rope_iterator_base<>::_S_setcache): Likewise.
1798         (_Rope_iterator_base<>::_S_setcache_for_incr): Likewise.
1799         (rope<>::_S_substring): Likewise.
1800         (rope<>::_S_dump): Likewise.
1801         (rope<>::_S_fetch_ptr): Likewise.
1802         (rope<>::_S_compare): Likewise.
1803         (rope<>::replace_with_c_str()): Likewise.
1804
1805         * testsuite/ext/rope.cc: Rename to testsuite/ext/rope/1.cc.
1806         * testsuite/ext/rope/2.cc: New.
1807
1808 2004-06-16  Paolo Carlini  <pcarlini@suse.de>
1809             Matt Austern  <austern@apple.com>
1810
1811         * testsuite/ext/rope/3.cc: New.
1812
1813 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1814
1815         * acinclude.m4: Remove useless multilib configury.
1816         * Makefile.am: Remove useless multilib rules.
1817         * aclocal.m4: Regenerate.
1818         * Makefile.in: Regenerate.
1819         * configure: Regenerate.
1820
1821 2004-06-15  Paolo Carlini  <pcarlini@suse.de>
1822
1823         * include/ext/hashtable.h: Trivial formatting fixes.
1824         * include/ext/rb_tree: Likewise.
1825
1826 2004-06-14  Paolo Carlini  <pcarlini@suse.de>
1827
1828         * include/ext/hash_map: Trivial formatting fixes.
1829         * include/ext/hash_set: Likewise.
1830         * include/ext/memory: Likewise.
1831         * include/ext/numeric: Likewise.
1832
1833 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
1834
1835         * Makefile.in: Regenerate with automake 1.8.5.
1836         * aclocal.m4: Same.
1837         * include/Makefile.in: Same.
1838         * libmath/Makefile.in: Same.
1839         * libsupc++/Makefile.in: Same.
1840         * po/Makefile.in: Same.
1841         * src/Makefile.in: Same.
1842         * testsuite/Makefile.in: Same.
1843
1844 2004-06-14  Paolo Carlini  <pcarlini@suse.de>
1845
1846         * include/ext/slist: Trivial formatting fixes.
1847
1848 2004-06-14  Paolo Carlini  <pcarlini@suse.de>
1849
1850         * include/bits/locale_facets.tcc (time_get<>::_M_extract_name):
1851         Don't use the 'magic number' 10 in the computation of __minlen;
1852         never access __name past __minlen; in the loop over __i3, don't
1853         decrease __nmatches and increase __i3 at once, only either of
1854         the two; tidy.
1855
1856 2004-06-13  Paolo Carlini  <pcarlini@suse.de>
1857
1858         * include/bits/locale_facets.tcc (time_get<>::do_get_time,
1859         time_get<>::do_get_date): Use only once _M_extract_via_format,
1860         instead of going through "%X"/"%x" and calling it two times
1861         (+ using widen).
1862
1863 2004-06-12  Paolo Carlini  <pcarlini@suse.de>
1864
1865         * include/ext/algorithm: Trivial formatting fixes.
1866         * include/ext/functional: Likewise.
1867         * include/ext/hash_fun.h: Likewise.
1868         * include/ext/iterator: Likewise.
1869
1870 2004-06-12  Paolo Carlini  <pcarlini@suse.de>
1871
1872         * include/bits/basic_string.tcc (find(const _CharT*, size_type,
1873         size_type)): Reimplement using std::search.
1874         * src/string-inst.cc: Instantiate std::search for char/wchar_t.
1875
1876 2004-06-12  Dhruv Matani  <dhruvbird@gmx.net>
1877
1878         * testsuite/performance/21_strings/string_find.cc: New.
1879
1880 2004-06-10  Aaron W. LaFramboise  <aaronraolete36@aaronwl.com>
1881
1882         * include/bits/istream.tcc (istream::ignore): Fix for -Wuninitialized.
1883
1884 2004-06-10  Jan van Dijk  <jan@etpmod.phys.tue.nl>
1885
1886         * include/std/std_complex.h (sin(const complex<_Tp>& __z)): Make
1887         this function return a value.
1888
1889 2004-06-09  Paolo Carlini  <pcarlini@suse.de>
1890
1891         PR libstdc++/15775
1892         * include/bits/stl_deque.h: Consistently with stl_set.h, define
1893         pointer as allocator's pointer, likewise for reference,
1894         const_pointer, and const_reference.
1895         * include/bits/stl_list.h: Likewise.
1896         * include/bits/stl_map.h: Likewise.
1897         * include/bits/stl_multimap.h: Likewise.
1898         * include/bits/stl_vector.h: Likewise.
1899
1900 2004-06-09  Benjamin Kosnik  <bkoz@redhat.com>
1901
1902         * crossconfig.m4: Remove signbit, signbitf, signbitl.
1903         * linkage.m4: Comment LIBMATHOBJS, tweak others.  AC_DEFINES for
1904         builtin math functions instead of AC_DEFINE_UNQUOTED.
1905         * configure: Regenerate.
1906
1907 2004-06-08  Benjamin Kosnik  <bkoz@redhat.com>
1908
1909         * docs/doxygen/filter.sed: Rename _GLIBCXX_STD to std.
1910         * docs/doxygen/mainpage.html: Remove links.
1911
1912 2004-06-08  Jason Merrill  <jason@redhat.com>
1913
1914         * config/linker-map.gnu: Use wildcards for
1915         __basic_file::{xsgetn,xsputn,seekoff,xsputn_2}.
1916
1917 2004-06-08  Paolo Carlini  <pcarlini@suse.de>
1918
1919         * include/ext/pool_allocator.h: Convert to a global free-list,
1920         as per the original SGI/HP design: move the implementation
1921         details to struct __pool_base, from which __pool_alloc derives.
1922         * src/allocator.cc: Instantiate __pool_base.
1923
1924 2004-06-07  Dhruv Matani  <dhruvbird@gmx.net>
1925             Paolo Carlini  <pcarlini@suse.de>
1926
1927         * testsuite/testsuite_performance.h
1928         (resource_counter::allocated_memory): Make it return the right
1929         number of bytes requested by the allocators/application. This is
1930         the sbrk+mmaped memory.
1931
1932 2004-06-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1933
1934         * include/std/std_complex.h (log): Tidy.
1935
1936 2004-05-31  Benjamin Kosnik  <bkoz@redhat.com>
1937
1938         * config/linker-map.gnu (GLIBCXX_3.4.1): Add.
1939         * testsuite/testsuite_abi.cc: Same.
1940         * configure.ac (libtool_VERSION): Bump to 6:1:0.
1941         * configure: Regenerate.
1942         * aclocal.m4: Regenerate.
1943
1944 2004-05-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1945
1946         * include/std/std_complex.h (complex<_Tp>): Properly indent
1947         to follow C++STYLE.
1948         (complex<>::__rep): New.
1949         (__complex_abs): New.  Dispatch to built-ins.
1950         (abs): Use them.
1951         (__complex_arg): New. Dispatch to built-ins.
1952         (arg): Use it.
1953         (__complex_cos): New. Dispatch to built-ins.
1954         (cos): Use it.
1955         (__complex_cosh): New. Dispatch to built-ins.
1956         (cosh): Use it.
1957         (__complex_exp): New. Dispatch to built-ins.
1958         (exp): Use it.
1959         (__complex_log): New. Dispatch to built-ins.
1960         (log): Use it.
1961         (__complex_sin): New. Dispatch to built-ins.
1962         (sin): Use it.
1963         (__complex_sinh): New. Dispatch to built-ins.
1964         (sinh): Use it.
1965         (__complex_sqrt): New. Dispatch to built-ins.
1966         (sqrt): Use it.
1967         (__complex_tan): New. Dispatch to built-ins.
1968         (tan): Use it.
1969         (__complex_tanh): New. Dispatch to built-ins.
1970         (tanh): Use it.
1971         (__complex_pow): New. Dispatch to built-ins.
1972         (pow): Use it.
1973
1974 2004-05-29  Richard B. Kreckel  <Richard.Kreckel@Framatome-ANP.com>
1975             Benjamin Kosnik  <bkoz@redhat.com>
1976
1977         PR libstdc++/14600
1978         * include/ext/stdio_sync_filebuf.h (stdio_sync_filebuf::file): New.
1979         * include/ext/stdio_filebuf.h (stdio_filebuf::file): New.
1980         * config/io/basic_file_stdio.cc (__basic_file::file): New.
1981         * config/io/basic_file_stdio.h: Define.
1982
1983 2004-05-27  Benjamin Kosnik  <bkoz@redhat.com>
1984
1985         PR libstdc++/15675
1986         * docs/html/documentation.html: Update doxygen links for 3.4.0.
1987
1988 2004-05-27  Jan Beulich  <jbeulich@novell.com>
1989
1990         * scripts/create_testsuite_files: Tweak.
1991
1992 2004-05-25  Benjamin Kosnik  <bkoz@redhat.com>
1993
1994         PR libstdc++/15489
1995         * scripts/create_testsuite_files: Revert xtype change, add non-GNU
1996         bits to do the same thing.
1997
1998 2004-05-24  Paolo Carlini  <pcarlini@suse.de>
1999
2000         * include/bits/istream.tcc (ignore): Correctly deal with
2001         n == numeric_limits<streamsize>::max().
2002         * testsuite/27_io/basic_istream/ignore/char/2.cc: New.
2003
2004         * include/bits/istream.tcc (basic_istream<>::getline): Prefer
2005         '_M_gcount + 1 < __n' to '--__n; _M_gcount < __n', just in case
2006         __n == numeric_limits<>::min().
2007
2008         * include/bits/istream.tcc: Minor tweaks.
2009
2010         * testsuite/21_strings/basic_string/inserters_extractors/char/10.cc:
2011         Tighten.
2012         * testsuite/21_strings/basic_string/inserters_extractors/char/11.cc:
2013         Likewise.
2014         * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/10.cc:
2015         Likewise.
2016         * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/11.cc:
2017         Likewise.
2018         * testsuite/27_io/basic_istream/getline/char/5.cc: Likewise.
2019
2020 2004-05-22  Benjamin Kosnik  <bkoz@redhat.com>
2021
2022         PR libstdc++/12854
2023         Fixups for -Weffc++.
2024         * include/bits/basic_string.h (basic_string::operator=): Return
2025         pointer to this instead of result of assign. Although redundant,
2026         this doesn't impact resultant codegen.
2027
2028         * include/bits/locale_facets.h (__numpunct_cache): Declare
2029         assignment opxserator and copy constructor private.
2030         (__timepunct_cache): Same.
2031         (__moneypunct_cache): Same.
2032         (collate): Use member initialization list for _M_c_locale_collate.
2033         * config/locale/gnu/messages_members.h: Same.
2034         * config/locale/gnu/time_members.h (__timepunct): Same.
2035         * src/codecvt.cc: Use member initialization list to initialize
2036         _M_c_locale_codecvt.
2037         * src/ctype.cc: Same, with _M_c_locale_ctype and _M_narrow_ok.
2038         * config/os/gnu-linux/ctype_noninline.h: Same.
2039         * src/locale.cc (_Impl): Same.
2040         * src/locale_init.cc: Same.
2041         * src/localename.cc: Same.
2042
2043         * include/bits/basic_ios.h (basic_ios): Complete member
2044         initialization list.
2045         * include/bits/istream.tcc (basic_istream::sentry): Same.
2046         * include/bits/ostream.tcc (basic_ostream::sentry): Same.
2047         * include/bits/fstream.tcc (basic_filebuf): Add _M_lock and
2048         _M_pback to member initialization list.
2049         * include/std/std_streambuf.h: Same.
2050         * include/std/std_sstream.h: Same, for _M_mode.
2051         * src/ios.cc (ios_base): Same.
2052
2053         * include/ext/rope: Make derived classes match exception
2054
2055          specifications. Add copy constructors and assignment operators.
2056
2057         * include/debug/safe_base.h (_Safe_sequence_base): Declare copy
2058         constructor and assignment operator protected.
2059         (_Safe_iterator_base): Same.
2060         * include/debug/formatter.h (_Error_formatter): Define copy
2061         constructor and assignment operator.
2062
2063         * include/backward/strstream: Declare assignment operator and copy
2064         constructor private.
2065
2066 2004-05-22  Benjamin Kosnik  <bkoz@redhat.com>
2067
2068         * testsuite/testsuite_hooks.h (func_callback): Declare copy
2069         constructor and assignment operator private.
2070         * testsuite/23_containers/deque/cons/clear_allocator.cc: Match
2071         exception specifications of base class.
2072         * testsuite/23_containers/list/cons/clear_allocator.cc: Same.
2073         * testsuite/23_containers/vector/cons/clear_allocator.cc: Same.
2074         * testsuite/23_containers/vector/bool/clear_allocator.cc: New.
2075
2076 2004-05-22  Benjamin Kosnik  <bkoz@redhat.com>
2077
2078         * libsupc++/cxxabi.h: Remove duplicated and useless public and
2079         private keywords in class declarations. Format. Use
2080         stddef.h. Expose declarations to "C" compilation.
2081         * libsupc++/tinfo.cc (__upcast_result): Add copy constructor and
2082         assignment operator.
2083         (__dyncast_result): Same.
2084         * libsupc++/vec.cc (uncatch_exception): Same, use member
2085         initialization list.
2086
2087 2004-05-22  Benjamin Kosnik  <bkoz@redhat.com>
2088
2089         * testsuite/abi_check.cc: Add unistd.h.
2090
2091 2004-05-22  Paolo Carlini  <pcarlini@suse.de>
2092
2093         PR libstdc++/15565
2094         * include/bits/locale_facets.tcc (__int_to_char(unsigned long),
2095         __int_to_char(unsigned long long)): Showpos is not relevant
2096         for unsigned types.
2097         * testsuite/22_locale/num_put/put/char/15565.cc: New.
2098         * testsuite/22_locale/num_put/put/wchar_t/15565.cc: New.
2099
2100         * testsuite/22_locale/num_put/put/wchar_t/1.cc: Use L for the fill
2101         char.
2102         * testsuite/22_locale/num_put/put/wchar_t/2.cc: Likewise.
2103         * testsuite/22_locale/num_put/put/wchar_t/3.cc: Likewise.
2104         * testsuite/22_locale/num_put/put/wchar_t/4.cc: Likewise.
2105         * testsuite/22_locale/num_put/put/wchar_t/5.cc: Likewise.
2106         * testsuite/22_locale/num_put/put/wchar_t/6.cc: Likewise.
2107         * testsuite/22_locale/num_put/put/wchar_t/8.cc: Likewise.
2108
2109 2004-05-21  Matthias Klose  <doko@debian.org>
2110
2111         * docs/doxygen/run_doxygen:  Bump required version.
2112
2113 2004-05-21  Benjamin Kosnik  <bkoz@redhat.com>
2114
2115         * docs/html/abi.html (libgcc_s): Additions suggested by Matthias Klose.
2116         * docs/doxygen/Intro.3: Subtractions suggested by Phil Edwards.
2117
2118 2004-05-21  Paolo Carlini  <pcarlini@suse.de>
2119
2120         * include/bits/istream.tcc (ignore): Remove redundant line.
2121         (readsome): Tidy, closely following 27.6.1.3, p30.
2122
2123 2004-05-20  Paolo Carlini  <pcarlini@suse.de>
2124
2125         * include/bits/istream.tcc (operator>>(basic_istream<>&,
2126         basic_string<>&)): Use a temporary buffer, thus avoiding
2127         reallocation for common case.
2128         * testsuite/21_strings/basic_string/inserters_extractors/char/11.cc:
2129         New.
2130         * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/11.cc:
2131         Likewise.
2132
2133         * include/bits/istream.tcc: Const-ification of a few variables.
2134
2135         * include/bits/ostream.tcc: Trivial formatting fixes and
2136         const-ification of some variables.
2137
2138 2004-05-20  Benjamin Kosnik  <bkoz@redhat.com>
2139
2140         PR libstdc++/15123
2141         PR libstdc++/13928
2142         * docs/doxygen/Intro.3: Remove Allocators.3.
2143         Add new extension headers, extension namespace list.
2144         * docs/doxygen/run_doxygen (problematic): Remove Allocators.3
2145         Rename GLIBCXXSTD names to std::. Rename __gnu_debug to
2146         __gnu_debug::. Remove __policy_ renames.
2147         * docs/doxygen/guide.html: Add dot note.
2148         * docs/doxygen/stdheader.cc: Edit, add files.
2149         * docs/doxygen/user.cfg.in: Regenerate with Doxygen 1.3.7.
2150
2151 2004-05-18  Jonathan Wakely  <redi@gcc.gnu.org>
2152
2153         * include/ext/stdio_filebuf.h: Update comments to reflect PR 11691.
2154
2155 2004-05-18  Jan Beulich  <jbeulich@novell.com>
2156
2157         PR libstdc++/15489
2158         * scripts/create_testsuite_files: Also find source files through
2159         symbolic links.
2160
2161 2004-05-18  Jan Beulich  <jbeulich@novell.com>
2162
2163         PR libstdc++/15488
2164         * testsuite/lib/libstdc++.exp: Make test files writable.
2165
2166 2004-05-18  Paolo Carlini  <pcarlini@suse.de>
2167
2168         * include/ext/mt_allocator.h:(__mt_alloc::allocate): Minor
2169         tweaks.
2170
2171 2004-05-18  Dhruv Matani  <dhruvbird@gmx.net>
2172
2173         * include/ext/mt_allocator.h:(__mt_alloc::allocate): Re-write
2174         allocation loop which removes blocks from the global free list
2175         from O(N) to O(1) when the required blocks are <= the number
2176         available.
2177
2178 2004-05-18  Jonathan Wakely  <redi@gcc.gnu.org>
2179
2180         * include/ext/enc_filebuf.h: Move concept-check macro to class scope.
2181
2182 2004-05-17  Benjamin Kosnik  <bkoz@redhat.com>
2183
2184         * testsuite/testsuite_hooks.h (__gnu_test::conversion): New class.
2185         * testsuite/23_containers/deque/14340.cc: New.
2186         * testsuite/23_containers/list/14340.cc: New.
2187         * testsuite/23_containers/map/14340.cc: New.
2188         * testsuite/23_containers/multimap/14340.cc: New.
2189         * testsuite/23_containers/multiset/14340.cc: New.
2190         * testsuite/23_containers/set/14340.cc: New.
2191         * testsuite/23_containers/vector/14340.cc: New.
2192
2193 2004-05-17  Douglas Gregor   <gregod@cs.rpi.edu>
2194
2195         PR libstdc++/14340
2196         * include/debug/safe_iterator.h (_Safe_iterator converting
2197         constructor): Only allow declaration to instantiate when the
2198         incoming _Safe_iterator has exactly the right iterator type.
2199
2200 2004-05-17  Jonathan Wakely  <redi@gcc.gnu.org>
2201
2202         * include/bits/boost_concept_check.h: Fix old attribute syntax.
2203         * testsuite/23_containers/map/modifiers/swap.cc: Define operator<
2204         to pass concept-checks.
2205         * testsuite/23_containers/multimap/modifiers/swap.cc: Same.
2206         * testsuite/23_containers/set/modifiers/swap.cc: Same.
2207         * testsuite/23_containers/multiset/modifiers/swap.cc: Same.
2208
2209 2004-05-16  Paolo Carlini  <pcarlini@suse.de>
2210
2211         * include/std/std_bitset.h: Minor formatting fixes.
2212
2213 2004-05-16  Paolo Carlini  <pcarlini@suse.de>
2214
2215         * include/ext/mt_allocator.h (__mt_alloc<>::deallocate):
2216         Consistently update __bin._M_free[0].
2217         (__mt_alloc<>::allocate): When __bin._M_first[0] != NULL use
2218         __bin._M_free[0] to simplify the while loop (i.e., the number
2219         of iterations becomes known at the outset).
2220
2221 2004-05-15  Paolo Carlini  <pcarlini@suse.de>
2222
2223         * include/std/std_bitset.h: Trivial formatting fixes.
2224
2225 2004-05-14  Paolo Carlini  <pcarlini@suse.de>
2226             Ivan Godard  <igodard@pacbell.net>
2227
2228         PR libstdc++/15361
2229         * include/std/std_bitset.h (_Base_bitset<_Nw>::_M_do_find_next): Fix.
2230         * testsuite/23_containers/bitset/ext/15361.cc: New.
2231
2232 2004-05-13  Benjamin Kosnik  <bkoz@redhat.com>
2233
2234         PR libstdc++/15046
2235         * crossconfig.m4: Add C99 math bits for linux crosses.
2236         * configure: Regenerate.
2237
2238 2004-05-13  Simon Marshall <simon.marshall@misys.com>
2239             Benjamin Kosnik  <bkoz@redhat.com>
2240
2241         PR libstdc++/15090
2242         * include/bits/locale_facets.h: Fix for -fno-for-scope.
2243         * include/debug/safe_sequence.h: Same.
2244         * include/debug/safe_iterator.tcc: Same.
2245         * src/debug.cc: Same.
2246         * src/locale.cc: Same.
2247         * src/locale_init.cc: Same.
2248         * src/localename.cc: Same.
2249         * config/locale/gnu/ctype_members.cc: Same.
2250         * config/locale/gnu/numeric_members.cc: Same.
2251         * testsuite/testsuite_abi.cc: Same.
2252         * testsuite/testsuite_hooks.cc: Same.
2253
2254 2004-05-13  Jonathan Wakely  <redi@gcc.gnu.org>
2255
2256         * docs/html/abi.html: Document effect of -fabi-version on value
2257         of __GXX_ABI_VERSION, and that it's defined in c-cppbuiltin.c.
2258         Fix markup.
2259
2260 2004-05-13  Benjamin Kosnik  <bkoz@redhat.com>
2261
2262         PR libstdc++/15074
2263         * docs/html/faq/index.html: Update docs for libsupc++ usage.
2264
2265 2004-05-13  Benjamin Kosnik  <bkoz@redhat.com>
2266
2267         PR libstdc++/15412
2268         * include/bits/stl_threads.h (_GLIBCXX_mutex): Move to namespace
2269         __gnu_internal.
2270         (_GLIBCXX_mutex_address): Same.
2271         (_GLIBCXX_once): Same.
2272         (_GLIBCXX_mutex_init): Same.
2273         (_GLIBCXX_mutex_address_init): Same.
2274
2275 2004-05-13  Benjamin Kosnik  <bkoz@redhat.com>
2276
2277         * docs/html/abi.html: New.
2278         * docs/html/abi.txt: Remove.
2279         * docs/html/documentation.html: Add link.
2280         * testsuite/Makefile.am: Add files.
2281         * testsuite/Makefile.in: Regenerated.
2282         * testsuite/abi_check.cc: Move and modify code into...
2283         * testsuite/testsuite_abi.cc: Add.
2284         * testsuite/testsuite_abi.h: Add.
2285
2286         * docs/html/17_intro/TODO: Update.
2287         * include/bits/stl_pair.h: Format.
2288
2289 2004-05-06  Matthias Klose  <doko@debian.org>
2290
2291         * include/backward/iterator.h:  Add GPL copyright info,
2292         with exception clause.
2293         * include/bits/boost_concept_check.h: Likewise.
2294         * include
2295         * libsupc++/tinfo.h: Likewise.
2296         * po/string_literals.cc: Likewise.
2297
2298 2004-05-03  Andreas Tobler  <a.tobler@schweiz.ch>
2299
2300         * acinclude.m4: Replace -W with more speaking -Wextra.
2301         * configure: Rebuilt.
2302
2303 2004-05-03  Paolo Carlini  <pcarlini@suse.de>
2304
2305         Optimize locale::_M_impl->_M_names for the most common cases:
2306         !_M_names[0] means unnamed; !_M_names[1] means all the categories
2307         the same name (_M_names[0] && _M_names[1] means that the full set
2308         of _M_names must be processed, the general case).
2309         * include/bits/locale_classes.h (locale::_Impl::_M_check_same_name):
2310         Tweak, saving work when !_M_names[1].
2311         (locale::locale(const locale&, _Facet*): Simplify: now just setting
2312         _M_names[0] = 0 means unnamed.
2313         * src/locale.cc (locale::operator==): Deal first with the common,
2314         easy cases, otherwise fall back to locale::name().
2315         (locale::name()): Tweak, if !_M_names[0] just return "*".
2316         (locale::_Impl::_Impl(const _Impl&, size_t): Tweak, early stop
2317         copying __imp._M_names if !__imp._M_names[0] or !__imp._M_names[1].
2318         * src/locale_init.cc (locale::_Impl::_Impl(size_t)): Tweak.
2319         * src/localename.cc (locale::_Impl::_Impl(const char*, size_t):
2320         Simplify when !std::strchr, just updating _M_names[0]; clean up.
2321         (locale::_Impl::_M_replace_categories): When !_M_names[1] prepare
2322         for the general case (full set of names), then do the usual work;
2323         clean up.
2324
2325         * src/locale.cc (locale::name()): Reserve space in __ret.
2326         * src/locale_init.cc (locale::global(const locale&)): Save
2327         the name in a temporary.
2328         * src/localename.cc (locale::locale(const char*)): Reserve space
2329         in __str.
2330
2331 2004-04-29  Paolo Carlini  <pcarlini@suse.de>
2332
2333         * src/locale.cc (locale::operator==): Always avoid constructing
2334         locale::name(), directly compare pairs of _M_names.
2335
2336 2004-04-26  Paolo Carlini  <pcarlini@suse.de>
2337
2338         * include/bits/istream.tcc: Fix comment.
2339
2340 2004-04-26  Paolo Carlini  <pcarlini@suse.de>
2341
2342         * include/bits/stl_vector.h: Trivial formatting fixes.
2343         * include/bits/vector.tcc: Likewise.
2344
2345 2004-04-25  Paolo Carlini  <pcarlini@suse.de>
2346
2347         PR libstdc++/15002 (continued again)
2348         * include/bits/istream.tcc (getline(basic_istream<>&,
2349         basic_string<>&, _CharT)): Use a temporary buffer, thus
2350         avoiding reallocation for common case.
2351
2352         * include/bits/basic_string.tcc (_S_construct(_InIterator,
2353         _InIterator, const _Alloc&, input_iterator_tag)): Tweak size
2354         of temporary buffer to a power of two.
2355
2356         * testsuite/27_io/basic_istream/getline/char/4.cc: Add comment.
2357
2358 2004-04-25  Paolo Carlini  <pcarlini@suse.de>
2359
2360         * testsuite/21_strings/basic_string/inserters_extractors/char/10.cc:
2361         New.
2362         * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/10.cc:
2363         Likewise.
2364         * testsuite/27_io/basic_istream/getline/char/5.cc: Likewise.
2365
2366 2004-04-24  Paolo Carlini  <pcarlini@suse.de>
2367             Petur Runolfsson  <peturr02@ru.is>
2368
2369         PR libstdc++/15002 (continued)
2370         * include/bits/istream.tcc (basic_istream<>::getline(char_type*,
2371         streamsize, char_type)): Use traits::find/copy in a loop to speed
2372         up greatly the function in the common case (I/O buffer size >> 1).
2373
2374 2004-04-24  Paolo Carlini  <pcarlini@suse.de>
2375
2376         * testsuite/27_io/basic_istream/getline/char/4.cc: New.
2377
2378         * include/bits/istream.tcc (getline(basic_istream<>&,
2379         basic_string<>&, _CharT)): Change to use sgetc()/snextc() instead
2380         of sbumpc(), consistently with the other functions, thus also
2381         dealing correctly with the case of exceeded string::max_size().
2382
2383 2004-04-24  Matthias Klose  <doko@debian.org>
2384
2385         Jonathan Wakely  <cow@compsoc.man.ac.uk>
2386         * docs/html/configopts.html: Fix reference to allocator config option.
2387
2388 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
2389
2390         * linkage.m4 (GLIBCXX_CHECK_MATH_SUPPORT): Check for libmx also.
2391         * configure: Regenerate.
2392
2393 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
2394
2395         PR libstdc++/15047, libstdc++/11610
2396         * testsuite/lib/libstdc++.exp (v3-copy-files): Use remote_download.
2397         (libstdc++_init): Don't pass outdir to v3-copy-files.
2398
2399 2004-04-21  Paolo Carlini  <pcarlini@suse.de>
2400
2401         * include/bits/deque.tcc: Trivial formatting fixes.
2402         * include/bits/stl_deque.h: Likewise.
2403         * include/bits/stl_list.h: Likewise.
2404         * include/bits/stl_tree.h: Likewise.
2405
2406 2004-04-21  Paolo Carlini  <pcarlini@suse.de>
2407             Andrew Pinski  <pinskia@physics.uc.edu>
2408
2409         * include/bits/basic_string.tcc (_M_mutate): Don't compute
2410         __src unnecessarily.
2411
2412 2004-04-19  Benjamin Kosnik  <bkoz@redhat.com>
2413
2414         * testsuite/27_io/basic_istream/extractors_character/char/9555-ic.cc:
2415         Clarify assertion, set test variable to false before assert.
2416         * testsuite/27_io/basic_istringstream/str/char/1.cc: Same.
2417         * testsuite/27_io/basic_stringstream/str/char/1.cc: Same.
2418         * testsuite/27_io/ios_base/storage/2.cc: Same.
2419
2420         * testsuite/27_io/basic_filebuf/imbue/char/13171-4.cc: Fix
2421         function returns.
2422         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Same.
2423         * testsuite/27_io/fpos/14320-3.cc: Same.
2424
2425         * testsuite/27_io/basic_filebuf/2.cc: Instantiate in namespace std.
2426         * testsuite/27_io/fpos/1.cc: Same.
2427         * testsuite/27_io/basic_stringstream/2.cc: Same.
2428         * testsuite/27_io/basic_stringbuf/4.cc: Same.
2429         * testsuite/27_io/basic_stringbuf/1.cc: Same.
2430         * testsuite/27_io/basic_stringbuf/2.cc: Same.
2431         * testsuite/27_io/basic_streambuf/2.cc: Same.
2432         * testsuite/27_io/basic_ostringstream/2.cc: Same.
2433         * testsuite/27_io/basic_ostream/2.cc: Same.
2434         * testsuite/27_io/basic_ofstream/2.cc: Same.
2435         * testsuite/27_io/basic_istringstream/2.cc: Same.
2436         * testsuite/27_io/basic_istream/2.cc: Same.
2437         * testsuite/27_io/basic_iostream/2.cc: Same.
2438         * testsuite/27_io/basic_ios/2.cc: Same.
2439         * testsuite/27_io/basic_ifstream/2.cc: Same.
2440         * testsuite/27_io/basic_fstream/2.cc: Same.
2441         * testsuite/ext/stdio_filebuf/char/1.cc: Same, in namespace __gnu_cxx.
2442
2443         * testsuite/21_strings/basic_string/capacity/1.cc: Don't compare
2444         unsigned against zero.
2445         * testsuite/21_strings/basic_string/capacity/wchar_t/1.cc: Same.
2446         * testsuite/21_strings/basic_string/capacity/char/1.cc: Same.
2447
2448         * testsuite/18_support/new_delete_placement.cc: Initialize
2449         variables before first use.
2450         * testsuite/21_strings/char_traits/requirements/wchar_t/1.cc: Same.
2451         * testsuite/21_strings/char_traits/requirements/char/1.cc: Same.
2452         * testsuite/21_strings/char_traits/requirements/short/1.cc: Same.
2453         * testsuite/27_io/basic_istream/seekg/char/exceptions_badbit_throw.cc:
2454         Same.
2455         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/exceptions_badbit_throw.cc: Same.
2456         * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
2457         Same.
2458         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/exceptions_failbit_throw.cc: Same.
2459         * testsuite/27_io/types/2.cc: Same.
2460
2461         * testsuite/ext/stdio_sync_filebuf/wchar_t/12077.cc: Fix temporary
2462         file name.
2463         * testsuite/27_io/fpos/14775.cc: Same.
2464
2465 2004-04-19  Paolo Carlini  <pcarlini@suse.de>
2466
2467         PR libstdc++/15002 (partial)
2468         * include/bits/basic_string.h (_M_replace_aux, _M_replace_safe):
2469         Special case __n2 == 1, not calling traits_type::assign/copy.
2470
2471 2004-04-17  Benjamin Kosnik  <bkoz@redhat.com>
2472
2473         * include/bits/stl_bvector.h: Use _M_impl._M_start.
2474
2475 2004-04-16  Benjamin Kosnik  <bkoz@redhat.com>
2476
2477         * include/bits/c++config (_GLIBCXX_STD): New.
2478         * src/list.cc: Use it.
2479         * include/std/std_bitset.h: Same.
2480         * include/bits/vector.tcc: Same.
2481         * include/bits/stl_set.h: Same.
2482         * include/bits/stl_multiset.h: Same.
2483         * include/bits/stl_multimap.h: Same.
2484         * include/bits/stl_map.h: Same.
2485         * include/bits/stl_list.h: Same.
2486         * include/bits/stl_vector.h: Same.
2487         * include/bits/stl_bvector.h: Same.
2488         * include/bits/stl_deque.h: Same.
2489         * include/bits/deque.tcc: Same.
2490         * include/bits/list.tcc: Same.
2491         * include/debug/vector: Same.
2492         * include/debug/set.h: Same.
2493         * include/debug/multiset.h: Same.
2494         * include/debug/multimap.h: Same.
2495         * include/debug/map.h: Same.
2496         * include/debug/list: Same.
2497         * include/debug/deque: Same.
2498         * include/debug/bitset: Same.
2499         * include/debug/formatter.h (__gnu_debug): Remove using directive.
2500         Add using declaration for std::type_info.
2501         * include/debug/safe_iterator.h: Add using declaration for
2502         std::iterator_traits and std::pair.
2503         * src/debug_list.cc: New.
2504         * src/Makefile.am: Add debug_list.cc.
2505         * src/Makefile.in: Regenerate.
2506         * config/linker-map.gnu: Add _List_node_base exports for std and
2507         __gnu_norm.
2508
2509         * include/bits/stl_bvector.h (_Bvector_base): Use _Bvector_impl
2510         idiom that other containers use.
2511         * testsuite/23_containers/vector/bool/clear_allocator.cc: New.
2512
2513 2004-04-16  Paolo Carlini  <pcarlini@suse.de>
2514
2515         PR libstdc++/14975
2516         * include/bits/fstream.tcc (basic_filebuf::imbue): Zero _M_codecvt
2517         in case of error.
2518         * testsuite/27_io/basic_filebuf/imbue/char/14975-1.cc: New.
2519         * testsuite/27_io/basic_filebuf/imbue/wchar_t/14975-2.cc: New.
2520
2521 2004-04-16  Paolo Carlini  <pcarlini@suse.de>
2522
2523         * acconfig.h: Remove _GLIBCXX_USE_LONG_DOUBLE entry, not
2524         used anymore.
2525         * config.h.in: Regenerate.
2526
2527 2004-04-16  Paolo Carlini  <pcarlini@suse.de>
2528
2529         * config/locale/generic/monetary_members.cc
2530         (moneypunct<wchar_t>::_M_initialize_moneypunct): Avoid calling
2531         btowc unnecessarily, just cast to wchar_t (the concerned chars
2532         all belong to the basic character set).
2533         * config/locale/generic/numeric_members.cc
2534         (numpunct<wchar_t>::_M_initialize_numpunct): Likewise.
2535         * config/locale/gnu/monetary_members.cc
2536         (moneypunct<wchar_t>::_M_initialize_moneypunct): Likewise.
2537         * config/locale/gnu/numeric_members.cc
2538         (numpunct<wchar_t>::_M_initialize_numpunct): Likewise.
2539
2540 2004-04-15  Paolo Carlini  <pcarlini@suse.de>
2541
2542         * src/locale.cc (locale::operator==): When _M_impl == __rhs._M_impl
2543         avoid constructing unnecessarily this->name().
2544
2545 2004-04-14  Zack Weinberg  <zack@codesourcery.com>
2546
2547         * testsuite/Makefile.am: Add definition of AM_CXXFLAGS.
2548         Change definition of CXX to use $(shell) instead of backticks.
2549         * testsuite/Makefile.in: Regenerate.
2550
2551 2004-04-12  Dhruv Matani  <dhruvbird@gmx.net>
2552
2553         * testsuite/performance/20_util/allocator/list_sort_search.cc:
2554         Minor formatting fixes.
2555         * testsuite/performance/20_util/allocator/map_mt_find.cc:
2556         Likewise.
2557
2558 2004-04-12  Paolo Carlini <pcarlini@suse.de>
2559
2560         * config/locale/gnu/numeric_members.cc
2561         (numpunct<wchar_t>::_M_initialize_numpunct): No need to wrap
2562         in __uselocale, since btowc is called for chars belonging to
2563         the basic character set.
2564
2565 2004-04-09  Paolo Carlini  <pcarlini@suse.de>
2566
2567         * testsuite/22_locale/messages/members/char/1.cc: Remove junk.
2568         * testsuite/22_locale/messages/members/char/2.cc: Ditto.
2569         * testsuite/22_locale/messages/members/char/3.cc: Ditto.
2570         * testsuite/22_locale/num_get/get/char/1.cc: Ditto.
2571         * testsuite/22_locale/num_get/get/char/2.cc: Ditto.
2572         * testsuite/22_locale/num_get/get/char/3.cc: Ditto.
2573         * testsuite/22_locale/num_get/get/wchar_t/1.cc: Ditto.
2574         * testsuite/22_locale/num_get/get/wchar_t/2.cc: Ditto.
2575         * testsuite/22_locale/num_get/get/wchar_t/3.cc: Ditto.
2576         * testsuite/22_locale/num_put/put/char/1.cc: Ditto.
2577         * testsuite/22_locale/num_put/put/char/2.cc: Ditto.
2578         * testsuite/22_locale/num_put/put/char/3.cc: Ditto.
2579         * testsuite/22_locale/num_put/put/wchar_t/1.cc: Ditto.
2580         * testsuite/22_locale/num_put/put/wchar_t/2.cc: Ditto.
2581         * testsuite/22_locale/num_put/put/wchar_t/3.cc: Ditto.
2582         * testsuite/22_locale/numpunct/members/char/1.cc: Ditto.
2583         * testsuite/22_locale/numpunct/members/wchar_t/1.cc: Ditto.
2584
2585 2004-04-07  Paolo Carlini  <pcarlini@suse.de>
2586
2587         * config/locale/generic/time_members.cc
2588         (__timepunct<char>::_M_initialize_timepunct,
2589         __timepunct<wchar_t>::_M_initialize_timepunct): the correct
2590         _M_amonth07 in the "C" locale is "Jul" and L"Jul", respectively.
2591         * config/locale/gnu/time_members.cc
2592         (__timepunct<char>::_M_initialize_timepunct,
2593         __timepunct<wchar_t>::_M_initialize_timepunct): Ditto.
2594         * testsuite/22_locale/time_get/get_monthname/char/4.cc: New.
2595         * testsuite/22_locale/time_get/get_monthname/wchar_t/4.cc: New.
2596
2597         * testsuite/22_locale/time_get/date_order/char/1.cc: Remove junk.
2598         * testsuite/22_locale/time_get/date_order/wchar_t/1.cc: Ditto.
2599         * testsuite/22_locale/time_get/get_date/char/1.cc: Ditto.
2600         * testsuite/22_locale/time_get/get_date/char/2.cc: Ditto.
2601         * testsuite/22_locale/time_get/get_date/wchar_t/1.cc: Ditto.
2602         * testsuite/22_locale/time_get/get_date/wchar_t/2.cc: Ditto.
2603         * testsuite/22_locale/time_get/get_monthname/char/1.cc: Ditto.
2604         * testsuite/22_locale/time_get/get_monthname/char/2.cc: Ditto.
2605         * testsuite/22_locale/time_get/get_monthname/wchar_t/1.cc: Ditto.
2606         * testsuite/22_locale/time_get/get_monthname/wchar_t/2.cc: Ditto.
2607         * testsuite/22_locale/time_get/get_time/char/1.cc: Ditto.
2608         * testsuite/22_locale/time_get/get_time/char/2.cc: Ditto.
2609         * testsuite/22_locale/time_get/get_time/wchar_t/1.cc: Ditto.
2610         * testsuite/22_locale/time_get/get_time/wchar_t/2.cc: Ditto.
2611         * testsuite/22_locale/time_get/get_weekday/char/1.cc: Ditto.
2612         * testsuite/22_locale/time_get/get_weekday/char/2.cc: Ditto.
2613         * testsuite/22_locale/time_get/get_weekday/wchar_t/1.cc: Ditto.
2614         * testsuite/22_locale/time_get/get_weekday/wchar_t/2.cc: Ditto.
2615         * testsuite/22_locale/time_get/get_year/char/1.cc: Ditto.
2616         * testsuite/22_locale/time_get/get_year/wchar_t/1.cc: Ditto.
2617         * testsuite/22_locale/time_put/put/char/1.cc: Ditto.
2618         * testsuite/22_locale/time_put/put/char/2.cc: Ditto.
2619         * testsuite/22_locale/time_put/put/char/3.cc: Ditto.
2620         * testsuite/22_locale/time_put/put/char/4.cc: Ditto.
2621         * testsuite/22_locale/time_put/put/char/5.cc: Ditto.
2622         * testsuite/22_locale/time_put/put/char/6.cc: Ditto.
2623         * testsuite/22_locale/time_put/put/char/7.cc: Ditto.
2624         * testsuite/22_locale/time_put/put/char/8.cc: Ditto.
2625         * testsuite/22_locale/time_put/put/wchar_t/1.cc: Ditto.
2626         * testsuite/22_locale/time_put/put/wchar_t/2.cc: Ditto.
2627         * testsuite/22_locale/time_put/put/wchar_t/3.cc: Ditto.
2628         * testsuite/22_locale/time_put/put/wchar_t/4.cc: Ditto.
2629         * testsuite/22_locale/time_put/put/wchar_t/5.cc: Ditto.
2630         * testsuite/22_locale/time_put/put/wchar_t/6.cc: Ditto.
2631         * testsuite/22_locale/time_put/put/wchar_t/7.cc: Ditto.
2632         * testsuite/22_locale/time_put/put/wchar_t/8.cc: Ditto.
2633
2634         * testsuite/22_locale/time_put/put/char/9780-1.cc: Fix typos.
2635
2636 2004-04-07  Paolo Carlini  <pcarlini@suse.de>
2637
2638         * config/locale/gnu/monetary_members.cc
2639         (moneypunct<wchar_t>::_M_initialize_moneypunct): Prefer
2640         _NL_MONETARY_DECIMAL_POINT_WC, _NL_MONETARY_THOUSANDS_SEP_WC,
2641         and __MON_GROUPING to _NL_NUMERIC_DECIMAL_POINT_WC,
2642         _NL_NUMERIC_THOUSANDS_SEP_WC, and GROUPING.
2643         * config/locale/gnu/numeric_members.cc
2644         (numpunct<char>::_M_initialize_numpunct): Prefer DECIMAL_POINT
2645         and THOUSANDS_SEP to the deprecated RADIXCHAR and THOUSEP.
2646
2647 2004-04-06  Benjamin Kosnik  <bkoz@redhat.com>
2648
2649         Fixups for EDG front end.
2650         * include/ext/rope: Instead of non-existent function
2651         _Data_allocate, use allocator's allocate. Use this.
2652         (namespace _Rope_constants): Move _S_max_rope_depth, and _Tag
2653         enumerations from _Rope_RopeRep here.
2654         * include/ext/ropeimpl.h: Same.
2655         * src/ext-inst.cc (_S_min_len): Fix up definition.
2656
2657         * config/locale/gnu/ctype_members.cc: Qualify base class members
2658         with this.
2659         * config/locale/generic/ctype_members.cc: Same.
2660         * config/locale/gnu/messages_members.h: Same.
2661         * config/locale/generic/messages_members.h: Same.
2662         * src/ctype.cc: Same.
2663         * include/bits/codecvt.h: Same.
2664
2665         * include/bits/boost_concept_check.h: Declare.
2666         (__error_type_must_be_an_unsigned_integer_type): Remove this.
2667         (__error_type_must_be_an_integer_type): Remove this.
2668         (__error_type_must_be_a_signed_integer_type): Remove this.
2669
2670         * config/io/basic_file_stdio.cc (__basic_file::sys_open): Remove cast.
2671
2672         * libsupc++/eh_alloc.cc (__cxa_free_exception): Add exception
2673         specification to definition.
2674         (__cxa_allocate_exception): Same.
2675         * libsupc++/eh_catch.cc (__cxa_begin_catch): Same.
2676         * libsupc++/eh_globals.cc (__cxa_get_globals_fast): Same.
2677         (__cxa_get_globals): Same.
2678
2679         * libsupc++/del_op.cc: Add comment about freestanding.
2680
2681 2004-04-05  Paolo Carlini  <pcarlini@suse.de>
2682
2683         * include/ext/mt_allocator.h (__mt_alloc<>::deallocate):
2684         The critical section is actually very small, only two assignments.
2685
2686 2004-04-04  Paolo Carlini  <pcarlini@suse.de>
2687             Petur Runolfsson  <peturr02@ru.is>
2688
2689         * testsuite/performance/27_io/filebuf_sputn_unbuf.cc: New,
2690         adapted from libstdc++/11378.
2691
2692 2004-04-03  Paolo Carlini  <pcarlini@suse.de>
2693
2694         * include/ext/mt_allocator.h (__mt_alloc<>::allocate): Factor out
2695         some duplicated code.
2696         (__mt_alloc<>::_Bin_record): Spare the space of _M_free and _M_used
2697         in the single threaded case.
2698         * testsuite/performance/20_util/allocator/list_sort_search.cc:
2699         Reorder and renumber the tests consistently with the other testfiles.
2700         * testsuite/performance/20_util/allocator/map_mt_find.cc: Ditto.
2701         * testsuite/performance/20_util/allocator/map_thread.cc: Ditto.
2702         * testsuite/performance/20_util/allocator/producer_consumer.cc: Ditto.
2703
2704 2004-04-02  Paolo Carlini  <pcarlini@suse.de>
2705
2706         * include/ext/mt_allocator.h (__mt_alloc<>::deallocate):
2707         Rearrange arithmetic to avoid computing two divisions at
2708         each deallocation.
2709
2710 2004-04-01  Paolo Carlini  <pcarlini@suse.de>
2711
2712         * include/ext/mt_allocator.h (__mt_alloc<>::_S_initialize):
2713         Streamline the second half, wrapping it in a single
2714         '#ifdef __GTHREADS if (__gthread_active_p())' and avoiding
2715         conditionals inside loops.
2716
2717 2004-04-01  Paolo Carlini  <pcarlini@suse.de>
2718
2719         PR libstdc++/14775
2720         * acconfig.h: Rename _GLIBCXX_MEM_LIMITS to _GLIBCXX_RES_LIMITS.
2721         * acinclude.m4 (GLIBCXX_CHECK_SETRLIMIT): Call
2722         GLIBCXX_CHECK_SETRLIMIT_ancilliary for FSIZE too, adjust define
2723         to _GLIBCXX_RES_LIMITS.
2724         (GLIBCXX_CHECK_SETRLIMIT_ancilliary): Rename HAVE_MEMLIMIT_* to
2725         HAVE_LIMIT_*.
2726         * testsuite/testsuite_hooks.h: Declare set_file_limit.
2727         * testsuite/testsuite_hooks.cc: Define it, using getrlimit
2728         and setrlimit(RLIMIT_FSIZE).
2729         * testsuite/27_io/fpos/14775.cc: New.
2730         * config.h.in: Regenerate.
2731         * configure: Likewise.
2732
2733 2004-03-31  Paolo Carlini  <pcarlini@suse.de>
2734
2735         * config/locale/generic/c_locale.cc (__convert_to_v(long double&)):
2736         In v3 uses of sscanf, the special floating-point numbers INF,
2737         INFINITY, etc., cannot occur in input, therefore, if the latter
2738         is too large, ERANGE is always stored in errno, no need of finitel.
2739
2740 2004-03-30  Benjamin Kosnik  <bkoz@redhat.com>
2741
2742         PR libstdc++/14783
2743         * include/bits/stl_tree.h: Adjust initialization list order.
2744
2745 2004-03-29  Loren J. Rittle  <ljrittle@acm.org>
2746
2747         * testsuite/thread/pthread7-rope.cc: Update comment to reflect test.
2748
2749 2004-03-29  Paolo Carlini  <pcarlini@suse.de>
2750
2751         * testsuite/thread/pthread7-rope.cc: Fix, unpredictably, depending
2752         on allocator behavior, the memory pointed by data2 may well be not
2753         trashed.
2754
2755 2004-03-28  Chavdar Botev  <cbotev@yahoo.com>
2756
2757         PR libstdc++/14245
2758         * include/bits/basic_string.tcc
2759         (basic_string::basic_string(const basic_string&)): Pass to
2760         _Rep::_M_grab the actual allocator of the string being constructed
2761         not the default constructed one.
2762
2763 2004-03-27  Benjamin Kosnik  <bkoz@redhat.com>
2764
2765         libstdc++ PR/13598
2766         * config/locale/ieee_1003.1-2001/codecvt_specializations.h
2767         (__enc_traits::_M_destroy): New.
2768         (__enc_traits::~__enc_traits): Use it.
2769         (__enc_traits::operator=): Use _M_destroy, _M_init.
2770         (__enc_traits::__enc_traits): Same.
2771
2772 2004-03-27  Petur Runolfsson  <peturr02@ru.is>
2773
2774         * testsuite/ext/enc_filebuf/char/13598.cc: New.
2775
2776 2004-03-27  Paolo Carlini  <pcarlini@suse.de>
2777
2778         * include/ext/mt_allocator.h: Uglify consistently names of
2779         variables, members and classes; tidy.
2780
2781 2004-03-27  Dhruv Matani  <dhruvbird@gmx.net>
2782
2783         * include/ext/mt_allocator.h (__mt_alloc<>::deallocate):
2784         Deallocation loop rewrote.
2785
2786 2004-03-26  Paolo Carlini  <pcarlini@suse.de>
2787
2788         * include/ext/mt_allocator.h (__mt_alloc<>::allocate,
2789         __mt_alloc<>::deallocate): Protect two instances of
2790         block->thread_id with __GTHREADS.
2791
2792 2004-03-25  Gawain Bolton  <gp.bolton@computer.org>
2793
2794         * include/bits/stl_tree.h (_Rb_tree_impl): Add _Node_allocator
2795         default argument in constructors.
2796         (_Rb_tree::_M_empty_initialize): Remove.
2797
2798 2004-03-25  Benjamin Kosnik  <bkoz@redhat.com>
2799
2800         * testsuite/23_containers/map/operators/1_neg.cc: Adjust line numbers.
2801         * testsuite/23_containers/set/operators/1_neg.cc: Same.
2802
2803 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
2804
2805         * include/bits/cpp_type_traits.h: Changed __is_pod
2806         completely. Now, it does not use any of the previous type_traits
2807         to detect the pod types, and it also detects function pointers as
2808         POD types.
2809
2810         * include/bits/stl_tree.h: Introduced a new class _Rb_tree_impl,
2811         which encapsulates the internal implementation of an rb_tree. Made
2812         the allocator a base class of this class instead of the rb_tree,
2813         which was not conforming. This _Rb_tree_impl class is also
2814         specialized on whether the _Compare parameter is a POD type or
2815         not. If so, then it maintains the comparison function as a data
2816         member, otherwise it makes the _Compare parameter a base class of
2817         itself. Also, _M_key_compare is now a function instead of a data
2818         member, so that the above trick can work properly. Delegated the
2819         initialization of the other data members to this newly created
2820         class. Also, now other member functions of rb_tree must refer to
2821         _M_key_compare as _M_impl._M_key_compare(). The other data members
2822         (*) can be referenced to as _M_impl.(*), where
2823         (*) includes _M_header, and _M_node_count.
2824
2825 2004-03-25  Paolo Carlini  <pcarlini@suse.de>
2826
2827         * include/ext/mt_allocator.h (__mt_alloc<>::tune):
2828         Add _M_min_bin, the size in bytes of the smallest bin.
2829         (__mt_alloc<>::tune()): Tweak accordingly.
2830         (__mt_alloc<>::tune(size_t, ...)): Likewise.
2831         (__mt_alloc<>::block_record): Change to a union: members next
2832         and thread_id are never used at the same time.
2833         (__mt_alloc<>::allocate): Update consistently.
2834         (__mt_alloc<>::deallocate): Likewise.
2835         (__mt_alloc<>::_S_initialize): Update setups of _S_binmap and
2836         _S_bin_size for the configurable _M_min_size.
2837
2838 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
2839
2840         * include/bits/stl_list.h: Created a _List_impl class and made it
2841         derive from the allocator, instead of the list deriving from the
2842         allocator class, which was not conformant. Changed all references
2843         from this->_M_node to this->_M_impl._M_node * bits/list.tcc: Same
2844         as above (changed all references to the concerned variables).
2845
2846 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
2847
2848         * include/bits/stl_deque.h: Created a _Deque_impl class and made
2849         it derive from the allocator, instead of the deque deriving from
2850         the allocator class, which was not conformant. Changed all
2851         references to the _M_start, _M_finish, _M_map, and _M_map_size to
2852         _M_impl.*.
2853         (_Deque_base<_Tp,_Alloc>::~_Deque_base()): Added this->
2854         qualification in 2 places where it was missing.
2855         (_Deque_base<_Tp,_Alloc>::_M_initialize_map(size_t)): Same as
2856         above.
2857         * include/bits/deque.tcc: Same as above (changed all references to
2858         the concerned variables).
2859
2860 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
2861
2862         * include/bits/stl_vector.h: Created a _Vector_impl class and made
2863         it derive from the allocator, instead of the _Vector_base class,
2864         deriving from the allocator which was not conformant. Changed all
2865         references to the _M_start, _M_finish, and _M_end_of_storage to
2866         _M_impl.*.
2867         * include/bits/vector.tcc: Same as above (changed all references
2868         to the concerned variables).
2869
2870 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
2871
2872         * testsuite/23_containers/deque/cons/clear_allocator.cc: New.
2873         * testsuite/23_containers/list/cons/clear_allocator.cc: New.
2874         * testsuite/23_containers/vector/cons/clear_allocator.cc: New.
2875
2876 2004-03-24  Dhruv Matani  <dhruvbird@gmx.net>
2877
2878         * include/ext/malloc_allocator.h: Fixed the construct function to
2879         call global placement new instead of assignment. Added a check
2880         after the return from malloc to check whether returned pointer is
2881         NULL, and if so, throw std::bad_alloc().
2882         * include/ext/debug_allocator.h: Added a check in the deallocate
2883         function to check whether the user has passed a NULL pointer or
2884         not.
2885
2886 2004-03-24  Benjamin Kosnik  <bkoz@redhat.com>
2887
2888         * docs/html/20_util/allocator.html: Add bitmap_allocator links.
2889
2890 2004-03-24  Andreas Schwab  <schwab@suse.de>
2891
2892         * testsuite/lib/prune.exp (prune_g++_output): Ignore errata
2893         warning from IA64 assembler.
2894
2895 2004-03-24  Dhruv Matani  <dhruvbird@gmx.net>
2896
2897         * include/ext/bitmap_allocator.h: (_Bit_scan_forward) -> Made this
2898         function call __builtin_ctz instead of the while loop.
2899         (allocate) -> If condition has __builtin_expect.
2900         (deallocate) -> Ditto.
2901         Renamed a few left-over variables and typedefs according to the
2902         C++STYLE mentioned in the documentation.
2903         Protected calls to __gthread* by __gthread_active_p(), whose value
2904         is cached in the local variable __threads_active.
2905
2906 2004-03-24  Felix Yen  <fwy@alumni.brown.edu>
2907
2908         * testsuite/performance/20_util/allocator/producer_consumer.cc:
2909         Use linear algorithm for producer.
2910
2911 2004-03-24  Paolo Carlini  <pcarlini@suse.de>
2912
2913         * include/ext/mt_allocator.h (__mt_alloc<>::allocate,
2914         __mt_alloc<>::deallocate): Avoid redundant conditionals.
2915
2916 2004-03-23  Benjamin Kosnik  <bkoz@redhat.com>
2917
2918         * include/bits/locale_facets.h: Tweaks for 80 column.
2919         (__numpunct_cache::_M_cache): Move to locale_facets.tcc.
2920         (__moneypunct_cache::_M_cache): Same.
2921         (num_get): Don't inherit from __num_base.
2922         (num_put): Same.
2923         (money_get): Don't inherit from money_base.
2924         (money_put): Same.
2925         (__timepunct::_M_am_pm_format): New.
2926         (time_get::_M_extract_num): Return iterator, use ios_base as argument.
2927         (time_get::_M_extract_name): Same.
2928         (time_get::_M_extract_via_format): Same.
2929         * include/bits/locale_facets.tcc: Tweaks for 80 column.
2930         Use _M_getloc instead of getloc.
2931         * testsuite/22_locale/money_put/put/char/9780-3.cc: New.
2932         * testsuite/22_locale/num_put/put/char/9780-2.cc: New.
2933         * testsuite/22_locale/time_put/put/char/9780-1.cc: New.
2934
2935 2004-03-22  Paolo Carlini  <pcarlini@suse.de>
2936
2937         * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Add pool_allocator.
2938         * configure: Regenerate.
2939         * config/allocator/pool_allocator_base.h: New.
2940         * include/ext/pool_allocator.h: Convert to a standard-conforming
2941         allocator.
2942         * src/allocator.cc: Tweak instantiations.
2943         * testsuite/performance/20_util/allocator/insert.cc: Add __pool_alloc.
2944         * testsuite/performance/20_util/allocator/insert_insert.cc: Ditto.
2945         * testsuite/performance/20_util/allocator/list_sort_search.cc: Ditto.
2946         * testsuite/performance/20_util/allocator/map_mt_find.cc: Ditto.
2947         * testsuite/performance/20_util/allocator/map_thread.cc: Ditto.
2948         * testsuite/performance/20_util/allocator/producer_consumer.cc: Ditto.
2949
2950 2004-03-22  Hans-Peter Nilsson  <hp@axis.com>
2951
2952         * config/cpu/cris/atomicity.h (__atomic_add): Remove "static
2953         inline" and attribute-unused.  Qualify parameter __mem with
2954         "volatile".
2955         (__exchange_and_add): Ditto.  Add back memory clobber to asm.
2956
2957 2004-03-20  Paolo Carlini  <pcarlini@suse.de>
2958
2959         * testsuite/27_io/basic_istream/extractors_arithmetic/char/2.cc:
2960         Remove junk.
2961         * testsuite/27_io/basic_istream/extractors_arithmetic/char/3.cc:
2962         Likewise.
2963         * testsuite/27_io/basic_istream/extractors_arithmetic/char/6.cc:
2964         Likewise.
2965         * testsuite/27_io/basic_istream/extractors_arithmetic/char/7.cc:
2966         Likewise.
2967         * testsuite/27_io/basic_istream/extractors_arithmetic/char/8.cc:
2968         Likewise.
2969         * testsuite/27_io/basic_istream/extractors_arithmetic/char/9.cc:
2970         Likewise.
2971         * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
2972         Likewise.
2973         * testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc:
2974         Likewise.
2975         * testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
2976         Likewise.
2977         * testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc:
2978         Likewise.
2979
2980 2004-03-20  Paolo Carlini  <pcarlini@suse.de>
2981
2982         * include/std/std_valarray.h: Document DR389 [Ready].
2983         * docs/html/ext/howto.html: Add an entry for DR389.
2984
2985 2004-03-19  Michael Eager  <eager@mvista.com>
2986
2987         * config/cpu/mips/atomicity.h:  Prevent reg loads between LL and
2988         SC instructions.
2989
2990 2004-03-19  Paolo Carlini  <pcarlini@suse.de>
2991
2992         * testsuite/22_locale/num_get/get/char/11.cc: Remove redundant
2993         static_cast-s.
2994         * testsuite/22_locale/num_get/get/char/12.cc: Likewise.
2995         * testsuite/22_locale/num_get/get/char/13.cc: Likewise.
2996         * testsuite/22_locale/num_get/get/char/14.cc: Likewise.
2997         * testsuite/22_locale/num_get/get/char/15.cc: Likewise.
2998         * testsuite/22_locale/num_get/get/wchar_t/11.cc: Likewise.
2999         * testsuite/22_locale/num_get/get/wchar_t/12.cc: Likewise.
3000         * testsuite/22_locale/num_get/get/wchar_t/13.cc: Likewise.
3001         * testsuite/22_locale/num_get/get/wchar_t/14.cc: Likewise.
3002         * testsuite/22_locale/num_get/get/wchar_t/15.cc: Likewise.
3003
3004 2004-03-19  Paolo Carlini  <pcarlini@suse.de>
3005             Petur Runolfsson  <peturr02@ru.is>
3006
3007         PR libstdc++/12077
3008         * include/ext/stdio_sync_filebuf.h (showmanyc): Remove, there's
3009         no way to find out the conversion used by the underlying FILE*.
3010         * testsuite/ext/stdio_sync_filebuf/wchar_t/12077.cc: New.
3011         * testsuite/27_io/objects/char/9.cc: Tweak.
3012
3013 2004-03-19  Paolo Carlini  <pcarlini@suse.de>
3014
3015         PR libstdc++/14648
3016         * include/ext/ropeimpl.h (rope<>::_S_apply_to_pieces): Fix
3017         memory allocation/deallocation calls.
3018         * testsuite/ext/14648.cc: New.
3019
3020 2004-03-19  Peter Schmid  <schmid@snake.iap.physik.tu-darmstadt.de>
3021
3022         PR libstdc++/14647
3023         * include/backward/bvector.h (bit_vector): Allocator is in std
3024         namespace.
3025
3026 2004-03-19  Phil Edwards  <phil@codesourcery.com>
3027
3028         * acinclude.m4 (GLIBCXX_CHECK_WCHAR_T_SUPPORT):  Set LIBICONV,
3029         not libiconv.  SUBST this variable as well.
3030         * testsuite/Makefile.am (site.exp):  New target, based on that
3031         created by automake.  Also set libiconv.
3032
3033         * configure, Makefile.in, include/Makefile.in, libmath/Makefile.in,
3034         libsupc++/Makefile.in, po/Makefile.in, src/Makefile.in,
3035         testsuite/Makefile.in:  Regenerate.
3036
3037 2004-03-16  Benjamin Kosnik  <bkoz@redhat.com>
3038
3039         * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Default setting is
3040         new_allocator for all hosts.
3041         * configure: Regenerate.
3042
3043 2004-03-16  Paolo Carlini  <pcarlini@suse.de>
3044
3045         * testsuite/22_locale/num_put/put/char/4.cc: Fix for 64-bit pointers.
3046         * testsuite/22_locale/num_put/put/wchar_t/4.cc: Likewise.
3047
3048 2004-03-15  Paolo Carlini  <pcarlini@suse.de>
3049
3050         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
3051         Adjust the logic underlying the parsing of symbol to deal
3052         correctly with an optional sign component (i.e., when either
3053         negative_sign or positive_sign is empty)
3054         * testsuite/22_locale/money_get/get/char/19.cc: New.
3055         * testsuite/22_locale/money_get/get/wchar_t/19.cc: New.
3056
3057 2004-03-15  Paolo Carlini  <pcarlini@suse.de>
3058
3059         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
3060         Do not accept an incomplete currency symbol.
3061         * testsuite/22_locale/money_get/get/char/18.cc: New.
3062         * testsuite/22_locale/money_get/get/wchar_t/18.cc: New.
3063
3064 2004-03-13  Benjamin Kosnik  <bkoz@redhat.com>
3065
3066         * config/allocator: New.
3067         * config/allocator/bitmap_allocator_base.h: New.
3068         * config/allocator/malloc_allocator_base.h: New.
3069         * config/allocator/mt_allocator_base.h: New.
3070         * config/allocator/new_allocator_base.h: New.
3071         * include/bits/allocator.h: Include c++allocator.h.
3072         * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): New.
3073         * aclocal.m4: Regenerate.
3074         * configure.ac: Use GLIBCXX_ENABLE_ALLOCATOR.
3075         * configure: Regenerate.
3076         * include/Makefile.am (host_headers_extra): Add c++allocator.h.
3077         * include/Makefile.in: Regenerate.
3078         * docs/html/configopts.html: Add enable-libstdcxx-allocator.
3079
3080 2004-03-12  Benjamin Kosnik  <bkoz@redhat.com>
3081
3082         * include/bits/allocator.h: Revert.
3083
3084 2004-03-12  Paolo Carlini  <pcarlini@suse.de>
3085
3086         * docs/html/ext/howto.html: Add entry for DR 253 [Ready].
3087         * include/bits/gslice_array.h: Add comment about DR 253.
3088         * include/bits/indirect_array.h: Likewise.
3089         * include/bits/mask_array.h: Likewise.
3090         * include/bits/slice_array.h: Likewise.
3091
3092 2004-03-12  Benjamin Kosnik  <bkoz@redhat.com>
3093
3094         * testsuite/20_util/allocator/14176.cc: New.
3095         * include/ext/mt_allocator.h: Formatting fixes.
3096
3097 2004-03-11  Dhruv Matani  <dhruvbird@HotPOP.com>
3098
3099         * include/Makefile.am (ext_headers): Add
3100         ${ext_srcdir}/bitmap_allocator.h .
3101         * include/Makefile.in: Regenerate.
3102         * docs/html/ext/ballocator_doc.txt: New file.
3103         * include/ext/bitmap_allocator.h: New file.
3104         * testsuite/performance/20_util/allocator/list_sort_search.cc: Add
3105         test.
3106         * testsuite/performance/20_util/allocator/map_mt_find.cc: Likewise.
3107         * testsuite/performance/20_util/allocator/producer_consumer.cc: Add
3108         test for the bitmap_allocator<>.
3109         * testsuite/performance/20_util/allocator/insert.cc: Likewise.
3110         * testsuite/performance/20_util/allocator/insert_insert.cc: Likewise.
3111         * testsuite/performance/20_util/allocator/map_thread.cc: Likewise.
3112
3113 2004-03-11  Paolo Carlini  <pcarlini@suse.de>
3114
3115         * include/std/std_complex.h (pow(const complex&, const _Tp&),
3116         pow(const _Tp&, const complex&), pow(const complex&,
3117         const complex&)): Fully qualify with std:: a few calls.
3118         * testsuite/26_numerics/complex/13450.cc: Minor tweak.
3119
3120 2004-03-11  Steven Bosscher  <stevenb@suse.de>
3121
3122         PR libstdc++/11706
3123         * include/c_std/cmath.tcc (__cmath_power): Define inline.
3124
3125 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
3126
3127         * configure.ac: Bump AC_PREREQ to 2.59.
3128
3129 2004-03-10  Paolo Carlini  <pcarlini@suse.de>
3130
3131         * testsuite/26_numerics/valarray_subset_assignment.cc: Fix typos.
3132
3133 2004-03-10  Paul Kienzle  <pkienzle@nist.gov>
3134             Paolo Carlini  <pcarlini@suse.de>
3135
3136         PR libstdc++/13450
3137         * include/std/std_complex.h (pow(const complex&, const _Tp&),
3138         pow(const _Tp&, const complex&)): Use cmath pow only when safe.
3139         * testsuite/26_numerics/complex/13450.cc: New.
3140
3141         * testsuite/26_numerics/cmath/overloads.C: Rename to overloads.cc.
3142         * testsuite/26_numerics/complex/pow.C: Rename to pow.cc and fix.
3143
3144 2004-03-10  Jerry Quinn  <jlquinn@optonline.net>
3145
3146         PR libstdc++/3247
3147         * include/bits/gslice_array.h (gslice_array()): Make public.
3148         (operator=(gslice_array)): Make public.  Implement.
3149         * include/bits/indirect_array.h (indirect_array()): Make public.
3150         * include/bits/mask_array.h (mask_array()): Make public.
3151         (operator=(mask_array)): Make public.  Implement.
3152         * include/bits/valarray_array.tcc (__valarray_copy):
3153         Comment.  Add versions for gslice_array and mask_array.
3154         * testsuite/26_numerics/valarray_subset_assignment.cc:  New test.
3155
3156 2004-03-09  Benjamin Kosnik  <bkoz@redhat.com>
3157
3158         * testsuite/23_containers/deque/modifiers/swap.cc: Add in bits for
3159         non-weak systems.
3160         * testsuite/23_containers/vector/modifiers/swap.cc: Same.
3161         * testsuite/23_containers/set/modifiers/swap.cc: Same.
3162         * testsuite/23_containers/multiset/modifiers/swap.cc: Same.
3163         * testsuite/23_containers/multimap/modifiers/swap.cc: Same.
3164         * testsuite/23_containers/map/modifiers/swap.cc: Same.
3165         * testsuite/23_containers/list/modifiers/swap.cc: Same.
3166
3167         * testsuite/22_locale/locale/cons/12658_thread.cc: Catch exceptions.
3168
3169 2004-03-08  Benjamin Kosnik  <bkoz@redhat.com>
3170
3171         PR c++/13658
3172         * testsuite/23_containers/deque/modifiers/swap.cc: New.
3173         * testsuite/23_containers/list/modifiers/swap.cc: New.
3174         * testsuite/23_containers/map/modifiers/swap.cc: New.
3175         * testsuite/23_containers/multimap/modifiers/swap.cc: New.
3176         * testsuite/23_containers/multiset/modifiers/swap.cc: New.
3177         * testsuite/23_containers/set/modifiers/swap.cc: New.
3178         * testsuite/23_containers/vector/modifiers/swap.cc: New.
3179
3180 2004-03-08  Petur Runolfsson  <peturr02@ru.is>
3181
3182         PR libstdc++/12658
3183         * testsuite/22_locale/locale/cons/12658_thread.cc: New.
3184
3185 2004-03-08  Paolo Carlini  <pcarlini@suse.de>
3186
3187         * docs/html/ext/howto.html: Add entry for DR 103 [WP].
3188         * include/bits/stl_multiset.h: Add comment about DR 103.
3189         * include/bits/stl_set.h: Likewise.
3190
3191 2004-03-08  Paolo Carlini  <pcarlini@suse.de>
3192
3193         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
3194         The value _space_ indicates that at least one space is required
3195         at that position.
3196         * testsuite/22_locale/money_get/get/char/17.cc: New.
3197         * testsuite/22_locale/money_get/get/wchar_t/17.cc: New.
3198
3199         * testsuite/22_locale/money_get/get/char/7.cc: Minor tweaks.
3200         * testsuite/22_locale/money_get/get/wchar_t/7.cc: Likewise.
3201
3202         * include/bits/locale_facets.tcc (money_get<>::do_get(long_double&)):
3203         Remove redundant conditional on __str.size().
3204
3205 2004-03-08  Benjamin Kosnik  <bkoz@redhat.com>
3206
3207         * include/bits/allocator.h: Switch defaults to mt_alloc.
3208
3209 2004-03-06  Benjamin Kosnik  <bkoz@redhat.com>
3210
3211         * include/ext/mt_allocator.h (_S_initialize): If
3212         !__GTHREAD_MUTEX_INIT, then initialize _S_thread_freelist_mutex.
3213
3214 2004-03-06  Benjamin Kosnik  <bkoz@redhat.com>
3215
3216         PR libstdc++/12658
3217         * src/locale_init.cc (locale::locale): Lock critical regions with
3218         external mutexes.
3219         (locale::global): Same.
3220         * include/bits/concurrence.h (__glibcxx_mutex_define_initialized):
3221         Add in once bits for cases without __GTHREAD_MUTEX_INIT.
3222         (__glibcxx_mutex_lock): Same.
3223
3224         * config/cpu/generic/atomicity.h: Remove
3225         _GLIBCXX_NEED_GENERIC_MUTEX, use concurrence.h.
3226         * src/misc-inst.cc: Move all locking bits out of this file.
3227
3228         * config/os/hpux/os_defines.h: Remove _GLIBCXX_INST_ATOMICITY_LOCK.
3229         * src/misc-inst.cc: Same.
3230         * config/cpu/hppa/atomicity.h: Same.
3231
3232         * config/linker-map.gnu: Remove types in the signature of atomic
3233         exports, as they may vary.
3234
3235 2004-03-06  Paolo Carlini  <pcarlini@suse.de>
3236
3237         * include/bits/locale_facets.tcc: Tweak the comment preceding
3238         has_facet: doesn't throw.
3239
3240 2004-03-06  Paolo Carlini  <pcarlini@suse.de>
3241
3242         * testsuite/22_locale/money_get/get/char/1.cc: Clean up.
3243         * testsuite/22_locale/money_get/get/char/2.cc: Likewise.
3244         * testsuite/22_locale/money_get/get/char/3.cc: Likewise.
3245         * testsuite/22_locale/money_get/get/char/4.cc: Likewise.
3246         * testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise.
3247         * testsuite/22_locale/money_get/get/wchar_t/2.cc: Likewise.
3248         * testsuite/22_locale/money_get/get/wchar_t/3.cc: Likewise.
3249         * testsuite/22_locale/money_get/get/wchar_t/4.cc: Likewise.
3250
3251 2004-03-06  Paolo Carlini  <pcarlini@suse.de>
3252
3253         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
3254         num_get<>::_M_extract_int, num_get<>::do_get(bool&),
3255         __pad<>::_S_pad): Prefer plain operator== to traits::eq().
3256         * testsuite/testsuite_character.h (struct __gnu_test::character):
3257         Provide operator==.
3258         * testsuite/testsuite_hooks.h (struct __gnu_test::pod_char):
3259         Likewise.
3260
3261 2004-03-05  Paolo Carlini  <pcarlini@suse.de>
3262
3263         * testsuite/27_io/fpos/14320-2.cc: Remove xfail.
3264
3265 2004-03-04  Benjamin Kosnik  <bkoz@redhat.com>
3266
3267         * testsuite/23_containers/multiset/insert/1.cc: Test result string.
3268
3269         * testsuite/23_containers/bitset/invalidation/1.cc: Main always
3270         returns 0.
3271         * testsuite/23_containers/deque/invalidation/4.cc: Same.
3272         * testsuite/23_containers/list/invalidation/1.cc: Same.
3273         * testsuite/23_containers/list/invalidation/2.cc: Same.
3274         * testsuite/23_containers/list/invalidation/3.cc: Same.
3275         * testsuite/23_containers/list/invalidation/4.cc: Same.
3276         * testsuite/23_containers/map/invalidation/2.cc: Same.
3277         * testsuite/23_containers/multimap/invalidation/1.cc: Same.
3278         * testsuite/23_containers/multimap/invalidation/2.cc: Same.
3279         * testsuite/23_containers/multiset/invalidation/1.cc: Same.
3280         * testsuite/23_containers/multiset/invalidation/2.cc: Same.
3281         * testsuite/23_containers/set/invalidation/1.cc: Same.
3282         * testsuite/23_containers/set/invalidation/2.cc: Same.
3283         * testsuite/23_containers/vector/invalidation/1.cc: Same.
3284         * testsuite/23_containers/vector/invalidation/2.cc: Same.
3285         * testsuite/23_containers/vector/invalidation/3.cc: Same.
3286         * testsuite/23_containers/vector/invalidation/4.cc: Same.
3287
3288 2004-03-04  Paolo Carlini  <pcarlini@suse.de>
3289
3290         * scripts/testsuite_flags.in: Add "-D_GLIBCXX_ASSERT" to
3291         CXXFLAGS_save.
3292         * testsuite/lib/libstdc++.exp: Don't add it conditionally to
3293         DEFAULT_CXXFLAGS.
3294         * testsuite/18_support/numeric_limits.cc: Remove "-D_GLIBCXX_ASSERT"
3295         from the dg-options.
3296         * testsuite/23_containers/vector/invalidation/1.cc: Likewise.
3297         * testsuite/23_containers/vector/invalidation/2.cc: Likewise.
3298         * testsuite/23_containers/vector/invalidation/3.cc: Likewise.
3299         * testsuite/23_containers/vector/invalidation/4.cc: Likewise.
3300         * testsuite/23_containers/vector/resize/1.cc: Likewise.
3301         * testsuite/26_numerics/complex_value.cc: Likewise.
3302         * testsuite/27_io/ios_base/storage/1.cc: Likewise.
3303         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
3304         * testsuite/27_io/ios_base/storage/3.cc: Likewise.
3305         * testsuite/27_io/manipulators/standard/char/2.cc: Likewise.
3306         * testsuite/27_io/objects/char/5.cc: Likewise.
3307         * testsuite/27_io/objects/wchar_t/5.cc: Likewise.
3308         * testsuite/backward/11460.cc: Likewise.
3309         * testsuite/thread/pthread7-rope.cc: Likewise.
3310
3311         * testsuite/21_strings/basic_string/compare/char/1.cc: Add
3312         missing test variable.
3313         * testsuite/21_strings/basic_string/compare/wchar_t/1.cc: Add
3314         missing test variable.
3315
3316 2004-03-04  Benjamin Kosnik  <bkoz@redhat.com>
3317
3318         * testsuite/20_util/allocator/1.cc: Provide explicit
3319         instantiations for non-weak systems.
3320         * testsuite/20_util/binders.cc: Same.
3321         * testsuite/20_util/allocator/8230.cc: Same.
3322         * testsuite/20_util/allocator/10378.cc: Same.
3323         * testsuite/22_locale/ctype/is/wchar_t/2.cc: Same.
3324         * testsuite/22_locale/ctype/is/char/2.cc: Same.
3325         * testsuite/thread/pthread7-rope.cc: Same.
3326         * testsuite/thread/pthread6.cc: Same.
3327         * testsuite/thread/pthread5.cc: Same.
3328         * testsuite/thread/pthread4.cc: Same.
3329         * testsuite/thread/pthread1.cc: Same.
3330         * testsuite/ext/rope.cc: Same.
3331         * testsuite/ext/hash_set.cc: Same.
3332         * testsuite/ext/hash_map.cc: Same.
3333         * testsuite/ext/concept_checks.cc: Same.
3334         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc: Same.
3335         * testsuite/25_algorithms/unique/2.cc: Same.
3336         * testsuite/25_algorithms/unique/1.cc: Same.
3337         * testsuite/25_algorithms/rotate.cc: Same.
3338         * testsuite/25_algorithms/min_max.cc: Same.
3339         * testsuite/25_algorithms/equal.cc: Same.
3340         * testsuite/24_iterators/rel_ops.cc: Same.
3341         * testsuite/24_iterators/iterator.cc: Same.
3342         * testsuite/24_iterators/insert_iterator.cc: Same.
3343         * testsuite/24_iterators/front_insert_iterator.cc: Same.
3344         * testsuite/24_iterators/back_insert_iterator.cc: Same.
3345         * testsuite/23_containers/vector/resize/1.cc: Same.
3346         * testsuite/23_containers/vector/modifiers/2.cc: Same.
3347         * testsuite/23_containers/vector/modifiers/1.cc: Same.
3348         * testsuite/23_containers/vector/invalidation/4.cc: Same.
3349         * testsuite/23_containers/vector/invalidation/3.cc: Same.
3350         * testsuite/23_containers/vector/invalidation/2.cc: Same.
3351         * testsuite/23_containers/vector/invalidation/1.cc: Same.
3352         * testsuite/23_containers/vector/element_access/1.cc: Same.
3353         * testsuite/23_containers/vector/cons/6513.cc: Same.
3354         * testsuite/23_containers/vector/cons/3.cc: Same.
3355         * testsuite/23_containers/vector/cons/2.cc: Same.
3356         * testsuite/23_containers/vector/cons/1.cc: Same.
3357         * testsuite/23_containers/vector/capacity/8230.cc: Same.
3358         * testsuite/23_containers/vector/capacity/1.cc: Same.
3359         * testsuite/23_containers/vector/bool/6886.cc: Same.
3360         * testsuite/23_containers/stack/members/7158.cc: Same.
3361         * testsuite/23_containers/set/invalidation/2.cc: Same.
3362         * testsuite/23_containers/set/invalidation/1.cc: Same.
3363         * testsuite/23_containers/queue/members/7157.cc: Same.
3364         * testsuite/23_containers/priority_queue/members/7161.cc: Same.
3365         * testsuite/23_containers/multiset/invalidation/2.cc: Same.
3366         * testsuite/23_containers/multiset/invalidation/2.cc: Same.
3367         * testsuite/23_containers/multiset/insert/1.cc: Same.
3368         * testsuite/23_containers/multimap/invalidation/2.cc: Same.
3369         * testsuite/23_containers/multimap/invalidation/2.cc: Same.
3370         * testsuite/23_containers/map/operators/1.cc: Same.
3371         * testsuite/23_containers/map/invalidation/2.cc: Same.
3372         * testsuite/23_containers/map/invalidation/1.cc: Same.
3373         * testsuite/23_containers/map/insert/1.cc: Same.
3374         * testsuite/23_containers/list/operators/4.cc: Same.
3375         * testsuite/23_containers/list/operators/3.cc: Same.
3376         * testsuite/23_containers/list/operators/2.cc: Same.
3377         * testsuite/23_containers/list/operators/1.cc: Same.
3378         * testsuite/23_containers/list/modifiers/3.cc: Same.
3379         * testsuite/23_containers/list/modifiers/2.cc: Same.
3380         * testsuite/23_containers/list/modifiers/1.cc: Same.
3381         * testsuite/23_containers/list/invalidation/4.cc: Same.
3382         * testsuite/23_containers/list/invalidation/3.cc: Same.
3383         * testsuite/23_containers/list/invalidation/2.cc: Same.
3384         * testsuite/23_containers/list/invalidation/1.cc: Same.
3385         * testsuite/23_containers/list/cons/9.cc: Same.
3386         * testsuite/23_containers/list/cons/8.cc: Same.
3387         * testsuite/23_containers/list/cons/7.cc: Same.
3388         * testsuite/23_containers/list/cons/6.cc: Same.
3389         * testsuite/23_containers/list/cons/5.cc: Same.
3390         * testsuite/23_containers/list/cons/4.cc: Same.
3391         * testsuite/23_containers/list/cons/3.cc: Same.
3392         * testsuite/23_containers/list/cons/2.cc: Same.
3393         * testsuite/23_containers/list/cons/1.cc: Same.
3394         * testsuite/23_containers/list/capacity/1.cc: Same.
3395         * testsuite/23_containers/deque/operators/1.cc: Same.
3396         * testsuite/23_containers/deque/invalidation/4.cc: Same.
3397         * testsuite/23_containers/deque/invalidation/3.cc: Same.
3398         * testsuite/23_containers/deque/invalidation/2.cc: Same.
3399         * testsuite/23_containers/deque/invalidation/1.cc: Same.
3400         * testsuite/23_containers/deque/cons/2.cc: Same.
3401         * testsuite/23_containers/deque/cons/1.cc: Same.
3402
3403         * src/allocator.cc: Add char, wchar_t instantiations
3404         to match extern template declarations in memory.h.
3405
3406 2004-03-03  Paolo Carlini  <pcarlini@suse.de>
3407
3408         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
3409         Fix warning regression.
3410
3411 2004-03-03  Paolo Carlini  <pcarlini@suse.de>
3412
3413         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
3414         Deal properly with empty __digits and negative frac_digits,
3415         clean-up a bit.
3416
3417 2004-03-03  Jonathan Wakely  <redi@gcc.gnu.org>
3418
3419         * docs/html/documentation.html: Regenerate.
3420
3421 2004-03-02  Paolo Carlini  <pcarlini@suse.de>
3422
3423         PR libstdc++/14320
3424         * include/bits/postypes.h (class streamoff): Remove, now
3425         streamoff is just typedef a 64 bit signed integer type.
3426         (class fpos): Tweak consistently.
3427         * testsuite/27_io/fpos/14320-1.cc: New.
3428         * testsuite/27_io/fpos/14320-2.cc: New.
3429         * testsuite/27_io/fpos/14320-3.cc: New.
3430         * testsuite/27_io/fpos/14320-4.cc: New.
3431         * testsuite/27_io/fpos/14320-5.cc: New.
3432         * testsuite/27_io/fpos/mbstate_t/4_neg.cc: xfail for now.
3433
3434 2004-03-02  Paolo Carlini  <pcarlini@suse.de>
3435
3436         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
3437         Reorganize a bit the main parsing loop, thus early detecting
3438         an empty value component.
3439         * testsuite/22_locale/money_get/get/char/16.cc: New.
3440         * testsuite/22_locale/money_get/get/wchar_t/16.cc: New.
3441
3442 2004-03-02  Benjamin Kosnik  <bkoz@redhat.com>
3443
3444         Support automake 1.8.2
3445         * configure.ac (AM_INIT_AUTOMAKE): Add -Wno-override.
3446         * po/Makefile.am (EXTRA_DIST): New.
3447         * po/Makefile.in: Regenerate.
3448         * Makefile.in: Same.
3449         * include/Makefile.in: Same.
3450         * libmath/Makefile.in: Same.
3451         * libsupc++/Makefile.in: Same.
3452         * src/Makefile.in: Same.
3453         * testsuite/Makefile.in: Same.
3454
3455         * include/Makefile.am (${host_builddir}/gthr-posix.h): Use
3456         __GXX_WEAK__ instead of SUPPORTS_WEAK.
3457         (${host_builddir}/gthr-default.h): Same.
3458         (${host_builddir}/gthr.h): Same.
3459         * acinclude.m4 (GLIBCXX_ENABLE_THREAD): Remove
3460         _GLIBCXX_SUPPORTS_WEAK, as this behavior can be modified via
3461         -fno-weak.
3462         * aclocal.m4: Regenerate.
3463         * acconfig.h: Remove _GLIBCXX_SUPPORTS_WEAK.
3464         * config.h.in: Regenerate.
3465         * configure: Same.
3466
3467 2004-03-01  Benjamin Kosnik  <bkoz@redhat.com>
3468
3469         Support autoconf 2.59
3470         * acinclude.m4: Quote correctly.
3471         * aclocal.m4: Regenerate.
3472         * linkage.m4: Same.
3473
3474 2004-03-01  Benjamin Kosnik  <bkoz@redhat.com>
3475
3476         * docs/html/test.html: Add multilib RUNTESTFLAGS example.
3477
3478         * docs/html/18_support/howto.html: Add bit about writing to
3479         stderr, mostly by Zack.
3480
3481 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
3482
3483         * include/bits/locale_facets.tcc (money_get<>::_M_extract,
3484         money_get<>::do_get(string_type&)): ... and two more.
3485
3486 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
3487
3488         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
3489         Fix thinkos in the switch from string_type& to string& as last
3490         argument.
3491
3492 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
3493
3494         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float):
3495         Also when parsing exponent sign, first look for thousands_sep
3496         and decimal_point; tweak a bit.
3497         * testsuite/22_locale/num_get/get/char/15.cc: New.
3498         * testsuite/22_locale/num_get/get/wchar_t/15.cc: New.
3499
3500         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
3501         num_get<>::_M_extract_int): Reorder some conditionals.
3502
3503 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
3504
3505         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
3506         Consistently with numpunct, enforce the requirements in
3507         22.2.6.3, p3 for the thousands separators; tweak a bit.
3508         * testsuite/22_locale/money_get/get/char/15.cc: New.
3509         * testsuite/22_locale/money_get/get/wchar_t/15.cc: New.
3510
3511 2004-03-01  David Billinghurst <David.Billinghurst@riotinto.com>
3512
3513         * testsuite/lib/libstdc++.exp (v3-list-tests): Use
3514         testsuite_files from correct multilib blddir when running
3515         testsuite.
3516
3517 2004-02-29  Phil Edwards  <phil@codesourcery.com>
3518
3519         * testsuite/Makefile.am (check-abi, check-abi-verbose):  Copy
3520         the summary file to the logfile.
3521         * testsuite/Makefile.in:  Regenerate.
3522
3523 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3524
3525         * config/cpu/hppa/atomicity.h (__atomic_add): Make first argument
3526         volatile.
3527         * config/os/hpux/os_defines.h (_GLIBCXX_INST_ATOMICITY_LOCK): Use
3528         __GXX_WEAK__ instead of _GLIBCXX_SUPPORTS_WEAK.
3529
3530 2004-02-28  Paolo Carlini  <pcarlini@suse.de>
3531
3532         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float):
3533         According to 22.2.3.1, p2, 'units' may be followed by 'e' with
3534         no 'decimal-point' in the middle: in this case too we must fix
3535         up __found_grouping; slightly tweak.
3536         * testsuite/22_locale/num_get/get/char/14.cc: New.
3537         * testsuite/22_locale/num_get/get/wchar_t/14.cc: New.
3538
3539 2004-02-27  Eric Christopher  <echristo@redhat.com>
3540             Phil Edwards  <phil@codesourcery.com>
3541
3542         * testsuite/22_locale/collate/compare/wchar_t/2.cc,
3543         testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc,
3544         testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc,
3545         testsuite/22_locale/collate/hash/wchar_t/2.cc,
3546         testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc,
3547         testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc,
3548         testsuite/22_locale/collate/transform/wchar_t/2.cc,
3549         testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc,
3550         testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc:
3551         Use dg-require-iconv.
3552         * testsuite/lib/libstdc++.exp:  Load target-supports.exp.
3553
3554 2004-02-27  Phil Edwards  <phil@codesourcery.com>
3555             Eric Christopher  <echristo@redhat.com>
3556
3557         * testsuite/config/default.exp:  Update with comments.
3558         (${tool}_target_compile):  New wrapper routine.
3559         * testsuite/lib/dg-options.exp:  New file, with dg-require-iconv.
3560         * testsuite/lib/libstdc++.exp:  Update with comments and cosmetic
3561         fixes.
3562         (load_gcc_lib, v3track):  New routines.
3563         (v3-init):  Rename to libstdc++_init.
3564         * testsuite/libstdc++-dg/normal.exp:  No longer call v3-init.
3565         Move DEFAULT_CXXFLAGS handling into libstdc++_init.
3566
3567 2004-02-27  Benjamin Kosnik  <bkoz@redhat.com>
3568
3569         * config/cpu/hppa/atomicity.h: Include c++config.h to get defines.
3570
3571         * src/misc-inst.cc (_S_atomicity_lock): Move to __gnu_cxx.
3572
3573         * config/os/irix/irix5.2/atomicity.h: Merge..
3574         * config/os/irix/irix6.5/atomicity.h: Merge..
3575         * config/os/irix/atomicity.h: ...into this.
3576         * config/os/irix/atomic_word.h: New.
3577         * configure.host: Set atomic_word_dir for irix.
3578
3579         * hppa/atomicity.h: Change __Atomicity_lock to _Atomicity_lock.
3580         * i386/atomicity.h: Same.
3581         * m68k/atomicity.h: Same.
3582         * sparc/atomicity.h: Same.
3583
3584 2004-02-27  David Edelsohn  <edelsohn@gnu.org>
3585
3586         * config/os/aix/atomicity.h: Use __gnu_cxx namespace. Remove
3587         static, and inline keywords.
3588
3589 2004-02-27  Paolo Carlini  <pcarlini@suse.de>
3590
3591         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
3592         num_get<>::_M_extract_int, money_get<>::_M_extract): If appropriate,
3593         call reserve on the __tmp_gruping string.
3594         (num_get<>::_M_extract_float): Don't append unnecessarily a
3595         char() to the returned string.
3596         * include/bits/locale_facets.tcc: Trivial reformattings.
3597
3598 2004-02-27  Paolo Carlini  <pcarlini@suse.de>
3599
3600         * include/bits/locale_facets.h (money_get<>::_M_extract):
3601         Change signature: now takes a plain string&.
3602         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
3603         Update consistently the definition; use the moneypunct cache
3604         to parse the value; use swap to change __units.
3605         (money_get<>::do_get(long double&)): Update call of _M_extract,
3606         avoid ctype::narrow, not correct wrt the standard.
3607         (money_get<>::do_get(string_type&)): Likewise, update call
3608         of _M_extract, use ctype::widen.
3609         * src/locale-inst.cc: Tweak instantiations of _M_extract.
3610
3611 2004-02-26  Ian Lance Taylor  <ian@wasabisystems.com>
3612
3613         * testsuite/demangle/abi_examples/01.cc: Expect error -2.
3614         * testsuite/demangle/abi_examples/02.cc: Likewise.
3615         * testsuite/demangle/regression/cw-11.cc: Likewise.
3616         * testsuite/demangle/regression/cw-16.cc: Change two expected
3617         results to match libiberty demangler output.
3618
3619 2004-02-26  Benjamin Kosnik  <bkoz@redhat.com>
3620
3621         PR libstdc++/10246
3622         * libsupc++/Makefile.am: Use libiberty demangler.
3623         (c_sources): Add cp-demangle.c.
3624         * libsupc++/Makefile.in: Regenerate.
3625         * src/Makefile.am (sources): Remove demangle.cc.
3626         * src/Makefile.in: Regenerate.
3627         * include/Makefile.am (bits_headers): Move demangle.h.
3628         (ext_headers): ...here.
3629         * include/Makefile.in: Regenerate.
3630         * include/bits/demangle.h: Move...
3631         * include/ext/demangle.h: ...here.
3632         * src/demangle.cc: Remove.
3633
3634 2004-02-26  Benjamin Kosnik  <bkoz@redhat.com>
3635
3636         * include/bits/demangle.h: Add type template parameter to all
3637         templates with just an Allocator template parameter.
3638
3639 2004-02-25  Benjamin Kosnik  <bkoz@redhat.com>
3640
3641         * include/bits/atomicity.h: New, forward declarations for __atomic_add
3642         and __exchange_and_add.
3643         * config/cpu/generic/atomic_word.h: New, typdef for atomic word.
3644         * config/cpu/cris/atomic_word.h: Same.
3645         * config/cpu/sparc/atomic_word.h: Same.
3646         * include/bits/ios_base.h (_Callback_list::_M_remove_reference):
3647         Qualifiy with __gnu_cxx.
3648         (_Callback_list::_M_add_reference): Same.
3649         * include/bits/locale_classes.h (locale::facet::_M_add_reference): Add.
3650         (locale::facet::_M_remove_reference): Same.
3651         (locale::_Impl::_M_add_reference): Add.
3652         (locale::_Impl::_M_remove_reference): Same.
3653         * include/bits/basic_string.h (basic_string::_Rep::_M_refcopy): Same.
3654         (basic_string::_Rep::_M_dispose): Same.
3655         * src/ios.cc (ios_base::xalloc): Same.
3656         * src/ios_init.cc (ios_base::Init::Init): Same.
3657         (ios_base::Init::~Init): Same.
3658         * src/locale.cc (locale::id::_M_id): Same.
3659         * config/cpu/i486/atomicity.h: Use __gnu_cxx namespace. Remove
3660         static, and inline keywords.
3661         * config/cpu/alpha/atomicity.h: Same.
3662         * config/cpu/cris/atomicity.h: Same.
3663         * config/cpu/generic/atomicity.h: Same.
3664         * config/cpu/hppa/atomicity.h: Same.
3665         * config/cpu/i386/atomicity.h: Same.
3666         * config/cpu/ia64/atomicity.h: Same.
3667         * config/cpu/m68k/atomicity.h: Same.
3668         * config/cpu/mips/atomicity.h: Same.
3669         * config/cpu/powerpc/atomicity.h: Same.
3670         * config/cpu/s390/atomicity.h: Same.
3671         * config/cpu/sparc/atomicity.h: Same.
3672
3673         * src/Makefile.am (host_sources): Add atomicity.cc.
3674         (atomicity.cc): New rule.
3675         * src/Makefile.in: Regenerate.
3676         * include/Makefile.am (host_headers): Remove host atomicity.h.
3677         (host_headers): Add atomic_word.h.
3678         (bits_headers): Add bits atomicity.h.
3679         Change ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR.
3680         * include/Makefile.in: Regenerate.
3681         * configure.host (atomic_word_dir): Add.
3682         * configure.ac: Substitute ATOMIC_WORD_SRCDIR. Change
3683         ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR.
3684         * configure: Regenerate.
3685         * config/linker-map.gnu: Export __exchange_and_add, and __atomic_add.
3686
3687         * testsuite/27_io/ios_base/cons/assign_neg.cc: Adjust line numbers.
3688         * testsuite/27_io/ios_base/cons/copy_neg.cc: Same.
3689
3690 2004-02-25  Jonathan Wakely  <redi@gcc.gnu.org>
3691
3692         * docs/html/20_util/howto.html, docs/html/20_util/allocator.html,
3693         docs/html/ext/howto.html, docs/html/ext/mt_allocator.html:
3694         Fix markup, more <link> tags.
3695
3696 2004-02-25  Carlo Wood  <carlo@alinoe.com>
3697
3698         * bits/demangle.h
3699         namespace __gnu_cxx::demangler
3700         (session<Allocator>::qualifier_list_Allocator): Add
3701         (session<Allocator>::M_qualifier_list_alloc): Add
3702         (session<Allocator>::decode_type_with_postfix):
3703         Use M_qualifier_list_alloc instead of calling operator new/delete.
3704
3705 2004-02-24  Paolo Carlini  <pcarlini@suse.de>
3706
3707         PR libstdc++/14252
3708         * include/bits/postypes.h (class streamoff): Add operator++(),
3709         operator++(int), operator--() and operator--(int).
3710         * testsuite/27_io/fpos/14252.cc: New.
3711
3712 2004-02-24  Richard Sandiford  <rsandifo@redhat.com>
3713
3714         * include/bits/locale_facets.tcc (num_get::_M_extract_int): Fix bounds
3715         error in handling of hex constants.
3716
3717 2004-02-24  Paolo Carlini  <pcarlini@suse.de>
3718
3719         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
3720         Prefer basic_string::append to operator+= and a temporary.
3721
3722 2004-02-23  Benjamin Kosnik  <bkoz@redhat.com>
3723
3724         * libsupc++/vterminate.cc (__gnu_cxx::__verbose_terminate_handler):
3725         Only use fputs, not write.
3726
3727 2004-02-23  Benjamin Kosnik  <bkoz@redhat.com>
3728
3729         * include/ext/malloc_allocator.h: Add operators ==, !=.
3730         * include/ext/new_allocator.h: Add operators ==, !=.
3731         * include/ext/mt_allocator.h (__mt_alloc::tune): New.
3732         (__mt_alloc::_S_get_options): New.
3733         (__mt_alloc::_S_set_options): New.
3734         (__mt_alloc::_S_thread_key_destr): To _S_destroy_thread_key.
3735         (__mt_alloc::_S_no_of_bins): To _S_bin_size.
3736         Move functions out of line, simplify, format.
3737         * src/allocator.cc: Simplify explicit instantiations.
3738         * include/bits/allocator.h: Tweak.
3739
3740 2004-02-22  Paolo Carlini  <pcarlini@suse.de>
3741
3742         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
3743         Restructure formatting of value component, first dealing with
3744         the non-decimal digits; use reserve.
3745
3746 2004-02-22  Paolo Carlini  <pcarlini@suse.de>
3747
3748         * include/bits/locale_facets.h (class money_get): Inherit
3749         from money_base too; tweak declaration of _M_extract, now
3750         parameterized on _Intl too.
3751         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
3752         Update definition to use the cache; call reserve on __res to
3753         avoid multiple reallocations; fix parsing of sign component
3754         according to 22.2.6.1.2, p3.
3755         (money_get<>::do_get(long double&),
3756         money_get<>::do_get(string_type&)): Update calls of _M_extract.
3757         * src/locale-inst.cc:  Add instantiations of
3758         money_get::_M_extract<false> and money_get::_M_extract<true>.
3759         * testsuite/22_locale/money_get/get/char/14.cc: New.
3760         * testsuite/22_locale/money_get/get/wchar_t/14.cc: Ditto.
3761
3762 2004-02-21  Mark Mitchell  <mark@codesourcery.com>
3763
3764         * libsupc++/vterminate.cc
3765         (__gnu_cxx::__verbose_terminate_handler): Guard against recursive
3766         calls to terminate.
3767         * src/demangle.cc (__cxa_demangle): Wrap in try-catch block.
3768
3769         * testsuite/testsuite_hooks.cc (__gnu_test::set_memory_limits): Do
3770         not set RLIMIT_AS on HP-UX.
3771
3772 2004-02-21  Mark Mitchell  <mark@codesourcery.com>
3773
3774         * testsuite/testsuite_hooks.cc (__gnu_test::set_memory_limits): Do
3775         not set RLIMIT_AS on HP-UX.
3776
3777 2004-02-21  Paolo Carlini  <pcarlini@suse.de>
3778
3779         * include/bits/locale_facets.h (class money_base): Add { _S_minus,
3780         _S_zero, _S_end } enum, _S_atoms.
3781         (struct __moneypunct_cache<>): Parameterize on _Intl too; add
3782         _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size,
3783         _M_negative_sign_size, _M_atoms; tweak constructor consistently.
3784         (__moneypunct_cache<>::~__moneypunct_cache): Update.
3785         (__moneypunct_cache<>::_M_cache): Fill the cache.
3786         (class moneypunct): Tweak __cache_type typedef.
3787         (class money_put): Inherit from money_base too; tweak declaration
3788         of _M_insert, now parameterized on _Intl.
3789         * include/bits/locale_facets.tcc
3790         (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New.
3791         (money_put<>::_M_insert): Update definition to use the cache;
3792         call reserve on __res to avoid multiple reallocations.
3793         (money_put<>::do_put(long double),
3794         money_put<>::do_put(const string_type&): Update calls of _M_insert.
3795         * config/locale/generic/monetary_members.cc
3796         (moneypunct<char, true>::_M_initialize_moneypunct,
3797         moneypunct<char, false>::_M_initialize_moneypunct,
3798         moneypunct<wchar_t, true>::_M_initialize_moneypunct,
3799         moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update.
3800         * config/locale/gnu/monetary_members.cc: Likewise.
3801         * config/locale/gnu/monetary_members.cc
3802         (moneypunct<wchar_t, true>::~moneypunct(),
3803         moneypunct<wchar_t, false>::~moneypunct()): Likewise.
3804         * src/globals_locale.cc: Tweak fake_money_cache_c.
3805         * src/locale-inst.cc: Add instantiations for
3806         money_put::_M_insert<false> and money_put::_M_insert<true> and
3807         __moneypunct_cache<C, false>, __moneypunct_cache<C, true>.
3808         * src/locale_facets.cc: Define money_base::_S_atoms.
3809         * src/locale_init.cc: Update placement new of
3810         __moneypunct_cache<char, false>, __moneypunct_cache<char, true>,
3811         __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>.
3812
3813         * config/locale/generic/numeric_members.cc: Clean up.
3814         * config/locale/gnu/numeric_members.cc: Likewise.
3815         * testsuite/22_locale/money_put/put/char/1.cc: Likewise.
3816         * testsuite/22_locale/money_put/put/char/2.cc: Likewise.
3817         * testsuite/22_locale/money_put/put/char/3.cc: Likewise.
3818         * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise.
3819         * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise.
3820         * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise.
3821
3822 2004-02-20  Mark Mitchell  <mark@codesourcery.com>
3823
3824         * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc: Open
3825         FIFO for writing with ios_base::in|ios_base::out.
3826         * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise.
3827         * testsuite/27_io/objects/char/7.cc: Likewise.
3828         * testsuite/27_io/objects/char/9661-1.cc: Open FIFO for writing
3829         with "r+".
3830
3831 2004-02-19  David Edelsohn  <edelsohn@gnu.org>
3832
3833         * 22_locale/collate/compare/wchar_t/2.cc: Change input-charset
3834         from iso-8859-1 to ISO8859-1.
3835         * 22_locale/collate/compare/wchar_t/wrapped_env.cc: Same.
3836         * 22_locale/collate/compare/wchar_t/wrapped_locale.cc: Same.
3837         * 22_locale/collate/hash/wchar_t/2.cc: Same.
3838         * 22_locale/collate/hash/wchar_t/wrapped_env.cc: Same.
3839         * 22_locale/collate/hash/wchar_t/wrapped_locale.cc: Same.
3840         * 22_locale/collate/transform/wchar_t/2.cc: Same.
3841         * 22_locale/collate/transform/wchar_t/wrapped_env.cc: Same.
3842         * 22_locale/collate/transform/wchar_t/wrapped_locale.cc: Same.
3843
3844 2004-02-18  Paolo Carlini  <pcarlini@suse.de>
3845
3846         * include/bits/locale_facets.h (money_get<>::_M_extract):
3847         New, helper for do_get.
3848         (money_put<>::_M_insert): Likewise, for do_put.
3849         * include/bits/locale_facets.tcc (money_get<>::_M_extract,
3850         money_put<>::_M_insert): Define.
3851         (money_get<>::do_get(long double&), money_get<>::do_get(
3852         string_type&), money_put::do_put(long double),
3853         money_put::do_put(const string_type&)): Use the helpers.
3854
3855 2004-02-18  Paolo Carlini  <pcarlini@suse.de>
3856
3857         * config/io/basic_file_stdio.cc (__gnu_internal::xwritev):
3858         Rewrite, avoiding recursion.
3859         (__gnu_internal::xwrite): Minor tweaks.
3860
3861 2004-02-17  Stefan Olsson  <stefan@xapa.se>
3862
3863         * include/ext/mt_allocator.h: Removed the last
3864         pointer. Deallocated blocks are now added to the front of
3865         freelists as proposed by Felix Yen.  This gives roughly 10%
3866         performance boost and saves some memory.
3867         * docs/html/ext/mt_allocator.html: Change due to that deallocated
3868         blocks now are added to the front of freelists. The reason to this
3869         approach is also explained.
3870
3871 2004-02-17  Paolo Carlini  <pcarlini@suse.de>
3872
3873         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
3874         num_get<>::_M_extract_int, money_get<>::do_get): Simplify
3875         grouping fidelity conditional.
3876
3877 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
3878
3879         * testsuite/27_io/basic_filebuf/overflow/char/13858.cc:
3880         Qualify exception with std::.
3881         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Ditto.
3882         * testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc: Ditto.
3883         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
3884         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
3885         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
3886
3887 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
3888
3889         * testsuite/ext/enc_filebuf/char/13189.cc: Don't check
3890         for now that the catch block is not reached.
3891         * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Likewise.
3892
3893 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
3894
3895         * include/bits/locale_facets.tcc (money_get::do_get(string_type&)):
3896         Fix parsing of the remaining sign characters.
3897         * 22_locale/money_get/get/char/2.cc: Tweak: now, correctly,
3898         the input is scanned 'til eof.
3899         * 22_locale/money_get/get/char/4.cc: Likewise.
3900         * 22_locale/money_get/get/wchar_t/2.cc: Likewise.
3901         * 22_locale/money_get/get/wchar_t/4.cc: Likewise.
3902         * 22_locale/money_get/get/char/8.cc: Tweak: override do_neg_format,
3903         not do_pos_format: the former is the only one that matters during
3904         input.
3905         * 22_locale/money_get/get/wchar_t/8.cc: Likewise.
3906
3907         * 22_locale/money_get/get/char/6.cc: Minor tweak.
3908         * 22_locale/money_get/get/wchar_t/6.cc: Likewise.
3909
3910 2004-02-15  David Asher  <david.asher@cavium.com>
3911
3912         PR libstdc++/11352
3913         * include/bits/locale_facets.tcc (__pad<>::_S_pad): Don't
3914         access __olds beyond __oldlen.
3915
3916 2004-02-14  Paolo Carlini  <pcarlini@suse.de>
3917
3918         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Make
3919         sure the exception is actually thrown.
3920         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
3921         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
3922         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
3923
3924 2004-02-14  Paolo Carlini  <pcarlini@suse.de>
3925
3926         PR libstdc++/13858
3927         * include/bits/fstream.tcc (basic_filebuf<>::_M_convert_to_external):
3928         In case of conversion errors, throw ios_failure; simplify.
3929         * testsuite/27_io/basic_filebuf/overflow/char/13858.cc: New.
3930         * testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc: Ditto.
3931         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Tweak,
3932         previously we didn't throw in case of conversion errors, instead
3933         just returned eof().
3934         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
3935         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
3936         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
3937
3938         * include/bits/fstream.tcc (basic_filebuf<>::overflow):
3939         Trivial simplification of a conditional.
3940
3941 2004-02-12  Paolo Carlini  <pcarlini@suse.de>
3942
3943         PR libstdc++/13731 (final part: writev)
3944         * config/io/basic_file_stdio.cc (__gnu_internal::xwritev):
3945         New, a wrapper around writev() handling partial writes.
3946         (__basic_file<char>::xwrite): Move to __gnu_internal and make
3947         static.
3948         (__basic_file<char>::xsputn): Update call.
3949         (__basic_file<char>::xsputn_2): Likewise.
3950         * config/io/basic_file_stdio.h (__basic_file<char>::xwrite):
3951         Don't declare, now static.
3952
3953 2004-02-11  Stefan Olsson  <stefan@xapa.se>
3954
3955         * docs/html/ext/mt_allocator.html: New.
3956
3957 2004-02-11  Benjamin Kosnik  <bkoz@redhat.com>
3958
3959         * docs/html/20_util/allocator.html: New file, consolidate
3960         allocator information here. Revamp.
3961         * docs/html/documentation.html: Change links.
3962         * docs/html/20_util/howto.html: Same.
3963         * docs/html/ext/howto.html: Same.
3964
3965 2004-02-11  Paolo Carlini  <pcarlini@suse.de>
3966
3967         PR libstdc++/13731 (first part: write)
3968         * config/io/basic_file_stdio.h (__basic_file<char>::xwrite):
3969         New, declare.
3970         * config/io/basic_file_stdio.cc (__basic_file<char>::xwrite):
3971         Define it: a wrapper around write() handling partial write.
3972         (__basic_file<char>::xsputn): Use it.
3973         (__basic_file<char>::xsputn_2): Likewise.
3974
3975 2004-02-11  Paolo Carlini  <pcarlini@suse.de>
3976             Petur Runolfsson  <peturr02@ru.is>
3977
3978         PR libstdc++/14078
3979         * include/std/std_istream.h (operator>>(__istream_type& (*)
3980         (__istream_type&)), operator>>(__ios_type& (*)(__ios_type&)),
3981         operator>>(ios_base& (*)(ios_base&))): Declare inline.
3982         * include/std/std_ostream.h (operator<<(__ostream_type& (*)
3983         (__ostream_type&)), operator<<(__ios_type& (*)(__ios_type&)),
3984         operator<<(ios_base& (*) (ios_base&))): Likewise.
3985         * testsuite/performance/27_io/fmtflags_manipulators.cc: New.
3986
3987 2004-02-10  Loren J. Rittle  <ljrittle@acm.org>
3988
3989         PR libstdc++/14098
3990         * config/linker-map.gnu: Add typeinfo and typeinfo name for
3991         __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> >.
3992
3993         PR libstdc++/14097
3994         * config/linker-map.gnu: Add typeinfo and typeinfo name for
3995         __gnu_cxx::stdio_filebuf<char, std::char_traits<char> >.
3996
3997 2004-02-09  Loren J. Rittle  <ljrittle@acm.org>
3998
3999         * include/ext/pool_allocator.h: Include c++config.h.
4000
4001 2004-02-09  Stefan Olsson  <stefan@xapa.se>
4002
4003         * include/ext/mt_allocator.h: thread_id is unused in non threaded
4004         applications and now has a ifdef to remove it completely on
4005         compilers without thread support. Include stdlib.h due to a
4006         compiler warning on getenv().
4007
4008 2004-02-09  Paul Brook  <paul@codesourcery.com>
4009
4010         * libstdc++-v3/configure.host: Explicitly check for atomicity.h file.
4011
4012 2004-02-09  Paolo Carlini  <pcarlini@suse.de>
4013
4014         PR libstdc++/14071
4015         * src/locale_init.cc (locale::global(const locale&)): Use
4016         locale::name() in order to decide whether calling setlocale.
4017         * testsuite/22_locale/locale/global_locale_objects/14071.cc: New.
4018
4019         * include/bits/locale_classes.h (locale::_Impl::_M_check_same_name()):
4020         Avoid computing &= unnecessarily.
4021
4022 2004-02-09  James E Wilson  <wilson@specifixinc.com>
4023
4024         PR libstdc++/5625
4025         * libsuspc++/eh_personality.cc (PERSONALITY_FUNCTION): Use
4026         __builtin_extend_pointer.
4027
4028 2004-02-09  Paolo Carlini  <pcarlini@suse.de>
4029
4030         PR libstdc++/14072
4031         * include/bits/basic_ios.tcc (basic_ios<>::_M_cache_locale):
4032         Don't leave dangling pointers.
4033         * testsuite/27_io/basic_ios/imbue/14072.cc: New.
4034         * testsuite/22_locale/numpunct/members/pod/2.cc: Tweak, the num_put
4035         facet is needed in the final test.
4036
4037 2004-02-09  Bernardo Innocenti  <bernie@develer.com>
4038
4039         * crossconfig.m4: Don't enable _GLIBCXX_USE_LFS on *-uclinux*.
4040         * configure: Regenerate.
4041
4042 2004-02-08  Richard Henderson  <rth@redhat.com>
4043
4044         PR libstdc++/14026
4045         * libsupc++/eh_catch.cc (__cxa_begin_catch): Don't adjust
4046         uncaughtExceptions during nested catch rethrow.
4047         * testsuite/18_support/14026.cc: New.
4048
4049 2004-02-08  Paolo Carlini  <pcarlini@suse.de>
4050
4051         * include/bits/basic_string.tcc (assign(const _CharT*, size_type)):
4052         When working in place remember to set the state to sharable
4053         (otherwise, _M_mutate does it).
4054
4055 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
4056
4057         * include/bits/allocator.h, include/bits/basic_ios.h,
4058         include/bits/basic_ios.tcc, include/bits/basic_string.h,
4059         include/bits/basic_string.tcc, include/bits/boost_concept_check.h,
4060         include/bits/char_traits.h, include/bits/codecvt.h,
4061         include/bits/concurrence.h, include/bits/cpp_type_traits.h,
4062         include/bits/demangle.h, include/bits/deque.tcc,
4063         include/bits/fstream.tcc, include/bits/functexcept.h,
4064         include/bits/gslice.h, include/bits/gslice_array.h,
4065         include/bits/indirect_array.h, include/bits/ios_base.h,
4066         include/bits/istream.tcc, include/bits/list.tcc,
4067         include/bits/locale_classes.h, include/bits/locale_facets.h,
4068         include/bits/locale_facets.tcc, include/bits/localefwd.h,
4069         include/bits/mask_array.h, include/bits/ostream.tcc,
4070         include/bits/postypes.h, include/bits/slice_array.h,
4071         include/bits/sstream.tcc, include/bits/stl_algo.h,
4072         include/bits/stl_algobase.h, include/bits/stl_bvector.h,
4073         include/bits/stl_construct.h, include/bits/stl_deque.h,
4074         include/bits/stl_function.h, include/bits/stl_heap.h,
4075         include/bits/stl_iterator.h, include/bits/stl_iterator_base_funcs.h,
4076         include/bits/stl_list.h, include/bits/stl_map.h,
4077         include/bits/stl_multimap.h, include/bits/stl_multiset.h,
4078         include/bits/stl_numeric.h, include/bits/stl_pair.h,
4079         include/bits/stl_queue.h, include/bits/stl_raw_storage_iter.h,
4080         include/bits/stl_relops.h, include/bits/stl_set.h,
4081         include/bits/stl_stack.h, include/bits/stl_tempbuf.h,
4082         include/bits/stl_threads.h, include/bits/stl_tree.h,
4083         include/bits/stl_uninitialized.h, include/bits/stl_vector.h,
4084         include/bits/stream_iterator.h, include/bits/streambuf.tcc,
4085         include/bits/streambuf_iterator.h,include/bits/stringfwd.h,
4086         include/bits/type_traits.h, include/bits/valarray_after.h,
4087         include/bits/valarray_array.h, include/bits/valarray_array.tcc,
4088         include/bits/valarray_before.h, include/bits/vector.tcc: Remove
4089         trailing whitespace.
4090
4091 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
4092
4093         * include/bits/basic_string.h: Fix comment.
4094
4095 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
4096
4097         * include/bits/stl_construct.h: Wrap overlong lines, reformat
4098         according to the coding standards.
4099         * include/bits/stl_pair.h: Likewise.
4100         * include/bits/stl_raw_storage_iter.h: Likewise.
4101         * include/bits/stl_stack.h: Likewise.
4102         * include/bits/stl_uninitialized.h: Likewise.
4103         * include/bits/stream_iterator.h: Likewise.
4104         * include/bits/streambuf_iterator.h: Likewise.
4105         * include/bits/type_traits.h: Likewise.
4106
4107 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
4108
4109         * testsuite/27_io/basic_filebuf/open/char/9507.cc:
4110         Adjust timings.
4111
4112 2004-02-05  Loren J. Rittle  <ljrittle@acm.org>
4113
4114         * scripts/check_performance: Support PCH.
4115
4116         * scripts/check_performance (CXX): Add -DNOTHREAD.
4117         * testsuite/performance/20_util/allocator/insert.cc: Integrate
4118         threaded tests from insert_insert.cc.  Tweak iterations,
4119         remove special cases.
4120         * testsuite/performance/20_util/allocator/insert_insert.cc:
4121         Make all tests single-threaded. Tweak iterations.
4122         * testsuite/performance/20_util/allocator/map_thread.cc:
4123         Tweak iterations.
4124         * testsuite/performance/20_util/allocator/producer_consumer.cc:
4125         Likewise.
4126
4127 2004-02-05  Geoffrey Keating  <geoffk@apple.com>
4128
4129         PR 12179
4130         * .cvsignore: New.
4131         * acinclude.m4 (GLIBCXX_EXPORT_INSTALL_INFO): Use 'gcc', not
4132         'gcc-lib'.  Add comment about poorly-named variables.
4133         * aclocal.m4: Regenerate.
4134         * configure: Regenerate.
4135
4136 2004-02-05  Paolo Carlini  <pcarlini@suse.de>
4137
4138         * include/bits/locale_facets.tcc (money_get::do_get(string_type&)):
4139         Thousands-sep are always optional; thousands-sep are not allowed
4140         after the decimal_point.
4141         * testsuite/22_locale/money_get/get/char/12.cc: New.
4142         * testsuite/22_locale/money_get/get/char/13.cc: New.
4143         * testsuite/22_locale/money_get/get/wchar_t/12.cc: New.
4144         * testsuite/22_locale/money_get/get/wchar_t/13.cc: New.
4145
4146         * testsuite/22_locale/money_get/get/char/1.cc: Clean-up.
4147         * testsuite/22_locale/money_get/get/char/2.cc: Likewise.
4148         * testsuite/22_locale/money_get/get/char/3.cc: Likewise.
4149         * testsuite/22_locale/money_get/get/char/4.cc: Likewise.
4150         * testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise.
4151         * testsuite/22_locale/money_get/get/wchar_t/2.cc: Likewise.
4152         * testsuite/22_locale/money_get/get/wchar_t/3.cc: Likewise.
4153         * testsuite/22_locale/money_get/get/wchar_t/4.cc: Likewise.
4154
4155         * testsuite/22_locale/money_get/get/char/9.cc: Fix citation from
4156         the standard.
4157         * testsuite/22_locale/money_get/get/wchar_t/9.cc: Likewise.
4158
4159 2004-02-05  Richard Sandiford  <rsandifo@redhat.com>
4160
4161         * config/os/irix/irix6.5/os_defines.h (_GLIBCXX_FIONREAD_TAKES_OFF_T):
4162         Define.
4163         * config/io/basic_file_stdio.cc (__basic_file<char>::showmanyc): Use
4164         it to decide whether FIONREAD should take an off_t or int argument.
4165
4166 2004-02-05  Paolo Carlini  <pcarlini@suse.de>
4167
4168         * include/bits/stl_function.h: Minor formatting changes.
4169
4170 2004-02-04  Zack Weinberg  <zack@codesourcery.com>
4171
4172         Revert previous change to config/abi/*/baseline_symbols.txt.
4173
4174 2004-02-04  Benjamin Kosnik  <bkoz@redhat.com>
4175             Zack Weinberg  <zack@codesourcery.com>
4176
4177         * config/io/basic_file_stdio.cc (__gnu_internal::fopen_mode):
4178         New function.
4179         (__basic_file<char>::sys_open, __basic_file<char>::open): Use it.
4180         (__basic_file<char>::_M_open_mode): Delete.
4181         * config/io/basic_file_stdio.cc: Delete declaration of _M_open_mode.
4182
4183         * testsuite/27_io/basic_filebuf/close/char/9964.cc
4184         * testsuite/27_io/basic_filebuf/open/char/9507.cc:
4185         Correct flags to filebuf::open calls.
4186
4187         * config/abi/alpha-freebsd5/baseline_symbols.txt
4188         * config/abi/alpha-linux-gnu/baseline_symbols.txt
4189         * config/abi/hppa-linux-gnu/baseline_symbols.txt
4190         * config/abi/i386-freebsd4/baseline_symbols.txt
4191         * config/abi/i386-freebsd5/baseline_symbols.txt
4192         * config/abi/i486-linux-gnu/baseline_symbols.txt
4193         * config/abi/ia64-linux-gnu/baseline_symbols.txt
4194         * config/abi/mips-linux-gnu/baseline_symbols.txt
4195         * config/abi/sparc-freebsd5/baseline_symbols.txt
4196         * config/abi/sparc-linux-gnu/baseline_symbols.txt
4197         * config/abi/x86_64-linux-gnu/baseline_symbols.txt:
4198         Remove entry for __basic_file<char>::_M_open_mode.
4199
4200 2004-02-04  Loren J. Rittle  <ljrittle@acm.org>
4201
4202         * testsuite/performance/20_util/allocator/insert.cc (main): Tweak.
4203
4204 2004-02-04  Felix Yen  <fwy@alumni.brown.edu>
4205
4206         * testsuite/performance/20_util/producer_consumer.cc: New.
4207         * testsuite/performance/20_util/allocator/insert_insert.cc: Two loops.
4208
4209 2004-02-04  Benjamin Kosnik  <bkoz@redhat.com>
4210
4211         * testsuite/performance/20_util/allocator.cc: Move to..
4212         * testsuite/performance/20_util/allocator/insert.cc: ...here.
4213         * testsuite/performance/20_util/allocator_thread.cc: Move to...
4214         * testsuite/performance/20_util/allocator/insert_insert.cc: ...here.
4215         * testsuite/performance/20_util/allocator_map_thread.cc: Move to...
4216         * testsuite/performance/20_util/allocator/map_thread.cc: ...here.
4217
4218 2004-02-04  Jonathan Wakely  <redi@gcc.gnu.org>
4219
4220         * docs/html/faq/index.html: Recommend using LD_LIBRARY_PATH.
4221         * docs/html/faq/index.txt: Regenerate.
4222
4223 2004-02-04  Dhruv Matani  <dhruvbird@gmx.net>
4224
4225         * include/ext/debug_allocator.h: _M_extra now stands for the
4226         number of extra objects instead of the number of extra bytes.
4227         (debug_allocator::allocate): Adjust.
4228         (debug_allocator::deallocate): Adjust.
4229
4230         * include/ext/pool_allocator.h: Fix typo.
4231
4232 2004-02-03  Felix Yen  <fwy@alumni.brown.edu>
4233             Benjamin Kosnik  <bkoz@redhat.com>
4234
4235         * testsuite/performance/20_util/allocator.cc: Add map,
4236         deque, set tests.
4237         * testsuite/performance/20_util/allocator_thread.cc: Same.
4238
4239 2004-02-03  Paolo Carlini  <pcarlini@suse.de>
4240
4241         * include/bits/basic_string.h (insert(iterator)): Remove,
4242         non-standard and already scheduled for removal.
4243
4244 2004-02-03  Paolo Carlini  <pcarlini@suse.de>
4245
4246         * include/bits/stl_iterator_base_funcs.h: Minor formatting
4247         and indentation tweaks.
4248         * include/bits/stl_iterator_base_types.h: Likewise.
4249         * include/bits/stl_list.h: Likewise.
4250         * include/bits/stl_map.h: Likewise.
4251         * include/bits/stl_tempbuf.h: Likewise.
4252
4253 2004-02-02  Jerry Quinn  <jlquinn@optonline.net>
4254
4255         * include/bits/gslice.h, include/bits/gslice_array.h,
4256         include/bits/indirect_array.h, include/bits/mask_array.h,
4257         include/bits/slice_array.h, include/bits/stl_numeric.h,
4258         include/std/std_valarray.h:  Update copyright years.
4259
4260 2004-02-02  Jerry Quinn  <jlquinn@optonline.net>
4261
4262         * include/bits/gslice.h (gslice):  Document.
4263         * include/bits/gslice_array.h (gslice_array):  Document.
4264         * include/bits/indirect_array (indirect_array):  Document.
4265         * include/bits/mask_array (mask_array):  Document.
4266         * include/bits/slice_array.h (slice,slice_array):  Document.
4267         * include/bits/stl_numeric.h (accumulate, inner_product, partial_sum,
4268         adjacent_difference):  Document
4269         * include/std/std_valarray.h (valarray):  Document.
4270
4271 2004-02-02  Benjamin Kosnik  <bkoz@redhat.com>
4272
4273         * docs/html/19_diagnostics/howto.html: Move verbose terminate
4274         documentation...
4275         * docs/html/18_support/howto.html: Here.
4276         * docs/html/documentation.html: Add reference here.
4277
4278 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
4279
4280         * config/locale/gnu/c++locale_internal.h: Remove prototypes
4281         of no longer used GLIBC thread locale functions.
4282
4283 2004-02-02  Eric Christopher  <echristo@redhat.com>
4284             Zack Weinberg  <zack@codesourcery.com>
4285
4286         * testsuite/22_locale/collate/compare/wchar_t/2.cc: Remove xfail. Use
4287         -finput-charset.
4288         * testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc: Ditto.
4289         * testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc: Ditto
4290         * testsuite/22_locale/collate/hash/wchar_t/2.cc: Ditto.
4291         * testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc: Ditto.
4292         * testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc: Ditto.
4293         * testsuite/22_locale/collate/transform/wchar_t/2.cc: Ditto.
4294         * testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc: Ditto.
4295         * testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc:
4296         Ditto.
4297
4298 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
4299
4300         * include/bits/stl_function.h: Additional minor tweaks.
4301         * include/bits/stl_multiset.h: Likewise.
4302
4303         * include/bits/stl_queue.h: Minor tweaks.
4304
4305 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
4306
4307         PR libstdc++/13976 (continued)
4308         * include/ext/malloc_allocator.h (malloc_allocator::deallocate):
4309         Make the second parameter unnamed, to void unused parameter
4310         warnings.
4311         * include/ext/new_allocator.h (new_allocator::deallocate): Ditto.
4312
4313 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
4314
4315         PR libstdc++/13976
4316         * include/ext/malloc_allocator.h (malloc_allocator::allocate):
4317         Make the second parameter unnamed, to void unused parameter
4318         warnings.
4319         * include/ext/mt_allocator.h (__mt_alloc::allocate): Ditto.
4320         * include/ext/new_allocator.h (new_allocator::allocate): Ditto.
4321
4322 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
4323
4324         * include/bits/stl_algo.h: Additional minor tweaks.
4325         * include/bits/stl_map.h: Likewise.
4326         * include/bits/stl_multimap.h: Likewise.
4327         * include/bits/stl_multiset.h: Likewise.
4328         * include/bits/stl_set.h: Likewise.
4329         * include/bits/stl_tree.h: Likewise.
4330
4331 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
4332
4333         * include/bits/vector.tcc (vector::_M_insert_aux(iterator)):
4334         Remove, unused.
4335
4336 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
4337
4338         * include/bits/stl_function.h: Additional minor tweaks.
4339
4340 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
4341
4342         * include/bits/deque.tcc: Wrap overlong lines, constify
4343         a few variables, reformat according to the coding standards.
4344         * include/bits/list.tcc: Likewise.
4345         * include/bits/stl_deque.h: Likewise.
4346         * include/bits/stl_function.h: Likewise.
4347         * include/bits/stl_iterator.h: Likewise.
4348         * include/bits/stl_iterator_base_funcs.h: Likewise.
4349         * include/bits/stl_iterator_base_types.h: Likewise.
4350         * include/bits/stl_list.h: Likewise.
4351         * include/bits/stl_map.h: Likewise.
4352         * include/bits/stl_multimap.h: Likewise.
4353         * include/bits/stl_multiset.h: Likewise.
4354         * include/bits/stl_relops.h: Likewise.
4355         * include/bits/stl_set.h: Likewise.
4356
4357 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
4358
4359         * include/bits/stl_bvector.h: Wrap overlong lines, constify
4360         a few variables, reformat according to the coding standards.
4361         * include/bits/stl_tree.h: Likewise.
4362
4363 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
4364
4365         * include/bits/stl_algo.h: Minor additional reformat, add
4366         copyright year.
4367         * include/bits/stl_algobase.h: Add copyright year.
4368
4369 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
4370
4371         * include/bits/stl_algo.h: Wrap overlong lines, constify
4372         a few variables, reformat according to the coding standards.
4373         * include/bits/stl_algobase.h: Likewise.
4374         * include/bits/stl_heap.h: Likewise.
4375
4376 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
4377
4378         * include/bits/basic_string.h (_Rep::operator[]): Remove, unused.
4379
4380         * include/bits/basic_string.h: Fix two comments.
4381
4382 2004-01-31  Per Bothner  <per@bothner.com>
4383
4384         * include/ext/mt_allocator.h
4385         (__mt_alloc::_S_thread_freelist_mutex): Guard with
4386         __GTHREAD_MUTEX_INIT.
4387
4388 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
4389
4390         * include/bits/basic_string.tcc (_Rep::_S_create): Minor tweak.
4391
4392 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
4393
4394         * testsuite/21_strings/basic_string/cons/char/6.cc: New.
4395         * testsuite/21_strings/basic_string/cons/wchar_t/6.cc: New.
4396         * testsuite/performance/21_strings/string_cons_input_iterator.cc: New.
4397
4398 2004-01-30  Felix Yen  <fwy@alumni.brown.edu>
4399
4400         * testsuite/performance/20_util/allocator_thread.cc (do_loop):
4401         Don't use clear, but instead assign. Use insert.
4402
4403 2004-01-30  Benjamin Kosnik  <bkoz@redhat.com>
4404
4405         * src/demangle.cc: Add instantiations.
4406         * src/Makefile.am: Remove special rules for demangle.lo, demangle.o.
4407         * src/Makefile.in: Regenerate.
4408
4409 2004-01-30  David Edelsohn  <edelsohn@gnu.org>
4410
4411         * src/allocator.cc: Protect _S_get_thread_id() and
4412         _S_thread_key_destr() with #ifdef __GTHREADS.
4413
4414 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
4415
4416         Reshuffle performance testsuite.
4417         * testsuite/performance/allocator.cc, allocator_map_thread.cc,
4418         allocator_thread.cc, complex_norm.cc, container_benchmark.cc,
4419         cout_insert_int.cc, filebuf_copy.cc, filebuf_sputc.cc,
4420         fstream_seek_write.cc, ifstream_extract_float.cc,
4421         ifstream_extract_int.cc, ifstream_getline.cc, is_wchar_t.cc,
4422         list_create_fill_sort.cc, map_create_fill.cc,
4423         narrow_widen_char.cc, narrow_widen_wchar_t.cc,
4424         ofstream_insert_float.cc, ofstream_insert_int.cc,
4425         string_append.cc, wchar_t_in.cc, wchar_t_length.cc,
4426         wchar_t_out.cc: Split into...
4427         * testsuite/performance/20_util/allocator.cc: New.
4428         * testsuite/performance/20_util/allocator_map_thread.cc: New.
4429         * testsuite/performance/20_util/allocator_thread.cc: New.
4430         * testsuite/performance/21_strings/string_append: New.
4431         * testsuite/performance/22_locale/is_wchar_t.cc: New.
4432         * testsuite/performance/22_locale/narrow_widen_char.cc: New.
4433         * testsuite/performance/22_locale/narrow_widen_wchar_t.cc: New.
4434         * testsuite/performance/22_locale/wchar_t_in.cc: New.
4435         * testsuite/performance/22_locale/wchar_t_length.cc: New.
4436         * testsuite/performance/22_locale/wchar_t_out.cc: New.
4437         * testsuite/performance/23_containers/container_benchmark.cc: New.
4438         * testsuite/performance/23_containers/list_create_fill_sort.cc: New.
4439         * testsuite/performance/23_containers/map_create_fill.cc: New.
4440         * testsuite/performance/26_numerics/complex_norm.cc: New.
4441         * testsuite/performance/27_io/cout_insert_int.cc: New.
4442         * testsuite/performance/27_io/filebuf_copy.cc: New.
4443         * testsuite/performance/27_io/filebuf_sputc.cc: New.
4444         * testsuite/performance/27_io/fstream_seek_write.cc: New.
4445         * testsuite/performance/27_io/ifstream_extract_float.cc: New.
4446         * testsuite/performance/27_io/ifstream_extract_int.cc: New.
4447         * testsuite/performance/27_io/ifstream_getline.cc: New.
4448         * testsuite/performance/27_io/ofstream_insert_float.cc: New.
4449         * testsuite/performance/27_io/ofstream_insert_int.cc: New.
4450
4451 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
4452
4453         * include/bits/basic_string.tcc (_Rep::_S_create):
4454         Never allocate a string bigger than max_size(); always keep
4455         __capacity and __size in sync to avoid memory leaks at
4456         deallocation time.
4457
4458 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
4459
4460         * include/bits/basic_string.tcc (_S_construct(_InIterator,
4461         _InIterator, const _Alloc&, input_iterator_tag)): Simplify
4462         the double loop, streamline.
4463
4464         * include/bits/basic_string.tcc: Very minor tweaks.
4465
4466 2004-01-30  Loren J. Rittle  <ljrittle@acm.org>
4467
4468         * scripts/check_performance: Only compile with $THREAD_FLAG
4469         when test is marked to require it.  Allow multiple
4470         compilations/executions of marked tests.
4471         * testsuite/testsuite_performance.h (report_performance):
4472         Report dynamic thread support status.
4473         (report_header): Likewise.
4474         * testsuite/performance/allocator.cc: Stabilize iteration
4475         count.  Support more allocators.  Mark each allocator test to
4476         run and report independently.
4477         * testsuite/performance/allocator_map_thread.cc: Likewise.
4478         * testsuite/performance/allocator_thread.cc: Likewise.
4479
4480 2004-01-29  Stephen M. Webb  <stephen.webb@bregmasoft.com>
4481
4482         * config/local/generic/c_locale.h: Change ::malloc() to new char[].
4483         * config/local/gnu/c_locale.h: Change ::malloc() to new char[].
4484         * include/bits/stl_tempbuf.h: Convert _Temporary_buffer to use
4485         std::get_temporary_buffer() instead of duplicating its code.
4486         Update to C++STYLE conventions.
4487         * include/std/std_memory.h (get_temporary_buffer): Use ::operator
4488         new() instead of std::malloc().
4489         (return_temporary_buffer): Use ::operator delete() instead of
4490         std::free().
4491
4492 2004-01-29  Benjamin Kosnik  <bkoz@redhat.com>
4493
4494         * include/bits/allocator.h: Temporary switch to new_allocator as
4495         the default to unjam bootstraps.
4496
4497 2004-01-28  Benjamin Kosnik  <bkoz@redhat.com>
4498
4499         * include/Makefile.am (bits_headers): Remove allocator_traits.h.
4500         * include/Makefile.in: Regenerate.
4501         * include/bits/allocator_traits.h: Remove.
4502         * include/bits/allocator.h: Remove allocator_traits.h include, and
4503         relevant comments.
4504         (allocator): Empty base class, inherit from the underlying allocator.
4505         * src/allocator-inst.cc: Move __pool_alloc instantiation to...
4506         * src/allocator.cc: ...here. New. For the underlying allocators.
4507         Add __mt_alloc, __pool_alloc, new_allocator, malloc_allocator bits.
4508         * config/linker-map.gnu: Remove __pool_alloc bits.
4509         * src/Makefile.am (sources): Add allocator.cc.
4510         * src/Makefile.in: Regenerate.
4511         * testsuite/20_util/allocator/1.cc: Split second test into...
4512         * testsuite/20_util/allocator/8230.cc: ...this.
4513         * include/bits/stl_bvector.h (__gnu_norm): Change bit_vector
4514         typedef to use std::allocatore. Format.
4515         * include/ext/pool_allocator.h: Remove allocator_traits.h include,
4516         _Alloc_traits.
4517         * include/ext/mt_allocator.h (__gnu_cxx): Qualify
4518         __throw_bad_alloc calls. Don't include <memory>.
4519         * include/ext/malloc_allocator.h: Remove <memory> include.
4520         * include/ext/new_allocator.h (new_allocator): Same.
4521         * include/ext/ropeimpl.h (__gnu_cxx): Remove __alloc using
4522         declaration. Switch __alloc to _Alloc.
4523         * include/ext/hashtable.h: Remove __alloc.
4524         * include/backward/alloc.h: Only inject allocator, not
4525         implementation details.
4526
4527         * include/ext/mt_allocator.h: Replace free with delete.
4528
4529 2004-01-28  Benjamin Kosnik  <bkoz@redhat.com>
4530
4531         * src/globals_io.cc: Change to __gnu_internal namespace.
4532         * src/globals_locale.cc: Same.
4533         * src/locale_init.cc: Same.
4534         * src/ios_init.cc: Same.
4535
4536 2004-01-28  Stefan Olsson  <stefan@snon.net>
4537
4538         * include/ext/mt_allocator.h: Replaced all malloc() calls with
4539         operator new(). Added support for the env variable
4540         GLIBCXX_FORCE_NEW (this required the _S_init call to be the first
4541         one in allocate() as well). Fix typos.
4542
4543 2004-01-28  Paolo Carlini  <pcarlini@suse.de>
4544
4545         * include/bits/basic_string.h (_S_create(size_t,
4546         const _Alloc&): Change signature to take two size_type
4547         arguments.
4548         * include/bits/basic_string.tcc (_S_construct(_InIterator,
4549         _InIterator, const _Alloc&, input_iterator_tag)): Update
4550         call, tweak a bit.
4551         (_S_construct(_InIterator, _InIterator, const _Alloc&,
4552         forward_iterator_tag)): Likewise.
4553         (_S_construct(size_type, _CharT, const _Alloc&)): Likewise.
4554         (_M_mutate(size_type, size_type, size_type)): Don't
4555         implement the exponential growth policy, demand it to
4556         _S_create, update call and simplify.
4557         (_M_clone(const _Alloc&, size_type)): Likewise.
4558         (_S_create(size_type, size_type, const _Alloc&)): Implement
4559         the growth policy, simplify otherwise.
4560
4561         * include/bits/basic_string.h (_Rep::operator[]): Tweak
4562         signature to take a size_type, consistently with the other
4563         members.
4564
4565 2004-01-27  Benjamin Kosnik  <bkoz@redhat.com>
4566
4567         * testsuite/27_io/ios_base/storage/11584.cc: Correct new and
4568         delete declarations, add include and test variable.
4569
4570 2003-01-27  Jerry Quinn  <jlquinn@optonline.net>
4571
4572         * include/bits/codecvt.h, include/bits/locale_facets.h,
4573         include/bits/postypes.h, include/bits/stl_bvector.h,
4574         include/bits/stl_multiset.h, include/bits/stl_set.h,
4575         include/bits/stream_iterator.h, include/bits/streambuf_iterator.h,
4576         include/std/std_complex.h:  Document.
4577
4578 2004-01-27  Jerry Quinn  <jlquinn@optonline.net>
4579
4580         PR libstdc++/11584
4581         * include/bits/ios_base.h (ios_base::_M_grow_words):  Add
4582         iword/pword selector.
4583         (ios_base::iword, ios_base::pword):  Use it.
4584         * src/ios.cc (ios_base::_M_grow_words):  Clear _M_word_zero
4585         iword or pword member on alloc failure.
4586         * testsuite/27_io/ios_base/storage/11584.cc:  New test.
4587
4588 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
4589             PJ Darcy  <darcypj@us.ibm.com>
4590
4591         * configure.host: Add support for *-tpf.
4592         * crossconfig.m4: Likewise.
4593         * configure: Regenerate.
4594         * config/os/tpf: New directory.
4595         * config/os/tpf/os_defines.h: New file.
4596         * config/os/tpf/ctype_base.h: Likewise.
4597         * config/os/tpf/ctype_inline.h: Likewise.
4598         * config/os/tpf/ctype_noninline.h: Likewise.
4599
4600 2004-01-27  Paolo Carlini  <pcarlini@suse.de>
4601
4602         PR libstdc++/13884
4603         * include/bits/sstream.tcc: Guard use of extern template.
4604
4605 2004-01-27  Paolo Carlini  <pcarlini@suse.de>
4606
4607         * include/bits/basic_string.tcc
4608         (basic_string(const basic_string&, size_type, size_type),
4609         basic_string(const basic_string&, size_type, size_type,
4610         const _Alloc&)): Avoid unnecessarily constructing iterators.
4611
4612 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
4613
4614         * config/locale/generic/c_locale.cc: Fix throw messages
4615         to use the __N marker.
4616         * config/locale/gnu/c_locale.cc: Likewise.
4617         * config/locale/ieee_1003.1-2001/codecvt_specializations.h:
4618         Likewise.
4619         * docs/html/17_intro/C++STYLE: Likewise.
4620         * include/bits/basic_ios.tcc: Likewise.
4621         * include/bits/fstream.tcc: Likewise.
4622         * include/bits/vector.tcc: Likewise.
4623         * include/ext/ropeimpl.h: Likewise.
4624         * include/std/std_bitset.h: Likewise.
4625         * src/ios.cc: Likewise.
4626         * src/locale.cc: Likewise.
4627         * src/localename.cc: Likewise.
4628
4629 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
4630
4631         * include/bits/basic_string.h (_M_replace_aux): Use the
4632         __N marker in throw message.
4633         * include/bits/basic_string.tcc (assign(const _CharT*,
4634         size_type), insert(size_type, const _CharT*, size_type),
4635         replace(size_type, size_type, const _CharT*, size_type),
4636         reserve, _Rep::_S_create, resize, _M_replace_dispatch):
4637         Likewise.
4638
4639         * include/bits/basic_string.h, include/bits/basic_string.tcc:
4640         Fold overlong lines, minor formatting changes.
4641
4642 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
4643
4644         * include/bits/basic_string.h (replace(iterator, iterator,
4645         const basic_string&)): Remove _GLIBCXX_DEBUG_PEDASSERT.
4646         (replace(iterator, iterator, const _CharT*)): Ditto.
4647         (replace(iterator, iterator, const _CharT*, size_type)):
4648         Add missing _GLIBCXX_DEBUG_PEDASSERT.
4649
4650 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
4651
4652         * include/bits/basic_string.tcc (replace(size_type,
4653         size_type, const _CharT*, size_type)): Implement optimized
4654         in-place algorithm for non-overlapping ranges.
4655         * testsuite/21_strings/basic_string/replace/char/6.cc: New.
4656         * testsuite/21_strings/basic_string/replace/wchar_t/6.cc: New.
4657
4658         * include/bits/basic_string.tcc (insert(size_type,
4659         const _CharT*, size_type)): Tweak slightly.
4660
4661 2004-01-26  Andreas Schwab  <schwab@suse.de>
4662
4663         * config/locale/gnu/monetary_members.cc: Restore locale before
4664         rethrowing exception.
4665
4666 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
4667
4668         * include/bits/basic_string.h (_M_replace_aux, _M_replace_safe):
4669         Define inline here.
4670         * include/bits/basic_string.tcc (_M_replace_aux, _M_replace_safe):
4671         Move inline.
4672
4673         * include/bits/basic_string.tcc: Very minor tweaks.
4674
4675 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
4676
4677         * testsuite/performance/string_append.cc: Increase number
4678         of iterations.
4679
4680 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
4681
4682         * include/bits/basic_string.h (erase(size_type, size_type),
4683         erase(iterator), erase(iterator, iterator)): Call _M_replace_safe
4684         instead, thus avoiding redundant check for length_error.
4685
4686         * include/bits/basic_string.h: Tweak some comments.
4687
4688 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
4689
4690         * include/bits/basic_string.tcc (operator+(const _CharT*,
4691         const basic_string&)): No need to go through the append
4692         taking two iterators.
4693
4694 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
4695
4696         * include/bits/basic_string.tcc (rfind(_CharT, size_type)):
4697         Revert last change to use std::min: machine language is worse.
4698         (find_last_of(const _CharT*, size_type, size_type)): Ditto.
4699         (find_last_not_of(const _CharT*, size_type, size_type)): Ditto.
4700         (find_last_not_of(_CharT, size_type)): Ditto.
4701
4702         * include/bits/basic_string.tcc (insert(size_type, const _CharT*,
4703         size_type)): Discard the value returned by _M_check.
4704         (replace(size_type, size_type, const _CharT*, size_type)): Ditto.
4705         (append(const basic_string&, size_type, size_type)): Ditto.
4706         (copy(_CharT*, size_type, size_type)): Ditto.
4707         (compare(size_type, size_type, const basic_string&)): Ditto.
4708         (compare(size_type, size_type, const basic_string&,
4709         size_type, size_type)): Ditto.
4710         (compare(size_type, size_type, const _CharT*)): Ditto.
4711         (compare(size_type, size_type, const _CharT*, size_type)): Ditto.
4712
4713 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
4714
4715         * include/bits/basic_string.h (insert(size_type,
4716         const basic_string&, size_type, size_type)): Define inline here.
4717         * include/bits/basic_string.tcc (insert(size_type,
4718         const basic_string&, size_type, size_type)): Move inline.
4719
4720 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
4721
4722         * include/bits/basic_string.h (assign(const basic_string&,
4723         size_type, size_type)): Define inline here.
4724         (replace(size_type, size_type, const basic_string&,
4725         size_type, size_type)): Ditto.
4726         (_M_replace_dispatch(iterator, iterator, _InputIterator,
4727         _InputIterator, __false_type)): Only declare.
4728         (_M_replace(iterator, iterator, _InputIterator,
4729         _InputIterator)): Remove.
4730         * include/bits/basic_string.tcc (assign(const basic_string&,
4731         size_type, size_type)): Move inline.
4732         (replace(size_type, size_type, const basic_string&,
4733         size_type, size_type)): Ditto.
4734         (_M_replace_dispatch(iterator, iterator, _InputIterator,
4735         _InputIterator, __false_type)): Define, now does also what
4736         _M_replace did before.
4737         * src/string-inst.cc (_M_replace): Don't instantiate.
4738
4739         * include/bits/basic_string.tcc (find(const _CharT*,
4740         size_type, size_type)): Tidy.
4741         (rfind(_CharT, size_type)): Ditto.
4742         (find_first_not_of(const _CharT*, size_type, size_type)): Ditto.
4743         (find_first_not_of(_CharT, size_type)): Ditto.
4744         (find_last_not_of(const _CharT*, size_type, size_type)): Ditto.
4745         (find_last_not_of(_CharT, size_type)): Ditto.
4746
4747 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
4748
4749         PR libstdc++/13838
4750         * include/debug/bitset (operator|=): Fix typo.
4751         * testsuite/23_containers/bitset/operations/13838.cc: New.
4752
4753 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
4754
4755         * include/bits/basic_string.tcc (insert(size_type,
4756         const _CharT*, size_type __n)): Fix length_error check.
4757         (replace(size_type, size_type, const _CharT*, size_type):
4758         Ditto; call _M_replace_safe.
4759         (_M_replace_aux(size_type, size_type, size_type, _CharT):
4760         Fix length_error check.
4761         (_M_replace(iterator, iterator, _InputIterator,
4762         _InputIterator)): Ditto, tweak.
4763         (_M_replace_safe(size_type, size_type, const _CharT*,
4764         size_type)): Remove length_error check.
4765
4766         * include/bits/basic_string.tcc (append(const basic_string&),
4767         append(const basic_string&, size_type, size_type)): Tweak
4768         comment.
4769
4770         * include/bits/basic_string.tcc (copy(_CharT*, size_type,
4771         size_type)): If __n == 0 don't call traits::copy.
4772
4773 2004-01-23  Stefan Olsson  <stefan@snon.net>
4774
4775         * include/ext/mt_allocator.h: Reduce lock contention.
4776
4777 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
4778
4779         PR libstdc++/13831
4780         * include/bits/fstream.tcc (underflow): Remove unused
4781         variable.
4782         * include/bits/streambuf_iterator.h (equal): Ditto.
4783         * include/bits/locale_facets.h (_M_convert_from_char):
4784         Ditto.
4785
4786 2004-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4787
4788         PR c/13814
4789         * config/linker-map.gnu (nan): Delete.
4790         * libmath/mathconf.h (NAN, nan): Delete.
4791         * linkage.m4 (nan): Don't check for it.
4792         * libmath/nan.c: Delete file.
4793
4794         * config.h.in, configure: Regenerate.
4795
4796 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
4797
4798         * include/bits/basic_string.h (push_back(_CharT)):
4799         Call _M_replace_aux.
4800         (insert(size_type, const basic_string&)): Trivial tweak.
4801         (insert(size_type, size_type, _CharT)): Call _M_replace_aux.
4802         (insert(iterator, _CharT)): Ditto.
4803         (erase(size_type, size_type)): Ditto.
4804         (erase(iterator)): Ditto.
4805         (erase(iterator, iterator)): Ditto.
4806         (replace(size_type, size_type, size_type, _CharT)): Ditto.
4807
4808 2004-01-23  Loren J. Rittle  <ljrittle@acm.org>
4809
4810         libstdc++/13823
4811         * testsuite/performance/allocator_map_thread.cc: New test.
4812
4813 2004-01-22  Paolo Carlini  <pcarlini@suse.de>
4814
4815         * include/bits/locale_facets.tcc
4816         (money_put::do_put(..., long double)): Use the basic_string
4817         constructor for char arrays, not that for C-strings, to pass
4818         __digits to do_put(..., const string_type&): __ws isn't
4819         null-terminated.
4820
4821 2004-01-22  Paolo Carlini  <pcarlini@suse.de>
4822
4823         * include/bits/basic_string.h (_M_replace_safe): Change
4824         signatures to take size_types and const _CharT*.
4825         (_M_replace_aux): Likewise, takes size_types instead of
4826         iterators.
4827         (append(size_type, _CharT)): Update call.
4828         (assign(size_type, _CharT)): Ditto.
4829         (replace(iterator, iterator, size_type, _CharT)): Ditto.
4830         (_M_replace_dispatch(iterator, iterator, _Integer,
4831         _Integer, __true_type)): Ditto.
4832         * include/bits/basic_string.tcc (assign(const _CharT*,
4833         size_type)): Ditto.
4834         (insert(size_type, const _CharT*, size_type)): Ditto.
4835         (replace(size_type, size_type, const _CharT*,
4836         size_type)): Ditto.
4837         (_M_replace(iterator, iterator, _InputIterator,
4838         _InputIterator)): Ditto.
4839         (append(const basic_string&)): Ditto.
4840         (append(const basic_string&, size_type, size_type): Ditto.
4841         (append(const _CharT*, size_type): Ditto.
4842         (_M_replace_safe, _M_replace_safe): Change definitions
4843         accordingly, simplify.
4844         * string-inst.cc (_M_replace_safe): Don't instantiate.
4845
4846 2004-01-21  Paolo Carlini  <pcarlini@suse.de>
4847
4848         * include/bits/basic_string.tcc (append(const basic_string&)):
4849         Revert previous change.
4850         (append(const basic_string&, size_type, size_type)): Revert
4851         previous change, use _M_check and _M_limit.
4852
4853 2004-01-21  Paolo Carlini  <pcarlini@suse.de>
4854
4855         * include/bits/basic_string.h (_M_check): Change to return
4856         a checked __pos and take an additional const char* argument.
4857         (_M_fold): Rename to _M_limit, change to return a size_type,
4858         corresponding to the __off limited to the actual length.
4859         (insert(size_type, size_type, _CharT)): Update call, call
4860         replace.
4861         (insert(iterator, _CharT)): Call replace(iterator, iterator,
4862         size_type, _CharT) instead.
4863         (erase(size_type, size_type)): Update calls.
4864         (replace(size_type, size_type, size_type, _CharT)): Ditto.
4865         (substr(size_type, size_type)): Use _M_check.
4866         * include/bits/basic_string.tcc (basic_string(const basic_string&,
4867         size_type, size_type)): Update calls.
4868         (basic_string(const basic_string&, size_type, size_type,
4869         const _Alloc&)): Ditto.
4870         (assign(const basic_string&, size_type, size_type)): Use the
4871         new _M_check and _M_limit.
4872         (insert(size_type, const basic_string&, size_type, size_type):
4873         Ditto.
4874         (insert(size_type, const _CharT*, size_type)): Ditto.
4875         (replace(size_type, size_type, const _CharT*, size_type): Ditto.
4876         (replace(size_type, size_type, const basic_string&,
4877         size_type, size_type)): Ditto.
4878         (append(const basic_string&)): Ditto.
4879         (append(const basic_string&, size_type, size_type)): Ditto.
4880         (copy(_CharT*, size_type, size_type)): Ditto.
4881         (compare(size_type, size_type, const basic_string&)): Ditto.
4882         (compare(size_type, size_type, const basic_string&,size_type,
4883         size_type)): Ditto.
4884         (compare(size_type, size_type, const _CharT*)): Ditto.
4885         (compare(size_type, size_type, const _CharT*, size_type)): Ditto.
4886
4887 2004-01-19  Stefan Olsson  <stefan@snon.net>
4888
4889         * include/ext/mt_allocator.h: If a thread, when it dies, still has
4890         memory on it's freelist this memory is not returned to global
4891         list. Simplification of deallocate so that memory is always
4892         returned to the calling thread id's freelist instead of to
4893         global. Fix typos. Add volatile where appropriate.
4894
4895 2004-01-19  Loren J. Rittle  <ljrittle@acm.org>
4896
4897         * testsuite/ext/stdio_filebuf/char/10063-2.cc: Treat unbuffered.
4898         * testsuite/ext/stdio_filebuf/char/10063-3.cc: New test.  Like -2 but
4899         use __gnu_cxx::stdio_sync_filebuf<char> instead; allow buffered stream.
4900
4901 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
4902
4903         * src/debug.cc: Make sure all the names are prefixed with
4904         double (or single) underscore.
4905
4906 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
4907
4908         * src/debug.cc: Trivial formatting change.
4909
4910 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
4911
4912         * include/bits/basic_string.tcc (_S_construct(size_type,
4913         _CharT, const _Alloc&)): Remove redundant try/catch.
4914         (_M_mutate(size_type, size_type, size_type)): Ditto.
4915         (_M_clone(const _Alloc&, size_type)): Ditto.
4916
4917 2004-01-18  Paolo Carlini  <pcarlini@suse.de>
4918
4919         * include/bits/basic_string.h (c_str()): Simplify, due to
4920         21.3.4 the internal representation is always kept null-terminated.
4921         * include/bits/basic_string.tcc (_M_clone): Null-terminate.
4922         * testsuite/21_strings/basic_string/element_access/char/4.cc: New.
4923         * testsuite/21_strings/basic_string/element_access/wchar_t/4.cc:
4924         Ditto.
4925
4926 2004-01-18  Paolo Carlini  <pcarlini@suse.de>
4927
4928         * include/bits/basic_string.h (append(size_type, _CharT)):
4929         Moved inline, just call _M_replace_aux, no source iterators at
4930         risk of being clobbered.
4931         (assign(size_type, _CharT)): Call directly _M_replace_aux.
4932         (_M_replace(iterator, iterator, _InputIterator, _InputIterator,
4933         input_iterator_tag)): Remove fifth unused argument.
4934         (_M_replace_dispatch(iterator, iterator, _InputIterator,
4935         _InputIterator, __false_type)): Update call.
4936         * include/bits/basic_string.tcc (replace(size_type, size_type,
4937         const _CharT*, size_type)): Update call.
4938         (_M_replace_aux(iterator, iterator, size_type, _CharT)): Tweak
4939         throw string literal.
4940         (_M_replace_safe(iterator, iterator, _ForwardIterator,
4941         _ForwardIterator)): Likewise.
4942         (_M_replace(iterator, iterator, _InputIterator, _InputIterator,
4943         input_iterator_tag)): Remove fifth unused argument.
4944         (append(size_type __n, _CharT __c)): Move inline.
4945         * src/string-inst.cc (S::_M_replace(S::iterator, S::iterator,
4946         const C*, const C*, input_iterator_tag)): Remove fifth unused
4947         argument.
4948
4949 2004-01-16  Benjamin Kosnik  <bkoz@redhat.com>
4950
4951         * testsuite/ext/enc_filebuf/char/13189.cc: Fix guards.
4952         * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Same.
4953
4954 2004-01-16  Danny Smith  <dannysmith@users.sourceforge.net>
4955
4956         * testsuite/testsuite_hooks.cc (try_mkfifo): Avoid calling
4957         mkfifo for mingw32.
4958
4959 2004-01-15  Stefan Olsson  <stefan@snon.net>
4960
4961         * include/ext/mt_allocator.h: Reuse thread id's as soon as
4962         possible by changing the behaviour of thread_freelist to do
4963         push_front when threads die instead of push_back.
4964
4965 2004-01-14  Paolo Carlini  <pcarlini@suse.de>
4966
4967         * include/bits/locale_facets.h (struct __numpunct_cache):
4968         Add member _M_grouping_size, caching the length of _M_grouping.
4969         (__numpunct_cache<>::_M_cache): Assign the latter.
4970         (__verify_grouping): Move declaration...
4971         * include/bits/locale_facets.tcc (__verify_grouping):
4972         ... here, change signature to take a const char* and a size_t
4973         for the grouping; not a template anymore.
4974         (__add_grouping, num_put::_M_group_int, num_put::_M_group_float):
4975         Likewise change signature and tweak consistently.
4976         (num_get::_M_extract_float, num_get::_M_extract_int,
4977         num_put::_M_insert_int, num_put::_M_insert_float,
4978         money_get::do_get(string_type&), money_get::do_put(string_type)):
4979         Update callers.
4980         * config/locale/generic/numeric_members.cc
4981         (numpunct<>::_M_initialize_numpunct): Assign the new member.
4982         * config/locale/gnu/numeric_members.cc
4983         (numpunct<>::_M_initialize_numpunct): Likewise.
4984         * src/locale-inst.cc (__add_grouping): Tweak signature.
4985         (__verify_grouping): Don't instantiate, not a template anymore.
4986
4987         * include/bits/locale_facets.h: Rename _M_truename_len ->
4988         _M_truename_size, _M_falsename_len -> _M_falsename_size.
4989         * include/bits/locale_facets.tcc: Likewise.
4990         * config/locale/generic/numeric_members.cc: Likewise.
4991         * config/locale/gnu/numeric_members.cc: Likewise.
4992
4993 2004-01-14  Stefan Olsson  <stefan@snon.net>
4994
4995         * include/ext/mt_allocator.h: Fixups.
4996         * testsuite/performance/allocator.cc: Enable __mt_alloc tests.
4997         * testsuite/performance/allocator_thread.cc: Same.
4998
4999 2004-01-13  Benjamin Kosnik  <bkoz@redhat.com>
5000
5001         * testsuite/performance/ifstream_extract_float.cc: Add higher
5002         precision tests.
5003         * testsuite/performance/ofstream_insert_float.cc: Same.
5004
5005 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
5006
5007         * src/locale-misc-inst.cc (__convert_from_v(long),
5008         __convert_from_v(unsigned long), __convert_from_v(long long),
5009         __convert_from_v(unsigned long long)): Remove, unused.
5010
5011 2004-01-13  Benjamin Kosnik  <bkoz@redhat.com>
5012
5013         * testsuite/performance/ifstream_extract_float.cc: New.
5014         * testsuite/performance/ofstream_insert_float.cc: Float generation
5015         matches above.
5016
5017         * 20_util/auto_ptr.cc, auto_ptr_neg.cc: Break into...
5018         * 20_util/auto_ptr/1.cc: ...this.
5019         * 20_util/auto_ptr/2.cc: Same.
5020         * 20_util/auto_ptr/3.cc: Same.
5021         * 20_util/auto_ptr/3946.cc: Same.
5022         * 20_util/auto_ptr/4.cc: Same.
5023         * 20_util/auto_ptr/5.cc: Same.
5024         * 20_util/auto_ptr/6.cc: Same.
5025         * 20_util/auto_ptr/7.cc: Same.
5026         * 20_util/auto_ptr/assign_neg.cc
5027         * 20_util/pairs.cc: Break into...
5028         * 20_util/pair/1.cc: ...this.
5029         * 20_util/pair/2.cc: Same.
5030         * 20_util/pair/3.cc: Same.
5031         * 20_util/pair/4.cc: Same.
5032
5033 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
5034
5035         * include/bits/locale_facets.tcc (num_get::do_get(void*&)):
5036         Set correctly just basefield, the only group that matters.
5037
5038 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
5039
5040         * include/ext/rope (_Rope_rep_alloc_base): Eliminate.
5041         (_Rope_rep_base): Inherit directly from the rope allocator;
5042         use rebinding instead of _Alloc_traits; pick up data member
5043         from _Rope_rep_alloc_base.
5044         (_Rope_alloc_base): Eliminate.
5045         (_Rope_base): Inherit directly from the rope allocator; use
5046         rebinding instead of _Alloc_traits; pick up data member from
5047         _Rope_alloc_base.
5048         (rope::_S_new_RopeLeaf, rope::_S_new_RopeConcatenation,
5049         rope::_S_new_RopeFunction, rope::_S_new_RopeSubstring): Tweak.
5050
5051 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
5052
5053         PR libstdc++/13650
5054         * include/bits/basic_string.tcc (compare(size_type, size_type,
5055         const _CharT*, size_type)): Implement correctly the resolution
5056         of DR 5: basically, s is a char array, -not- a C string.
5057         * include/bits/basic_string.h: Tweak some comments.
5058         * testsuite/21_strings/basic_string/compare/char/13650.cc: New.
5059         * testsuite/21_strings/basic_string/compare/wchar_t/13650.cc: New.
5060
5061 2004-01-12  Andreas Tobler  <a.tobler@schweiz.ch>
5062
5063         * testsuite/lib/libstdc++.exp: Set LD_LIBRARY_PATH_32 for
5064         Solaris.
5065
5066 2004-01-12  Paolo Carlini  <pcarlini@suse.de>
5067
5068         * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc:
5069         Use try_mkfifo.
5070         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc:
5071         Likewise.
5072
5073 2004-01-12  Paolo Carlini  <pcarlini@suse.de>
5074
5075         * include/bits/locale_facets.h (struct __numpunct_cache):
5076         Add members _M_truename_len and _M_falsename_len, caching
5077         the lengths of _M_truename and _M_falsename.
5078         (__numpunct_cache<>::_M_cache): Assign the latter.
5079         * include/bits/locale_facets.tcc (num_get::do_get(bool&),
5080         num_put::do_put(bool)): Use the new members, thus avoiding
5081         computing string lengths again and again.
5082         * config/locale/generic/numeric_members.cc
5083         (numpunct<>::_M_initialize_numpunct): Assign the new members.
5084         * config/locale/gnu/numeric_members.cc
5085         (numpunct<>::_M_initialize_numpunct): Likewise.
5086
5087 2004-01-12  Mark Mitchell  <mark@codesourcery.com>
5088
5089         * testsuite/testsuite_hooks.h (__gnu_test::try_mkfifo): Declare it.
5090         * testsuite/testsuite_hooks.cc (__gnu_test::try_mkfifo): Define
5091         it.
5092         * testsuite/27_io/basic_filebuf/close/char/4879.cc: Use try_mkfifo
5093         and remove Cygwin XFAIL.
5094         * testsuite/27_io/basic_filebuf/close/char/9964.cc: Likewise.
5095         * testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc: Likewise.
5096         * testsuite/27_io/basic_filebuf/open/char/9507.cc: Likewise.
5097         * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc:
5098         Likewise.
5099         * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise.
5100         * testsuite/27_io/objects/char/7.cc: Likewise.
5101         * testsuite/27_io/objects/char/9661-1.cc: Likewise.
5102         * testsuite/27_io/objects/wchar_t/7.cc: Likewise.
5103         * testsuite/27_io/objects/wchar_t/9661-1.cc: Likewise.
5104
5105 2004-01-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5106
5107         * include/std/std_complex.h (std::complex<>::real): Return a
5108         reference. Add non-const overload.
5109         (std::complex<>::real): Likewise.
5110         (std::real): Likewise.
5111         (std::imag): Likewise.
5112         (std::operator+): Tidy.
5113         (std::operator-): Likewise.
5114         (std::operator*): Likewise.
5115         (std::operator/): Likewise.
5116         (std::operator>>): Likewise.
5117
5118 2004-01-11  Paolo Carlini  <pcarlini@suse.de>
5119
5120         PR libstdc++/13582
5121         * include/bits/fstream.tcc (imbue): Exploit the external
5122         buffer to imbue 'on the fly' a new locale and convert its
5123         remainder with the new codecvt facet.
5124         (underflow): Tweak slightly to deal with this special case.
5125         * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc: New.
5126         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc: Ditto.
5127         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Ditto.
5128         * testsuite/27_io/objects/wchar_t/13582-1_xin.cc: Ditto.
5129         * testsuite/27_io/objects/wchar_t/13582-1_xin.in: Ditto.
5130
5131 2004-01-10  Paolo Carlini  <pcarlini@suse.de>
5132
5133         * docs/html/ext/lwg-active.html, docs/html/ext/lwg-defects.html:
5134         Import Revision 28.
5135
5136 2004-01-10  Paolo Carlini  <pcarlini@suse.de>
5137
5138         PR libstdc++/13630
5139         * include/bits/locale_classes.h (class locale): Fix category
5140         typedef.
5141         * testsuite/22_locale/locale/13630.cc: Add.
5142
5143 2004-01-10  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
5144
5145         * include/bits/locale_facets.h: Make a name really dependent. This
5146         will be needed when Core Issue 224 is implemented.
5147
5148 2004-01-09  Paolo Carlini  <pcarlini@suse.de>
5149
5150         * testsuite/performance/allocator.cc: Demangle typeid(obj).name().
5151         * testsuite/performance/allocator_thread.cc: Likewise.
5152
5153 2004-01-07  Benjamin Kosnik  <bkoz@redhat.com>
5154
5155         * crossconfig.m4: Add LFS, io bits to linux cross config.
5156         * acconfig.h: Remove obsolete bits, reorder.
5157         * config.h.in: Regenerate.
5158         * aclocal.m4: Same.
5159         * configure: Same.
5160
5161 2004-01-07  Gawain Bolton  <gp.bolton@computer.org>
5162
5163         * include/bits/stl_list.h:
5164         * include/bits/list.tc:
5165         * src/list.cc:
5166         Performance enhancements for destructor, push_front(),
5167         push_back(), pop_front(), pop_back(), sort()
5168         Eliminated static_casts where possible.
5169         Moved code out of header files into new src/list.cc
5170         implementation file for library where possible.
5171         Remove inheritance from iterator class and create separate
5172         classes for non-constant and constant iterators.
5173         * include/bits/stl_tree.h (_Rb_tree class):
5174         * src/tree.cc:
5175         Only erase contents in destructor.
5176         Eliminate unnecessary initialization in assignment operator.
5177         Optimize for the nominal case by not checking whether
5178         container is empty in clear().
5179         Re-order test in _M_insert() to improve performance.
5180         Move initialization of new node's left & right pointers to
5181         src/tree.cc to where new node's colour is initialized
5182         and to reduce the amount of inline code.
5183         Use  _M_leftmost() and _M_end() to improve readability where
5184         appropriate.
5185         Create separate classes for non-constant and constant
5186         iterators to clarify code, avoid extra template parameters and
5187         casting away constness.
5188
5189 2004-01-07  Benjamin Kosnik  <bkoz@redhat.com>
5190
5191         * src/Makefile.am (sources): Add list.cc, tree.cc.
5192         * src/stl_tree.cc: Move to...
5193         * src/tree.cc: ...here.
5194         * src/list.cc: Add.
5195         * config/linker-map.gnu: Tweaks.
5196         * testsuite/23_containers/map/operators/1_neg.cc: Add excess errors.
5197         * testsuite/23_containers/set/operators/1_neg.cc: Add excess errors.
5198
5199         * bits/stl_vector.h: Column wrap comments.
5200
5201 2004-01-07  Loren J. Rittle  <ljrittle@acm.org>
5202
5203         (re-open) PR libstdc++/12658
5204         * src/locale_init.cc (locale::locale): Remove ill-scoped mutex.
5205         (locale::global): Likewise.
5206
5207 2004-01-07  Paolo Carlini  <pcarlini@suse.de>
5208
5209         * testsuite/27_io/basic_istream/extractors_other/char/9318-in.cc:
5210         Remove redundant #include.
5211         * testsuite/27_io/basic_ostream/endl/char/1.cc: Likewise.
5212         * testsuite/27_io/basic_ostream/ends/char/1.cc: Likewise,
5213         re-enable normal testing.
5214         * testsuite/27_io/basic_ostream/ends/char/2.cc: Remove redundant
5215         #include.
5216         * testsuite/27_io/basic_ostream/flush/char/1.cc: Likewise.
5217         * testsuite/27_io/basic_ostream/inserters_character/char/1.cc:
5218         Likewise.
5219         * testsuite/27_io/basic_ostream/inserters_character/char/2.cc:
5220         Likewise.
5221         * testsuite/27_io/basic_ostream/inserters_character/char/3.cc:
5222         Likewise.
5223         * testsuite/27_io/basic_ostream/inserters_character/char/4.cc:
5224         Likewise.
5225         * testsuite/27_io/basic_ostream/inserters_character/char/5.cc:
5226         Likewise.
5227         * testsuite/27_io/basic_ostream/inserters_character/char/6.cc:
5228         Likewise.
5229         * testsuite/27_io/basic_ostream/inserters_character/char/8.cc:
5230         Likewise.
5231         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/7.cc:
5232         More properly, #include <locale>.
5233         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/8.cc:
5234         Remove redundant #include.
5235         * testsuite/27_io/basic_ostream/inserters_other/char/2.cc: Likewise.
5236         * testsuite/27_io/basic_ostream/inserters_other/char/3.cc: Remove
5237         redundant DejaGnu directive.
5238         * testsuite/27_io/basic_ostream/inserters_other/char/4.cc: Remove
5239         redundant #include.
5240
5241 2004-01-06  Benjamin Kosnik  <bkoz@redhat.com>
5242             Stefan Olsson  <stefan@snon.net>
5243
5244         * scripts/check_performance: Use -pthread.
5245         * testsuite/performance/allocator.cc: Tweaks, add list.
5246         * testsuite/performance/allocator_thread.cc: New.
5247
5248 2004-01-06  Jerry Quinn  <jlquinn@optonline.net>
5249
5250         * include/bits/locale_facets.h: Document public classes and
5251         functions.
5252         * include/bits/locale_facets.tcc (time_get::_M_extract_via_format):
5253         Add comment.
5254
5255 2004-01-06  Paolo Carlini  <pcarlini@suse.de>
5256
5257         * testsuite/27_io/basic_istream/extractors_other/char/1.cc:
5258         Remove redundant #includes.
5259         * testsuite/27_io/basic_istream/extractors_other/char/2.cc:
5260         Likewise.
5261         * testsuite/27_io/basic_istream/extractors_other/char/3.cc:
5262         Likewise.
5263         * testsuite/27_io/basic_istream/get/char/1.cc: Likewise.
5264         * testsuite/27_io/basic_istream/get/char/2.cc: Likewise.
5265         * testsuite/27_io/basic_istream/getline/char/1.cc: Likewise.
5266         * testsuite/27_io/basic_istream/getline/char/2.cc: Likewise.
5267         * testsuite/27_io/basic_istream/getline/char/3.cc: Likewise.
5268         * testsuite/27_io/basic_istream/ignore/char/1.cc: Likewise.
5269         * testsuite/27_io/basic_istream/ignore/char/6360.cc: Likewise.
5270         * testsuite/27_io/basic_istream/ignore/char/7220.cc: Likewise.
5271         * testsuite/27_io/basic_istream/peek/char/1.cc: Likewise.
5272         * testsuite/27_io/basic_istream/peek/char/6414.cc: Likewise.
5273         * testsuite/27_io/basic_istream/putback/char/1.cc: Likewise.
5274         * testsuite/27_io/basic_istream/read/char/1.cc: Likewise.
5275         * testsuite/27_io/basic_istream/read/char/2.cc: Likewise.
5276         * testsuite/27_io/basic_istream/read/char/3.cc: Likewise.
5277         * testsuite/27_io/basic_istream/readsome/char/6746-1.cc:
5278         Likewise.
5279         * testsuite/27_io/basic_istream/readsome/char/6746-2.cc:
5280         Likewise.
5281         * testsuite/27_io/basic_istream/readsome/char/8258.cc:
5282         Likewise.
5283         * testsuite/27_io/basic_istream/seekg/char/2346-fstream.cc:
5284         Likewise.
5285         * testsuite/27_io/basic_istream/seekg/char/2346-sstream.cc:
5286         Likewise.
5287         * testsuite/27_io/basic_istream/seekg/char/8348-1.cc: Likewise.
5288         * testsuite/27_io/basic_istream/seekg/char/8348-2.cc: Likewise.
5289         * testsuite/27_io/basic_istream/tellg/char/8348.cc: Likewise.
5290
5291 2004-01-04  Paolo Carlini  <pcarlini@suse.de>
5292
5293         * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc:
5294         Remove redundant #includes.
5295         * testsuite/27_io/basic_istream/extractors_arithmetic/char/02.cc:
5296         Likewise.
5297         * testsuite/27_io/basic_istream/extractors_arithmetic/char/03.cc:
5298         Likewise.
5299         * testsuite/27_io/basic_istream/extractors_arithmetic/char/06.cc:
5300         Likewise.
5301         * testsuite/27_io/basic_istream/extractors_arithmetic/char/07.cc:
5302         Likewise.
5303         * testsuite/27_io/basic_istream/extractors_arithmetic/char/08.cc:
5304         Likewise.
5305         * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc:
5306         Likewise.
5307         * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
5308         Likewise.
5309         * testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc:
5310         Likewise.
5311         * testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc:
5312         Likewise.
5313         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/1.cc:
5314         Likewise.
5315         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc:
5316         Likewise.
5317         * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/1.cc:
5318         Likewise.
5319
5320 2004-01-04  Mark Mitchell  <mark@codesourcery.com>
5321
5322         PR c++/12226
5323         * testsuite/27_io/basic_filebuf/4.cc: Remove use of invalid copy
5324         constructor.
5325         * testsuite/27_io/basic_fstream/4.cc: Likewise.
5326         * testsuite/27_io/basic_ifstream/4.cc: Likewise.
5327         * testsuite/27_io/basic_ios/4.cc: Likewise.
5328         * testsuite/27_io/basic_iostream/4.cc: Likewise.
5329         * testsuite/27_io/basic_istream/4.cc: Likewise.
5330         * testsuite/27_io/basic_istingstream/4.cc: Likewise.
5331         * testsuite/27_io/basic_ofstream/4.cc: Likewise.
5332         * testsuite/27_io/basic_ostream/4.cc: Likewise.
5333         * testsuite/27_io/basic_ostringstream/4.cc: Likewise.
5334         * testsuite/27_io/basic_stringbuf/5.cc: Likewise.
5335         * testsuite/27_io/basic_stringstream/4.cc: Likewise.
5336
5337 2004-01-04  Paolo Carlini  <pcarlini@suse.de>
5338
5339         * config/locale/generic/numeric_members.cc (_M_initialize_numpunct):
5340         Avoid unnecessarily zero terminating _M_atoms_out and _M_atoms_in;
5341         always use double underscored names.
5342         * config/locale/gnu/numeric_members.cc (_M_initialize_numpunct):
5343         Likewise.
5344         * include/bits/locale_facets.h (struct __numpunct_cache):
5345         Dimension _M_atoms_out and _M_atoms_in one position smaller.
5346         (__numpunct_cache<>::_M_cache): Don't zero terminate _M_atoms_out
5347         and _M_atoms_in.