OSDN Git Service

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