OSDN Git Service

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