OSDN Git Service

2004-05-22 Benjamin Kosnik <bkoz@redhat.com>
[pf3gnuchains/gcc-fork.git] / libstdc++-v3 / ChangeLog
1 2004-05-22  Benjamin Kosnik  <bkoz@redhat.com>
2
3         * libsupc++/cxxabi.h: Remove duplicated and useless public and
4         private keywords in class declarations. Format. Use
5         stddef.h. Expose declarations to "C" compilation.
6         * libsupc++/tinfo.cc (__upcast_result): Add copy constructor and
7         assignment operator.
8         (__dyncast_result): Same.
9         * libsupc++/vec.cc (uncatch_exception): Same, use member
10         initialization list.
11                  
12 2004-05-22  Benjamin Kosnik  <bkoz@redhat.com>
13
14         * testsuite/abi_check.cc: Add unistd.h.
15
16 2004-05-22  Paolo Carlini  <pcarlini@suse.de>
17
18         PR libstdc++/15565
19         * include/bits/locale_facets.tcc (__int_to_char(unsigned long),
20         __int_to_char(unsigned long long)): Showpos is not relevant
21         for unsigned types.
22         * testsuite/22_locale/num_put/put/char/15565.cc: New.
23         * testsuite/22_locale/num_put/put/wchar_t/15565.cc: New.
24
25         * testsuite/22_locale/num_put/put/wchar_t/1.cc: Use L for the fill
26         char.
27         * testsuite/22_locale/num_put/put/wchar_t/2.cc: Likewise.
28         * testsuite/22_locale/num_put/put/wchar_t/3.cc: Likewise.
29         * testsuite/22_locale/num_put/put/wchar_t/4.cc: Likewise.
30         * testsuite/22_locale/num_put/put/wchar_t/5.cc: Likewise.
31         * testsuite/22_locale/num_put/put/wchar_t/6.cc: Likewise.
32         * testsuite/22_locale/num_put/put/wchar_t/8.cc: Likewise.
33
34 2004-05-21  Matthias Klose  <doko@debian.org>
35  
36         * docs/doxygen/run_doxygen:  Bump required version.
37
38 2004-05-21  Benjamin Kosnik  <bkoz@redhat.com>
39
40         * docs/html/abi.html (libgcc_s): Additions suggested by Matthias Klose.
41         * docs/doxygen/Intro.3: Subtractions suggested by Phil Edwards.
42
43 2004-05-21  Paolo Carlini  <pcarlini@suse.de>
44
45         * include/bits/istream.tcc (ignore): Remove redundant line.
46         (readsome): Tidy, closely following 27.6.1.3, p30.
47
48 2004-05-20  Paolo Carlini  <pcarlini@suse.de>
49
50         * include/bits/istream.tcc (operator>>(basic_istream<>&,
51         basic_string<>&)): Use a temporary buffer, thus avoiding
52         reallocation for common case.
53         * testsuite/21_strings/basic_string/inserters_extractors/char/11.cc:
54         New.
55         * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/11.cc:
56         Likewise.
57
58         * include/bits/istream.tcc: Const-ification of a few variables.
59
60         * include/bits/ostream.tcc: Trivial formatting fixes and
61         const-ification of some variables.
62
63 2004-05-20  Benjamin Kosnik  <bkoz@redhat.com>
64
65         PR libstdc++/15123
66         PR libstdc++/13928
67         * docs/doxygen/Intro.3: Remove Allocators.3.
68         Add new extension headers, extension namespace list.
69         * docs/doxygen/run_doxygen (problematic): Remove Allocators.3
70         Rename GLIBCXXSTD names to std::. Rename __gnu_debug to
71         __gnu_debug::. Remove __policy_ renames.
72         * docs/doxygen/guide.html: Add dot note.
73         * docs/doxygen/stdheader.cc: Edit, add files.
74         * docs/doxygen/user.cfg.in: Regenerate with Doxygen 1.3.7.
75         
76 2004-05-18  Jonathan Wakely  <redi@gcc.gnu.org>
77
78         * include/ext/stdio_filebuf.h: Update comments to reflect PR 11691.
79
80 2004-05-18  Jan Beulich  <jbeulich@novell.com>
81  
82         PR libstdc++/15489
83         * scripts/create_testsuite_files: Also find source files through
84           symbolic links.
85
86 2004-05-18  Jan Beulich  <jbeulich@novell.com>
87
88         PR libstdc++/15488
89         * testsuite/lib/libstdc++.exp: Make test files writable.
90
91 2004-05-18  Paolo Carlini  <pcarlini@suse.de>
92
93         * include/ext/mt_allocator.h:(__mt_alloc::allocate): Minor
94         tweaks.
95
96 2004-05-18  Dhruv Matani  <dhruvbird@gmx.net>
97
98         * include/ext/mt_allocator.h:(__mt_alloc::allocate): Re-write
99         allocation loop which removes blocks from the global free list
100         from O(N) to O(1) when the required blocks are <= the number
101         available.
102
103 2004-05-18  Jonathan Wakely  <redi@gcc.gnu.org>
104
105         * include/ext/enc_filebuf.h: Move concept-check macro to class scope.
106
107 2004-05-17  Benjamin Kosnik  <bkoz@redhat.com>
108
109         * testsuite/testsuite_hooks.h (__gnu_test::conversion): New class.
110         * testsuite/23_containers/deque/14340.cc: New.
111         * testsuite/23_containers/list/14340.cc: New.
112         * testsuite/23_containers/map/14340.cc: New.
113         * testsuite/23_containers/multimap/14340.cc: New.
114         * testsuite/23_containers/multiset/14340.cc: New.
115         * testsuite/23_containers/set/14340.cc: New.
116         * testsuite/23_containers/vector/14340.cc: New.
117
118 2004-05-17  Douglas Gregor   <gregod@cs.rpi.edu>
119
120         PR libstdc++/14340 
121         * include/debug/safe_iterator.h (_Safe_iterator converting 
122         constructor): Only allow declaration to instantiate when the 
123         incoming _Safe_iterator has exactly the right iterator type.
124
125 2004-05-17  Jonathan Wakely  <redi@gcc.gnu.org>
126
127         * include/bits/boost_concept_check.h: Fix old attribute syntax.
128         * testsuite/23_containers/map/modifiers/swap.cc: Define operator<
129         to pass concept-checks.
130         * testsuite/23_containers/multimap/modifiers/swap.cc: Same.
131         * testsuite/23_containers/set/modifiers/swap.cc: Same.
132         * testsuite/23_containers/multiset/modifiers/swap.cc: Same.
133
134 2004-05-16  Paolo Carlini  <pcarlini@suse.de>
135
136         * include/std/std_bitset.h: Minor formatting fixes.
137
138 2004-05-16  Paolo Carlini  <pcarlini@suse.de>
139
140         * include/ext/mt_allocator.h (__mt_alloc<>::deallocate):
141         Consistently update __bin._M_free[0].
142         (__mt_alloc<>::allocate): When __bin._M_first[0] != NULL use
143         __bin._M_free[0] to simplify the while loop (i.e., the number
144         of iterations becomes known at the outset).
145
146 2004-05-15  Paolo Carlini  <pcarlini@suse.de>
147
148         * include/std/std_bitset.h: Trivial formatting fixes.
149
150 2004-05-14  Paolo Carlini  <pcarlini@suse.de>
151             Ivan Godard  <igodard@pacbell.net>
152
153         PR libstdc++/15361
154         * include/std/std_bitset.h (_Base_bitset<_Nw>::_M_do_find_next): Fix.
155         * testsuite/23_containers/bitset/ext/15361.cc: New.
156
157 2004-05-13  Benjamin Kosnik  <bkoz@redhat.com>
158
159         PR libstdc++/15046
160         * crossconfig.m4: Add C99 math bits for linux crosses.
161         * configure: Regenerate.
162         
163 2004-05-13  Simon Marshall <simon.marshall@misys.com>
164             Benjamin Kosnik  <bkoz@redhat.com>
165
166         PR libstdc++/15090
167         * include/bits/locale_facets.h: Fix for -fno-for-scope.
168         * include/debug/safe_sequence.h: Same.
169         * include/debug/safe_iterator.tcc: Same.
170         * src/debug.cc: Same.
171         * src/locale.cc: Same.
172         * src/locale_init.cc: Same.
173         * src/localename.cc: Same.
174         * config/locale/gnu/ctype_members.cc: Same.
175         * config/locale/gnu/numeric_members.cc: Same.
176         * testsuite/testsuite_abi.cc: Same.
177         * testsuite/testsuite_hooks.cc: Same.
178         
179 2004-05-13  Jonathan Wakely  <redi@gcc.gnu.org>
180         
181         * docs/html/abi.html: Document effect of -fabi-version on value
182         of __GXX_ABI_VERSION, and that it's defined in c-cppbuiltin.c.
183         Fix markup.
184
185 2004-05-13  Benjamin Kosnik  <bkoz@redhat.com>
186
187         PR libstdc++/15074      
188         * docs/html/faq/index.html: Update docs for libsupc++ usage.
189
190 2004-05-13  Benjamin Kosnik  <bkoz@redhat.com>
191
192         PR libstdc++/15412
193         * include/bits/stl_threads.h (_GLIBCXX_mutex): Move to namespace
194         __gnu_internal.
195         (_GLIBCXX_mutex_address): Same.
196         (_GLIBCXX_once): Same.  
197         (_GLIBCXX_mutex_init): Same.
198         (_GLIBCXX_mutex_address_init): Same.
199         
200 2004-05-13  Benjamin Kosnik  <bkoz@redhat.com>
201         
202         * docs/html/abi.html: New.
203         * docs/html/abi.txt: Remove.
204         * docs/html/documentation.html: Add link.
205         * testsuite/Makefile.am: Add files.
206         * testsuite/Makefile.in: Regenerated.
207         * testsuite/abi_check.cc: Move and modify code into...
208         * testsuite/testsuite_abi.cc: Add.
209         * testsuite/testsuite_abi.h: Add.
210
211         * docs/html/17_intro/TODO: Update.
212         * include/bits/stl_pair.h: Format.
213         
214 2004-05-06  Matthias Klose  <doko@debian.org>
215
216         * include/backward/iterator.h:  Add GPL copyright info,
217         with exception clause.
218         * include/bits/boost_concept_check.h: Likewise.
219         * include
220         * libsupc++/tinfo.h: Likewise.
221         * po/string_literals.cc: Likewise.
222         
223 2004-05-03  Andreas Tobler  <a.tobler@schweiz.ch>
224
225         * acinclude.m4: Replace -W with more speaking -Wextra.
226         * configure: Rebuilt.
227
228 2004-05-03  Paolo Carlini  <pcarlini@suse.de>
229
230         Optimize locale::_M_impl->_M_names for the most common cases:
231         !_M_names[0] means unnamed; !_M_names[1] means all the categories
232         the same name (_M_names[0] && _M_names[1] means that the full set
233         of _M_names must be processed, the general case).
234         * include/bits/locale_classes.h (locale::_Impl::_M_check_same_name):
235         Tweak, saving work when !_M_names[1].
236         (locale::locale(const locale&, _Facet*): Simplify: now just setting
237         _M_names[0] = 0 means unnamed.
238         * src/locale.cc (locale::operator==): Deal first with the common,
239         easy cases, otherwise fall back to locale::name().
240         (locale::name()): Tweak, if !_M_names[0] just return "*".
241         (locale::_Impl::_Impl(const _Impl&, size_t): Tweak, early stop
242         copying __imp._M_names if !__imp._M_names[0] or !__imp._M_names[1].
243         * src/locale_init.cc (locale::_Impl::_Impl(size_t)): Tweak.
244         * src/localename.cc (locale::_Impl::_Impl(const char*, size_t):
245         Simplify when !std::strchr, just updating _M_names[0]; clean up.
246         (locale::_Impl::_M_replace_categories): When !_M_names[1] prepare
247         for the general case (full set of names), then do the usual work;
248         clean up.
249
250         * src/locale.cc (locale::name()): Reserve space in __ret.
251         * src/locale_init.cc (locale::global(const locale&)): Save
252         the name in a temporary.
253         * src/localename.cc (locale::locale(const char*)): Reserve space
254         in __str.
255
256 2004-04-29  Paolo Carlini  <pcarlini@suse.de>
257
258         * src/locale.cc (locale::operator==): Always avoid constructing
259         locale::name(), directly compare pairs of _M_names.
260
261 2004-04-26  Paolo Carlini  <pcarlini@suse.de>
262
263         * include/bits/istream.tcc: Fix comment.
264
265 2004-04-26  Paolo Carlini  <pcarlini@suse.de>
266
267         * include/bits/stl_vector.h: Trivial formatting fixes.
268         * include/bits/vector.tcc: Likewise.
269
270 2004-04-25  Paolo Carlini  <pcarlini@suse.de>
271
272         PR libstdc++/15002 (continued again)
273         * include/bits/istream.tcc (getline(basic_istream<>&,
274         basic_string<>&, _CharT)): Use a temporary buffer, thus
275         avoiding reallocation for common case.
276
277         * include/bits/basic_string.tcc (_S_construct(_InIterator,
278         _InIterator, const _Alloc&, input_iterator_tag)): Tweak size
279         of temporary buffer to a power of two.
280
281         * testsuite/27_io/basic_istream/getline/char/4.cc: Add comment.
282
283 2004-04-25  Paolo Carlini  <pcarlini@suse.de>
284
285         * testsuite/21_strings/basic_string/inserters_extractors/char/10.cc:
286         New.
287         * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/10.cc:
288         Likewise.
289         * testsuite/27_io/basic_istream/getline/char/5.cc: Likewise.
290
291 2004-04-24  Paolo Carlini  <pcarlini@suse.de>
292             Petur Runolfsson  <peturr02@ru.is>
293
294         PR libstdc++/15002 (continued)
295         * include/bits/istream.tcc (basic_istream<>::getline(char_type*,
296         streamsize, char_type)): Use traits::find/copy in a loop to speed
297         up greatly the function in the common case (I/O buffer size >> 1).
298
299 2004-04-24  Paolo Carlini  <pcarlini@suse.de>
300
301         * testsuite/27_io/basic_istream/getline/char/4.cc: New. 
302
303         * include/bits/istream.tcc (getline(basic_istream<>&,
304         basic_string<>&, _CharT)): Change to use sgetc()/snextc() instead
305         of sbumpc(), consistently with the other functions, thus also
306         dealing correctly with the case of exceeded string::max_size().
307
308 2004-04-24  Matthias Klose  <doko@debian.org>
309
310         Jonathan Wakely  <cow@compsoc.man.ac.uk>
311         * docs/html/configopts.html: Fix reference to allocator config option.
312
313 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
314
315         * linkage.m4 (GLIBCXX_CHECK_MATH_SUPPORT): Check for libmx also.
316         * configure: Regenerate.
317
318 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
319
320         PR libstdc++/15047, libstdc++/11610
321         * testsuite/lib/libstdc++.exp (v3-copy-files): Use remote_download.
322         (libstdc++_init): Don't pass outdir to v3-copy-files.
323
324 2004-04-21  Paolo Carlini  <pcarlini@suse.de>
325
326         * include/bits/deque.tcc: Trivial formatting fixes.
327         * include/bits/stl_deque.h: Likewise.
328         * include/bits/stl_list.h: Likewise.
329         * include/bits/stl_tree.h: Likewise.
330
331 2004-04-21  Paolo Carlini  <pcarlini@suse.de>
332             Andrew Pinski  <pinskia@physics.uc.edu>
333
334         * include/bits/basic_string.tcc (_M_mutate): Don't compute
335         __src unnecessarily.
336
337 2004-04-19  Benjamin Kosnik  <bkoz@redhat.com>
338
339         * testsuite/27_io/basic_istream/extractors_character/char/9555-ic.cc: 
340         Clarify assertion, set test variable to false before assert.
341         * testsuite/27_io/basic_istringstream/str/char/1.cc: Same.
342         * testsuite/27_io/basic_stringstream/str/char/1.cc: Same.
343         * testsuite/27_io/ios_base/storage/2.cc: Same.
344         
345         * testsuite/27_io/basic_filebuf/imbue/char/13171-4.cc: Fix
346         function returns.
347         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Same.
348         * testsuite/27_io/fpos/14320-3.cc: Same.
349         
350         * testsuite/27_io/basic_filebuf/2.cc: Instantiate in namespace std.
351         * testsuite/27_io/fpos/1.cc: Same.
352         * testsuite/27_io/basic_stringstream/2.cc: Same.
353         * testsuite/27_io/basic_stringbuf/4.cc: Same.
354         * testsuite/27_io/basic_stringbuf/1.cc: Same.
355         * testsuite/27_io/basic_stringbuf/2.cc: Same.
356         * testsuite/27_io/basic_streambuf/2.cc: Same.
357         * testsuite/27_io/basic_ostringstream/2.cc: Same.
358         * testsuite/27_io/basic_ostream/2.cc: Same.
359         * testsuite/27_io/basic_ofstream/2.cc: Same.
360         * testsuite/27_io/basic_istringstream/2.cc: Same.
361         * testsuite/27_io/basic_istream/2.cc: Same.
362         * testsuite/27_io/basic_iostream/2.cc: Same.
363         * testsuite/27_io/basic_ios/2.cc: Same.
364         * testsuite/27_io/basic_ifstream/2.cc: Same.
365         * testsuite/27_io/basic_fstream/2.cc: Same.
366         * testsuite/ext/stdio_filebuf/char/1.cc: Same, in namespace __gnu_cxx.
367
368         * testsuite/21_strings/basic_string/capacity/1.cc: Don't compare
369         unsigned against zero.
370         * testsuite/21_strings/basic_string/capacity/wchar_t/1.cc: Same.
371         * testsuite/21_strings/basic_string/capacity/char/1.cc: Same.
372
373         * testsuite/18_support/new_delete_placement.cc: Initialize
374         variables before first use.
375         * testsuite/21_strings/char_traits/requirements/wchar_t/1.cc: Same.
376         * testsuite/21_strings/char_traits/requirements/char/1.cc: Same.
377         * testsuite/21_strings/char_traits/requirements/short/1.cc: Same.
378         * testsuite/27_io/basic_istream/seekg/char/exceptions_badbit_throw.cc: 
379         Same.
380         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/exceptions_badbit_throw.cc: Same.
381         * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc: 
382         Same.
383         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/exceptions_failbit_throw.cc: Same.
384         * testsuite/27_io/types/2.cc: Same.
385
386         * testsuite/ext/stdio_sync_filebuf/wchar_t/12077.cc: Fix temporary
387         file name.      
388         * testsuite/27_io/fpos/14775.cc: Same.
389         
390 2004-04-19  Paolo Carlini  <pcarlini@suse.de>
391
392         PR libstdc++/15002 (partial)
393         * include/bits/basic_string.h (_M_replace_aux, _M_replace_safe):
394         Special case __n2 == 1, not calling traits_type::assign/copy. 
395
396 2004-04-17  Benjamin Kosnik  <bkoz@redhat.com>
397
398         * include/bits/stl_bvector.h: Use _M_impl._M_start.
399         
400 2004-04-16  Benjamin Kosnik  <bkoz@redhat.com>
401         
402         * include/bits/c++config (_GLIBCXX_STD): New.
403         * src/list.cc: Use it.
404         * include/std/std_bitset.h: Same.
405         * include/bits/vector.tcc: Same.
406         * include/bits/stl_set.h: Same.
407         * include/bits/stl_multiset.h: Same.
408         * include/bits/stl_multimap.h: Same.
409         * include/bits/stl_map.h: Same.
410         * include/bits/stl_list.h: Same.
411         * include/bits/stl_vector.h: Same.
412         * include/bits/stl_bvector.h: Same.
413         * include/bits/stl_deque.h: Same.
414         * include/bits/deque.tcc: Same.
415         * include/bits/list.tcc: Same.
416         * include/debug/vector: Same.
417         * include/debug/set.h: Same.
418         * include/debug/multiset.h: Same.
419         * include/debug/multimap.h: Same.
420         * include/debug/map.h: Same.
421         * include/debug/list: Same.
422         * include/debug/deque: Same.
423         * include/debug/bitset: Same.   
424         * include/debug/formatter.h (__gnu_debug): Remove using directive.
425         Add using declaration for std::type_info.
426         * include/debug/safe_iterator.h: Add using declaration for
427         std::iterator_traits and std::pair.
428         * src/debug_list.cc: New.
429         * src/Makefile.am: Add debug_list.cc.
430         * src/Makefile.in: Regenerate.
431         * config/linker-map.gnu: Add _List_node_base exports for std and
432         __gnu_norm.
433
434         * include/bits/stl_bvector.h (_Bvector_base): Use _Bvector_impl
435         idiom that other containers use.
436         * testsuite/23_containers/vector/bool/clear_allocator.cc: New.
437                         
438 2004-04-16  Paolo Carlini  <pcarlini@suse.de>
439
440         PR libstdc++/14975
441         * include/bits/fstream.tcc (basic_filebuf::imbue): Zero _M_codecvt
442         in case of error.
443         * testsuite/27_io/basic_filebuf/imbue/char/14975-1.cc: New.
444         * testsuite/27_io/basic_filebuf/imbue/wchar_t/14975-2.cc: New.
445
446 2004-04-16  Paolo Carlini  <pcarlini@suse.de>
447
448         * acconfig.h: Remove _GLIBCXX_USE_LONG_DOUBLE entry, not
449         used anymore.
450         * config.h.in: Regenerate.
451
452 2004-04-16  Paolo Carlini  <pcarlini@suse.de>
453
454         * config/locale/generic/monetary_members.cc
455         (moneypunct<wchar_t>::_M_initialize_moneypunct): Avoid calling
456         btowc unnecessarily, just cast to wchar_t (the concerned chars
457         all belong to the basic character set).
458         * config/locale/generic/numeric_members.cc
459         (numpunct<wchar_t>::_M_initialize_numpunct): Likewise.
460         * config/locale/gnu/monetary_members.cc
461         (moneypunct<wchar_t>::_M_initialize_moneypunct): Likewise.
462         * config/locale/gnu/numeric_members.cc
463         (numpunct<wchar_t>::_M_initialize_numpunct): Likewise.
464
465 2004-04-15  Paolo Carlini  <pcarlini@suse.de>
466
467         * src/locale.cc (locale::operator==): When _M_impl == __rhs._M_impl
468         avoid constructing unnecessarily this->name().
469
470 2004-04-14  Zack Weinberg  <zack@codesourcery.com>
471
472         * testsuite/Makefile.am: Add definition of AM_CXXFLAGS.
473         Change definition of CXX to use $(shell) instead of backticks.
474         * testsuite/Makefile.in: Regenerate.
475
476 2004-04-12  Dhruv Matani  <dhruvbird@gmx.net>
477
478         * testsuite/performance/20_util/allocator/list_sort_search.cc:
479         Minor formatting fixes.
480         * testsuite/performance/20_util/allocator/map_mt_find.cc:
481         Likewise.
482
483 2004-04-12  Paolo Carlini <pcarlini@suse.de>
484
485         * config/locale/gnu/numeric_members.cc
486         (numpunct<wchar_t>::_M_initialize_numpunct): No need to wrap
487         in __uselocale, since btowc is called for chars belonging to
488         the basic character set.
489
490 2004-04-09  Paolo Carlini  <pcarlini@suse.de>
491
492         * testsuite/22_locale/messages/members/char/1.cc: Remove junk.
493         * testsuite/22_locale/messages/members/char/2.cc: Ditto.
494         * testsuite/22_locale/messages/members/char/3.cc: Ditto.
495         * testsuite/22_locale/num_get/get/char/1.cc: Ditto.
496         * testsuite/22_locale/num_get/get/char/2.cc: Ditto.
497         * testsuite/22_locale/num_get/get/char/3.cc: Ditto.
498         * testsuite/22_locale/num_get/get/wchar_t/1.cc: Ditto.
499         * testsuite/22_locale/num_get/get/wchar_t/2.cc: Ditto.
500         * testsuite/22_locale/num_get/get/wchar_t/3.cc: Ditto.
501         * testsuite/22_locale/num_put/put/char/1.cc: Ditto.
502         * testsuite/22_locale/num_put/put/char/2.cc: Ditto.
503         * testsuite/22_locale/num_put/put/char/3.cc: Ditto.
504         * testsuite/22_locale/num_put/put/wchar_t/1.cc: Ditto.
505         * testsuite/22_locale/num_put/put/wchar_t/2.cc: Ditto.
506         * testsuite/22_locale/num_put/put/wchar_t/3.cc: Ditto.
507         * testsuite/22_locale/numpunct/members/char/1.cc: Ditto.
508         * testsuite/22_locale/numpunct/members/wchar_t/1.cc: Ditto.
509
510 2004-04-07  Paolo Carlini  <pcarlini@suse.de>
511
512         * config/locale/generic/time_members.cc
513         (__timepunct<char>::_M_initialize_timepunct,
514         __timepunct<wchar_t>::_M_initialize_timepunct): the correct
515         _M_amonth07 in the "C" locale is "Jul" and L"Jul", respectively.
516         * config/locale/gnu/time_members.cc
517         (__timepunct<char>::_M_initialize_timepunct,
518         __timepunct<wchar_t>::_M_initialize_timepunct): Ditto.
519         * testsuite/22_locale/time_get/get_monthname/char/4.cc: New.
520         * testsuite/22_locale/time_get/get_monthname/wchar_t/4.cc: New.
521
522         * testsuite/22_locale/time_get/date_order/char/1.cc: Remove junk.
523         * testsuite/22_locale/time_get/date_order/wchar_t/1.cc: Ditto.
524         * testsuite/22_locale/time_get/get_date/char/1.cc: Ditto.
525         * testsuite/22_locale/time_get/get_date/char/2.cc: Ditto.
526         * testsuite/22_locale/time_get/get_date/wchar_t/1.cc: Ditto.
527         * testsuite/22_locale/time_get/get_date/wchar_t/2.cc: Ditto.
528         * testsuite/22_locale/time_get/get_monthname/char/1.cc: Ditto.
529         * testsuite/22_locale/time_get/get_monthname/char/2.cc: Ditto.
530         * testsuite/22_locale/time_get/get_monthname/wchar_t/1.cc: Ditto.
531         * testsuite/22_locale/time_get/get_monthname/wchar_t/2.cc: Ditto.
532         * testsuite/22_locale/time_get/get_time/char/1.cc: Ditto.
533         * testsuite/22_locale/time_get/get_time/char/2.cc: Ditto.
534         * testsuite/22_locale/time_get/get_time/wchar_t/1.cc: Ditto.
535         * testsuite/22_locale/time_get/get_time/wchar_t/2.cc: Ditto.
536         * testsuite/22_locale/time_get/get_weekday/char/1.cc: Ditto.
537         * testsuite/22_locale/time_get/get_weekday/char/2.cc: Ditto.
538         * testsuite/22_locale/time_get/get_weekday/wchar_t/1.cc: Ditto.
539         * testsuite/22_locale/time_get/get_weekday/wchar_t/2.cc: Ditto.
540         * testsuite/22_locale/time_get/get_year/char/1.cc: Ditto.
541         * testsuite/22_locale/time_get/get_year/wchar_t/1.cc: Ditto.
542         * testsuite/22_locale/time_put/put/char/1.cc: Ditto.
543         * testsuite/22_locale/time_put/put/char/2.cc: Ditto.
544         * testsuite/22_locale/time_put/put/char/3.cc: Ditto.
545         * testsuite/22_locale/time_put/put/char/4.cc: Ditto.
546         * testsuite/22_locale/time_put/put/char/5.cc: Ditto.
547         * testsuite/22_locale/time_put/put/char/6.cc: Ditto.
548         * testsuite/22_locale/time_put/put/char/7.cc: Ditto.
549         * testsuite/22_locale/time_put/put/char/8.cc: Ditto.
550         * testsuite/22_locale/time_put/put/wchar_t/1.cc: Ditto.
551         * testsuite/22_locale/time_put/put/wchar_t/2.cc: Ditto.
552         * testsuite/22_locale/time_put/put/wchar_t/3.cc: Ditto.
553         * testsuite/22_locale/time_put/put/wchar_t/4.cc: Ditto.
554         * testsuite/22_locale/time_put/put/wchar_t/5.cc: Ditto.
555         * testsuite/22_locale/time_put/put/wchar_t/6.cc: Ditto.
556         * testsuite/22_locale/time_put/put/wchar_t/7.cc: Ditto.
557         * testsuite/22_locale/time_put/put/wchar_t/8.cc: Ditto.
558
559         * testsuite/22_locale/time_put/put/char/9780-1.cc: Fix typos.
560
561 2004-04-07  Paolo Carlini  <pcarlini@suse.de>
562
563         * config/locale/gnu/monetary_members.cc
564         (moneypunct<wchar_t>::_M_initialize_moneypunct): Prefer
565         _NL_MONETARY_DECIMAL_POINT_WC, _NL_MONETARY_THOUSANDS_SEP_WC,
566         and __MON_GROUPING to _NL_NUMERIC_DECIMAL_POINT_WC,
567         _NL_NUMERIC_THOUSANDS_SEP_WC, and GROUPING.
568         * config/locale/gnu/numeric_members.cc
569         (numpunct<char>::_M_initialize_numpunct): Prefer DECIMAL_POINT
570         and THOUSANDS_SEP to the deprecated RADIXCHAR and THOUSEP.
571
572 2004-04-06  Benjamin Kosnik  <bkoz@redhat.com>
573
574         Fixups for EDG front end.
575         * include/ext/rope: Instead of non-existent function
576         _Data_allocate, use allocator's allocate. Use this.
577         (namespace _Rope_constants): Move _S_max_rope_depth, and _Tag
578         enumerations from _Rope_RopeRep here.
579         * include/ext/ropeimpl.h: Same.
580         * src/ext-inst.cc (_S_min_len): Fix up definition.
581
582         * config/locale/gnu/ctype_members.cc: Qualify base class members
583         with this.
584         * config/locale/generic/ctype_members.cc: Same.
585         * config/locale/gnu/messages_members.h: Same.
586         * config/locale/generic/messages_members.h: Same.
587         * src/ctype.cc: Same.
588         * include/bits/codecvt.h: Same.
589
590         * include/bits/boost_concept_check.h: Declare.
591         (__error_type_must_be_an_unsigned_integer_type): Remove this.
592         (__error_type_must_be_an_integer_type): Remove this.
593         (__error_type_must_be_a_signed_integer_type): Remove this.
594
595         * config/io/basic_file_stdio.cc (__basic_file::sys_open): Remove cast.
596
597         * libsupc++/eh_alloc.cc (__cxa_free_exception): Add exception
598         specification to definition.
599         (__cxa_allocate_exception): Same.
600         * libsupc++/eh_catch.cc (__cxa_begin_catch): Same.
601         * libsupc++/eh_globals.cc (__cxa_get_globals_fast): Same.
602         (__cxa_get_globals): Same.
603
604         * libsupc++/del_op.cc: Add comment about freestanding.
605
606 2004-04-05  Paolo Carlini  <pcarlini@suse.de>
607
608         * include/ext/mt_allocator.h (__mt_alloc<>::deallocate):
609         The critical section is actually very small, only two assignments.
610
611 2004-04-04  Paolo Carlini  <pcarlini@suse.de>
612             Petur Runolfsson  <peturr02@ru.is>
613
614         * testsuite/performance/27_io/filebuf_sputn_unbuf.cc: New,
615         adapted from libstdc++/11378.
616
617 2004-04-03  Paolo Carlini  <pcarlini@suse.de>
618
619         * include/ext/mt_allocator.h (__mt_alloc<>::allocate): Factor out
620         some duplicated code.
621         (__mt_alloc<>::_Bin_record): Spare the space of _M_free and _M_used
622         in the single threaded case.
623         * testsuite/performance/20_util/allocator/list_sort_search.cc:
624         Reorder and renumber the tests consistently with the other testfiles.
625         * testsuite/performance/20_util/allocator/map_mt_find.cc: Ditto.
626         * testsuite/performance/20_util/allocator/map_thread.cc: Ditto.
627         * testsuite/performance/20_util/allocator/producer_consumer.cc: Ditto.
628
629 2004-04-02  Paolo Carlini  <pcarlini@suse.de>
630
631         * include/ext/mt_allocator.h (__mt_alloc<>::deallocate):
632         Rearrange arithmetic to avoid computing two divisions at
633         each deallocation.
634
635 2004-04-01  Paolo Carlini  <pcarlini@suse.de>
636
637         * include/ext/mt_allocator.h (__mt_alloc<>::_S_initialize):
638         Streamline the second half, wrapping it in a single
639         '#ifdef __GTHREADS if (__gthread_active_p())' and avoiding
640         conditionals inside loops.
641
642 2004-04-01  Paolo Carlini  <pcarlini@suse.de>
643
644         PR libstdc++/14775
645         * acconfig.h: Rename _GLIBCXX_MEM_LIMITS to _GLIBCXX_RES_LIMITS.
646         * acinclude.m4 (GLIBCXX_CHECK_SETRLIMIT): Call
647         GLIBCXX_CHECK_SETRLIMIT_ancilliary for FSIZE too, adjust define
648         to _GLIBCXX_RES_LIMITS.
649         (GLIBCXX_CHECK_SETRLIMIT_ancilliary): Rename HAVE_MEMLIMIT_* to
650         HAVE_LIMIT_*.
651         * testsuite/testsuite_hooks.h: Declare set_file_limit.
652         * testsuite/testsuite_hooks.cc: Define it, using getrlimit
653         and setrlimit(RLIMIT_FSIZE).
654         * testsuite/27_io/fpos/14775.cc: New.
655         * config.h.in: Regenerate.
656         * configure: Likewise.
657
658 2004-03-31  Paolo Carlini  <pcarlini@suse.de>
659
660         * config/locale/generic/c_locale.cc (__convert_to_v(long double&)):
661         In v3 uses of sscanf, the special floating-point numbers INF,
662         INFINITY, etc., cannot occur in input, therefore, if the latter
663         is too large, ERANGE is always stored in errno, no need of finitel.
664
665 2004-03-30  Benjamin Kosnik  <bkoz@redhat.com>
666
667         PR libstdc++/14783
668         * include/bits/stl_tree.h: Adjust initialization list order.
669
670 2004-03-29  Loren J. Rittle  <ljrittle@acm.org>
671
672         * testsuite/thread/pthread7-rope.cc: Update comment to reflect test.
673
674 2004-03-29  Paolo Carlini  <pcarlini@suse.de>
675
676         * testsuite/thread/pthread7-rope.cc: Fix, unpredictably, depending
677         on allocator behavior, the memory pointed by data2 may well be not
678         trashed.
679
680 2004-03-28  Chavdar Botev  <cbotev@yahoo.com>
681
682         PR libstdc++/14245
683         * include/bits/basic_string.tcc
684         (basic_string::basic_string(const basic_string&)): Pass to
685         _Rep::_M_grab the actual allocator of the string being constructed
686         not the default constructed one.
687
688 2004-03-27  Benjamin Kosnik  <bkoz@redhat.com>
689
690         libstdc++ PR/13598
691         * config/locale/ieee_1003.1-2001/codecvt_specializations.h
692         (__enc_traits::_M_destroy): New.
693         (__enc_traits::~__enc_traits): Use it.
694         (__enc_traits::operator=): Use _M_destroy, _M_init.
695         (__enc_traits::__enc_traits): Same.
696
697 2004-03-27  Petur Runolfsson  <peturr02@ru.is>
698
699         * testsuite/ext/enc_filebuf/char/13598.cc: New.
700
701 2004-03-27  Paolo Carlini  <pcarlini@suse.de>
702
703         * include/ext/mt_allocator.h: Uglify consistently names of
704         variables, members and classes; tidy.
705
706 2004-03-27  Dhruv Matani  <dhruvbird@gmx.net>
707
708         * include/ext/mt_allocator.h (__mt_alloc<>::deallocate):
709         Deallocation loop rewrote.
710
711 2004-03-26  Paolo Carlini  <pcarlini@suse.de>
712
713         * include/ext/mt_allocator.h (__mt_alloc<>::allocate,
714         __mt_alloc<>::deallocate): Protect two instances of
715         block->thread_id with __GTHREADS.
716
717 2004-03-25  Gawain Bolton  <gp.bolton@computer.org>
718
719         * include/bits/stl_tree.h (_Rb_tree_impl): Add _Node_allocator
720         default argument in constructors.
721         (_Rb_tree::_M_empty_initialize): Remove.
722
723 2004-03-25  Benjamin Kosnik  <bkoz@redhat.com>
724
725         * testsuite/23_containers/map/operators/1_neg.cc: Adjust line numbers.
726         * testsuite/23_containers/set/operators/1_neg.cc: Same.
727
728 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
729
730         * include/bits/cpp_type_traits.h: Changed __is_pod
731         completely. Now, it does not use any of the previous type_traits
732         to detect the pod types, and it also detects function pointers as
733         POD types.
734
735         * include/bits/stl_tree.h: Introduced a new class _Rb_tree_impl,
736         which encapsulates the internal implementation of an rb_tree. Made
737         the allocator a base class of this class instead of the rb_tree,
738         which was not conforming. This _Rb_tree_impl class is also
739         specialized on whether the _Compare parameter is a POD type or
740         not. If so, then it maintains the comparison function as a data
741         member, otherwise it makes the _Compare parameter a base class of
742         itself. Also, _M_key_compare is now a function instead of a data
743         member, so that the above trick can work properly. Delegated the
744         initialization of the other data members to this newly created
745         class. Also, now other member functions of rb_tree must refer to
746         _M_key_compare as _M_impl._M_key_compare(). The other data members
747         (*) can be referenced to as _M_impl.(*), where
748         (*) includes _M_header, and _M_node_count.
749
750 2004-03-25  Paolo Carlini  <pcarlini@suse.de>
751
752         * include/ext/mt_allocator.h (__mt_alloc<>::tune):
753         Add _M_min_bin, the size in bytes of the smallest bin.
754         (__mt_alloc<>::tune()): Tweak accordingly.
755         (__mt_alloc<>::tune(size_t, ...)): Likewise.
756         (__mt_alloc<>::block_record): Change to a union: members next
757         and thread_id are never used at the same time.
758         (__mt_alloc<>::allocate): Update consistently.
759         (__mt_alloc<>::deallocate): Likewise.
760         (__mt_alloc<>::_S_initialize): Update setups of _S_binmap and
761         _S_bin_size for the configurable _M_min_size.
762
763 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
764
765         * include/bits/stl_list.h: Created a _List_impl class and made it
766         derive from the allocator, instead of the list deriving from the
767         allocator class, which was not conformant. Changed all references
768         from this->_M_node to this->_M_impl._M_node * bits/list.tcc: Same
769         as above (changed all references to the concerned variables).
770
771 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
772
773         * include/bits/stl_deque.h: Created a _Deque_impl class and made
774         it derive from the allocator, instead of the deque deriving from
775         the allocator class, which was not conformant. Changed all
776         references to the _M_start, _M_finish, _M_map, and _M_map_size to
777         _M_impl.*.
778         (_Deque_base<_Tp,_Alloc>::~_Deque_base()): Added this->
779         qualification in 2 places where it was missing.
780         (_Deque_base<_Tp,_Alloc>::_M_initialize_map(size_t)): Same as
781         above.
782         * include/bits/deque.tcc: Same as above (changed all references to
783         the concerned variables).
784
785 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
786
787         * include/bits/stl_vector.h: Created a _Vector_impl class and made
788         it derive from the allocator, instead of the _Vector_base class,
789         deriving from the allocator which was not conformant. Changed all
790         references to the _M_start, _M_finish, and _M_end_of_storage to
791         _M_impl.*.
792         * include/bits/vector.tcc: Same as above (changed all references
793         to the concerned variables).
794
795 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
796
797         * testsuite/23_containers/deque/cons/clear_allocator.cc: New.
798         * testsuite/23_containers/list/cons/clear_allocator.cc: New.
799         * testsuite/23_containers/vector/cons/clear_allocator.cc: New.
800
801 2004-03-24  Dhruv Matani  <dhruvbird@gmx.net>
802
803         * include/ext/malloc_allocator.h: Fixed the construct function to
804         call global placement new instead of assignment. Added a check
805         after the return from malloc to check whether returned pointer is
806         NULL, and if so, throw std::bad_alloc().
807         * include/ext/debug_allocator.h: Added a check in the deallocate
808         function to check whether the user has passed a NULL pointer or
809         not.
810
811 2004-03-24  Benjamin Kosnik  <bkoz@redhat.com>
812
813         * docs/html/20_util/allocator.html: Add bitmap_allocator links.
814
815 2004-03-24  Andreas Schwab  <schwab@suse.de>
816
817         * testsuite/lib/prune.exp (prune_g++_output): Ignore errata
818         warning from IA64 assembler.
819
820 2004-03-24  Dhruv Matani  <dhruvbird@gmx.net>
821
822         * include/ext/bitmap_allocator.h: (_Bit_scan_forward) -> Made this
823         function call __builtin_ctz instead of the while loop.
824         (allocate) -> If condition has __builtin_expect.
825         (deallocate) -> Ditto.
826         Renamed a few left-over variables and typedefs according to the
827         C++STYLE mentioned in the documentation.
828         Protected calls to __gthread* by __gthread_active_p(), whose value
829         is cached in the local variable __threads_active.
830
831 2004-03-24  Felix Yen  <fwy@alumni.brown.edu>
832
833         * testsuite/performance/20_util/allocator/producer_consumer.cc:
834         Use linear algorithm for producer.
835
836 2004-03-24  Paolo Carlini  <pcarlini@suse.de>
837
838         * include/ext/mt_allocator.h (__mt_alloc<>::allocate,
839         __mt_alloc<>::deallocate): Avoid redundant conditionals.
840
841 2004-03-23  Benjamin Kosnik  <bkoz@redhat.com>
842
843         * include/bits/locale_facets.h: Tweaks for 80 column.
844         (__numpunct_cache::_M_cache): Move to locale_facets.tcc.
845         (__moneypunct_cache::_M_cache): Same.
846         (num_get): Don't inherit from __num_base.
847         (num_put): Same.
848         (money_get): Don't inherit from money_base.
849         (money_put): Same.
850         (__timepunct::_M_am_pm_format): New.
851         (time_get::_M_extract_num): Return iterator, use ios_base as argument.
852         (time_get::_M_extract_name): Same.
853         (time_get::_M_extract_via_format): Same.
854         * include/bits/locale_facets.tcc: Tweaks for 80 column.
855         Use _M_getloc instead of getloc.
856         * testsuite/22_locale/money_put/put/char/9780-3.cc: New.
857         * testsuite/22_locale/num_put/put/char/9780-2.cc: New.
858         * testsuite/22_locale/time_put/put/char/9780-1.cc: New.
859
860 2004-03-22  Paolo Carlini  <pcarlini@suse.de>
861
862         * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Add pool_allocator.
863         * configure: Regenerate.
864         * config/allocator/pool_allocator_base.h: New.
865         * include/ext/pool_allocator.h: Convert to a standard-conforming
866         allocator.
867         * src/allocator.cc: Tweak instantiations.
868         * testsuite/performance/20_util/allocator/insert.cc: Add __pool_alloc.
869         * testsuite/performance/20_util/allocator/insert_insert.cc: Ditto.
870         * testsuite/performance/20_util/allocator/list_sort_search.cc: Ditto.
871         * testsuite/performance/20_util/allocator/map_mt_find.cc: Ditto.
872         * testsuite/performance/20_util/allocator/map_thread.cc: Ditto.
873         * testsuite/performance/20_util/allocator/producer_consumer.cc: Ditto.
874
875 2004-03-22  Hans-Peter Nilsson  <hp@axis.com>
876
877         * config/cpu/cris/atomicity.h (__atomic_add): Remove "static
878         inline" and attribute-unused.  Qualify parameter __mem with
879         "volatile".
880         (__exchange_and_add): Ditto.  Add back memory clobber to asm.
881
882 2004-03-20  Paolo Carlini  <pcarlini@suse.de>
883
884         * testsuite/27_io/basic_istream/extractors_arithmetic/char/2.cc:
885         Remove junk.
886         * testsuite/27_io/basic_istream/extractors_arithmetic/char/3.cc:
887         Likewise.
888         * testsuite/27_io/basic_istream/extractors_arithmetic/char/6.cc:
889         Likewise.
890         * testsuite/27_io/basic_istream/extractors_arithmetic/char/7.cc:
891         Likewise.
892         * testsuite/27_io/basic_istream/extractors_arithmetic/char/8.cc:
893         Likewise.
894         * testsuite/27_io/basic_istream/extractors_arithmetic/char/9.cc:
895         Likewise.
896         * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
897         Likewise.
898         * testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc:
899         Likewise.
900         * testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
901         Likewise.
902         * testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc:
903         Likewise.
904
905 2004-03-20  Paolo Carlini  <pcarlini@suse.de>
906
907         * include/std/std_valarray.h: Document DR389 [Ready].
908         * docs/html/ext/howto.html: Add an entry for DR389.
909
910 2004-03-19  Michael Eager  <eager@mvista.com>
911
912         * config/cpu/mips/atomicity.h:  Prevent reg loads between LL and
913         SC instructions.
914
915 2004-03-19  Paolo Carlini  <pcarlini@suse.de>
916
917         * testsuite/22_locale/num_get/get/char/11.cc: Remove redundant
918         static_cast-s.
919         * testsuite/22_locale/num_get/get/char/12.cc: Likewise.
920         * testsuite/22_locale/num_get/get/char/13.cc: Likewise.
921         * testsuite/22_locale/num_get/get/char/14.cc: Likewise.
922         * testsuite/22_locale/num_get/get/char/15.cc: Likewise.
923         * testsuite/22_locale/num_get/get/wchar_t/11.cc: Likewise.
924         * testsuite/22_locale/num_get/get/wchar_t/12.cc: Likewise.
925         * testsuite/22_locale/num_get/get/wchar_t/13.cc: Likewise.
926         * testsuite/22_locale/num_get/get/wchar_t/14.cc: Likewise.
927         * testsuite/22_locale/num_get/get/wchar_t/15.cc: Likewise.
928
929 2004-03-19  Paolo Carlini  <pcarlini@suse.de>
930             Petur Runolfsson  <peturr02@ru.is>
931
932         PR libstdc++/12077
933         * include/ext/stdio_sync_filebuf.h (showmanyc): Remove, there's
934         no way to find out the conversion used by the underlying FILE*.
935         * testsuite/ext/stdio_sync_filebuf/wchar_t/12077.cc: New.
936         * testsuite/27_io/objects/char/9.cc: Tweak.
937
938 2004-03-19  Paolo Carlini  <pcarlini@suse.de>
939
940         PR libstdc++/14648
941         * include/ext/ropeimpl.h (rope<>::_S_apply_to_pieces): Fix
942         memory allocation/deallocation calls.
943         * testsuite/ext/14648.cc: New.
944
945 2004-03-19  Peter Schmid  <schmid@snake.iap.physik.tu-darmstadt.de>
946
947         PR libstdc++/14647
948         * include/backward/bvector.h (bit_vector): Allocator is in std
949         namespace.
950
951 2004-03-19  Phil Edwards  <phil@codesourcery.com>
952
953         * acinclude.m4 (GLIBCXX_CHECK_WCHAR_T_SUPPORT):  Set LIBICONV,
954         not libiconv.  SUBST this variable as well.
955         * testsuite/Makefile.am (site.exp):  New target, based on that
956         created by automake.  Also set libiconv.
957
958         * configure, Makefile.in, include/Makefile.in, libmath/Makefile.in,
959         libsupc++/Makefile.in, po/Makefile.in, src/Makefile.in,
960         testsuite/Makefile.in:  Regenerate.
961
962 2004-03-16  Benjamin Kosnik  <bkoz@redhat.com>
963
964         * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Default setting is
965         new_allocator for all hosts.
966         * configure: Regenerate.
967
968 2004-03-16  Paolo Carlini  <pcarlini@suse.de>
969
970         * testsuite/22_locale/num_put/put/char/4.cc: Fix for 64-bit pointers.
971         * testsuite/22_locale/num_put/put/wchar_t/4.cc: Likewise.
972
973 2004-03-15  Paolo Carlini  <pcarlini@suse.de>
974
975         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
976         Adjust the logic underlying the parsing of symbol to deal
977         correctly with an optional sign component (i.e., when either
978         negative_sign or positive_sign is empty)
979         * testsuite/22_locale/money_get/get/char/19.cc: New.
980         * testsuite/22_locale/money_get/get/wchar_t/19.cc: New.
981
982 2004-03-15  Paolo Carlini  <pcarlini@suse.de>
983
984         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
985         Do not accept an incomplete currency symbol.
986         * testsuite/22_locale/money_get/get/char/18.cc: New.
987         * testsuite/22_locale/money_get/get/wchar_t/18.cc: New.
988
989 2004-03-13  Benjamin Kosnik  <bkoz@redhat.com>
990
991         * config/allocator: New.
992         * config/allocator/bitmap_allocator_base.h: New.
993         * config/allocator/malloc_allocator_base.h: New.
994         * config/allocator/mt_allocator_base.h: New.
995         * config/allocator/new_allocator_base.h: New.
996         * include/bits/allocator.h: Include c++allocator.h.
997         * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): New.
998         * aclocal.m4: Regenerate.
999         * configure.ac: Use GLIBCXX_ENABLE_ALLOCATOR.
1000         * configure: Regenerate.
1001         * include/Makefile.am (host_headers_extra): Add c++allocator.h.
1002         * include/Makefile.in: Regenerate.
1003         * docs/html/configopts.html: Add enable-libstdcxx-allocator.
1004
1005 2004-03-12  Benjamin Kosnik  <bkoz@redhat.com>
1006
1007         * include/bits/allocator.h: Revert.
1008
1009 2004-03-12  Paolo Carlini  <pcarlini@suse.de>
1010
1011         * docs/html/ext/howto.html: Add entry for DR 253 [Ready].
1012         * include/bits/gslice_array.h: Add comment about DR 253.
1013         * include/bits/indirect_array.h: Likewise.
1014         * include/bits/mask_array.h: Likewise.
1015         * include/bits/slice_array.h: Likewise.
1016
1017 2004-03-12  Benjamin Kosnik  <bkoz@redhat.com>
1018
1019         * testsuite/20_util/allocator/14176.cc: New.
1020         * include/ext/mt_allocator.h: Formatting fixes.
1021
1022 2004-03-11  Dhruv Matani  <dhruvbird@HotPOP.com>
1023
1024         * include/Makefile.am (ext_headers): Add
1025         ${ext_srcdir}/bitmap_allocator.h .
1026         * include/Makefile.in: Regenerate.
1027         * docs/html/ext/ballocator_doc.txt: New file.
1028         * include/ext/bitmap_allocator.h: New file.
1029         * testsuite/performance/20_util/allocator/list_sort_search.cc: Add
1030         test.
1031         * testsuite/performance/20_util/allocator/map_mt_find.cc: Likewise.
1032         * testsuite/performance/20_util/allocator/producer_consumer.cc: Add
1033         test for the bitmap_allocator<>.
1034         * testsuite/performance/20_util/allocator/insert.cc: Likewise.
1035         * testsuite/performance/20_util/allocator/insert_insert.cc: Likewise.
1036         * testsuite/performance/20_util/allocator/map_thread.cc: Likewise.
1037
1038 2004-03-11  Paolo Carlini  <pcarlini@suse.de>
1039
1040         * include/std/std_complex.h (pow(const complex&, const _Tp&),
1041         pow(const _Tp&, const complex&), pow(const complex&,
1042         const complex&)): Fully qualify with std:: a few calls.
1043         * testsuite/26_numerics/complex/13450.cc: Minor tweak.
1044
1045 2004-03-11  Steven Bosscher  <stevenb@suse.de>
1046
1047         PR libstdc++/11706
1048         * include/c_std/cmath.tcc (__cmath_power): Define inline.
1049
1050 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
1051
1052         * configure.ac: Bump AC_PREREQ to 2.59.
1053
1054 2004-03-10  Paolo Carlini  <pcarlini@suse.de>
1055
1056         * testsuite/26_numerics/valarray_subset_assignment.cc: Fix typos.
1057
1058 2004-03-10  Paul Kienzle  <pkienzle@nist.gov>
1059             Paolo Carlini  <pcarlini@suse.de>
1060
1061         PR libstdc++/13450
1062         * include/std/std_complex.h (pow(const complex&, const _Tp&),
1063         pow(const _Tp&, const complex&)): Use cmath pow only when safe.
1064         * testsuite/26_numerics/complex/13450.cc: New.
1065
1066         * testsuite/26_numerics/cmath/overloads.C: Rename to overloads.cc.
1067         * testsuite/26_numerics/complex/pow.C: Rename to pow.cc and fix.
1068
1069 2004-03-10  Jerry Quinn  <jlquinn@optonline.net>
1070
1071         PR libstdc++/3247
1072         * include/bits/gslice_array.h (gslice_array()): Make public.
1073         (operator=(gslice_array)): Make public.  Implement.
1074         * include/bits/indirect_array.h (indirect_array()): Make public.
1075         * include/bits/mask_array.h (mask_array()): Make public.
1076         (operator=(mask_array)): Make public.  Implement.
1077         * include/bits/valarray_array.tcc (__valarray_copy):
1078         Comment.  Add versions for gslice_array and mask_array.
1079         * testsuite/26_numerics/valarray_subset_assignment.cc:  New test.
1080
1081 2004-03-09  Benjamin Kosnik  <bkoz@redhat.com>
1082
1083         * testsuite/23_containers/deque/modifiers/swap.cc: Add in bits for
1084         non-weak systems.
1085         * testsuite/23_containers/vector/modifiers/swap.cc: Same.
1086         * testsuite/23_containers/set/modifiers/swap.cc: Same.
1087         * testsuite/23_containers/multiset/modifiers/swap.cc: Same.
1088         * testsuite/23_containers/multimap/modifiers/swap.cc: Same.
1089         * testsuite/23_containers/map/modifiers/swap.cc: Same.
1090         * testsuite/23_containers/list/modifiers/swap.cc: Same.
1091
1092         * testsuite/22_locale/locale/cons/12658_thread.cc: Catch exceptions.
1093
1094 2004-03-08  Benjamin Kosnik  <bkoz@redhat.com>
1095
1096         PR c++/13658
1097         * testsuite/23_containers/deque/modifiers/swap.cc: New.
1098         * testsuite/23_containers/list/modifiers/swap.cc: New.
1099         * testsuite/23_containers/map/modifiers/swap.cc: New.
1100         * testsuite/23_containers/multimap/modifiers/swap.cc: New.
1101         * testsuite/23_containers/multiset/modifiers/swap.cc: New.
1102         * testsuite/23_containers/set/modifiers/swap.cc: New.
1103         * testsuite/23_containers/vector/modifiers/swap.cc: New.
1104
1105 2004-03-08  Petur Runolfsson  <peturr02@ru.is>
1106
1107         PR libstdc++/12658
1108         * testsuite/22_locale/locale/cons/12658_thread.cc: New.
1109
1110 2004-03-08  Paolo Carlini  <pcarlini@suse.de>
1111
1112         * docs/html/ext/howto.html: Add entry for DR 103 [WP].
1113         * include/bits/stl_multiset.h: Add comment about DR 103.
1114         * include/bits/stl_set.h: Likewise.
1115
1116 2004-03-08  Paolo Carlini  <pcarlini@suse.de>
1117
1118         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
1119         The value _space_ indicates that at least one space is required
1120         at that position.
1121         * testsuite/22_locale/money_get/get/char/17.cc: New.
1122         * testsuite/22_locale/money_get/get/wchar_t/17.cc: New.
1123
1124         * testsuite/22_locale/money_get/get/char/7.cc: Minor tweaks.
1125         * testsuite/22_locale/money_get/get/wchar_t/7.cc: Likewise.
1126
1127         * include/bits/locale_facets.tcc (money_get<>::do_get(long_double&)):
1128         Remove redundant conditional on __str.size().
1129
1130 2004-03-08  Benjamin Kosnik  <bkoz@redhat.com>
1131
1132         * include/bits/allocator.h: Switch defaults to mt_alloc.
1133
1134 2004-03-06  Benjamin Kosnik  <bkoz@redhat.com>
1135
1136         * include/ext/mt_allocator.h (_S_initialize): If
1137         !__GTHREAD_MUTEX_INIT, then initialize _S_thread_freelist_mutex.
1138
1139 2004-03-06  Benjamin Kosnik  <bkoz@redhat.com>
1140
1141         PR libstdc++/12658
1142         * src/locale_init.cc (locale::locale): Lock critical regions with
1143         external mutexes.
1144         (locale::global): Same.
1145         * include/bits/concurrence.h (__glibcxx_mutex_define_initialized):
1146         Add in once bits for cases without __GTHREAD_MUTEX_INIT.
1147         (__glibcxx_mutex_lock): Same.
1148
1149         * config/cpu/generic/atomicity.h: Remove
1150         _GLIBCXX_NEED_GENERIC_MUTEX, use concurrence.h.
1151         * src/misc-inst.cc: Move all locking bits out of this file.
1152
1153         * config/os/hpux/os_defines.h: Remove _GLIBCXX_INST_ATOMICITY_LOCK.
1154         * src/misc-inst.cc: Same.
1155         * config/cpu/hppa/atomicity.h: Same.
1156
1157         * config/linker-map.gnu: Remove types in the signature of atomic
1158         exports, as they may vary.
1159
1160 2004-03-06  Paolo Carlini  <pcarlini@suse.de>
1161
1162         * include/bits/locale_facets.tcc: Tweak the comment preceding
1163         has_facet: doesn't throw.
1164
1165 2004-03-06  Paolo Carlini  <pcarlini@suse.de>
1166
1167         * testsuite/22_locale/money_get/get/char/1.cc: Clean up.
1168         * testsuite/22_locale/money_get/get/char/2.cc: Likewise.
1169         * testsuite/22_locale/money_get/get/char/3.cc: Likewise.
1170         * testsuite/22_locale/money_get/get/char/4.cc: Likewise.
1171         * testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise.
1172         * testsuite/22_locale/money_get/get/wchar_t/2.cc: Likewise.
1173         * testsuite/22_locale/money_get/get/wchar_t/3.cc: Likewise.
1174         * testsuite/22_locale/money_get/get/wchar_t/4.cc: Likewise.
1175
1176 2004-03-06  Paolo Carlini  <pcarlini@suse.de>
1177
1178         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
1179         num_get<>::_M_extract_int, num_get<>::do_get(bool&),
1180         __pad<>::_S_pad): Prefer plain operator== to traits::eq().
1181         * testsuite/testsuite_character.h (struct __gnu_test::character):
1182         Provide operator==.
1183         * testsuite/testsuite_hooks.h (struct __gnu_test::pod_char):
1184         Likewise.
1185
1186 2004-03-05  Paolo Carlini  <pcarlini@suse.de>
1187
1188         * testsuite/27_io/fpos/14320-2.cc: Remove xfail.
1189
1190 2004-03-04  Benjamin Kosnik  <bkoz@redhat.com>
1191
1192         * testsuite/23_containers/multiset/insert/1.cc: Test result string.
1193
1194         * testsuite/23_containers/bitset/invalidation/1.cc: Main always
1195         returns 0.
1196         * testsuite/23_containers/deque/invalidation/4.cc: Same.
1197         * testsuite/23_containers/list/invalidation/1.cc: Same.
1198         * testsuite/23_containers/list/invalidation/2.cc: Same.
1199         * testsuite/23_containers/list/invalidation/3.cc: Same.
1200         * testsuite/23_containers/list/invalidation/4.cc: Same.
1201         * testsuite/23_containers/map/invalidation/2.cc: Same.
1202         * testsuite/23_containers/multimap/invalidation/1.cc: Same.
1203         * testsuite/23_containers/multimap/invalidation/2.cc: Same.
1204         * testsuite/23_containers/multiset/invalidation/1.cc: Same.
1205         * testsuite/23_containers/multiset/invalidation/2.cc: Same.
1206         * testsuite/23_containers/set/invalidation/1.cc: Same.
1207         * testsuite/23_containers/set/invalidation/2.cc: Same.
1208         * testsuite/23_containers/vector/invalidation/1.cc: Same.
1209         * testsuite/23_containers/vector/invalidation/2.cc: Same.
1210         * testsuite/23_containers/vector/invalidation/3.cc: Same.
1211         * testsuite/23_containers/vector/invalidation/4.cc: Same.
1212
1213 2004-03-04  Paolo Carlini  <pcarlini@suse.de>
1214
1215         * scripts/testsuite_flags.in: Add "-D_GLIBCXX_ASSERT" to
1216         CXXFLAGS_save.
1217         * testsuite/lib/libstdc++.exp: Don't add it conditionally to
1218         DEFAULT_CXXFLAGS.
1219         * testsuite/18_support/numeric_limits.cc: Remove "-D_GLIBCXX_ASSERT"
1220         from the dg-options.
1221         * testsuite/23_containers/vector/invalidation/1.cc: Likewise.
1222         * testsuite/23_containers/vector/invalidation/2.cc: Likewise.
1223         * testsuite/23_containers/vector/invalidation/3.cc: Likewise.
1224         * testsuite/23_containers/vector/invalidation/4.cc: Likewise.
1225         * testsuite/23_containers/vector/resize/1.cc: Likewise.
1226         * testsuite/26_numerics/complex_value.cc: Likewise.
1227         * testsuite/27_io/ios_base/storage/1.cc: Likewise.
1228         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
1229         * testsuite/27_io/ios_base/storage/3.cc: Likewise.
1230         * testsuite/27_io/manipulators/standard/char/2.cc: Likewise.
1231         * testsuite/27_io/objects/char/5.cc: Likewise.
1232         * testsuite/27_io/objects/wchar_t/5.cc: Likewise.
1233         * testsuite/backward/11460.cc: Likewise.
1234         * testsuite/thread/pthread7-rope.cc: Likewise.
1235
1236         * testsuite/21_strings/basic_string/compare/char/1.cc: Add
1237         missing test variable.
1238         * testsuite/21_strings/basic_string/compare/wchar_t/1.cc: Add
1239         missing test variable.
1240
1241 2004-03-04  Benjamin Kosnik  <bkoz@redhat.com>
1242
1243         * testsuite/20_util/allocator/1.cc: Provide explicit
1244         instantiations for non-weak systems.
1245         * testsuite/20_util/binders.cc: Same.
1246         * testsuite/20_util/allocator/8230.cc: Same.
1247         * testsuite/20_util/allocator/10378.cc: Same.
1248         * testsuite/22_locale/ctype/is/wchar_t/2.cc: Same.
1249         * testsuite/22_locale/ctype/is/char/2.cc: Same.
1250         * testsuite/thread/pthread7-rope.cc: Same.
1251         * testsuite/thread/pthread6.cc: Same.
1252         * testsuite/thread/pthread5.cc: Same.
1253         * testsuite/thread/pthread4.cc: Same.
1254         * testsuite/thread/pthread1.cc: Same.
1255         * testsuite/ext/rope.cc: Same.
1256         * testsuite/ext/hash_set.cc: Same.
1257         * testsuite/ext/hash_map.cc: Same.
1258         * testsuite/ext/concept_checks.cc: Same.
1259         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc: Same.
1260         * testsuite/25_algorithms/unique/2.cc: Same.
1261         * testsuite/25_algorithms/unique/1.cc: Same.
1262         * testsuite/25_algorithms/rotate.cc: Same.
1263         * testsuite/25_algorithms/min_max.cc: Same.
1264         * testsuite/25_algorithms/equal.cc: Same.
1265         * testsuite/24_iterators/rel_ops.cc: Same.
1266         * testsuite/24_iterators/iterator.cc: Same.
1267         * testsuite/24_iterators/insert_iterator.cc: Same.
1268         * testsuite/24_iterators/front_insert_iterator.cc: Same.
1269         * testsuite/24_iterators/back_insert_iterator.cc: Same.
1270         * testsuite/23_containers/vector/resize/1.cc: Same.
1271         * testsuite/23_containers/vector/modifiers/2.cc: Same.
1272         * testsuite/23_containers/vector/modifiers/1.cc: Same.
1273         * testsuite/23_containers/vector/invalidation/4.cc: Same.
1274         * testsuite/23_containers/vector/invalidation/3.cc: Same.
1275         * testsuite/23_containers/vector/invalidation/2.cc: Same.
1276         * testsuite/23_containers/vector/invalidation/1.cc: Same.
1277         * testsuite/23_containers/vector/element_access/1.cc: Same.
1278         * testsuite/23_containers/vector/cons/6513.cc: Same.
1279         * testsuite/23_containers/vector/cons/3.cc: Same.
1280         * testsuite/23_containers/vector/cons/2.cc: Same.
1281         * testsuite/23_containers/vector/cons/1.cc: Same.
1282         * testsuite/23_containers/vector/capacity/8230.cc: Same.
1283         * testsuite/23_containers/vector/capacity/1.cc: Same.
1284         * testsuite/23_containers/vector/bool/6886.cc: Same.
1285         * testsuite/23_containers/stack/members/7158.cc: Same.
1286         * testsuite/23_containers/set/invalidation/2.cc: Same.
1287         * testsuite/23_containers/set/invalidation/1.cc: Same.
1288         * testsuite/23_containers/queue/members/7157.cc: Same.
1289         * testsuite/23_containers/priority_queue/members/7161.cc: Same.
1290         * testsuite/23_containers/multiset/invalidation/2.cc: Same.
1291         * testsuite/23_containers/multiset/invalidation/2.cc: Same.
1292         * testsuite/23_containers/multiset/insert/1.cc: Same.
1293         * testsuite/23_containers/multimap/invalidation/2.cc: Same.
1294         * testsuite/23_containers/multimap/invalidation/2.cc: Same.
1295         * testsuite/23_containers/map/operators/1.cc: Same.
1296         * testsuite/23_containers/map/invalidation/2.cc: Same.
1297         * testsuite/23_containers/map/invalidation/1.cc: Same.
1298         * testsuite/23_containers/map/insert/1.cc: Same.
1299         * testsuite/23_containers/list/operators/4.cc: Same.
1300         * testsuite/23_containers/list/operators/3.cc: Same.
1301         * testsuite/23_containers/list/operators/2.cc: Same.
1302         * testsuite/23_containers/list/operators/1.cc: Same.
1303         * testsuite/23_containers/list/modifiers/3.cc: Same.
1304         * testsuite/23_containers/list/modifiers/2.cc: Same.
1305         * testsuite/23_containers/list/modifiers/1.cc: Same.
1306         * testsuite/23_containers/list/invalidation/4.cc: Same.
1307         * testsuite/23_containers/list/invalidation/3.cc: Same.
1308         * testsuite/23_containers/list/invalidation/2.cc: Same.
1309         * testsuite/23_containers/list/invalidation/1.cc: Same.
1310         * testsuite/23_containers/list/cons/9.cc: Same.
1311         * testsuite/23_containers/list/cons/8.cc: Same.
1312         * testsuite/23_containers/list/cons/7.cc: Same.
1313         * testsuite/23_containers/list/cons/6.cc: Same.
1314         * testsuite/23_containers/list/cons/5.cc: Same.
1315         * testsuite/23_containers/list/cons/4.cc: Same.
1316         * testsuite/23_containers/list/cons/3.cc: Same.
1317         * testsuite/23_containers/list/cons/2.cc: Same.
1318         * testsuite/23_containers/list/cons/1.cc: Same.
1319         * testsuite/23_containers/list/capacity/1.cc: Same.
1320         * testsuite/23_containers/deque/operators/1.cc: Same.
1321         * testsuite/23_containers/deque/invalidation/4.cc: Same.
1322         * testsuite/23_containers/deque/invalidation/3.cc: Same.
1323         * testsuite/23_containers/deque/invalidation/2.cc: Same.
1324         * testsuite/23_containers/deque/invalidation/1.cc: Same.
1325         * testsuite/23_containers/deque/cons/2.cc: Same.
1326         * testsuite/23_containers/deque/cons/1.cc: Same.
1327
1328         * src/allocator.cc: Add char, wchar_t instantiations
1329         to match extern template declarations in memory.h.
1330
1331 2004-03-03  Paolo Carlini  <pcarlini@suse.de>
1332
1333         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
1334         Fix warning regression.
1335
1336 2004-03-03  Paolo Carlini  <pcarlini@suse.de>
1337
1338         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
1339         Deal properly with empty __digits and negative frac_digits,
1340         clean-up a bit.
1341
1342 2004-03-03  Jonathan Wakely  <redi@gcc.gnu.org>
1343
1344         * docs/html/documentation.html: Regenerate.
1345
1346 2004-03-02  Paolo Carlini  <pcarlini@suse.de>
1347
1348         PR libstdc++/14320
1349         * include/bits/postypes.h (class streamoff): Remove, now
1350         streamoff is just typedef a 64 bit signed integer type.
1351         (class fpos): Tweak consistently.
1352         * testsuite/27_io/fpos/14320-1.cc: New.
1353         * testsuite/27_io/fpos/14320-2.cc: New.
1354         * testsuite/27_io/fpos/14320-3.cc: New.
1355         * testsuite/27_io/fpos/14320-4.cc: New.
1356         * testsuite/27_io/fpos/14320-5.cc: New.
1357         * testsuite/27_io/fpos/mbstate_t/4_neg.cc: xfail for now.
1358
1359 2004-03-02  Paolo Carlini  <pcarlini@suse.de>
1360
1361         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
1362         Reorganize a bit the main parsing loop, thus early detecting
1363         an empty value component.
1364         * testsuite/22_locale/money_get/get/char/16.cc: New.
1365         * testsuite/22_locale/money_get/get/wchar_t/16.cc: New.
1366
1367 2004-03-02  Benjamin Kosnik  <bkoz@redhat.com>
1368
1369         Support automake 1.8.2
1370         * configure.ac (AM_INIT_AUTOMAKE): Add -Wno-override.
1371         * po/Makefile.am (EXTRA_DIST): New.
1372         * po/Makefile.in: Regenerate.
1373         * Makefile.in: Same.
1374         * include/Makefile.in: Same.
1375         * libmath/Makefile.in: Same.
1376         * libsupc++/Makefile.in: Same.
1377         * src/Makefile.in: Same.
1378         * testsuite/Makefile.in: Same.
1379
1380         * include/Makefile.am (${host_builddir}/gthr-posix.h): Use
1381         __GXX_WEAK__ instead of SUPPORTS_WEAK.
1382         (${host_builddir}/gthr-default.h): Same.
1383         (${host_builddir}/gthr.h): Same.
1384         * acinclude.m4 (GLIBCXX_ENABLE_THREAD): Remove
1385         _GLIBCXX_SUPPORTS_WEAK, as this behavior can be modified via
1386         -fno-weak.
1387         * aclocal.m4: Regenerate.
1388         * acconfig.h: Remove _GLIBCXX_SUPPORTS_WEAK.
1389         * config.h.in: Regenerate.
1390         * configure: Same.
1391
1392 2004-03-01  Benjamin Kosnik  <bkoz@redhat.com>
1393
1394         Support autoconf 2.59
1395         * acinclude.m4: Quote correctly.
1396         * aclocal.m4: Regenerate.
1397         * linkage.m4: Same.
1398
1399 2004-03-01  Benjamin Kosnik  <bkoz@redhat.com>
1400
1401         * docs/html/test.html: Add multilib RUNTESTFLAGS example.
1402
1403         * docs/html/18_support/howto.html: Add bit about writing to
1404         stderr, mostly by Zack.
1405
1406 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
1407
1408         * include/bits/locale_facets.tcc (money_get<>::_M_extract,
1409         money_get<>::do_get(string_type&)): ... and two more.
1410
1411 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
1412
1413         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
1414         Fix thinkos in the switch from string_type& to string& as last
1415         argument.
1416
1417 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
1418
1419         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float):
1420         Also when parsing exponent sign, first look for thousands_sep
1421         and decimal_point; tweak a bit.
1422         * testsuite/22_locale/num_get/get/char/15.cc: New.
1423         * testsuite/22_locale/num_get/get/wchar_t/15.cc: New.
1424
1425         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
1426         num_get<>::_M_extract_int): Reorder some conditionals.
1427
1428 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
1429
1430         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
1431         Consistently with numpunct, enforce the requirements in
1432         22.2.6.3, p3 for the thousands separators; tweak a bit.
1433         * testsuite/22_locale/money_get/get/char/15.cc: New.
1434         * testsuite/22_locale/money_get/get/wchar_t/15.cc: New.
1435
1436 2004-03-01  David Billinghurst <David.Billinghurst@riotinto.com>
1437
1438         * testsuite/lib/libstdc++.exp (v3-list-tests): Use
1439         testsuite_files from correct multilib blddir when running
1440         testsuite.
1441
1442 2004-02-29  Phil Edwards  <phil@codesourcery.com>
1443
1444         * testsuite/Makefile.am (check-abi, check-abi-verbose):  Copy
1445         the summary file to the logfile.
1446         * testsuite/Makefile.in:  Regenerate.
1447
1448 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1449
1450         * config/cpu/hppa/atomicity.h (__atomic_add): Make first argument
1451         volatile.
1452         * config/os/hpux/os_defines.h (_GLIBCXX_INST_ATOMICITY_LOCK): Use
1453         __GXX_WEAK__ instead of _GLIBCXX_SUPPORTS_WEAK.
1454
1455 2004-02-28  Paolo Carlini  <pcarlini@suse.de>
1456
1457         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float):
1458         According to 22.2.3.1, p2, 'units' may be followed by 'e' with
1459         no 'decimal-point' in the middle: in this case too we must fix
1460         up __found_grouping; slightly tweak.
1461         * testsuite/22_locale/num_get/get/char/14.cc: New.
1462         * testsuite/22_locale/num_get/get/wchar_t/14.cc: New.
1463
1464 2004-02-27  Eric Christopher  <echristo@redhat.com>
1465             Phil Edwards  <phil@codesourcery.com>
1466
1467         * testsuite/22_locale/collate/compare/wchar_t/2.cc,
1468         testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc,
1469         testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc,
1470         testsuite/22_locale/collate/hash/wchar_t/2.cc,
1471         testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc,
1472         testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc,
1473         testsuite/22_locale/collate/transform/wchar_t/2.cc,
1474         testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc,
1475         testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc:
1476         Use dg-require-iconv.
1477         * testsuite/lib/libstdc++.exp:  Load target-supports.exp.
1478
1479 2004-02-27  Phil Edwards  <phil@codesourcery.com>
1480             Eric Christopher  <echristo@redhat.com>
1481
1482         * testsuite/config/default.exp:  Update with comments.
1483         (${tool}_target_compile):  New wrapper routine.
1484         * testsuite/lib/dg-options.exp:  New file, with dg-require-iconv.
1485         * testsuite/lib/libstdc++.exp:  Update with comments and cosmetic
1486         fixes.
1487         (load_gcc_lib, v3track):  New routines.
1488         (v3-init):  Rename to libstdc++_init.
1489         * testsuite/libstdc++-dg/normal.exp:  No longer call v3-init.
1490         Move DEFAULT_CXXFLAGS handling into libstdc++_init.
1491
1492 2004-02-27  Benjamin Kosnik  <bkoz@redhat.com>
1493
1494         * config/cpu/hppa/atomicity.h: Include c++config.h to get defines.
1495
1496         * src/misc-inst.cc (_S_atomicity_lock): Move to __gnu_cxx.
1497
1498         * config/os/irix/irix5.2/atomicity.h: Merge..
1499         * config/os/irix/irix6.5/atomicity.h: Merge..
1500         * config/os/irix/atomicity.h: ...into this.
1501         * config/os/irix/atomic_word.h: New.
1502         * configure.host: Set atomic_word_dir for irix.
1503
1504         * hppa/atomicity.h: Change __Atomicity_lock to _Atomicity_lock.
1505         * i386/atomicity.h: Same.
1506         * m68k/atomicity.h: Same.
1507         * sparc/atomicity.h: Same.
1508
1509 2004-02-27  David Edelsohn  <edelsohn@gnu.org>
1510
1511         * config/os/aix/atomicity.h: Use __gnu_cxx namespace. Remove
1512         static, and inline keywords.
1513
1514 2004-02-27  Paolo Carlini  <pcarlini@suse.de>
1515
1516         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
1517         num_get<>::_M_extract_int, money_get<>::_M_extract): If appropriate,
1518         call reserve on the __tmp_gruping string.
1519         (num_get<>::_M_extract_float): Don't append unnecessarily a
1520         char() to the returned string.
1521         * include/bits/locale_facets.tcc: Trivial reformattings.
1522
1523 2004-02-27  Paolo Carlini  <pcarlini@suse.de>
1524
1525         * include/bits/locale_facets.h (money_get<>::_M_extract):
1526         Change signature: now takes a plain string&.
1527         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
1528         Update consistently the definition; use the moneypunct cache
1529         to parse the value; use swap to change __units.
1530         (money_get<>::do_get(long double&)): Update call of _M_extract,
1531         avoid ctype::narrow, not correct wrt the standard.
1532         (money_get<>::do_get(string_type&)): Likewise, update call
1533         of _M_extract, use ctype::widen.
1534         * src/locale-inst.cc: Tweak instantiations of _M_extract.
1535
1536 2004-02-26  Ian Lance Taylor  <ian@wasabisystems.com>
1537
1538         * testsuite/demangle/abi_examples/01.cc: Expect error -2.
1539         * testsuite/demangle/abi_examples/02.cc: Likewise.
1540         * testsuite/demangle/regression/cw-11.cc: Likewise.
1541         * testsuite/demangle/regression/cw-16.cc: Change two expected
1542         results to match libiberty demangler output.
1543
1544 2004-02-26  Benjamin Kosnik  <bkoz@redhat.com>
1545
1546         PR libstdc++/10246
1547         * libsupc++/Makefile.am: Use libiberty demangler.
1548         (c_sources): Add cp-demangle.c.
1549         * libsupc++/Makefile.in: Regenerate.
1550         * src/Makefile.am (sources): Remove demangle.cc.
1551         * src/Makefile.in: Regenerate.
1552         * include/Makefile.am (bits_headers): Move demangle.h.
1553         (ext_headers): ...here.
1554         * include/Makefile.in: Regenerate.
1555         * include/bits/demangle.h: Move...
1556         * include/ext/demangle.h: ...here.
1557         * src/demangle.cc: Remove.
1558
1559 2004-02-26  Benjamin Kosnik  <bkoz@redhat.com>
1560
1561         * include/bits/demangle.h: Add type template parameter to all
1562         templates with just an Allocator template parameter.
1563
1564 2004-02-25  Benjamin Kosnik  <bkoz@redhat.com>
1565
1566         * include/bits/atomicity.h: New, forward declarations for __atomic_add
1567         and __exchange_and_add.
1568         * config/cpu/generic/atomic_word.h: New, typdef for atomic word.
1569         * config/cpu/cris/atomic_word.h: Same.
1570         * config/cpu/sparc/atomic_word.h: Same.
1571         * include/bits/ios_base.h (_Callback_list::_M_remove_reference):
1572         Qualifiy with __gnu_cxx.
1573         (_Callback_list::_M_add_reference): Same.
1574         * include/bits/locale_classes.h (locale::facet::_M_add_reference): Add.
1575         (locale::facet::_M_remove_reference): Same.
1576         (locale::_Impl::_M_add_reference): Add.
1577         (locale::_Impl::_M_remove_reference): Same.
1578         * include/bits/basic_string.h (basic_string::_Rep::_M_refcopy): Same.
1579         (basic_string::_Rep::_M_dispose): Same.
1580         * src/ios.cc (ios_base::xalloc): Same.
1581         * src/ios_init.cc (ios_base::Init::Init): Same.
1582         (ios_base::Init::~Init): Same.
1583         * src/locale.cc (locale::id::_M_id): Same.
1584         * config/cpu/i486/atomicity.h: Use __gnu_cxx namespace. Remove
1585         static, and inline keywords.
1586         * config/cpu/alpha/atomicity.h: Same.
1587         * config/cpu/cris/atomicity.h: Same.
1588         * config/cpu/generic/atomicity.h: Same.
1589         * config/cpu/hppa/atomicity.h: Same.
1590         * config/cpu/i386/atomicity.h: Same.
1591         * config/cpu/ia64/atomicity.h: Same.
1592         * config/cpu/m68k/atomicity.h: Same.
1593         * config/cpu/mips/atomicity.h: Same.
1594         * config/cpu/powerpc/atomicity.h: Same.
1595         * config/cpu/s390/atomicity.h: Same.
1596         * config/cpu/sparc/atomicity.h: Same.
1597
1598         * src/Makefile.am (host_sources): Add atomicity.cc.
1599         (atomicity.cc): New rule.
1600         * src/Makefile.in: Regenerate.
1601         * include/Makefile.am (host_headers): Remove host atomicity.h.
1602         (host_headers): Add atomic_word.h.
1603         (bits_headers): Add bits atomicity.h.
1604         Change ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR.
1605         * include/Makefile.in: Regenerate.
1606         * configure.host (atomic_word_dir): Add.
1607         * configure.ac: Substitute ATOMIC_WORD_SRCDIR. Change
1608         ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR.
1609         * configure: Regenerate.
1610         * config/linker-map.gnu: Export __exchange_and_add, and __atomic_add.
1611
1612         * testsuite/27_io/ios_base/cons/assign_neg.cc: Adjust line numbers.
1613         * testsuite/27_io/ios_base/cons/copy_neg.cc: Same.
1614
1615 2004-02-25  Jonathan Wakely  <redi@gcc.gnu.org>
1616
1617         * docs/html/20_util/howto.html, docs/html/20_util/allocator.html,
1618         docs/html/ext/howto.html, docs/html/ext/mt_allocator.html:
1619         Fix markup, more <link> tags.
1620
1621 2004-02-25  Carlo Wood  <carlo@alinoe.com>
1622
1623         * bits/demangle.h
1624         namespace __gnu_cxx::demangler
1625         (session<Allocator>::qualifier_list_Allocator): Add
1626         (session<Allocator>::M_qualifier_list_alloc): Add
1627         (session<Allocator>::decode_type_with_postfix):
1628         Use M_qualifier_list_alloc instead of calling operator new/delete.
1629
1630 2004-02-24  Paolo Carlini  <pcarlini@suse.de>
1631
1632         PR libstdc++/14252
1633         * include/bits/postypes.h (class streamoff): Add operator++(),
1634         operator++(int), operator--() and operator--(int).
1635         * testsuite/27_io/fpos/14252.cc: New.
1636
1637 2004-02-24  Richard Sandiford  <rsandifo@redhat.com>
1638
1639         * include/bits/locale_facets.tcc (num_get::_M_extract_int): Fix bounds
1640         error in handling of hex constants.
1641
1642 2004-02-24  Paolo Carlini  <pcarlini@suse.de>
1643
1644         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
1645         Prefer basic_string::append to operator+= and a temporary.
1646
1647 2004-02-23  Benjamin Kosnik  <bkoz@redhat.com>
1648
1649         * libsupc++/vterminate.cc (__gnu_cxx::__verbose_terminate_handler):
1650         Only use fputs, not write.
1651
1652 2004-02-23  Benjamin Kosnik  <bkoz@redhat.com>
1653
1654         * include/ext/malloc_allocator.h: Add operators ==, !=.
1655         * include/ext/new_allocator.h: Add operators ==, !=.
1656         * include/ext/mt_allocator.h (__mt_alloc::tune): New.
1657         (__mt_alloc::_S_get_options): New.
1658         (__mt_alloc::_S_set_options): New.
1659         (__mt_alloc::_S_thread_key_destr): To _S_destroy_thread_key.
1660         (__mt_alloc::_S_no_of_bins): To _S_bin_size.
1661         Move functions out of line, simplify, format.
1662         * src/allocator.cc: Simplify explicit instantiations.
1663         * include/bits/allocator.h: Tweak.
1664
1665 2004-02-22  Paolo Carlini  <pcarlini@suse.de>
1666
1667         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
1668         Restructure formatting of value component, first dealing with
1669         the non-decimal digits; use reserve.
1670
1671 2004-02-22  Paolo Carlini  <pcarlini@suse.de>
1672
1673         * include/bits/locale_facets.h (class money_get): Inherit
1674         from money_base too; tweak declaration of _M_extract, now
1675         parameterized on _Intl too.
1676         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
1677         Update definition to use the cache; call reserve on __res to
1678         avoid multiple reallocations; fix parsing of sign component
1679         according to 22.2.6.1.2, p3.
1680         (money_get<>::do_get(long double&),
1681         money_get<>::do_get(string_type&)): Update calls of _M_extract.
1682         * src/locale-inst.cc:  Add instantiations of
1683         money_get::_M_extract<false> and money_get::_M_extract<true>.
1684         * testsuite/22_locale/money_get/get/char/14.cc: New.
1685         * testsuite/22_locale/money_get/get/wchar_t/14.cc: Ditto.
1686
1687 2004-02-21  Mark Mitchell  <mark@codesourcery.com>
1688
1689         * libsupc++/vterminate.cc
1690         (__gnu_cxx::__verbose_terminate_handler): Guard against recursive
1691         calls to terminate.
1692         * src/demangle.cc (__cxa_demangle): Wrap in try-catch block.
1693
1694         * testsuite/testsuite_hooks.cc (__gnu_test::set_memory_limits): Do
1695         not set RLIMIT_AS on HP-UX.
1696
1697 2004-02-21  Mark Mitchell  <mark@codesourcery.com>
1698
1699         * testsuite/testsuite_hooks.cc (__gnu_test::set_memory_limits): Do
1700         not set RLIMIT_AS on HP-UX.
1701
1702 2004-02-21  Paolo Carlini  <pcarlini@suse.de>
1703
1704         * include/bits/locale_facets.h (class money_base): Add { _S_minus,
1705         _S_zero, _S_end } enum, _S_atoms.
1706         (struct __moneypunct_cache<>): Parameterize on _Intl too; add
1707         _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size,
1708         _M_negative_sign_size, _M_atoms; tweak constructor consistently.
1709         (__moneypunct_cache<>::~__moneypunct_cache): Update.
1710         (__moneypunct_cache<>::_M_cache): Fill the cache.
1711         (class moneypunct): Tweak __cache_type typedef.
1712         (class money_put): Inherit from money_base too; tweak declaration
1713         of _M_insert, now parameterized on _Intl.
1714         * include/bits/locale_facets.tcc
1715         (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New.
1716         (money_put<>::_M_insert): Update definition to use the cache;
1717         call reserve on __res to avoid multiple reallocations.
1718         (money_put<>::do_put(long double),
1719         money_put<>::do_put(const string_type&): Update calls of _M_insert.
1720         * config/locale/generic/monetary_members.cc
1721         (moneypunct<char, true>::_M_initialize_moneypunct,
1722         moneypunct<char, false>::_M_initialize_moneypunct,
1723         moneypunct<wchar_t, true>::_M_initialize_moneypunct,
1724         moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update.
1725         * config/locale/gnu/monetary_members.cc: Likewise.
1726         * config/locale/gnu/monetary_members.cc
1727         (moneypunct<wchar_t, true>::~moneypunct(),
1728         moneypunct<wchar_t, false>::~moneypunct()): Likewise.
1729         * src/globals_locale.cc: Tweak fake_money_cache_c.
1730         * src/locale-inst.cc: Add instantiations for
1731         money_put::_M_insert<false> and money_put::_M_insert<true> and
1732         __moneypunct_cache<C, false>, __moneypunct_cache<C, true>.
1733         * src/locale_facets.cc: Define money_base::_S_atoms.
1734         * src/locale_init.cc: Update placement new of
1735         __moneypunct_cache<char, false>, __moneypunct_cache<char, true>,
1736         __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>.
1737
1738         * config/locale/generic/numeric_members.cc: Clean up.
1739         * config/locale/gnu/numeric_members.cc: Likewise.
1740         * testsuite/22_locale/money_put/put/char/1.cc: Likewise.
1741         * testsuite/22_locale/money_put/put/char/2.cc: Likewise.
1742         * testsuite/22_locale/money_put/put/char/3.cc: Likewise.
1743         * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise.
1744         * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise.
1745         * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise.
1746
1747 2004-02-20  Mark Mitchell  <mark@codesourcery.com>
1748
1749         * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc: Open
1750         FIFO for writing with ios_base::in|ios_base::out.
1751         * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise.
1752         * testsuite/27_io/objects/char/7.cc: Likewise.
1753         * testsuite/27_io/objects/char/9661-1.cc: Open FIFO for writing
1754         with "r+".
1755
1756 2004-02-19  David Edelsohn  <edelsohn@gnu.org>
1757
1758         * 22_locale/collate/compare/wchar_t/2.cc: Change input-charset
1759         from iso-8859-1 to ISO8859-1.
1760         * 22_locale/collate/compare/wchar_t/wrapped_env.cc: Same.
1761         * 22_locale/collate/compare/wchar_t/wrapped_locale.cc: Same.
1762         * 22_locale/collate/hash/wchar_t/2.cc: Same.
1763         * 22_locale/collate/hash/wchar_t/wrapped_env.cc: Same.
1764         * 22_locale/collate/hash/wchar_t/wrapped_locale.cc: Same.
1765         * 22_locale/collate/transform/wchar_t/2.cc: Same.
1766         * 22_locale/collate/transform/wchar_t/wrapped_env.cc: Same.
1767         * 22_locale/collate/transform/wchar_t/wrapped_locale.cc: Same.
1768
1769 2004-02-18  Paolo Carlini  <pcarlini@suse.de>
1770
1771         * include/bits/locale_facets.h (money_get<>::_M_extract):
1772         New, helper for do_get.
1773         (money_put<>::_M_insert): Likewise, for do_put.
1774         * include/bits/locale_facets.tcc (money_get<>::_M_extract,
1775         money_put<>::_M_insert): Define.
1776         (money_get<>::do_get(long double&), money_get<>::do_get(
1777         string_type&), money_put::do_put(long double),
1778         money_put::do_put(const string_type&)): Use the helpers.
1779
1780 2004-02-18  Paolo Carlini  <pcarlini@suse.de>
1781
1782         * config/io/basic_file_stdio.cc (__gnu_internal::xwritev):
1783         Rewrite, avoiding recursion.
1784         (__gnu_internal::xwrite): Minor tweaks.
1785
1786 2004-02-17  Stefan Olsson  <stefan@xapa.se>
1787
1788         * include/ext/mt_allocator.h: Removed the last
1789         pointer. Deallocated blocks are now added to the front of
1790         freelists as proposed by Felix Yen.  This gives roughly 10%
1791         performance boost and saves some memory.
1792         * docs/html/ext/mt_allocator.html: Change due to that deallocated
1793         blocks now are added to the front of freelists. The reason to this
1794         approach is also explained.
1795
1796 2004-02-17  Paolo Carlini  <pcarlini@suse.de>
1797
1798         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
1799         num_get<>::_M_extract_int, money_get<>::do_get): Simplify
1800         grouping fidelity conditional.
1801
1802 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
1803
1804         * testsuite/27_io/basic_filebuf/overflow/char/13858.cc:
1805         Qualify exception with std::.
1806         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Ditto.
1807         * testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc: Ditto.
1808         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
1809         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
1810         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
1811
1812 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
1813
1814         * testsuite/ext/enc_filebuf/char/13189.cc: Don't check
1815         for now that the catch block is not reached.
1816         * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Likewise.
1817
1818 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
1819
1820         * include/bits/locale_facets.tcc (money_get::do_get(string_type&)):
1821         Fix parsing of the remaining sign characters.
1822         * 22_locale/money_get/get/char/2.cc: Tweak: now, correctly,
1823         the input is scanned 'til eof.
1824         * 22_locale/money_get/get/char/4.cc: Likewise.
1825         * 22_locale/money_get/get/wchar_t/2.cc: Likewise.
1826         * 22_locale/money_get/get/wchar_t/4.cc: Likewise.
1827         * 22_locale/money_get/get/char/8.cc: Tweak: override do_neg_format,
1828         not do_pos_format: the former is the only one that matters during
1829         input.
1830         * 22_locale/money_get/get/wchar_t/8.cc: Likewise.
1831
1832         * 22_locale/money_get/get/char/6.cc: Minor tweak.
1833         * 22_locale/money_get/get/wchar_t/6.cc: Likewise.
1834
1835 2004-02-15  David Asher  <david.asher@cavium.com>
1836
1837         PR libstdc++/11352
1838         * include/bits/locale_facets.tcc (__pad<>::_S_pad): Don't
1839         access __olds beyond __oldlen.
1840
1841 2004-02-14  Paolo Carlini  <pcarlini@suse.de>
1842
1843         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Make
1844         sure the exception is actually thrown.
1845         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
1846         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
1847         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
1848
1849 2004-02-14  Paolo Carlini  <pcarlini@suse.de>
1850
1851         PR libstdc++/13858
1852         * include/bits/fstream.tcc (basic_filebuf<>::_M_convert_to_external):
1853         In case of conversion errors, throw ios_failure; simplify.
1854         * testsuite/27_io/basic_filebuf/overflow/char/13858.cc: New.
1855         * testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc: Ditto.
1856         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Tweak,
1857         previously we didn't throw in case of conversion errors, instead
1858         just returned eof().
1859         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
1860         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
1861         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
1862
1863         * include/bits/fstream.tcc (basic_filebuf<>::overflow):
1864         Trivial simplification of a conditional.
1865
1866 2004-02-12  Paolo Carlini  <pcarlini@suse.de>
1867
1868         PR libstdc++/13731 (final part: writev)
1869         * config/io/basic_file_stdio.cc (__gnu_internal::xwritev):
1870         New, a wrapper around writev() handling partial writes.
1871         (__basic_file<char>::xwrite): Move to __gnu_internal and make
1872         static.
1873         (__basic_file<char>::xsputn): Update call.
1874         (__basic_file<char>::xsputn_2): Likewise.
1875         * config/io/basic_file_stdio.h (__basic_file<char>::xwrite):
1876         Don't declare, now static.
1877
1878 2004-02-11  Stefan Olsson  <stefan@xapa.se>
1879
1880         * docs/html/ext/mt_allocator.html: New.
1881
1882 2004-02-11  Benjamin Kosnik  <bkoz@redhat.com>
1883
1884         * docs/html/20_util/allocator.html: New file, consolidate
1885         allocator information here. Revamp.
1886         * docs/html/documentation.html: Change links.
1887         * docs/html/20_util/howto.html: Same.
1888         * docs/html/ext/howto.html: Same.
1889
1890 2004-02-11  Paolo Carlini  <pcarlini@suse.de>
1891
1892         PR libstdc++/13731 (first part: write)
1893         * config/io/basic_file_stdio.h (__basic_file<char>::xwrite):
1894         New, declare.
1895         * config/io/basic_file_stdio.cc (__basic_file<char>::xwrite):
1896         Define it: a wrapper around write() handling partial write.
1897         (__basic_file<char>::xsputn): Use it.
1898         (__basic_file<char>::xsputn_2): Likewise.
1899
1900 2004-02-11  Paolo Carlini  <pcarlini@suse.de>
1901             Petur Runolfsson  <peturr02@ru.is>
1902
1903         PR libstdc++/14078
1904         * include/std/std_istream.h (operator>>(__istream_type& (*)
1905         (__istream_type&)), operator>>(__ios_type& (*)(__ios_type&)),
1906         operator>>(ios_base& (*)(ios_base&))): Declare inline.
1907         * include/std/std_ostream.h (operator<<(__ostream_type& (*)
1908         (__ostream_type&)), operator<<(__ios_type& (*)(__ios_type&)),
1909         operator<<(ios_base& (*) (ios_base&))): Likewise.
1910         * testsuite/performance/27_io/fmtflags_manipulators.cc: New.
1911
1912 2004-02-10  Loren J. Rittle  <ljrittle@acm.org>
1913
1914         PR libstdc++/14098
1915         * config/linker-map.gnu: Add typeinfo and typeinfo name for
1916         __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> >.
1917
1918         PR libstdc++/14097
1919         * config/linker-map.gnu: Add typeinfo and typeinfo name for
1920         __gnu_cxx::stdio_filebuf<char, std::char_traits<char> >.
1921
1922 2004-02-09  Loren J. Rittle  <ljrittle@acm.org>
1923
1924         * include/ext/pool_allocator.h: Include c++config.h.
1925
1926 2004-02-09  Stefan Olsson  <stefan@xapa.se>
1927
1928         * include/ext/mt_allocator.h: thread_id is unused in non threaded
1929         applications and now has a ifdef to remove it completely on
1930         compilers without thread support. Include stdlib.h due to a
1931         compiler warning on getenv().
1932
1933 2004-02-09  Paul Brook  <paul@codesourcery.com>
1934
1935         * libstdc++-v3/configure.host: Explicitly check for atomicity.h file.
1936
1937 2004-02-09  Paolo Carlini  <pcarlini@suse.de>
1938
1939         PR libstdc++/14071
1940         * src/locale_init.cc (locale::global(const locale&)): Use
1941         locale::name() in order to decide whether calling setlocale.
1942         * testsuite/22_locale/locale/global_locale_objects/14071.cc: New.
1943
1944         * include/bits/locale_classes.h (locale::_Impl::_M_check_same_name()):
1945         Avoid computing &= unnecessarily.
1946
1947 2004-02-09  James E Wilson  <wilson@specifixinc.com>
1948
1949         PR libstdc++/5625
1950         * libsuspc++/eh_personality.cc (PERSONALITY_FUNCTION): Use
1951         __builtin_extend_pointer.
1952
1953 2004-02-09  Paolo Carlini  <pcarlini@suse.de>
1954
1955         PR libstdc++/14072
1956         * include/bits/basic_ios.tcc (basic_ios<>::_M_cache_locale):
1957         Don't leave dangling pointers.
1958         * testsuite/27_io/basic_ios/imbue/14072.cc: New.
1959         * testsuite/22_locale/numpunct/members/pod/2.cc: Tweak, the num_put
1960         facet is needed in the final test.
1961
1962 2004-02-09  Bernardo Innocenti  <bernie@develer.com>
1963
1964         * crossconfig.m4: Don't enable _GLIBCXX_USE_LFS on *-uclinux*.
1965         * configure: Regenerate.
1966
1967 2004-02-08  Richard Henderson  <rth@redhat.com>
1968
1969         PR libstdc++/14026
1970         * libsupc++/eh_catch.cc (__cxa_begin_catch): Don't adjust
1971         uncaughtExceptions during nested catch rethrow.
1972         * testsuite/18_support/14026.cc: New.
1973
1974 2004-02-08  Paolo Carlini  <pcarlini@suse.de>
1975
1976         * include/bits/basic_string.tcc (assign(const _CharT*, size_type)):
1977         When working in place remember to set the state to sharable
1978         (otherwise, _M_mutate does it).
1979
1980 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
1981
1982         * include/bits/allocator.h, include/bits/basic_ios.h,
1983         include/bits/basic_ios.tcc, include/bits/basic_string.h,
1984         include/bits/basic_string.tcc, include/bits/boost_concept_check.h,
1985         include/bits/char_traits.h, include/bits/codecvt.h,
1986         include/bits/concurrence.h, include/bits/cpp_type_traits.h,
1987         include/bits/demangle.h, include/bits/deque.tcc,
1988         include/bits/fstream.tcc, include/bits/functexcept.h,
1989         include/bits/gslice.h, include/bits/gslice_array.h,
1990         include/bits/indirect_array.h, include/bits/ios_base.h,
1991         include/bits/istream.tcc, include/bits/list.tcc,
1992         include/bits/locale_classes.h, include/bits/locale_facets.h,
1993         include/bits/locale_facets.tcc, include/bits/localefwd.h,
1994         include/bits/mask_array.h, include/bits/ostream.tcc,
1995         include/bits/postypes.h, include/bits/slice_array.h,
1996         include/bits/sstream.tcc, include/bits/stl_algo.h,
1997         include/bits/stl_algobase.h, include/bits/stl_bvector.h,
1998         include/bits/stl_construct.h, include/bits/stl_deque.h,
1999         include/bits/stl_function.h, include/bits/stl_heap.h,
2000         include/bits/stl_iterator.h, include/bits/stl_iterator_base_funcs.h,
2001         include/bits/stl_list.h, include/bits/stl_map.h,
2002         include/bits/stl_multimap.h, include/bits/stl_multiset.h,
2003         include/bits/stl_numeric.h, include/bits/stl_pair.h,
2004         include/bits/stl_queue.h, include/bits/stl_raw_storage_iter.h,
2005         include/bits/stl_relops.h, include/bits/stl_set.h,
2006         include/bits/stl_stack.h, include/bits/stl_tempbuf.h,
2007         include/bits/stl_threads.h, include/bits/stl_tree.h,
2008         include/bits/stl_uninitialized.h, include/bits/stl_vector.h,
2009         include/bits/stream_iterator.h, include/bits/streambuf.tcc,
2010         include/bits/streambuf_iterator.h,include/bits/stringfwd.h,
2011         include/bits/type_traits.h, include/bits/valarray_after.h,
2012         include/bits/valarray_array.h, include/bits/valarray_array.tcc,
2013         include/bits/valarray_before.h, include/bits/vector.tcc: Remove
2014         trailing whitespace.
2015
2016 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
2017
2018         * include/bits/basic_string.h: Fix comment.
2019
2020 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
2021
2022         * include/bits/stl_construct.h: Wrap overlong lines, reformat
2023         according to the coding standards.
2024         * include/bits/stl_pair.h: Likewise.
2025         * include/bits/stl_raw_storage_iter.h: Likewise.
2026         * include/bits/stl_stack.h: Likewise.
2027         * include/bits/stl_uninitialized.h: Likewise.
2028         * include/bits/stream_iterator.h: Likewise.
2029         * include/bits/streambuf_iterator.h: Likewise.
2030         * include/bits/type_traits.h: Likewise.
2031
2032 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
2033
2034         * testsuite/27_io/basic_filebuf/open/char/9507.cc:
2035         Adjust timings.
2036
2037 2004-02-05  Loren J. Rittle  <ljrittle@acm.org>
2038
2039         * scripts/check_performance: Support PCH.
2040
2041         * scripts/check_performance (CXX): Add -DNOTHREAD.
2042         * testsuite/performance/20_util/allocator/insert.cc: Integrate
2043         threaded tests from insert_insert.cc.  Tweak iterations,
2044         remove special cases.
2045         * testsuite/performance/20_util/allocator/insert_insert.cc:
2046         Make all tests single-threaded. Tweak iterations.
2047         * testsuite/performance/20_util/allocator/map_thread.cc:
2048         Tweak iterations.
2049         * testsuite/performance/20_util/allocator/producer_consumer.cc:
2050         Likewise.
2051
2052 2004-02-05  Geoffrey Keating  <geoffk@apple.com>
2053
2054         PR 12179
2055         * .cvsignore: New.
2056         * acinclude.m4 (GLIBCXX_EXPORT_INSTALL_INFO): Use 'gcc', not
2057         'gcc-lib'.  Add comment about poorly-named variables.
2058         * aclocal.m4: Regenerate.
2059         * configure: Regenerate.
2060
2061 2004-02-05  Paolo Carlini  <pcarlini@suse.de>
2062
2063         * include/bits/locale_facets.tcc (money_get::do_get(string_type&)):
2064         Thousands-sep are always optional; thousands-sep are not allowed
2065         after the decimal_point.
2066         * testsuite/22_locale/money_get/get/char/12.cc: New.
2067         * testsuite/22_locale/money_get/get/char/13.cc: New.
2068         * testsuite/22_locale/money_get/get/wchar_t/12.cc: New.
2069         * testsuite/22_locale/money_get/get/wchar_t/13.cc: New.
2070
2071         * testsuite/22_locale/money_get/get/char/1.cc: Clean-up.
2072         * testsuite/22_locale/money_get/get/char/2.cc: Likewise.
2073         * testsuite/22_locale/money_get/get/char/3.cc: Likewise.
2074         * testsuite/22_locale/money_get/get/char/4.cc: Likewise.
2075         * testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise.
2076         * testsuite/22_locale/money_get/get/wchar_t/2.cc: Likewise.
2077         * testsuite/22_locale/money_get/get/wchar_t/3.cc: Likewise.
2078         * testsuite/22_locale/money_get/get/wchar_t/4.cc: Likewise.
2079
2080         * testsuite/22_locale/money_get/get/char/9.cc: Fix citation from
2081         the standard.
2082         * testsuite/22_locale/money_get/get/wchar_t/9.cc: Likewise.
2083
2084 2004-02-05  Richard Sandiford  <rsandifo@redhat.com>
2085
2086         * config/os/irix/irix6.5/os_defines.h (_GLIBCXX_FIONREAD_TAKES_OFF_T):
2087         Define.
2088         * config/io/basic_file_stdio.cc (__basic_file<char>::showmanyc): Use
2089         it to decide whether FIONREAD should take an off_t or int argument.
2090
2091 2004-02-05  Paolo Carlini  <pcarlini@suse.de>
2092
2093         * include/bits/stl_function.h: Minor formatting changes.
2094
2095 2004-02-04  Zack Weinberg  <zack@codesourcery.com>
2096
2097         Revert previous change to config/abi/*/baseline_symbols.txt.
2098
2099 2004-02-04  Benjamin Kosnik  <bkoz@redhat.com>
2100             Zack Weinberg  <zack@codesourcery.com>
2101
2102         * config/io/basic_file_stdio.cc (__gnu_internal::fopen_mode):
2103         New function.
2104         (__basic_file<char>::sys_open, __basic_file<char>::open): Use it.
2105         (__basic_file<char>::_M_open_mode): Delete.
2106         * config/io/basic_file_stdio.cc: Delete declaration of _M_open_mode.
2107
2108         * testsuite/27_io/basic_filebuf/close/char/9964.cc
2109         * testsuite/27_io/basic_filebuf/open/char/9507.cc:
2110         Correct flags to filebuf::open calls.
2111
2112         * config/abi/alpha-freebsd5/baseline_symbols.txt
2113         * config/abi/alpha-linux-gnu/baseline_symbols.txt
2114         * config/abi/hppa-linux-gnu/baseline_symbols.txt
2115         * config/abi/i386-freebsd4/baseline_symbols.txt
2116         * config/abi/i386-freebsd5/baseline_symbols.txt
2117         * config/abi/i486-linux-gnu/baseline_symbols.txt
2118         * config/abi/ia64-linux-gnu/baseline_symbols.txt
2119         * config/abi/mips-linux-gnu/baseline_symbols.txt
2120         * config/abi/sparc-freebsd5/baseline_symbols.txt
2121         * config/abi/sparc-linux-gnu/baseline_symbols.txt
2122         * config/abi/x86_64-linux-gnu/baseline_symbols.txt:
2123         Remove entry for __basic_file<char>::_M_open_mode.
2124
2125 2004-02-04  Loren J. Rittle  <ljrittle@acm.org>
2126
2127         * testsuite/performance/20_util/allocator/insert.cc (main): Tweak.
2128
2129 2004-02-04  Felix Yen  <fwy@alumni.brown.edu>
2130
2131         * testsuite/performance/20_util/producer_consumer.cc: New.
2132         * testsuite/performance/20_util/allocator/insert_insert.cc: Two loops.
2133
2134 2004-02-04  Benjamin Kosnik  <bkoz@redhat.com>
2135
2136         * testsuite/performance/20_util/allocator.cc: Move to..
2137         * testsuite/performance/20_util/allocator/insert.cc: ...here.
2138         * testsuite/performance/20_util/allocator_thread.cc: Move to...
2139         * testsuite/performance/20_util/allocator/insert_insert.cc: ...here.
2140         * testsuite/performance/20_util/allocator_map_thread.cc: Move to...
2141         * testsuite/performance/20_util/allocator/map_thread.cc: ...here.
2142
2143 2004-02-04  Jonathan Wakely  <redi@gcc.gnu.org>
2144
2145         * docs/html/faq/index.html: Recommend using LD_LIBRARY_PATH.
2146         * docs/html/faq/index.txt: Regenerate.
2147
2148 2004-02-04  Dhruv Matani  <dhruvbird@gmx.net>
2149
2150         * include/ext/debug_allocator.h: _M_extra now stands for the
2151         number of extra objects instead of the number of extra bytes.
2152         (debug_allocator::allocate): Adjust.
2153         (debug_allocator::deallocate): Adjust.
2154
2155         * include/ext/pool_allocator.h: Fix typo.
2156
2157 2004-02-03  Felix Yen  <fwy@alumni.brown.edu>
2158             Benjamin Kosnik  <bkoz@redhat.com>
2159
2160         * testsuite/performance/20_util/allocator.cc: Add map,
2161         deque, set tests.
2162         * testsuite/performance/20_util/allocator_thread.cc: Same.
2163
2164 2004-02-03  Paolo Carlini  <pcarlini@suse.de>
2165
2166         * include/bits/basic_string.h (insert(iterator)): Remove,
2167         non-standard and already scheduled for removal.
2168
2169 2004-02-03  Paolo Carlini  <pcarlini@suse.de>
2170
2171         * include/bits/stl_iterator_base_funcs.h: Minor formatting
2172         and indentation tweaks.
2173         * include/bits/stl_iterator_base_types.h: Likewise.
2174         * include/bits/stl_list.h: Likewise.
2175         * include/bits/stl_map.h: Likewise.
2176         * include/bits/stl_tempbuf.h: Likewise.
2177
2178 2004-02-02  Jerry Quinn  <jlquinn@optonline.net>
2179
2180         * include/bits/gslice.h, include/bits/gslice_array.h,
2181         include/bits/indirect_array.h, include/bits/mask_array.h,
2182         include/bits/slice_array.h, include/bits/stl_numeric.h,
2183         include/std/std_valarray.h:  Update copyright years.
2184
2185 2004-02-02  Jerry Quinn  <jlquinn@optonline.net>
2186
2187         * include/bits/gslice.h (gslice):  Document.
2188         * include/bits/gslice_array.h (gslice_array):  Document.
2189         * include/bits/indirect_array (indirect_array):  Document.
2190         * include/bits/mask_array (mask_array):  Document.
2191         * include/bits/slice_array.h (slice,slice_array):  Document.
2192         * include/bits/stl_numeric.h (accumulate, inner_product, partial_sum,
2193         adjacent_difference):  Document
2194         * include/std/std_valarray.h (valarray):  Document.
2195
2196 2004-02-02  Benjamin Kosnik  <bkoz@redhat.com>
2197
2198         * docs/html/19_diagnostics/howto.html: Move verbose terminate
2199         documentation...
2200         * docs/html/18_support/howto.html: Here.
2201         * docs/html/documentation.html: Add reference here.
2202
2203 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
2204
2205         * config/locale/gnu/c++locale_internal.h: Remove prototypes
2206         of no longer used GLIBC thread locale functions.
2207
2208 2004-02-02  Eric Christopher  <echristo@redhat.com>
2209             Zack Weinberg  <zack@codesourcery.com>
2210
2211         * testsuite/22_locale/collate/compare/wchar_t/2.cc: Remove xfail. Use
2212         -finput-charset.
2213         * testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc: Ditto.
2214         * testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc: Ditto
2215         * testsuite/22_locale/collate/hash/wchar_t/2.cc: Ditto.
2216         * testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc: Ditto.
2217         * testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc: Ditto.
2218         * testsuite/22_locale/collate/transform/wchar_t/2.cc: Ditto.
2219         * testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc: Ditto.
2220         * testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc:
2221         Ditto.
2222
2223 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
2224
2225         * include/bits/stl_function.h: Additional minor tweaks.
2226         * include/bits/stl_multiset.h: Likewise.
2227
2228         * include/bits/stl_queue.h: Minor tweaks.
2229
2230 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
2231
2232         PR libstdc++/13976 (continued)
2233         * include/ext/malloc_allocator.h (malloc_allocator::deallocate):
2234         Make the second parameter unnamed, to void unused parameter
2235         warnings.
2236         * include/ext/new_allocator.h (new_allocator::deallocate): Ditto.
2237
2238 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
2239
2240         PR libstdc++/13976
2241         * include/ext/malloc_allocator.h (malloc_allocator::allocate):
2242         Make the second parameter unnamed, to void unused parameter
2243         warnings.
2244         * include/ext/mt_allocator.h (__mt_alloc::allocate): Ditto.
2245         * include/ext/new_allocator.h (new_allocator::allocate): Ditto.
2246
2247 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
2248
2249         * include/bits/stl_algo.h: Additional minor tweaks.
2250         * include/bits/stl_map.h: Likewise.
2251         * include/bits/stl_multimap.h: Likewise.
2252         * include/bits/stl_multiset.h: Likewise.
2253         * include/bits/stl_set.h: Likewise.
2254         * include/bits/stl_tree.h: Likewise.
2255
2256 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
2257
2258         * include/bits/vector.tcc (vector::_M_insert_aux(iterator)):
2259         Remove, unused.
2260
2261 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
2262
2263         * include/bits/stl_function.h: Additional minor tweaks.
2264
2265 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
2266
2267         * include/bits/deque.tcc: Wrap overlong lines, constify
2268         a few variables, reformat according to the coding standards.
2269         * include/bits/list.tcc: Likewise.
2270         * include/bits/stl_deque.h: Likewise.
2271         * include/bits/stl_function.h: Likewise.
2272         * include/bits/stl_iterator.h: Likewise.
2273         * include/bits/stl_iterator_base_funcs.h: Likewise.
2274         * include/bits/stl_iterator_base_types.h: Likewise.
2275         * include/bits/stl_list.h: Likewise.
2276         * include/bits/stl_map.h: Likewise.
2277         * include/bits/stl_multimap.h: Likewise.
2278         * include/bits/stl_multiset.h: Likewise.
2279         * include/bits/stl_relops.h: Likewise.
2280         * include/bits/stl_set.h: Likewise.
2281
2282 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
2283
2284         * include/bits/stl_bvector.h: Wrap overlong lines, constify
2285         a few variables, reformat according to the coding standards.
2286         * include/bits/stl_tree.h: Likewise.
2287
2288 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
2289
2290         * include/bits/stl_algo.h: Minor additional reformat, add
2291         copyright year.
2292         * include/bits/stl_algobase.h: Add copyright year.
2293
2294 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
2295
2296         * include/bits/stl_algo.h: Wrap overlong lines, constify
2297         a few variables, reformat according to the coding standards.
2298         * include/bits/stl_algobase.h: Likewise.
2299         * include/bits/stl_heap.h: Likewise.
2300
2301 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
2302
2303         * include/bits/basic_string.h (_Rep::operator[]): Remove, unused.
2304
2305         * include/bits/basic_string.h: Fix two comments.
2306
2307 2004-01-31  Per Bothner  <per@bothner.com>
2308
2309         * include/ext/mt_allocator.h
2310         (__mt_alloc::_S_thread_freelist_mutex): Guard with
2311         __GTHREAD_MUTEX_INIT.
2312
2313 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
2314
2315         * include/bits/basic_string.tcc (_Rep::_S_create): Minor tweak.
2316
2317 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
2318
2319         * testsuite/21_strings/basic_string/cons/char/6.cc: New.
2320         * testsuite/21_strings/basic_string/cons/wchar_t/6.cc: New.
2321         * testsuite/performance/21_strings/string_cons_input_iterator.cc: New.
2322
2323 2004-01-30  Felix Yen  <fwy@alumni.brown.edu>
2324
2325         * testsuite/performance/20_util/allocator_thread.cc (do_loop):
2326         Don't use clear, but instead assign. Use insert.
2327
2328 2004-01-30  Benjamin Kosnik  <bkoz@redhat.com>
2329
2330         * src/demangle.cc: Add instantiations.
2331         * src/Makefile.am: Remove special rules for demangle.lo, demangle.o.
2332         * src/Makefile.in: Regenerate.
2333
2334 2004-01-30  David Edelsohn  <edelsohn@gnu.org>
2335
2336         * src/allocator.cc: Protect _S_get_thread_id() and
2337         _S_thread_key_destr() with #ifdef __GTHREADS.
2338
2339 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
2340
2341         Reshuffle performance testsuite.
2342         * testsuite/performance/allocator.cc, allocator_map_thread.cc,
2343         allocator_thread.cc, complex_norm.cc, container_benchmark.cc,
2344         cout_insert_int.cc, filebuf_copy.cc, filebuf_sputc.cc,
2345         fstream_seek_write.cc, ifstream_extract_float.cc,
2346         ifstream_extract_int.cc, ifstream_getline.cc, is_wchar_t.cc,
2347         list_create_fill_sort.cc, map_create_fill.cc,
2348         narrow_widen_char.cc, narrow_widen_wchar_t.cc,
2349         ofstream_insert_float.cc, ofstream_insert_int.cc,
2350         string_append.cc, wchar_t_in.cc, wchar_t_length.cc,
2351         wchar_t_out.cc: Split into...
2352         * testsuite/performance/20_util/allocator.cc: New.
2353         * testsuite/performance/20_util/allocator_map_thread.cc: New.
2354         * testsuite/performance/20_util/allocator_thread.cc: New.
2355         * testsuite/performance/21_strings/string_append: New.
2356         * testsuite/performance/22_locale/is_wchar_t.cc: New.
2357         * testsuite/performance/22_locale/narrow_widen_char.cc: New.
2358         * testsuite/performance/22_locale/narrow_widen_wchar_t.cc: New.
2359         * testsuite/performance/22_locale/wchar_t_in.cc: New.
2360         * testsuite/performance/22_locale/wchar_t_length.cc: New.
2361         * testsuite/performance/22_locale/wchar_t_out.cc: New.
2362         * testsuite/performance/23_containers/container_benchmark.cc: New.
2363         * testsuite/performance/23_containers/list_create_fill_sort.cc: New.
2364         * testsuite/performance/23_containers/map_create_fill.cc: New.
2365         * testsuite/performance/26_numerics/complex_norm.cc: New.
2366         * testsuite/performance/27_io/cout_insert_int.cc: New.
2367         * testsuite/performance/27_io/filebuf_copy.cc: New.
2368         * testsuite/performance/27_io/filebuf_sputc.cc: New.
2369         * testsuite/performance/27_io/fstream_seek_write.cc: New.
2370         * testsuite/performance/27_io/ifstream_extract_float.cc: New.
2371         * testsuite/performance/27_io/ifstream_extract_int.cc: New.
2372         * testsuite/performance/27_io/ifstream_getline.cc: New.
2373         * testsuite/performance/27_io/ofstream_insert_float.cc: New.
2374         * testsuite/performance/27_io/ofstream_insert_int.cc: New.
2375
2376 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
2377
2378         * include/bits/basic_string.tcc (_Rep::_S_create):
2379         Never allocate a string bigger than max_size(); always keep
2380         __capacity and __size in sync to avoid memory leaks at
2381         deallocation time.
2382
2383 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
2384
2385         * include/bits/basic_string.tcc (_S_construct(_InIterator,
2386         _InIterator, const _Alloc&, input_iterator_tag)): Simplify
2387         the double loop, streamline.
2388
2389         * include/bits/basic_string.tcc: Very minor tweaks.
2390
2391 2004-01-30  Loren J. Rittle  <ljrittle@acm.org>
2392
2393         * scripts/check_performance: Only compile with $THREAD_FLAG
2394         when test is marked to require it.  Allow multiple
2395         compilations/executions of marked tests.
2396         * testsuite/testsuite_performance.h (report_performance):
2397         Report dynamic thread support status.
2398         (report_header): Likewise.
2399         * testsuite/performance/allocator.cc: Stabilize iteration
2400         count.  Support more allocators.  Mark each allocator test to
2401         run and report independently.
2402         * testsuite/performance/allocator_map_thread.cc: Likewise.
2403         * testsuite/performance/allocator_thread.cc: Likewise.
2404
2405 2004-01-29  Stephen M. Webb  <stephen.webb@bregmasoft.com>
2406
2407         * config/local/generic/c_locale.h: Change ::malloc() to new char[].
2408         * config/local/gnu/c_locale.h: Change ::malloc() to new char[].
2409         * include/bits/stl_tempbuf.h: Convert _Temporary_buffer to use
2410         std::get_temporary_buffer() instead of duplicating its code.
2411         Update to C++STYLE conventions.
2412         * include/std/std_memory.h (get_temporary_buffer): Use ::operator
2413         new() instead of std::malloc().
2414         (return_temporary_buffer): Use ::operator delete() instead of
2415         std::free().
2416
2417 2004-01-29  Benjamin Kosnik  <bkoz@redhat.com>
2418
2419         * include/bits/allocator.h: Temporary switch to new_allocator as
2420         the default to unjam bootstraps.
2421
2422 2004-01-28  Benjamin Kosnik  <bkoz@redhat.com>
2423
2424         * include/Makefile.am (bits_headers): Remove allocator_traits.h.
2425         * include/Makefile.in: Regenerate.
2426         * include/bits/allocator_traits.h: Remove.
2427         * include/bits/allocator.h: Remove allocator_traits.h include, and
2428         relevant comments.
2429         (allocator): Empty base class, inherit from the underlying allocator.
2430         * src/allocator-inst.cc: Move __pool_alloc instantiation to...
2431         * src/allocator.cc: ...here. New. For the underlying allocators.
2432         Add __mt_alloc, __pool_alloc, new_allocator, malloc_allocator bits.
2433         * config/linker-map.gnu: Remove __pool_alloc bits.
2434         * src/Makefile.am (sources): Add allocator.cc.
2435         * src/Makefile.in: Regenerate.
2436         * testsuite/20_util/allocator/1.cc: Split second test into...
2437         * testsuite/20_util/allocator/8230.cc: ...this.
2438         * include/bits/stl_bvector.h (__gnu_norm): Change bit_vector
2439         typedef to use std::allocatore. Format.
2440         * include/ext/pool_allocator.h: Remove allocator_traits.h include,
2441         _Alloc_traits.
2442         * include/ext/mt_allocator.h (__gnu_cxx): Qualify
2443         __throw_bad_alloc calls. Don't include <memory>.
2444         * include/ext/malloc_allocator.h: Remove <memory> include.
2445         * include/ext/new_allocator.h (new_allocator): Same.
2446         * include/ext/ropeimpl.h (__gnu_cxx): Remove __alloc using
2447         declaration. Switch __alloc to _Alloc.
2448         * include/ext/hashtable.h: Remove __alloc.
2449         * include/backward/alloc.h: Only inject allocator, not
2450         implementation details.
2451
2452         * include/ext/mt_allocator.h: Replace free with delete.
2453
2454 2004-01-28  Benjamin Kosnik  <bkoz@redhat.com>
2455
2456         * src/globals_io.cc: Change to __gnu_internal namespace.
2457         * src/globals_locale.cc: Same.
2458         * src/locale_init.cc: Same.
2459         * src/ios_init.cc: Same.
2460
2461 2004-01-28  Stefan Olsson  <stefan@snon.net>
2462
2463         * include/ext/mt_allocator.h: Replaced all malloc() calls with
2464         operator new(). Added support for the env variable
2465         GLIBCXX_FORCE_NEW (this required the _S_init call to be the first
2466         one in allocate() as well). Fix typos.
2467
2468 2004-01-28  Paolo Carlini  <pcarlini@suse.de>
2469
2470         * include/bits/basic_string.h (_S_create(size_t,
2471         const _Alloc&): Change signature to take two size_type
2472         arguments.
2473         * include/bits/basic_string.tcc (_S_construct(_InIterator,
2474         _InIterator, const _Alloc&, input_iterator_tag)): Update
2475         call, tweak a bit.
2476         (_S_construct(_InIterator, _InIterator, const _Alloc&,
2477         forward_iterator_tag)): Likewise.
2478         (_S_construct(size_type, _CharT, const _Alloc&)): Likewise.
2479         (_M_mutate(size_type, size_type, size_type)): Don't
2480         implement the exponential growth policy, demand it to
2481         _S_create, update call and simplify.
2482         (_M_clone(const _Alloc&, size_type)): Likewise.
2483         (_S_create(size_type, size_type, const _Alloc&)): Implement
2484         the growth policy, simplify otherwise.
2485
2486         * include/bits/basic_string.h (_Rep::operator[]): Tweak
2487         signature to take a size_type, consistently with the other
2488         members.
2489
2490 2004-01-27  Benjamin Kosnik  <bkoz@redhat.com>
2491
2492         * testsuite/27_io/ios_base/storage/11584.cc: Correct new and
2493         delete declarations, add include and test variable.
2494
2495 2003-01-27  Jerry Quinn  <jlquinn@optonline.net>
2496
2497         * include/bits/codecvt.h, include/bits/locale_facets.h,
2498         include/bits/postypes.h, include/bits/stl_bvector.h,
2499         include/bits/stl_multiset.h, include/bits/stl_set.h,
2500         include/bits/stream_iterator.h, include/bits/streambuf_iterator.h,
2501         include/std/std_complex.h:  Document.
2502
2503 2004-01-27  Jerry Quinn  <jlquinn@optonline.net>
2504
2505         PR libstdc++/11584
2506         * include/bits/ios_base.h (ios_base::_M_grow_words):  Add
2507         iword/pword selector.
2508         (ios_base::iword, ios_base::pword):  Use it.
2509         * src/ios.cc (ios_base::_M_grow_words):  Clear _M_word_zero
2510         iword or pword member on alloc failure.
2511         * testsuite/27_io/ios_base/storage/11584.cc:  New test.
2512
2513 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
2514             PJ Darcy  <darcypj@us.ibm.com>
2515
2516         * configure.host: Add support for *-tpf.
2517         * crossconfig.m4: Likewise.
2518         * configure: Regenerate.
2519         * config/os/tpf: New directory.
2520         * config/os/tpf/os_defines.h: New file.
2521         * config/os/tpf/ctype_base.h: Likewise.
2522         * config/os/tpf/ctype_inline.h: Likewise.
2523         * config/os/tpf/ctype_noninline.h: Likewise.
2524
2525 2004-01-27  Paolo Carlini  <pcarlini@suse.de>
2526
2527         PR libstdc++/13884
2528         * include/bits/sstream.tcc: Guard use of extern template.
2529
2530 2004-01-27  Paolo Carlini  <pcarlini@suse.de>
2531
2532         * include/bits/basic_string.tcc
2533         (basic_string(const basic_string&, size_type, size_type),
2534         basic_string(const basic_string&, size_type, size_type,
2535         const _Alloc&)): Avoid unnecessarily constructing iterators.
2536
2537 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
2538
2539         * config/locale/generic/c_locale.cc: Fix throw messages
2540         to use the __N marker.
2541         * config/locale/gnu/c_locale.cc: Likewise.
2542         * config/locale/ieee_1003.1-2001/codecvt_specializations.h:
2543         Likewise.
2544         * docs/html/17_intro/C++STYLE: Likewise.
2545         * include/bits/basic_ios.tcc: Likewise.
2546         * include/bits/fstream.tcc: Likewise.
2547         * include/bits/vector.tcc: Likewise.
2548         * include/ext/ropeimpl.h: Likewise.
2549         * include/std/std_bitset.h: Likewise.
2550         * src/ios.cc: Likewise.
2551         * src/locale.cc: Likewise.
2552         * src/localename.cc: Likewise.
2553
2554 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
2555
2556         * include/bits/basic_string.h (_M_replace_aux): Use the
2557         __N marker in throw message.
2558         * include/bits/basic_string.tcc (assign(const _CharT*,
2559         size_type), insert(size_type, const _CharT*, size_type),
2560         replace(size_type, size_type, const _CharT*, size_type),
2561         reserve, _Rep::_S_create, resize, _M_replace_dispatch):
2562         Likewise.
2563
2564         * include/bits/basic_string.h, include/bits/basic_string.tcc:
2565         Fold overlong lines, minor formatting changes.
2566
2567 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
2568
2569         * include/bits/basic_string.h (replace(iterator, iterator,
2570         const basic_string&)): Remove _GLIBCXX_DEBUG_PEDASSERT.
2571         (replace(iterator, iterator, const _CharT*)): Ditto.
2572         (replace(iterator, iterator, const _CharT*, size_type)):
2573         Add missing _GLIBCXX_DEBUG_PEDASSERT.
2574
2575 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
2576
2577         * include/bits/basic_string.tcc (replace(size_type,
2578         size_type, const _CharT*, size_type)): Implement optimized
2579         in-place algorithm for non-overlapping ranges.
2580         * testsuite/21_strings/basic_string/replace/char/6.cc: New.
2581         * testsuite/21_strings/basic_string/replace/wchar_t/6.cc: New.
2582
2583         * include/bits/basic_string.tcc (insert(size_type,
2584         const _CharT*, size_type)): Tweak slightly.
2585
2586 2004-01-26  Andreas Schwab  <schwab@suse.de>
2587
2588         * config/locale/gnu/monetary_members.cc: Restore locale before
2589         rethrowing exception.
2590
2591 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
2592
2593         * include/bits/basic_string.h (_M_replace_aux, _M_replace_safe):
2594         Define inline here.
2595         * include/bits/basic_string.tcc (_M_replace_aux, _M_replace_safe):
2596         Move inline.
2597
2598         * include/bits/basic_string.tcc: Very minor tweaks.
2599
2600 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
2601
2602         * testsuite/performance/string_append.cc: Increase number
2603         of iterations.
2604
2605 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
2606
2607         * include/bits/basic_string.h (erase(size_type, size_type),
2608         erase(iterator), erase(iterator, iterator)): Call _M_replace_safe
2609         instead, thus avoiding redundant check for length_error.
2610
2611         * include/bits/basic_string.h: Tweak some comments.
2612
2613 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
2614
2615         * include/bits/basic_string.tcc (operator+(const _CharT*,
2616         const basic_string&)): No need to go through the append
2617         taking two iterators.
2618
2619 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
2620
2621         * include/bits/basic_string.tcc (rfind(_CharT, size_type)):
2622         Revert last change to use std::min: machine language is worse.
2623         (find_last_of(const _CharT*, size_type, size_type)): Ditto.
2624         (find_last_not_of(const _CharT*, size_type, size_type)): Ditto.
2625         (find_last_not_of(_CharT, size_type)): Ditto.
2626
2627         * include/bits/basic_string.tcc (insert(size_type, const _CharT*,
2628         size_type)): Discard the value returned by _M_check.
2629         (replace(size_type, size_type, const _CharT*, size_type)): Ditto.
2630         (append(const basic_string&, size_type, size_type)): Ditto.
2631         (copy(_CharT*, size_type, size_type)): Ditto.
2632         (compare(size_type, size_type, const basic_string&)): Ditto.
2633         (compare(size_type, size_type, const basic_string&,
2634         size_type, size_type)): Ditto.
2635         (compare(size_type, size_type, const _CharT*)): Ditto.
2636         (compare(size_type, size_type, const _CharT*, size_type)): Ditto.
2637
2638 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
2639
2640         * include/bits/basic_string.h (insert(size_type,
2641         const basic_string&, size_type, size_type)): Define inline here.
2642         * include/bits/basic_string.tcc (insert(size_type,
2643         const basic_string&, size_type, size_type)): Move inline.
2644
2645 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
2646
2647         * include/bits/basic_string.h (assign(const basic_string&,
2648         size_type, size_type)): Define inline here.
2649         (replace(size_type, size_type, const basic_string&,
2650         size_type, size_type)): Ditto.
2651         (_M_replace_dispatch(iterator, iterator, _InputIterator,
2652         _InputIterator, __false_type)): Only declare.
2653         (_M_replace(iterator, iterator, _InputIterator,
2654         _InputIterator)): Remove.
2655         * include/bits/basic_string.tcc (assign(const basic_string&,
2656         size_type, size_type)): Move inline.
2657         (replace(size_type, size_type, const basic_string&,
2658         size_type, size_type)): Ditto.
2659         (_M_replace_dispatch(iterator, iterator, _InputIterator,
2660         _InputIterator, __false_type)): Define, now does also what
2661         _M_replace did before.
2662         * src/string-inst.cc (_M_replace): Don't instantiate.
2663
2664         * include/bits/basic_string.tcc (find(const _CharT*,
2665         size_type, size_type)): Tidy.
2666         (rfind(_CharT, size_type)): Ditto.
2667         (find_first_not_of(const _CharT*, size_type, size_type)): Ditto.
2668         (find_first_not_of(_CharT, size_type)): Ditto.
2669         (find_last_not_of(const _CharT*, size_type, size_type)): Ditto.
2670         (find_last_not_of(_CharT, size_type)): Ditto.
2671
2672 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
2673
2674         PR libstdc++/13838
2675         * include/debug/bitset (operator|=): Fix typo.
2676         * testsuite/23_containers/bitset/operations/13838.cc: New.
2677
2678 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
2679
2680         * include/bits/basic_string.tcc (insert(size_type,
2681         const _CharT*, size_type __n)): Fix length_error check.
2682         (replace(size_type, size_type, const _CharT*, size_type):
2683         Ditto; call _M_replace_safe.
2684         (_M_replace_aux(size_type, size_type, size_type, _CharT):
2685         Fix length_error check.
2686         (_M_replace(iterator, iterator, _InputIterator,
2687         _InputIterator)): Ditto, tweak.
2688         (_M_replace_safe(size_type, size_type, const _CharT*,
2689         size_type)): Remove length_error check.
2690
2691         * include/bits/basic_string.tcc (append(const basic_string&),
2692         append(const basic_string&, size_type, size_type)): Tweak
2693         comment.
2694
2695         * include/bits/basic_string.tcc (copy(_CharT*, size_type,
2696         size_type)): If __n == 0 don't call traits::copy.
2697
2698 2004-01-23  Stefan Olsson  <stefan@snon.net>
2699
2700         * include/ext/mt_allocator.h: Reduce lock contention.
2701
2702 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
2703
2704         PR libstdc++/13831
2705         * include/bits/fstream.tcc (underflow): Remove unused
2706         variable.
2707         * include/bits/streambuf_iterator.h (equal): Ditto.
2708         * include/bits/locale_facets.h (_M_convert_from_char):
2709         Ditto.
2710
2711 2004-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2712
2713         PR c/13814
2714         * config/linker-map.gnu (nan): Delete.
2715         * libmath/mathconf.h (NAN, nan): Delete.
2716         * linkage.m4 (nan): Don't check for it.
2717         * libmath/nan.c: Delete file.
2718
2719         * config.h.in, configure: Regenerate.
2720
2721 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
2722
2723         * include/bits/basic_string.h (push_back(_CharT)):
2724         Call _M_replace_aux.
2725         (insert(size_type, const basic_string&)): Trivial tweak.
2726         (insert(size_type, size_type, _CharT)): Call _M_replace_aux.
2727         (insert(iterator, _CharT)): Ditto.
2728         (erase(size_type, size_type)): Ditto.
2729         (erase(iterator)): Ditto.
2730         (erase(iterator, iterator)): Ditto.
2731         (replace(size_type, size_type, size_type, _CharT)): Ditto.
2732
2733 2004-01-23  Loren J. Rittle  <ljrittle@acm.org>
2734
2735         libstdc++/13823
2736         * testsuite/performance/allocator_map_thread.cc: New test.
2737
2738 2004-01-22  Paolo Carlini  <pcarlini@suse.de>
2739
2740         * include/bits/locale_facets.tcc
2741         (money_put::do_put(..., long double)): Use the basic_string
2742         constructor for char arrays, not that for C-strings, to pass
2743         __digits to do_put(..., const string_type&): __ws isn't
2744         null-terminated.
2745
2746 2004-01-22  Paolo Carlini  <pcarlini@suse.de>
2747
2748         * include/bits/basic_string.h (_M_replace_safe): Change
2749         signatures to take size_types and const _CharT*.
2750         (_M_replace_aux): Likewise, takes size_types instead of
2751         iterators.
2752         (append(size_type, _CharT)): Update call.
2753         (assign(size_type, _CharT)): Ditto.
2754         (replace(iterator, iterator, size_type, _CharT)): Ditto.
2755         (_M_replace_dispatch(iterator, iterator, _Integer,
2756         _Integer, __true_type)): Ditto.
2757         * include/bits/basic_string.tcc (assign(const _CharT*,
2758         size_type)): Ditto.
2759         (insert(size_type, const _CharT*, size_type)): Ditto.
2760         (replace(size_type, size_type, const _CharT*,
2761         size_type)): Ditto.
2762         (_M_replace(iterator, iterator, _InputIterator,
2763         _InputIterator)): Ditto.
2764         (append(const basic_string&)): Ditto.
2765         (append(const basic_string&, size_type, size_type): Ditto.
2766         (append(const _CharT*, size_type): Ditto.
2767         (_M_replace_safe, _M_replace_safe): Change definitions
2768         accordingly, simplify.
2769         * string-inst.cc (_M_replace_safe): Don't instantiate.
2770
2771 2004-01-21  Paolo Carlini  <pcarlini@suse.de>
2772
2773         * include/bits/basic_string.tcc (append(const basic_string&)):
2774         Revert previous change.
2775         (append(const basic_string&, size_type, size_type)): Revert
2776         previous change, use _M_check and _M_limit.
2777
2778 2004-01-21  Paolo Carlini  <pcarlini@suse.de>
2779
2780         * include/bits/basic_string.h (_M_check): Change to return
2781         a checked __pos and take an additional const char* argument.
2782         (_M_fold): Rename to _M_limit, change to return a size_type,
2783         corresponding to the __off limited to the actual length.
2784         (insert(size_type, size_type, _CharT)): Update call, call
2785         replace.
2786         (insert(iterator, _CharT)): Call replace(iterator, iterator,
2787         size_type, _CharT) instead.
2788         (erase(size_type, size_type)): Update calls.
2789         (replace(size_type, size_type, size_type, _CharT)): Ditto.
2790         (substr(size_type, size_type)): Use _M_check.
2791         * include/bits/basic_string.tcc (basic_string(const basic_string&,
2792         size_type, size_type)): Update calls.
2793         (basic_string(const basic_string&, size_type, size_type,
2794         const _Alloc&)): Ditto.
2795         (assign(const basic_string&, size_type, size_type)): Use the
2796         new _M_check and _M_limit.
2797         (insert(size_type, const basic_string&, size_type, size_type):
2798         Ditto.
2799         (insert(size_type, const _CharT*, size_type)): Ditto.
2800         (replace(size_type, size_type, const _CharT*, size_type): Ditto.
2801         (replace(size_type, size_type, const basic_string&,
2802         size_type, size_type)): Ditto.
2803         (append(const basic_string&)): Ditto.
2804         (append(const basic_string&, size_type, size_type)): Ditto.
2805         (copy(_CharT*, size_type, size_type)): Ditto.
2806         (compare(size_type, size_type, const basic_string&)): Ditto.
2807         (compare(size_type, size_type, const basic_string&,size_type,
2808         size_type)): Ditto.
2809         (compare(size_type, size_type, const _CharT*)): Ditto.
2810         (compare(size_type, size_type, const _CharT*, size_type)): Ditto.
2811
2812 2004-01-19  Stefan Olsson  <stefan@snon.net>
2813
2814         * include/ext/mt_allocator.h: If a thread, when it dies, still has
2815         memory on it's freelist this memory is not returned to global
2816         list. Simplification of deallocate so that memory is always
2817         returned to the calling thread id's freelist instead of to
2818         global. Fix typos. Add volatile where appropriate.
2819
2820 2004-01-19  Loren J. Rittle  <ljrittle@acm.org>
2821
2822         * testsuite/ext/stdio_filebuf/char/10063-2.cc: Treat unbuffered.
2823         * testsuite/ext/stdio_filebuf/char/10063-3.cc: New test.  Like -2 but
2824         use __gnu_cxx::stdio_sync_filebuf<char> instead; allow buffered stream.
2825
2826 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
2827
2828         * src/debug.cc: Make sure all the names are prefixed with
2829         double (or single) underscore.
2830
2831 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
2832
2833         * src/debug.cc: Trivial formatting change.
2834
2835 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
2836
2837         * include/bits/basic_string.tcc (_S_construct(size_type,
2838         _CharT, const _Alloc&)): Remove redundant try/catch.
2839         (_M_mutate(size_type, size_type, size_type)): Ditto.
2840         (_M_clone(const _Alloc&, size_type)): Ditto.
2841
2842 2004-01-18  Paolo Carlini  <pcarlini@suse.de>
2843
2844         * include/bits/basic_string.h (c_str()): Simplify, due to
2845         21.3.4 the internal representation is always kept null-terminated.
2846         * include/bits/basic_string.tcc (_M_clone): Null-terminate.
2847         * testsuite/21_strings/basic_string/element_access/char/4.cc: New.
2848         * testsuite/21_strings/basic_string/element_access/wchar_t/4.cc:
2849         Ditto.
2850
2851 2004-01-18  Paolo Carlini  <pcarlini@suse.de>
2852
2853         * include/bits/basic_string.h (append(size_type, _CharT)):
2854         Moved inline, just call _M_replace_aux, no source iterators at
2855         risk of being clobbered.
2856         (assign(size_type, _CharT)): Call directly _M_replace_aux.
2857         (_M_replace(iterator, iterator, _InputIterator, _InputIterator,
2858         input_iterator_tag)): Remove fifth unused argument.
2859         (_M_replace_dispatch(iterator, iterator, _InputIterator,
2860         _InputIterator, __false_type)): Update call.
2861         * include/bits/basic_string.tcc (replace(size_type, size_type,
2862         const _CharT*, size_type)): Update call.
2863         (_M_replace_aux(iterator, iterator, size_type, _CharT)): Tweak
2864         throw string literal.
2865         (_M_replace_safe(iterator, iterator, _ForwardIterator,
2866         _ForwardIterator)): Likewise.
2867         (_M_replace(iterator, iterator, _InputIterator, _InputIterator,
2868         input_iterator_tag)): Remove fifth unused argument.
2869         (append(size_type __n, _CharT __c)): Move inline.
2870         * src/string-inst.cc (S::_M_replace(S::iterator, S::iterator,
2871         const C*, const C*, input_iterator_tag)): Remove fifth unused
2872         argument.
2873
2874 2004-01-16  Benjamin Kosnik  <bkoz@redhat.com>
2875
2876         * testsuite/ext/enc_filebuf/char/13189.cc: Fix guards.
2877         * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Same.
2878
2879 2004-01-16  Danny Smith  <dannysmith@users.sourceforge.net>
2880
2881         * testsuite/testsuite_hooks.cc (try_mkfifo): Avoid calling
2882         mkfifo for mingw32.
2883
2884 2004-01-15  Stefan Olsson  <stefan@snon.net>
2885
2886         * include/ext/mt_allocator.h: Reuse thread id's as soon as
2887         possible by changing the behaviour of thread_freelist to do
2888         push_front when threads die instead of push_back.
2889
2890 2004-01-14  Paolo Carlini  <pcarlini@suse.de>
2891
2892         * include/bits/locale_facets.h (struct __numpunct_cache):
2893         Add member _M_grouping_size, caching the length of _M_grouping.
2894         (__numpunct_cache<>::_M_cache): Assign the latter.
2895         (__verify_grouping): Move declaration...
2896         * include/bits/locale_facets.tcc (__verify_grouping):
2897         ... here, change signature to take a const char* and a size_t
2898         for the grouping; not a template anymore.
2899         (__add_grouping, num_put::_M_group_int, num_put::_M_group_float):
2900         Likewise change signature and tweak consistently.
2901         (num_get::_M_extract_float, num_get::_M_extract_int,
2902         num_put::_M_insert_int, num_put::_M_insert_float,
2903         money_get::do_get(string_type&), money_get::do_put(string_type)):
2904         Update callers.
2905         * config/locale/generic/numeric_members.cc
2906         (numpunct<>::_M_initialize_numpunct): Assign the new member.
2907         * config/locale/gnu/numeric_members.cc
2908         (numpunct<>::_M_initialize_numpunct): Likewise.
2909         * src/locale-inst.cc (__add_grouping): Tweak signature.
2910         (__verify_grouping): Don't instantiate, not a template anymore.
2911
2912         * include/bits/locale_facets.h: Rename _M_truename_len ->
2913         _M_truename_size, _M_falsename_len -> _M_falsename_size.
2914         * include/bits/locale_facets.tcc: Likewise.
2915         * config/locale/generic/numeric_members.cc: Likewise.
2916         * config/locale/gnu/numeric_members.cc: Likewise.
2917
2918 2004-01-14  Stefan Olsson  <stefan@snon.net>
2919
2920         * include/ext/mt_allocator.h: Fixups.
2921         * testsuite/performance/allocator.cc: Enable __mt_alloc tests.
2922         * testsuite/performance/allocator_thread.cc: Same.
2923
2924 2004-01-13  Benjamin Kosnik  <bkoz@redhat.com>
2925
2926         * testsuite/performance/ifstream_extract_float.cc: Add higher
2927         precision tests.
2928         * testsuite/performance/ofstream_insert_float.cc: Same.
2929
2930 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
2931
2932         * src/locale-misc-inst.cc (__convert_from_v(long),
2933         __convert_from_v(unsigned long), __convert_from_v(long long),
2934         __convert_from_v(unsigned long long)): Remove, unused.
2935
2936 2004-01-13  Benjamin Kosnik  <bkoz@redhat.com>
2937
2938         * testsuite/performance/ifstream_extract_float.cc: New.
2939         * testsuite/performance/ofstream_insert_float.cc: Float generation
2940         matches above.
2941
2942         * 20_util/auto_ptr.cc, auto_ptr_neg.cc: Break into...
2943         * 20_util/auto_ptr/1.cc: ...this.
2944         * 20_util/auto_ptr/2.cc: Same.
2945         * 20_util/auto_ptr/3.cc: Same.
2946         * 20_util/auto_ptr/3946.cc: Same.
2947         * 20_util/auto_ptr/4.cc: Same.
2948         * 20_util/auto_ptr/5.cc: Same.
2949         * 20_util/auto_ptr/6.cc: Same.
2950         * 20_util/auto_ptr/7.cc: Same.
2951         * 20_util/auto_ptr/assign_neg.cc
2952         * 20_util/pairs.cc: Break into...
2953         * 20_util/pair/1.cc: ...this.
2954         * 20_util/pair/2.cc: Same.
2955         * 20_util/pair/3.cc: Same.
2956         * 20_util/pair/4.cc: Same.
2957
2958 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
2959
2960         * include/bits/locale_facets.tcc (num_get::do_get(void*&)):
2961         Set correctly just basefield, the only group that matters.
2962
2963 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
2964
2965         * include/ext/rope (_Rope_rep_alloc_base): Eliminate.
2966         (_Rope_rep_base): Inherit directly from the rope allocator;
2967         use rebinding instead of _Alloc_traits; pick up data member
2968         from _Rope_rep_alloc_base.
2969         (_Rope_alloc_base): Eliminate.
2970         (_Rope_base): Inherit directly from the rope allocator; use
2971         rebinding instead of _Alloc_traits; pick up data member from
2972         _Rope_alloc_base.
2973         (rope::_S_new_RopeLeaf, rope::_S_new_RopeConcatenation,
2974         rope::_S_new_RopeFunction, rope::_S_new_RopeSubstring): Tweak.
2975
2976 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
2977
2978         PR libstdc++/13650
2979         * include/bits/basic_string.tcc (compare(size_type, size_type,
2980         const _CharT*, size_type)): Implement correctly the resolution
2981         of DR 5: basically, s is a char array, -not- a C string.
2982         * include/bits/basic_string.h: Tweak some comments.
2983         * testsuite/21_strings/basic_string/compare/char/13650.cc: New.
2984         * testsuite/21_strings/basic_string/compare/wchar_t/13650.cc: New.
2985
2986 2004-01-12  Andreas Tobler  <a.tobler@schweiz.ch>
2987
2988         * testsuite/lib/libstdc++.exp: Set LD_LIBRARY_PATH_32 for
2989         Solaris.
2990
2991 2004-01-12  Paolo Carlini  <pcarlini@suse.de>
2992
2993         * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc:
2994         Use try_mkfifo.
2995         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc:
2996         Likewise.
2997
2998 2004-01-12  Paolo Carlini  <pcarlini@suse.de>
2999
3000         * include/bits/locale_facets.h (struct __numpunct_cache):
3001         Add members _M_truename_len and _M_falsename_len, caching
3002         the lengths of _M_truename and _M_falsename.
3003         (__numpunct_cache<>::_M_cache): Assign the latter.
3004         * include/bits/locale_facets.tcc (num_get::do_get(bool&),
3005         num_put::do_put(bool)): Use the new members, thus avoiding
3006         computing string lengths again and again.
3007         * config/locale/generic/numeric_members.cc
3008         (numpunct<>::_M_initialize_numpunct): Assign the new members.
3009         * config/locale/gnu/numeric_members.cc
3010         (numpunct<>::_M_initialize_numpunct): Likewise.
3011
3012 2004-01-12  Mark Mitchell  <mark@codesourcery.com>
3013
3014         * testsuite/testsuite_hooks.h (__gnu_test::try_mkfifo): Declare it.
3015         * testsuite/testsuite_hooks.cc (__gnu_test::try_mkfifo): Define
3016         it.
3017         * testsuite/27_io/basic_filebuf/close/char/4879.cc: Use try_mkfifo
3018         and remove Cygwin XFAIL.
3019         * testsuite/27_io/basic_filebuf/close/char/9964.cc: Likewise.
3020         * testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc: Likewise.
3021         * testsuite/27_io/basic_filebuf/open/char/9507.cc: Likewise.
3022         * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc:
3023         Likewise.
3024         * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise.
3025         * testsuite/27_io/objects/char/7.cc: Likewise.
3026         * testsuite/27_io/objects/char/9661-1.cc: Likewise.
3027         * testsuite/27_io/objects/wchar_t/7.cc: Likewise.
3028         * testsuite/27_io/objects/wchar_t/9661-1.cc: Likewise.
3029
3030 2004-01-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3031
3032         * include/std/std_complex.h (std::complex<>::real): Return a
3033         reference. Add non-const overload.
3034         (std::complex<>::real): Likewise.
3035         (std::real): Likewise.
3036         (std::imag): Likewise.
3037         (std::operator+): Tidy.
3038         (std::operator-): Likewise.
3039         (std::operator*): Likewise.
3040         (std::operator/): Likewise.
3041         (std::operator>>): Likewise.
3042
3043 2004-01-11  Paolo Carlini  <pcarlini@suse.de>
3044
3045         PR libstdc++/13582
3046         * include/bits/fstream.tcc (imbue): Exploit the external
3047         buffer to imbue 'on the fly' a new locale and convert its
3048         remainder with the new codecvt facet.
3049         (underflow): Tweak slightly to deal with this special case.
3050         * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc: New.
3051         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc: Ditto.
3052         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Ditto.
3053         * testsuite/27_io/objects/wchar_t/13582-1_xin.cc: Ditto.
3054         * testsuite/27_io/objects/wchar_t/13582-1_xin.in: Ditto.
3055
3056 2004-01-10  Paolo Carlini  <pcarlini@suse.de>
3057
3058         * docs/html/ext/lwg-active.html, docs/html/ext/lwg-defects.html:
3059         Import Revision 28.
3060
3061 2004-01-10  Paolo Carlini  <pcarlini@suse.de>
3062
3063         PR libstdc++/13630
3064         * include/bits/locale_classes.h (class locale): Fix category
3065         typedef.
3066         * testsuite/22_locale/locale/13630.cc: Add.
3067
3068 2004-01-10  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
3069
3070         * include/bits/locale_facets.h: Make a name really dependent. This
3071         will be needed when Core Issue 224 is implemented.
3072
3073 2004-01-09  Paolo Carlini  <pcarlini@suse.de>
3074
3075         * testsuite/performance/allocator.cc: Demangle typeid(obj).name().
3076         * testsuite/performance/allocator_thread.cc: Likewise.
3077
3078 2004-01-07  Benjamin Kosnik  <bkoz@redhat.com>
3079
3080         * crossconfig.m4: Add LFS, io bits to linux cross config.
3081         * acconfig.h: Remove obsolete bits, reorder.
3082         * config.h.in: Regenerate.
3083         * aclocal.m4: Same.
3084         * configure: Same.
3085
3086 2004-01-07  Gawain Bolton  <gp.bolton@computer.org>
3087
3088         * include/bits/stl_list.h:
3089         * include/bits/list.tc:
3090         * src/list.cc:
3091         Performance enhancements for destructor, push_front(),
3092         push_back(), pop_front(), pop_back(), sort()
3093         Eliminated static_casts where possible.
3094         Moved code out of header files into new src/list.cc
3095         implementation file for library where possible.
3096         Remove inheritance from iterator class and create separate
3097         classes for non-constant and constant iterators.
3098         * include/bits/stl_tree.h (_Rb_tree class):
3099         * src/tree.cc:
3100         Only erase contents in destructor.
3101         Eliminate unnecessary initialization in assignment operator.
3102         Optimize for the nominal case by not checking whether
3103         container is empty in clear().
3104         Re-order test in _M_insert() to improve performance.
3105         Move initialization of new node's left & right pointers to
3106         src/tree.cc to where new node's colour is initialized
3107         and to reduce the amount of inline code.
3108         Use  _M_leftmost() and _M_end() to improve readability where
3109         appropriate.
3110         Create separate classes for non-constant and constant
3111         iterators to clarify code, avoid extra template parameters and
3112         casting away constness.
3113
3114 2004-01-07  Benjamin Kosnik  <bkoz@redhat.com>
3115
3116         * src/Makefile.am (sources): Add list.cc, tree.cc.
3117         * src/stl_tree.cc: Move to...
3118         * src/tree.cc: ...here.
3119         * src/list.cc: Add.
3120         * config/linker-map.gnu: Tweaks.
3121         * testsuite/23_containers/map/operators/1_neg.cc: Add excess errors.
3122         * testsuite/23_containers/set/operators/1_neg.cc: Add excess errors.
3123
3124         * bits/stl_vector.h: Column wrap comments.
3125
3126 2004-01-07  Loren J. Rittle  <ljrittle@acm.org>
3127
3128         (re-open) PR libstdc++/12658
3129         * src/locale_init.cc (locale::locale): Remove ill-scoped mutex.
3130         (locale::global): Likewise.
3131
3132 2004-01-07  Paolo Carlini  <pcarlini@suse.de>
3133
3134         * testsuite/27_io/basic_istream/extractors_other/char/9318-in.cc:
3135         Remove redundant #include.
3136         * testsuite/27_io/basic_ostream/endl/char/1.cc: Likewise.
3137         * testsuite/27_io/basic_ostream/ends/char/1.cc: Likewise,
3138         re-enable normal testing.
3139         * testsuite/27_io/basic_ostream/ends/char/2.cc: Remove redundant
3140         #include.
3141         * testsuite/27_io/basic_ostream/flush/char/1.cc: Likewise.
3142         * testsuite/27_io/basic_ostream/inserters_character/char/1.cc:
3143         Likewise.
3144         * testsuite/27_io/basic_ostream/inserters_character/char/2.cc:
3145         Likewise.
3146         * testsuite/27_io/basic_ostream/inserters_character/char/3.cc:
3147         Likewise.
3148         * testsuite/27_io/basic_ostream/inserters_character/char/4.cc:
3149         Likewise.
3150         * testsuite/27_io/basic_ostream/inserters_character/char/5.cc:
3151         Likewise.
3152         * testsuite/27_io/basic_ostream/inserters_character/char/6.cc:
3153         Likewise.
3154         * testsuite/27_io/basic_ostream/inserters_character/char/8.cc:
3155         Likewise.
3156         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/7.cc:
3157         More properly, #include <locale>.
3158         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/8.cc:
3159         Remove redundant #include.
3160         * testsuite/27_io/basic_ostream/inserters_other/char/2.cc: Likewise.
3161         * testsuite/27_io/basic_ostream/inserters_other/char/3.cc: Remove
3162         redundant DejaGnu directive.
3163         * testsuite/27_io/basic_ostream/inserters_other/char/4.cc: Remove
3164         redundant #include.
3165
3166 2004-01-06  Benjamin Kosnik  <bkoz@redhat.com>
3167             Stefan Olsson  <stefan@snon.net>
3168
3169         * scripts/check_performance: Use -pthread.
3170         * testsuite/performance/allocator.cc: Tweaks, add list.
3171         * testsuite/performance/allocator_thread.cc: New.
3172
3173 2004-01-06  Jerry Quinn  <jlquinn@optonline.net>
3174
3175         * include/bits/locale_facets.h: Document public classes and
3176         functions.
3177         * include/bits/locale_facets.tcc (time_get::_M_extract_via_format):
3178         Add comment.
3179
3180 2004-01-06  Paolo Carlini  <pcarlini@suse.de>
3181
3182         * testsuite/27_io/basic_istream/extractors_other/char/1.cc:
3183         Remove redundant #includes.
3184         * testsuite/27_io/basic_istream/extractors_other/char/2.cc:
3185         Likewise.
3186         * testsuite/27_io/basic_istream/extractors_other/char/3.cc:
3187         Likewise.
3188         * testsuite/27_io/basic_istream/get/char/1.cc: Likewise.
3189         * testsuite/27_io/basic_istream/get/char/2.cc: Likewise.
3190         * testsuite/27_io/basic_istream/getline/char/1.cc: Likewise.
3191         * testsuite/27_io/basic_istream/getline/char/2.cc: Likewise.
3192         * testsuite/27_io/basic_istream/getline/char/3.cc: Likewise.
3193         * testsuite/27_io/basic_istream/ignore/char/1.cc: Likewise.
3194         * testsuite/27_io/basic_istream/ignore/char/6360.cc: Likewise.
3195         * testsuite/27_io/basic_istream/ignore/char/7220.cc: Likewise.
3196         * testsuite/27_io/basic_istream/peek/char/1.cc: Likewise.
3197         * testsuite/27_io/basic_istream/peek/char/6414.cc: Likewise.
3198         * testsuite/27_io/basic_istream/putback/char/1.cc: Likewise.
3199         * testsuite/27_io/basic_istream/read/char/1.cc: Likewise.
3200         * testsuite/27_io/basic_istream/read/char/2.cc: Likewise.
3201         * testsuite/27_io/basic_istream/read/char/3.cc: Likewise.
3202         * testsuite/27_io/basic_istream/readsome/char/6746-1.cc:
3203         Likewise.
3204         * testsuite/27_io/basic_istream/readsome/char/6746-2.cc:
3205         Likewise.
3206         * testsuite/27_io/basic_istream/readsome/char/8258.cc:
3207         Likewise.
3208         * testsuite/27_io/basic_istream/seekg/char/2346-fstream.cc:
3209         Likewise.
3210         * testsuite/27_io/basic_istream/seekg/char/2346-sstream.cc:
3211         Likewise.
3212         * testsuite/27_io/basic_istream/seekg/char/8348-1.cc: Likewise.
3213         * testsuite/27_io/basic_istream/seekg/char/8348-2.cc: Likewise.
3214         * testsuite/27_io/basic_istream/tellg/char/8348.cc: Likewise.
3215
3216 2004-01-04  Paolo Carlini  <pcarlini@suse.de>
3217
3218         * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc:
3219         Remove redundant #includes.
3220         * testsuite/27_io/basic_istream/extractors_arithmetic/char/02.cc:
3221         Likewise.
3222         * testsuite/27_io/basic_istream/extractors_arithmetic/char/03.cc:
3223         Likewise.
3224         * testsuite/27_io/basic_istream/extractors_arithmetic/char/06.cc:
3225         Likewise.
3226         * testsuite/27_io/basic_istream/extractors_arithmetic/char/07.cc:
3227         Likewise.
3228         * testsuite/27_io/basic_istream/extractors_arithmetic/char/08.cc:
3229         Likewise.
3230         * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc:
3231         Likewise.
3232         * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
3233         Likewise.
3234         * testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc:
3235         Likewise.
3236         * testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc:
3237         Likewise.
3238         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/1.cc:
3239         Likewise.
3240         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc:
3241         Likewise.
3242         * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/1.cc:
3243         Likewise.
3244
3245 2004-01-04  Mark Mitchell  <mark@codesourcery.com>
3246
3247         PR c++/12226
3248         * testsuite/27_io/basic_filebuf/4.cc: Remove use of invalid copy
3249         constructor.
3250         * testsuite/27_io/basic_fstream/4.cc: Likewise.
3251         * testsuite/27_io/basic_ifstream/4.cc: Likewise.
3252         * testsuite/27_io/basic_ios/4.cc: Likewise.
3253         * testsuite/27_io/basic_iostream/4.cc: Likewise.
3254         * testsuite/27_io/basic_istream/4.cc: Likewise.
3255         * testsuite/27_io/basic_istingstream/4.cc: Likewise.
3256         * testsuite/27_io/basic_ofstream/4.cc: Likewise.
3257         * testsuite/27_io/basic_ostream/4.cc: Likewise.
3258         * testsuite/27_io/basic_ostringstream/4.cc: Likewise.
3259         * testsuite/27_io/basic_stringbuf/5.cc: Likewise.
3260         * testsuite/27_io/basic_stringstream/4.cc: Likewise.
3261
3262 2004-01-04  Paolo Carlini  <pcarlini@suse.de>
3263
3264         * config/locale/generic/numeric_members.cc (_M_initialize_numpunct):
3265         Avoid unnecessarily zero terminating _M_atoms_out and _M_atoms_in;
3266         always use double underscored names.
3267         * config/locale/gnu/numeric_members.cc (_M_initialize_numpunct):
3268         Likewise.
3269         * include/bits/locale_facets.h (struct __numpunct_cache):
3270         Dimension _M_atoms_out and _M_atoms_in one position smaller.
3271         (__numpunct_cache<>::_M_cache): Don't zero terminate _M_atoms_out
3272         and _M_atoms_in.