OSDN Git Service

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