OSDN Git Service

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