OSDN Git Service

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