OSDN Git Service

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