OSDN Git Service

2004-03-08 Petur Runolfsson <peturr02@ru.is>
[pf3gnuchains/gcc-fork.git] / libstdc++-v3 / ChangeLog
1 2004-03-08  Petur Runolfsson  <peturr02@ru.is>
2
3         PR libstdc++/12658
4         * testsuite/22_locale/locale/cons/12658_thread.cc: New.
5
6 2004-03-08  Paolo Carlini  <pcarlini@suse.de>
7
8         * docs/html/ext/howto.html: Add entry for DR 103 [WP].
9         * include/bits/stl_multiset.h: Add comment about DR 103.
10         * include/bits/stl_set.h: Likewise.
11
12 2004-03-08  Paolo Carlini  <pcarlini@suse.de>
13
14         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
15         The value _space_ indicates that at least one space is required
16         at that position.
17         * testsuite/22_locale/money_get/get/char/17.cc: New.
18         * testsuite/22_locale/money_get/get/wchar_t/17.cc: New.
19
20         * testsuite/22_locale/money_get/get/char/7.cc: Minor tweaks.
21         * testsuite/22_locale/money_get/get/wchar_t/7.cc: Likewise.
22
23         * include/bits/locale_facets.tcc (money_get<>::do_get(long_double&)):
24         Remove redundant conditional on __str.size().
25         
26 2004-03-08  Benjamin Kosnik  <bkoz@redhat.com>
27
28         * include/bits/allocator.h: Switch defaults to mt_alloc.
29
30 2004-03-06  Benjamin Kosnik  <bkoz@redhat.com>
31
32         * include/ext/mt_allocator.h (_S_initialize): If
33         !__GTHREAD_MUTEX_INIT, then initialize _S_thread_freelist_mutex.
34
35 2004-03-06  Benjamin Kosnik  <bkoz@redhat.com>
36
37         PR libstdc++/12658
38         * src/locale_init.cc (locale::locale): Lock critical regions with
39         external mutexes.
40         (locale::global): Same. 
41         * include/bits/concurrence.h (__glibcxx_mutex_define_initialized): 
42         Add in once bits for cases without __GTHREAD_MUTEX_INIT.
43         (__glibcxx_mutex_lock): Same.
44
45         * config/cpu/generic/atomicity.h: Remove
46         _GLIBCXX_NEED_GENERIC_MUTEX, use concurrence.h.
47         * src/misc-inst.cc: Move all locking bits out of this file.
48
49         * config/os/hpux/os_defines.h: Remove _GLIBCXX_INST_ATOMICITY_LOCK.
50         * src/misc-inst.cc: Same.
51         * config/cpu/hppa/atomicity.h: Same.
52
53         * config/linker-map.gnu: Remove types in the signature of atomic
54         exports, as they may vary.
55         
56 2004-03-06  Paolo Carlini  <pcarlini@suse.de>
57
58         * include/bits/locale_facets.tcc: Tweak the comment preceding
59         has_facet: doesn't throw.
60
61 2004-03-06  Paolo Carlini  <pcarlini@suse.de>
62
63         * testsuite/22_locale/money_get/get/char/1.cc: Clean up.
64         * testsuite/22_locale/money_get/get/char/2.cc: Likewise.
65         * testsuite/22_locale/money_get/get/char/3.cc: Likewise.
66         * testsuite/22_locale/money_get/get/char/4.cc: Likewise.
67         * testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise.
68         * testsuite/22_locale/money_get/get/wchar_t/2.cc: Likewise.
69         * testsuite/22_locale/money_get/get/wchar_t/3.cc: Likewise.
70         * testsuite/22_locale/money_get/get/wchar_t/4.cc: Likewise.
71
72 2004-03-06  Paolo Carlini  <pcarlini@suse.de>
73
74         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
75         num_get<>::_M_extract_int, num_get<>::do_get(bool&),
76         __pad<>::_S_pad): Prefer plain operator== to traits::eq().
77         * testsuite/testsuite_character.h (struct __gnu_test::character):
78         Provide operator==.
79         * testsuite/testsuite_hooks.h (struct __gnu_test::pod_char):
80         Likewise.
81
82 2004-03-05  Paolo Carlini  <pcarlini@suse.de>
83
84         * testsuite/27_io/fpos/14320-2.cc: Remove xfail.
85
86 2004-03-04  Benjamin Kosnik  <bkoz@redhat.com>
87
88         * testsuite/23_containers/multiset/insert/1.cc: Test result string.
89
90         * testsuite/23_containers/bitset/invalidation/1.cc: Main always
91         returns 0.      
92         * testsuite/23_containers/deque/invalidation/4.cc: Same.
93         * testsuite/23_containers/list/invalidation/1.cc: Same.
94         * testsuite/23_containers/list/invalidation/2.cc: Same.
95         * testsuite/23_containers/list/invalidation/3.cc: Same.
96         * testsuite/23_containers/list/invalidation/4.cc: Same.
97         * testsuite/23_containers/map/invalidation/2.cc: Same.
98         * testsuite/23_containers/multimap/invalidation/1.cc: Same.
99         * testsuite/23_containers/multimap/invalidation/2.cc: Same.
100         * testsuite/23_containers/multiset/invalidation/1.cc: Same.
101         * testsuite/23_containers/multiset/invalidation/2.cc: Same.
102         * testsuite/23_containers/set/invalidation/1.cc: Same.
103         * testsuite/23_containers/set/invalidation/2.cc: Same.
104         * testsuite/23_containers/vector/invalidation/1.cc: Same.
105         * testsuite/23_containers/vector/invalidation/2.cc: Same.
106         * testsuite/23_containers/vector/invalidation/3.cc: Same.
107         * testsuite/23_containers/vector/invalidation/4.cc: Same.
108
109 2004-03-04  Paolo Carlini  <pcarlini@suse.de>
110
111         * scripts/testsuite_flags.in: Add "-D_GLIBCXX_ASSERT" to
112         CXXFLAGS_save.
113         * testsuite/lib/libstdc++.exp: Don't add it conditionally to
114         DEFAULT_CXXFLAGS. 
115         * testsuite/18_support/numeric_limits.cc: Remove "-D_GLIBCXX_ASSERT"
116         from the dg-options.
117         * testsuite/23_containers/vector/invalidation/1.cc: Likewise.
118         * testsuite/23_containers/vector/invalidation/2.cc: Likewise.
119         * testsuite/23_containers/vector/invalidation/3.cc: Likewise.
120         * testsuite/23_containers/vector/invalidation/4.cc: Likewise.
121         * testsuite/23_containers/vector/resize/1.cc: Likewise.
122         * testsuite/26_numerics/complex_value.cc: Likewise.
123         * testsuite/27_io/ios_base/storage/1.cc: Likewise.
124         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
125         * testsuite/27_io/ios_base/storage/3.cc: Likewise.
126         * testsuite/27_io/manipulators/standard/char/2.cc: Likewise.
127         * testsuite/27_io/objects/char/5.cc: Likewise.
128         * testsuite/27_io/objects/wchar_t/5.cc: Likewise.
129         * testsuite/backward/11460.cc: Likewise.
130         * testsuite/thread/pthread7-rope.cc: Likewise.
131
132         * testsuite/21_strings/basic_string/compare/char/1.cc: Add
133         missing test variable.
134         * testsuite/21_strings/basic_string/compare/wchar_t/1.cc: Add
135         missing test variable.
136
137 2004-03-04  Benjamin Kosnik  <bkoz@redhat.com>
138
139         * testsuite/20_util/allocator/1.cc: Provide explicit
140         instantiations for non-weak systems.
141         * testsuite/20_util/binders.cc: Same.
142         * testsuite/20_util/allocator/8230.cc: Same.
143         * testsuite/20_util/allocator/10378.cc: Same.
144         * testsuite/22_locale/ctype/is/wchar_t/2.cc: Same.
145         * testsuite/22_locale/ctype/is/char/2.cc: Same.
146         * testsuite/thread/pthread7-rope.cc: Same.
147         * testsuite/thread/pthread6.cc: Same.   
148         * testsuite/thread/pthread5.cc: Same.           
149         * testsuite/thread/pthread4.cc: Same.   
150         * testsuite/thread/pthread1.cc: Same.
151         * testsuite/ext/rope.cc: Same.
152         * testsuite/ext/hash_set.cc: Same.
153         * testsuite/ext/hash_map.cc: Same.      
154         * testsuite/ext/concept_checks.cc: Same.
155         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc: Same.
156         * testsuite/25_algorithms/unique/2.cc: Same.
157         * testsuite/25_algorithms/unique/1.cc: Same.
158         * testsuite/25_algorithms/rotate.cc: Same.
159         * testsuite/25_algorithms/min_max.cc: Same.
160         * testsuite/25_algorithms/equal.cc: Same.       
161         * testsuite/24_iterators/rel_ops.cc: Same.
162         * testsuite/24_iterators/iterator.cc: Same.
163         * testsuite/24_iterators/insert_iterator.cc: Same.
164         * testsuite/24_iterators/front_insert_iterator.cc: Same.
165         * testsuite/24_iterators/back_insert_iterator.cc: Same.
166         * testsuite/23_containers/vector/resize/1.cc: Same.
167         * testsuite/23_containers/vector/modifiers/2.cc: Same.
168         * testsuite/23_containers/vector/modifiers/1.cc: Same.
169         * testsuite/23_containers/vector/invalidation/4.cc: Same.
170         * testsuite/23_containers/vector/invalidation/3.cc: Same.
171         * testsuite/23_containers/vector/invalidation/2.cc: Same.       
172         * testsuite/23_containers/vector/invalidation/1.cc: Same.
173         * testsuite/23_containers/vector/element_access/1.cc: Same.
174         * testsuite/23_containers/vector/cons/6513.cc: Same.
175         * testsuite/23_containers/vector/cons/3.cc: Same.
176         * testsuite/23_containers/vector/cons/2.cc: Same.
177         * testsuite/23_containers/vector/cons/1.cc: Same.
178         * testsuite/23_containers/vector/capacity/8230.cc: Same.
179         * testsuite/23_containers/vector/capacity/1.cc: Same.
180         * testsuite/23_containers/vector/bool/6886.cc: Same.
181         * testsuite/23_containers/stack/members/7158.cc: Same.
182         * testsuite/23_containers/set/invalidation/2.cc: Same.
183         * testsuite/23_containers/set/invalidation/1.cc: Same.
184         * testsuite/23_containers/queue/members/7157.cc: Same.
185         * testsuite/23_containers/priority_queue/members/7161.cc: Same.
186         * testsuite/23_containers/multiset/invalidation/2.cc: Same.
187         * testsuite/23_containers/multiset/invalidation/2.cc: Same.     
188         * testsuite/23_containers/multiset/insert/1.cc: Same.
189         * testsuite/23_containers/multimap/invalidation/2.cc: Same.
190         * testsuite/23_containers/multimap/invalidation/2.cc: Same.
191         * testsuite/23_containers/map/operators/1.cc: Same.
192         * testsuite/23_containers/map/invalidation/2.cc: Same.
193         * testsuite/23_containers/map/invalidation/1.cc: Same.
194         * testsuite/23_containers/map/insert/1.cc: Same.
195         * testsuite/23_containers/list/operators/4.cc: Same.
196         * testsuite/23_containers/list/operators/3.cc: Same.
197         * testsuite/23_containers/list/operators/2.cc: Same.
198         * testsuite/23_containers/list/operators/1.cc: Same.
199         * testsuite/23_containers/list/modifiers/3.cc: Same.
200         * testsuite/23_containers/list/modifiers/2.cc: Same.
201         * testsuite/23_containers/list/modifiers/1.cc: Same.
202         * testsuite/23_containers/list/invalidation/4.cc: Same.
203         * testsuite/23_containers/list/invalidation/3.cc: Same.
204         * testsuite/23_containers/list/invalidation/2.cc: Same.
205         * testsuite/23_containers/list/invalidation/1.cc: Same. 
206         * testsuite/23_containers/list/cons/9.cc: Same.
207         * testsuite/23_containers/list/cons/8.cc: Same.
208         * testsuite/23_containers/list/cons/7.cc: Same.
209         * testsuite/23_containers/list/cons/6.cc: Same.
210         * testsuite/23_containers/list/cons/5.cc: Same.
211         * testsuite/23_containers/list/cons/4.cc: Same.
212         * testsuite/23_containers/list/cons/3.cc: Same.
213         * testsuite/23_containers/list/cons/2.cc: Same.
214         * testsuite/23_containers/list/cons/1.cc: Same.
215         * testsuite/23_containers/list/capacity/1.cc: Same.
216         * testsuite/23_containers/deque/operators/1.cc: Same.
217         * testsuite/23_containers/deque/invalidation/4.cc: Same.
218         * testsuite/23_containers/deque/invalidation/3.cc: Same.
219         * testsuite/23_containers/deque/invalidation/2.cc: Same.
220         * testsuite/23_containers/deque/invalidation/1.cc: Same.
221         * testsuite/23_containers/deque/cons/2.cc: Same.
222         * testsuite/23_containers/deque/cons/1.cc: Same.
223
224         * src/allocator.cc: Add char, wchar_t instantiations
225         to match extern template declarations in memory.h.
226
227 2004-03-03  Paolo Carlini  <pcarlini@suse.de>
228
229         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
230         Fix warning regression.
231
232 2004-03-03  Paolo Carlini  <pcarlini@suse.de>
233
234         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
235         Deal properly with empty __digits and negative frac_digits,
236         clean-up a bit.
237
238 2004-03-03  Jonathan Wakely  <redi@gcc.gnu.org>
239
240         * docs/html/documentation.html: Regenerate.
241
242 2004-03-02  Paolo Carlini  <pcarlini@suse.de>
243
244         PR libstdc++/14320
245         * include/bits/postypes.h (class streamoff): Remove, now
246         streamoff is just typedef a 64 bit signed integer type.
247         (class fpos): Tweak consistently.
248         * testsuite/27_io/fpos/14320-1.cc: New.
249         * testsuite/27_io/fpos/14320-2.cc: New.
250         * testsuite/27_io/fpos/14320-3.cc: New.
251         * testsuite/27_io/fpos/14320-4.cc: New.
252         * testsuite/27_io/fpos/14320-5.cc: New.
253         * testsuite/27_io/fpos/mbstate_t/4_neg.cc: xfail for now.
254
255 2004-03-02  Paolo Carlini  <pcarlini@suse.de>
256
257         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
258         Reorganize a bit the main parsing loop, thus early detecting
259         an empty value component.
260         * testsuite/22_locale/money_get/get/char/16.cc: New.
261         * testsuite/22_locale/money_get/get/wchar_t/16.cc: New.
262
263 2004-03-02  Benjamin Kosnik  <bkoz@redhat.com>
264
265         Support automake 1.8.2
266         * configure.ac (AM_INIT_AUTOMAKE): Add -Wno-override.
267         * po/Makefile.am (EXTRA_DIST): New.
268         * po/Makefile.in: Regenerate.
269         * Makefile.in: Same.
270         * include/Makefile.in: Same.
271         * libmath/Makefile.in: Same.
272         * libsupc++/Makefile.in: Same.
273         * src/Makefile.in: Same.
274         * testsuite/Makefile.in: Same.
275
276         * include/Makefile.am (${host_builddir}/gthr-posix.h): Use
277         __GXX_WEAK__ instead of SUPPORTS_WEAK.
278         (${host_builddir}/gthr-default.h): Same.
279         (${host_builddir}/gthr.h): Same.
280         * acinclude.m4 (GLIBCXX_ENABLE_THREAD): Remove
281         _GLIBCXX_SUPPORTS_WEAK, as this behavior can be modified via
282         -fno-weak.
283         * aclocal.m4: Regenerate.
284         * acconfig.h: Remove _GLIBCXX_SUPPORTS_WEAK.
285         * config.h.in: Regenerate.
286         * configure: Same.
287         
288 2004-03-01  Benjamin Kosnik  <bkoz@redhat.com>
289
290         Support autoconf 2.59
291         * acinclude.m4: Quote correctly.
292         * aclocal.m4: Regenerate.
293         * linkage.m4: Same.
294
295 2004-03-01  Benjamin Kosnik  <bkoz@redhat.com>
296
297         * docs/html/test.html: Add multilib RUNTESTFLAGS example.
298
299         * docs/html/18_support/howto.html: Add bit about writing to
300         stderr, mostly by Zack.
301         
302 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
303
304         * include/bits/locale_facets.tcc (money_get<>::_M_extract,
305         money_get<>::do_get(string_type&)): ... and two more.
306
307 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
308
309         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
310         Fix thinkos in the switch from string_type& to string& as last
311         argument.
312
313 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
314
315         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float):
316         Also when parsing exponent sign, first look for thousands_sep
317         and decimal_point; tweak a bit.
318         * testsuite/22_locale/num_get/get/char/15.cc: New.
319         * testsuite/22_locale/num_get/get/wchar_t/15.cc: New.
320         
321         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
322         num_get<>::_M_extract_int): Reorder some conditionals.
323
324 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
325
326         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
327         Consistently with numpunct, enforce the requirements in
328         22.2.6.3, p3 for the thousands separators; tweak a bit.
329         * testsuite/22_locale/money_get/get/char/15.cc: New.
330         * testsuite/22_locale/money_get/get/wchar_t/15.cc: New.
331         
332 2004-03-01  David Billinghurst <David.Billinghurst@riotinto.com>
333
334         * testsuite/lib/libstdc++.exp (v3-list-tests): Use 
335         testsuite_files from correct multilib blddir when running
336         testsuite.
337
338 2004-02-29  Phil Edwards  <phil@codesourcery.com>
339
340         * testsuite/Makefile.am (check-abi, check-abi-verbose):  Copy
341         the summary file to the logfile.
342         * testsuite/Makefile.in:  Regenerate.
343
344 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
345
346         * config/cpu/hppa/atomicity.h (__atomic_add): Make first argument
347         volatile.
348         * config/os/hpux/os_defines.h (_GLIBCXX_INST_ATOMICITY_LOCK): Use
349         __GXX_WEAK__ instead of _GLIBCXX_SUPPORTS_WEAK.
350
351 2004-02-28  Paolo Carlini  <pcarlini@suse.de>
352
353         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float):
354         According to 22.2.3.1, p2, 'units' may be followed by 'e' with
355         no 'decimal-point' in the middle: in this case too we must fix
356         up __found_grouping; slightly tweak.
357         * testsuite/22_locale/num_get/get/char/14.cc: New.
358         * testsuite/22_locale/num_get/get/wchar_t/14.cc: New.
359
360 2004-02-27  Eric Christopher  <echristo@redhat.com>
361             Phil Edwards  <phil@codesourcery.com>
362
363         * testsuite/22_locale/collate/compare/wchar_t/2.cc,
364         testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc,
365         testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc,
366         testsuite/22_locale/collate/hash/wchar_t/2.cc,
367         testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc,
368         testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc,
369         testsuite/22_locale/collate/transform/wchar_t/2.cc,
370         testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc,
371         testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc:
372         Use dg-require-iconv.
373         * testsuite/lib/libstdc++.exp:  Load target-supports.exp.
374
375 2004-02-27  Phil Edwards  <phil@codesourcery.com>
376             Eric Christopher  <echristo@redhat.com>
377
378         * testsuite/config/default.exp:  Update with comments.
379         (${tool}_target_compile):  New wrapper routine.
380         * testsuite/lib/dg-options.exp:  New file, with dg-require-iconv.
381         * testsuite/lib/libstdc++.exp:  Update with comments and cosmetic
382         fixes.
383         (load_gcc_lib, v3track):  New routines.
384         (v3-init):  Rename to libstdc++_init.
385         * testsuite/libstdc++-dg/normal.exp:  No longer call v3-init.
386         Move DEFAULT_CXXFLAGS handling into libstdc++_init.
387
388 2004-02-27  Benjamin Kosnik  <bkoz@redhat.com>
389
390         * config/cpu/hppa/atomicity.h: Include c++config.h to get defines.
391
392         * src/misc-inst.cc (_S_atomicity_lock): Move to __gnu_cxx.
393
394         * config/os/irix/irix5.2/atomicity.h: Merge..
395         * config/os/irix/irix6.5/atomicity.h: Merge..
396         * config/os/irix/atomicity.h: ...into this.
397         * config/os/irix/atomic_word.h: New.
398         * configure.host: Set atomic_word_dir for irix.
399
400         * hppa/atomicity.h: Change __Atomicity_lock to _Atomicity_lock.
401         * i386/atomicity.h: Same.
402         * m68k/atomicity.h: Same.
403         * sparc/atomicity.h: Same.
404
405 2004-02-27  David Edelsohn  <edelsohn@gnu.org>
406
407         * config/os/aix/atomicity.h: Use __gnu_cxx namespace. Remove
408         static, and inline keywords.
409
410 2004-02-27  Paolo Carlini  <pcarlini@suse.de>
411
412         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
413         num_get<>::_M_extract_int, money_get<>::_M_extract): If appropriate,
414         call reserve on the __tmp_gruping string.
415         (num_get<>::_M_extract_float): Don't append unnecessarily a
416         char() to the returned string.
417         * include/bits/locale_facets.tcc: Trivial reformattings.
418
419 2004-02-27  Paolo Carlini  <pcarlini@suse.de>
420
421         * include/bits/locale_facets.h (money_get<>::_M_extract):
422         Change signature: now takes a plain string&.
423         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
424         Update consistently the definition; use the moneypunct cache
425         to parse the value; use swap to change __units.
426         (money_get<>::do_get(long double&)): Update call of _M_extract,
427         avoid ctype::narrow, not correct wrt the standard.
428         (money_get<>::do_get(string_type&)): Likewise, update call
429         of _M_extract, use ctype::widen.
430         * src/locale-inst.cc: Tweak instantiations of _M_extract.
431
432 2004-02-26  Ian Lance Taylor  <ian@wasabisystems.com>
433
434         * testsuite/demangle/abi_examples/01.cc: Expect error -2.
435         * testsuite/demangle/abi_examples/02.cc: Likewise.
436         * testsuite/demangle/regression/cw-11.cc: Likewise.
437         * testsuite/demangle/regression/cw-16.cc: Change two expected
438         results to match libiberty demangler output.
439
440 2004-02-26  Benjamin Kosnik  <bkoz@redhat.com>
441
442         PR libstdc++/10246
443         * libsupc++/Makefile.am: Use libiberty demangler.
444         (c_sources): Add cp-demangle.c.
445         * libsupc++/Makefile.in: Regenerate.
446         * src/Makefile.am (sources): Remove demangle.cc.
447         * src/Makefile.in: Regenerate.
448         * include/Makefile.am (bits_headers): Move demangle.h.
449         (ext_headers): ...here.
450         * include/Makefile.in: Regenerate.
451         * include/bits/demangle.h: Move...
452         * include/ext/demangle.h: ...here.
453         * src/demangle.cc: Remove.
454
455 2004-02-26  Benjamin Kosnik  <bkoz@redhat.com>
456  
457         * include/bits/demangle.h: Add type template parameter to all
458         templates with just an Allocator template parameter.
459  
460 2004-02-25  Benjamin Kosnik  <bkoz@redhat.com>
461
462         * include/bits/atomicity.h: New, forward declarations for __atomic_add
463         and __exchange_and_add.
464         * config/cpu/generic/atomic_word.h: New, typdef for atomic word.
465         * config/cpu/cris/atomic_word.h: Same.
466         * config/cpu/sparc/atomic_word.h: Same.
467         * include/bits/ios_base.h (_Callback_list::_M_remove_reference):
468         Qualifiy with __gnu_cxx.
469         (_Callback_list::_M_add_reference): Same.
470         * include/bits/locale_classes.h (locale::facet::_M_add_reference): Add.
471         (locale::facet::_M_remove_reference): Same.
472         (locale::_Impl::_M_add_reference): Add.
473         (locale::_Impl::_M_remove_reference): Same.
474         * include/bits/basic_string.h (basic_string::_Rep::_M_refcopy): Same.
475         (basic_string::_Rep::_M_dispose): Same.
476         * src/ios.cc (ios_base::xalloc): Same.
477         * src/ios_init.cc (ios_base::Init::Init): Same.
478         (ios_base::Init::~Init): Same.
479         * src/locale.cc (locale::id::_M_id): Same.
480         * config/cpu/i486/atomicity.h: Use __gnu_cxx namespace. Remove
481         static, and inline keywords.
482         * config/cpu/alpha/atomicity.h: Same.
483         * config/cpu/cris/atomicity.h: Same.
484         * config/cpu/generic/atomicity.h: Same.
485         * config/cpu/hppa/atomicity.h: Same.
486         * config/cpu/i386/atomicity.h: Same.
487         * config/cpu/ia64/atomicity.h: Same.
488         * config/cpu/m68k/atomicity.h: Same.
489         * config/cpu/mips/atomicity.h: Same.
490         * config/cpu/powerpc/atomicity.h: Same.
491         * config/cpu/s390/atomicity.h: Same.
492         * config/cpu/sparc/atomicity.h: Same.
493         
494         * src/Makefile.am (host_sources): Add atomicity.cc.
495         (atomicity.cc): New rule.
496         * src/Makefile.in: Regenerate.
497         * include/Makefile.am (host_headers): Remove host atomicity.h.
498         (host_headers): Add atomic_word.h.
499         (bits_headers): Add bits atomicity.h.
500         Change ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR.
501         * include/Makefile.in: Regenerate.
502         * configure.host (atomic_word_dir): Add.
503         * configure.ac: Substitute ATOMIC_WORD_SRCDIR. Change
504         ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR.
505         * configure: Regenerate.
506         * config/linker-map.gnu: Export __exchange_and_add, and __atomic_add.
507
508         * testsuite/27_io/ios_base/cons/assign_neg.cc: Adjust line numbers.
509         * testsuite/27_io/ios_base/cons/copy_neg.cc: Same.      
510         
511 2004-02-25  Jonathan Wakely  <redi@gcc.gnu.org>
512
513         * docs/html/20_util/howto.html, docs/html/20_util/allocator.html,
514         docs/html/ext/howto.html, docs/html/ext/mt_allocator.html:
515         Fix markup, more <link> tags.
516
517 2004-02-25  Carlo Wood  <carlo@alinoe.com>
518
519         * bits/demangle.h
520         namespace __gnu_cxx::demangler
521         (session<Allocator>::qualifier_list_Allocator): Add
522         (session<Allocator>::M_qualifier_list_alloc): Add
523         (session<Allocator>::decode_type_with_postfix):
524         Use M_qualifier_list_alloc instead of calling operator new/delete.
525
526 2004-02-24  Paolo Carlini  <pcarlini@suse.de>
527
528         PR libstdc++/14252
529         * include/bits/postypes.h (class streamoff): Add operator++(),
530         operator++(int), operator--() and operator--(int).
531         * testsuite/27_io/fpos/14252.cc: New.
532
533 2004-02-24  Richard Sandiford  <rsandifo@redhat.com>
534
535         * include/bits/locale_facets.tcc (num_get::_M_extract_int): Fix bounds
536         error in handling of hex constants.
537
538 2004-02-24  Paolo Carlini  <pcarlini@suse.de>
539
540         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
541         Prefer basic_string::append to operator+= and a temporary.
542
543 2004-02-23  Benjamin Kosnik  <bkoz@redhat.com>
544
545         * libsupc++/vterminate.cc (__gnu_cxx::__verbose_terminate_handler):
546         Only use fputs, not write.
547         
548 2004-02-23  Benjamin Kosnik  <bkoz@redhat.com>
549
550         * include/ext/malloc_allocator.h: Add operators ==, !=.
551         * include/ext/new_allocator.h: Add operators ==, !=.
552         * include/ext/mt_allocator.h (__mt_alloc::tune): New.
553         (__mt_alloc::_S_get_options): New.
554         (__mt_alloc::_S_set_options): New.      
555         (__mt_alloc::_S_thread_key_destr): To _S_destroy_thread_key.
556         (__mt_alloc::_S_no_of_bins): To _S_bin_size.
557         Move functions out of line, simplify, format.
558         * src/allocator.cc: Simplify explicit instantiations.
559         * include/bits/allocator.h: Tweak.
560         
561 2004-02-22  Paolo Carlini  <pcarlini@suse.de>
562
563         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
564         Restructure formatting of value component, first dealing with
565         the non-decimal digits; use reserve.
566
567 2004-02-22  Paolo Carlini  <pcarlini@suse.de>
568
569         * include/bits/locale_facets.h (class money_get): Inherit
570         from money_base too; tweak declaration of _M_extract, now
571         parameterized on _Intl too.
572         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
573         Update definition to use the cache; call reserve on __res to
574         avoid multiple reallocations; fix parsing of sign component
575         according to 22.2.6.1.2, p3.
576         (money_get<>::do_get(long double&),
577         money_get<>::do_get(string_type&)): Update calls of _M_extract. 
578         * src/locale-inst.cc:  Add instantiations of
579         money_get::_M_extract<false> and money_get::_M_extract<true>.
580         * testsuite/22_locale/money_get/get/char/14.cc: New.
581         * testsuite/22_locale/money_get/get/wchar_t/14.cc: Ditto.
582         
583 2004-02-21  Mark Mitchell  <mark@codesourcery.com>
584
585         * libsupc++/vterminate.cc
586         (__gnu_cxx::__verbose_terminate_handler): Guard against recursive
587         calls to terminate.
588         * src/demangle.cc (__cxa_demangle): Wrap in try-catch block.
589
590         * testsuite/testsuite_hooks.cc (__gnu_test::set_memory_limits): Do
591         not set RLIMIT_AS on HP-UX.
592
593 2004-02-21  Mark Mitchell  <mark@codesourcery.com>
594
595         * testsuite/testsuite_hooks.cc (__gnu_test::set_memory_limits): Do
596         not set RLIMIT_AS on HP-UX.
597
598 2004-02-21  Paolo Carlini  <pcarlini@suse.de>
599
600         * include/bits/locale_facets.h (class money_base): Add { _S_minus,
601         _S_zero, _S_end } enum, _S_atoms.
602         (struct __moneypunct_cache<>): Parameterize on _Intl too; add
603         _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size,
604         _M_negative_sign_size, _M_atoms; tweak constructor consistently.
605         (__moneypunct_cache<>::~__moneypunct_cache): Update.
606         (__moneypunct_cache<>::_M_cache): Fill the cache.
607         (class moneypunct): Tweak __cache_type typedef.
608         (class money_put): Inherit from money_base too; tweak declaration
609         of _M_insert, now parameterized on _Intl.
610         * include/bits/locale_facets.tcc
611         (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New.
612         (money_put<>::_M_insert): Update definition to use the cache;
613         call reserve on __res to avoid multiple reallocations.
614         (money_put<>::do_put(long double),
615         money_put<>::do_put(const string_type&): Update calls of _M_insert.
616         * config/locale/generic/monetary_members.cc
617         (moneypunct<char, true>::_M_initialize_moneypunct,
618         moneypunct<char, false>::_M_initialize_moneypunct,
619         moneypunct<wchar_t, true>::_M_initialize_moneypunct,
620         moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update.
621         * config/locale/gnu/monetary_members.cc: Likewise.
622         * config/locale/gnu/monetary_members.cc
623         (moneypunct<wchar_t, true>::~moneypunct(),
624         moneypunct<wchar_t, false>::~moneypunct()): Likewise.
625         * src/globals_locale.cc: Tweak fake_money_cache_c.
626         * src/locale-inst.cc: Add instantiations for
627         money_put::_M_insert<false> and money_put::_M_insert<true> and
628         __moneypunct_cache<C, false>, __moneypunct_cache<C, true>.
629         * src/locale_facets.cc: Define money_base::_S_atoms.
630         * src/locale_init.cc: Update placement new of
631         __moneypunct_cache<char, false>, __moneypunct_cache<char, true>,
632         __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>.
633
634         * config/locale/generic/numeric_members.cc: Clean up.
635         * config/locale/gnu/numeric_members.cc: Likewise.
636         * testsuite/22_locale/money_put/put/char/1.cc: Likewise.
637         * testsuite/22_locale/money_put/put/char/2.cc: Likewise.
638         * testsuite/22_locale/money_put/put/char/3.cc: Likewise.
639         * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise.
640         * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise.
641         * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise.
642
643 2004-02-20  Mark Mitchell  <mark@codesourcery.com>
644
645         * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc: Open
646         FIFO for writing with ios_base::in|ios_base::out.
647         * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise.
648         * testsuite/27_io/objects/char/7.cc: Likewise.
649         * testsuite/27_io/objects/char/9661-1.cc: Open FIFO for writing
650         with "r+".
651
652 2004-02-19  David Edelsohn  <edelsohn@gnu.org>
653
654         * 22_locale/collate/compare/wchar_t/2.cc: Change input-charset
655         from iso-8859-1 to ISO8859-1.
656         * 22_locale/collate/compare/wchar_t/wrapped_env.cc: Same.
657         * 22_locale/collate/compare/wchar_t/wrapped_locale.cc: Same.
658         * 22_locale/collate/hash/wchar_t/2.cc: Same.
659         * 22_locale/collate/hash/wchar_t/wrapped_env.cc: Same.
660         * 22_locale/collate/hash/wchar_t/wrapped_locale.cc: Same.
661         * 22_locale/collate/transform/wchar_t/2.cc: Same.
662         * 22_locale/collate/transform/wchar_t/wrapped_env.cc: Same.
663         * 22_locale/collate/transform/wchar_t/wrapped_locale.cc: Same.
664
665 2004-02-18  Paolo Carlini  <pcarlini@suse.de>
666
667         * include/bits/locale_facets.h (money_get<>::_M_extract):
668         New, helper for do_get.
669         (money_put<>::_M_insert): Likewise, for do_put.
670         * include/bits/locale_facets.tcc (money_get<>::_M_extract,
671         money_put<>::_M_insert): Define.
672         (money_get<>::do_get(long double&), money_get<>::do_get(
673         string_type&), money_put::do_put(long double),
674         money_put::do_put(const string_type&)): Use the helpers.
675
676 2004-02-18  Paolo Carlini  <pcarlini@suse.de>
677
678         * config/io/basic_file_stdio.cc (__gnu_internal::xwritev):
679         Rewrite, avoiding recursion.
680         (__gnu_internal::xwrite): Minor tweaks.
681
682 2004-02-17  Stefan Olsson  <stefan@xapa.se>
683
684         * include/ext/mt_allocator.h: Removed the last
685         pointer. Deallocated blocks are now added to the front of
686         freelists as proposed by Felix Yen.  This gives roughly 10%
687         performance boost and saves some memory.
688         * docs/html/ext/mt_allocator.html: Change due to that deallocated
689         blocks now are added to the front of freelists. The reason to this
690         approach is also explained.
691
692 2004-02-17  Paolo Carlini  <pcarlini@suse.de>
693
694         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
695         num_get<>::_M_extract_int, money_get<>::do_get): Simplify
696         grouping fidelity conditional.
697
698 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
699
700         * testsuite/27_io/basic_filebuf/overflow/char/13858.cc:
701         Qualify exception with std::.
702         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Ditto.
703         * testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc: Ditto.
704         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
705         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
706         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
707
708 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
709
710         * testsuite/ext/enc_filebuf/char/13189.cc: Don't check
711         for now that the catch block is not reached.
712         * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Likewise.
713
714 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
715
716         * include/bits/locale_facets.tcc (money_get::do_get(string_type&)):
717         Fix parsing of the remaining sign characters.
718         * 22_locale/money_get/get/char/2.cc: Tweak: now, correctly,
719         the input is scanned 'til eof.
720         * 22_locale/money_get/get/char/4.cc: Likewise.
721         * 22_locale/money_get/get/wchar_t/2.cc: Likewise.
722         * 22_locale/money_get/get/wchar_t/4.cc: Likewise.
723         * 22_locale/money_get/get/char/8.cc: Tweak: override do_neg_format,
724         not do_pos_format: the former is the only one that matters during
725         input.
726         * 22_locale/money_get/get/wchar_t/8.cc: Likewise.
727
728         * 22_locale/money_get/get/char/6.cc: Minor tweak.
729         * 22_locale/money_get/get/wchar_t/6.cc: Likewise.
730
731 2004-02-15  David Asher  <david.asher@cavium.com>
732
733         PR libstdc++/11352
734         * include/bits/locale_facets.tcc (__pad<>::_S_pad): Don't
735         access __olds beyond __oldlen.
736
737 2004-02-14  Paolo Carlini  <pcarlini@suse.de>
738
739         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Make
740         sure the exception is actually thrown.
741         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
742         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
743         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
744
745 2004-02-14  Paolo Carlini  <pcarlini@suse.de>
746
747         PR libstdc++/13858
748         * include/bits/fstream.tcc (basic_filebuf<>::_M_convert_to_external):
749         In case of conversion errors, throw ios_failure; simplify.
750         * testsuite/27_io/basic_filebuf/overflow/char/13858.cc: New.
751         * testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc: Ditto.
752         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Tweak,
753         previously we didn't throw in case of conversion errors, instead
754         just returned eof().
755         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
756         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
757         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
758
759         * include/bits/fstream.tcc (basic_filebuf<>::overflow):
760         Trivial simplification of a conditional.
761
762 2004-02-12  Paolo Carlini  <pcarlini@suse.de>
763
764         PR libstdc++/13731 (final part: writev)
765         * config/io/basic_file_stdio.cc (__gnu_internal::xwritev):
766         New, a wrapper around writev() handling partial writes.
767         (__basic_file<char>::xwrite): Move to __gnu_internal and make
768         static.
769         (__basic_file<char>::xsputn): Update call.
770         (__basic_file<char>::xsputn_2): Likewise.       
771         * config/io/basic_file_stdio.h (__basic_file<char>::xwrite):
772         Don't declare, now static.
773
774 2004-02-11  Stefan Olsson  <stefan@xapa.se>
775
776         * docs/html/ext/mt_allocator.html: New.
777
778 2004-02-11  Benjamin Kosnik  <bkoz@redhat.com>
779
780         * docs/html/20_util/allocator.html: New file, consolidate
781         allocator information here. Revamp.
782         * docs/html/documentation.html: Change links.
783         * docs/html/20_util/howto.html: Same.
784         * docs/html/ext/howto.html: Same.
785
786 2004-02-11  Paolo Carlini  <pcarlini@suse.de>
787
788         PR libstdc++/13731 (first part: write)
789         * config/io/basic_file_stdio.h (__basic_file<char>::xwrite):
790         New, declare.
791         * config/io/basic_file_stdio.cc (__basic_file<char>::xwrite):
792         Define it: a wrapper around write() handling partial write.
793         (__basic_file<char>::xsputn): Use it.
794         (__basic_file<char>::xsputn_2): Likewise.
795
796 2004-02-11  Paolo Carlini  <pcarlini@suse.de>
797             Petur Runolfsson  <peturr02@ru.is>
798
799         PR libstdc++/14078
800         * include/std/std_istream.h (operator>>(__istream_type& (*)
801         (__istream_type&)), operator>>(__ios_type& (*)(__ios_type&)),
802         operator>>(ios_base& (*)(ios_base&))): Declare inline.
803         * include/std/std_ostream.h (operator<<(__ostream_type& (*)
804         (__ostream_type&)), operator<<(__ios_type& (*)(__ios_type&)),
805         operator<<(ios_base& (*) (ios_base&))): Likewise.
806         * testsuite/performance/27_io/fmtflags_manipulators.cc: New.
807
808 2004-02-10  Loren J. Rittle  <ljrittle@acm.org>
809
810         PR libstdc++/14098
811         * config/linker-map.gnu: Add typeinfo and typeinfo name for
812         __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> >.
813
814         PR libstdc++/14097
815         * config/linker-map.gnu: Add typeinfo and typeinfo name for
816         __gnu_cxx::stdio_filebuf<char, std::char_traits<char> >.
817
818 2004-02-09  Loren J. Rittle  <ljrittle@acm.org>
819
820         * include/ext/pool_allocator.h: Include c++config.h.
821
822 2004-02-09  Stefan Olsson  <stefan@xapa.se>
823
824         * include/ext/mt_allocator.h: thread_id is unused in non threaded
825         applications and now has a ifdef to remove it completely on
826         compilers without thread support. Include stdlib.h due to a
827         compiler warning on getenv().
828
829 2004-02-09  Paul Brook  <paul@codesourcery.com>
830
831         * libstdc++-v3/configure.host: Explicitly check for atomicity.h file.
832
833 2004-02-09  Paolo Carlini  <pcarlini@suse.de>
834
835         PR libstdc++/14071
836         * src/locale_init.cc (locale::global(const locale&)): Use
837         locale::name() in order to decide whether calling setlocale.
838         * testsuite/22_locale/locale/global_locale_objects/14071.cc: New.
839
840         * include/bits/locale_classes.h (locale::_Impl::_M_check_same_name()):
841         Avoid computing &= unnecessarily.
842
843 2004-02-09  James E Wilson  <wilson@specifixinc.com>
844
845         PR libstdc++/5625
846         * libsuspc++/eh_personality.cc (PERSONALITY_FUNCTION): Use
847         __builtin_extend_pointer.
848
849 2004-02-09  Paolo Carlini  <pcarlini@suse.de>
850
851         PR libstdc++/14072
852         * include/bits/basic_ios.tcc (basic_ios<>::_M_cache_locale):
853         Don't leave dangling pointers.
854         * testsuite/27_io/basic_ios/imbue/14072.cc: New.
855         * testsuite/22_locale/numpunct/members/pod/2.cc: Tweak, the num_put
856         facet is needed in the final test.
857
858 2004-02-09  Bernardo Innocenti  <bernie@develer.com>
859
860         * crossconfig.m4: Don't enable _GLIBCXX_USE_LFS on *-uclinux*.
861         * configure: Regenerate.
862
863 2004-02-08  Richard Henderson  <rth@redhat.com>
864
865         PR libstdc++/14026
866         * libsupc++/eh_catch.cc (__cxa_begin_catch): Don't adjust 
867         uncaughtExceptions during nested catch rethrow.
868         * testsuite/18_support/14026.cc: New.
869
870 2004-02-08  Paolo Carlini  <pcarlini@suse.de>
871
872         * include/bits/basic_string.tcc (assign(const _CharT*, size_type)):
873         When working in place remember to set the state to sharable
874         (otherwise, _M_mutate does it).
875
876 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
877
878         * include/bits/allocator.h, include/bits/basic_ios.h,
879         include/bits/basic_ios.tcc, include/bits/basic_string.h,
880         include/bits/basic_string.tcc, include/bits/boost_concept_check.h,
881         include/bits/char_traits.h, include/bits/codecvt.h,
882         include/bits/concurrence.h, include/bits/cpp_type_traits.h,
883         include/bits/demangle.h, include/bits/deque.tcc,
884         include/bits/fstream.tcc, include/bits/functexcept.h,
885         include/bits/gslice.h, include/bits/gslice_array.h,
886         include/bits/indirect_array.h, include/bits/ios_base.h,
887         include/bits/istream.tcc, include/bits/list.tcc,
888         include/bits/locale_classes.h, include/bits/locale_facets.h,
889         include/bits/locale_facets.tcc, include/bits/localefwd.h,
890         include/bits/mask_array.h, include/bits/ostream.tcc,
891         include/bits/postypes.h, include/bits/slice_array.h,
892         include/bits/sstream.tcc, include/bits/stl_algo.h,
893         include/bits/stl_algobase.h, include/bits/stl_bvector.h,
894         include/bits/stl_construct.h, include/bits/stl_deque.h,
895         include/bits/stl_function.h, include/bits/stl_heap.h,
896         include/bits/stl_iterator.h, include/bits/stl_iterator_base_funcs.h,
897         include/bits/stl_list.h, include/bits/stl_map.h,
898         include/bits/stl_multimap.h, include/bits/stl_multiset.h,
899         include/bits/stl_numeric.h, include/bits/stl_pair.h,
900         include/bits/stl_queue.h, include/bits/stl_raw_storage_iter.h,
901         include/bits/stl_relops.h, include/bits/stl_set.h,
902         include/bits/stl_stack.h, include/bits/stl_tempbuf.h,
903         include/bits/stl_threads.h, include/bits/stl_tree.h,
904         include/bits/stl_uninitialized.h, include/bits/stl_vector.h,
905         include/bits/stream_iterator.h, include/bits/streambuf.tcc,
906         include/bits/streambuf_iterator.h,include/bits/stringfwd.h,
907         include/bits/type_traits.h, include/bits/valarray_after.h,
908         include/bits/valarray_array.h, include/bits/valarray_array.tcc,
909         include/bits/valarray_before.h, include/bits/vector.tcc: Remove
910         trailing whitespace.
911
912 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
913
914         * include/bits/basic_string.h: Fix comment.
915
916 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
917
918         * include/bits/stl_construct.h: Wrap overlong lines, reformat
919         according to the coding standards.
920         * include/bits/stl_pair.h: Likewise.
921         * include/bits/stl_raw_storage_iter.h: Likewise.
922         * include/bits/stl_stack.h: Likewise.
923         * include/bits/stl_uninitialized.h: Likewise.
924         * include/bits/stream_iterator.h: Likewise.
925         * include/bits/streambuf_iterator.h: Likewise.
926         * include/bits/type_traits.h: Likewise.
927
928 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
929
930         * testsuite/27_io/basic_filebuf/open/char/9507.cc:
931         Adjust timings.
932
933 2004-02-05  Loren J. Rittle  <ljrittle@acm.org>
934
935         * scripts/check_performance: Support PCH.
936
937         * scripts/check_performance (CXX): Add -DNOTHREAD.
938         * testsuite/performance/20_util/allocator/insert.cc: Integrate
939         threaded tests from insert_insert.cc.  Tweak iterations,
940         remove special cases.
941         * testsuite/performance/20_util/allocator/insert_insert.cc:
942         Make all tests single-threaded. Tweak iterations.
943         * testsuite/performance/20_util/allocator/map_thread.cc:
944         Tweak iterations.
945         * testsuite/performance/20_util/allocator/producer_consumer.cc:
946         Likewise.
947
948 2004-02-05  Geoffrey Keating  <geoffk@apple.com>
949
950         PR 12179
951         * .cvsignore: New.
952         * acinclude.m4 (GLIBCXX_EXPORT_INSTALL_INFO): Use 'gcc', not
953         'gcc-lib'.  Add comment about poorly-named variables.
954         * aclocal.m4: Regenerate.
955         * configure: Regenerate.
956
957 2004-02-05  Paolo Carlini  <pcarlini@suse.de>
958
959         * include/bits/locale_facets.tcc (money_get::do_get(string_type&)):
960         Thousands-sep are always optional; thousands-sep are not allowed
961         after the decimal_point.
962         * testsuite/22_locale/money_get/get/char/12.cc: New.
963         * testsuite/22_locale/money_get/get/char/13.cc: New.
964         * testsuite/22_locale/money_get/get/wchar_t/12.cc: New.
965         * testsuite/22_locale/money_get/get/wchar_t/13.cc: New.
966
967         * testsuite/22_locale/money_get/get/char/1.cc: Clean-up.
968         * testsuite/22_locale/money_get/get/char/2.cc: Likewise.
969         * testsuite/22_locale/money_get/get/char/3.cc: Likewise.
970         * testsuite/22_locale/money_get/get/char/4.cc: Likewise.
971         * testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise.
972         * testsuite/22_locale/money_get/get/wchar_t/2.cc: Likewise.
973         * testsuite/22_locale/money_get/get/wchar_t/3.cc: Likewise.
974         * testsuite/22_locale/money_get/get/wchar_t/4.cc: Likewise.
975
976         * testsuite/22_locale/money_get/get/char/9.cc: Fix citation from
977         the standard.
978         * testsuite/22_locale/money_get/get/wchar_t/9.cc: Likewise.
979
980 2004-02-05  Richard Sandiford  <rsandifo@redhat.com>
981
982         * config/os/irix/irix6.5/os_defines.h (_GLIBCXX_FIONREAD_TAKES_OFF_T):
983         Define.
984         * config/io/basic_file_stdio.cc (__basic_file<char>::showmanyc): Use
985         it to decide whether FIONREAD should take an off_t or int argument.
986
987 2004-02-05  Paolo Carlini  <pcarlini@suse.de>
988
989         * include/bits/stl_function.h: Minor formatting changes.
990
991 2004-02-04  Zack Weinberg  <zack@codesourcery.com>
992
993         Revert previous change to config/abi/*/baseline_symbols.txt.
994
995 2004-02-04  Benjamin Kosnik  <bkoz@redhat.com>
996             Zack Weinberg  <zack@codesourcery.com>
997
998         * config/io/basic_file_stdio.cc (__gnu_internal::fopen_mode):
999         New function.
1000         (__basic_file<char>::sys_open, __basic_file<char>::open): Use it.
1001         (__basic_file<char>::_M_open_mode): Delete.
1002         * config/io/basic_file_stdio.cc: Delete declaration of _M_open_mode.
1003
1004         * testsuite/27_io/basic_filebuf/close/char/9964.cc
1005         * testsuite/27_io/basic_filebuf/open/char/9507.cc:
1006         Correct flags to filebuf::open calls.
1007
1008         * config/abi/alpha-freebsd5/baseline_symbols.txt
1009         * config/abi/alpha-linux-gnu/baseline_symbols.txt
1010         * config/abi/hppa-linux-gnu/baseline_symbols.txt
1011         * config/abi/i386-freebsd4/baseline_symbols.txt
1012         * config/abi/i386-freebsd5/baseline_symbols.txt
1013         * config/abi/i486-linux-gnu/baseline_symbols.txt
1014         * config/abi/ia64-linux-gnu/baseline_symbols.txt
1015         * config/abi/mips-linux-gnu/baseline_symbols.txt
1016         * config/abi/sparc-freebsd5/baseline_symbols.txt
1017         * config/abi/sparc-linux-gnu/baseline_symbols.txt
1018         * config/abi/x86_64-linux-gnu/baseline_symbols.txt:
1019         Remove entry for __basic_file<char>::_M_open_mode.
1020
1021 2004-02-04  Loren J. Rittle  <ljrittle@acm.org>
1022
1023         * testsuite/performance/20_util/allocator/insert.cc (main): Tweak.
1024
1025 2004-02-04  Felix Yen  <fwy@alumni.brown.edu>
1026
1027         * testsuite/performance/20_util/producer_consumer.cc: New.
1028         * testsuite/performance/20_util/allocator/insert_insert.cc: Two loops.
1029
1030 2004-02-04  Benjamin Kosnik  <bkoz@redhat.com>
1031
1032         * testsuite/performance/20_util/allocator.cc: Move to..
1033         * testsuite/performance/20_util/allocator/insert.cc: ...here.
1034         * testsuite/performance/20_util/allocator_thread.cc: Move to...
1035         * testsuite/performance/20_util/allocator/insert_insert.cc: ...here.
1036         * testsuite/performance/20_util/allocator_map_thread.cc: Move to...
1037         * testsuite/performance/20_util/allocator/map_thread.cc: ...here.
1038
1039 2004-02-04  Jonathan Wakely  <redi@gcc.gnu.org>
1040
1041         * docs/html/faq/index.html: Recommend using LD_LIBRARY_PATH.
1042         * docs/html/faq/index.txt: Regenerate.
1043
1044 2004-02-04  Dhruv Matani  <dhruvbird@gmx.net>
1045
1046         * include/ext/debug_allocator.h: _M_extra now stands for the
1047         number of extra objects instead of the number of extra bytes.
1048         (debug_allocator::allocate): Adjust.
1049         (debug_allocator::deallocate): Adjust.
1050
1051         * include/ext/pool_allocator.h: Fix typo.
1052
1053 2004-02-03  Felix Yen  <fwy@alumni.brown.edu>
1054             Benjamin Kosnik  <bkoz@redhat.com>
1055
1056         * testsuite/performance/20_util/allocator.cc: Add map,
1057         deque, set tests.
1058         * testsuite/performance/20_util/allocator_thread.cc: Same.
1059
1060 2004-02-03  Paolo Carlini  <pcarlini@suse.de>
1061
1062         * include/bits/basic_string.h (insert(iterator)): Remove,
1063         non-standard and already scheduled for removal.
1064
1065 2004-02-03  Paolo Carlini  <pcarlini@suse.de>
1066
1067         * include/bits/stl_iterator_base_funcs.h: Minor formatting
1068         and indentation tweaks.
1069         * include/bits/stl_iterator_base_types.h: Likewise.
1070         * include/bits/stl_list.h: Likewise.
1071         * include/bits/stl_map.h: Likewise.
1072         * include/bits/stl_tempbuf.h: Likewise.
1073
1074 2004-02-02  Jerry Quinn  <jlquinn@optonline.net>
1075
1076         * include/bits/gslice.h, include/bits/gslice_array.h,
1077         include/bits/indirect_array.h, include/bits/mask_array.h,
1078         include/bits/slice_array.h, include/bits/stl_numeric.h,
1079         include/std/std_valarray.h:  Update copyright years.
1080
1081 2004-02-02  Jerry Quinn  <jlquinn@optonline.net>
1082
1083         * include/bits/gslice.h (gslice):  Document.
1084         * include/bits/gslice_array.h (gslice_array):  Document.
1085         * include/bits/indirect_array (indirect_array):  Document.
1086         * include/bits/mask_array (mask_array):  Document.
1087         * include/bits/slice_array.h (slice,slice_array):  Document.
1088         * include/bits/stl_numeric.h (accumulate, inner_product, partial_sum,
1089         adjacent_difference):  Document
1090         * include/std/std_valarray.h (valarray):  Document.
1091
1092 2004-02-02  Benjamin Kosnik  <bkoz@redhat.com>
1093
1094         * docs/html/19_diagnostics/howto.html: Move verbose terminate
1095         documentation...
1096         * docs/html/18_support/howto.html: Here.
1097         * docs/html/documentation.html: Add reference here.
1098
1099 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
1100
1101         * config/locale/gnu/c++locale_internal.h: Remove prototypes
1102         of no longer used GLIBC thread locale functions.
1103
1104 2004-02-02  Eric Christopher  <echristo@redhat.com>
1105             Zack Weinberg  <zack@codesourcery.com>
1106
1107         * testsuite/22_locale/collate/compare/wchar_t/2.cc: Remove xfail. Use
1108         -finput-charset.
1109         * testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc: Ditto.
1110         * testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc: Ditto
1111         * testsuite/22_locale/collate/hash/wchar_t/2.cc: Ditto.
1112         * testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc: Ditto.
1113         * testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc: Ditto.
1114         * testsuite/22_locale/collate/transform/wchar_t/2.cc: Ditto.
1115         * testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc: Ditto.
1116         * testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc:
1117         Ditto.
1118
1119 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
1120
1121         * include/bits/stl_function.h: Additional minor tweaks.
1122         * include/bits/stl_multiset.h: Likewise.
1123
1124         * include/bits/stl_queue.h: Minor tweaks.
1125
1126 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
1127
1128         PR libstdc++/13976 (continued)
1129         * include/ext/malloc_allocator.h (malloc_allocator::deallocate):
1130         Make the second parameter unnamed, to void unused parameter
1131         warnings.
1132         * include/ext/new_allocator.h (new_allocator::deallocate): Ditto.
1133
1134 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
1135
1136         PR libstdc++/13976
1137         * include/ext/malloc_allocator.h (malloc_allocator::allocate):
1138         Make the second parameter unnamed, to void unused parameter
1139         warnings.
1140         * include/ext/mt_allocator.h (__mt_alloc::allocate): Ditto.
1141         * include/ext/new_allocator.h (new_allocator::allocate): Ditto.
1142
1143 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
1144
1145         * include/bits/stl_algo.h: Additional minor tweaks.
1146         * include/bits/stl_map.h: Likewise.
1147         * include/bits/stl_multimap.h: Likewise.
1148         * include/bits/stl_multiset.h: Likewise.
1149         * include/bits/stl_set.h: Likewise.
1150         * include/bits/stl_tree.h: Likewise.
1151
1152 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
1153
1154         * include/bits/vector.tcc (vector::_M_insert_aux(iterator)):
1155         Remove, unused.
1156
1157 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
1158
1159         * include/bits/stl_function.h: Additional minor tweaks.
1160
1161 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
1162
1163         * include/bits/deque.tcc: Wrap overlong lines, constify
1164         a few variables, reformat according to the coding standards.
1165         * include/bits/list.tcc: Likewise.
1166         * include/bits/stl_deque.h: Likewise.
1167         * include/bits/stl_function.h: Likewise.
1168         * include/bits/stl_iterator.h: Likewise.
1169         * include/bits/stl_iterator_base_funcs.h: Likewise.
1170         * include/bits/stl_iterator_base_types.h: Likewise.
1171         * include/bits/stl_list.h: Likewise.
1172         * include/bits/stl_map.h: Likewise.
1173         * include/bits/stl_multimap.h: Likewise.
1174         * include/bits/stl_multiset.h: Likewise.
1175         * include/bits/stl_relops.h: Likewise.
1176         * include/bits/stl_set.h: Likewise.
1177
1178 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
1179
1180         * include/bits/stl_bvector.h: Wrap overlong lines, constify
1181         a few variables, reformat according to the coding standards.
1182         * include/bits/stl_tree.h: Likewise.
1183
1184 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
1185
1186         * include/bits/stl_algo.h: Minor additional reformat, add
1187         copyright year.
1188         * include/bits/stl_algobase.h: Add copyright year.
1189
1190 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
1191
1192         * include/bits/stl_algo.h: Wrap overlong lines, constify
1193         a few variables, reformat according to the coding standards.
1194         * include/bits/stl_algobase.h: Likewise.
1195         * include/bits/stl_heap.h: Likewise.
1196
1197 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
1198
1199         * include/bits/basic_string.h (_Rep::operator[]): Remove, unused.
1200
1201         * include/bits/basic_string.h: Fix two comments.
1202
1203 2004-01-31  Per Bothner  <per@bothner.com>
1204
1205         * include/ext/mt_allocator.h
1206         (__mt_alloc::_S_thread_freelist_mutex): Guard with
1207         __GTHREAD_MUTEX_INIT.
1208
1209 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
1210
1211         * include/bits/basic_string.tcc (_Rep::_S_create): Minor tweak.
1212
1213 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
1214
1215         * testsuite/21_strings/basic_string/cons/char/6.cc: New.
1216         * testsuite/21_strings/basic_string/cons/wchar_t/6.cc: New.
1217         * testsuite/performance/21_strings/string_cons_input_iterator.cc: New.
1218
1219 2004-01-30  Felix Yen  <fwy@alumni.brown.edu>
1220
1221         * testsuite/performance/20_util/allocator_thread.cc (do_loop):
1222         Don't use clear, but instead assign. Use insert.
1223
1224 2004-01-30  Benjamin Kosnik  <bkoz@redhat.com>
1225
1226         * src/demangle.cc: Add instantiations.
1227         * src/Makefile.am: Remove special rules for demangle.lo, demangle.o.
1228         * src/Makefile.in: Regenerate.
1229
1230 2004-01-30  David Edelsohn  <edelsohn@gnu.org>
1231
1232         * src/allocator.cc: Protect _S_get_thread_id() and
1233         _S_thread_key_destr() with #ifdef __GTHREADS.
1234
1235 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
1236
1237         Reshuffle performance testsuite.
1238         * testsuite/performance/allocator.cc, allocator_map_thread.cc,
1239         allocator_thread.cc, complex_norm.cc, container_benchmark.cc,
1240         cout_insert_int.cc, filebuf_copy.cc, filebuf_sputc.cc,
1241         fstream_seek_write.cc, ifstream_extract_float.cc,
1242         ifstream_extract_int.cc, ifstream_getline.cc, is_wchar_t.cc,
1243         list_create_fill_sort.cc, map_create_fill.cc,
1244         narrow_widen_char.cc, narrow_widen_wchar_t.cc,
1245         ofstream_insert_float.cc, ofstream_insert_int.cc,
1246         string_append.cc, wchar_t_in.cc, wchar_t_length.cc,
1247         wchar_t_out.cc: Split into...
1248         * testsuite/performance/20_util/allocator.cc: New.
1249         * testsuite/performance/20_util/allocator_map_thread.cc: New.
1250         * testsuite/performance/20_util/allocator_thread.cc: New.
1251         * testsuite/performance/21_strings/string_append: New.
1252         * testsuite/performance/22_locale/is_wchar_t.cc: New.
1253         * testsuite/performance/22_locale/narrow_widen_char.cc: New.
1254         * testsuite/performance/22_locale/narrow_widen_wchar_t.cc: New.
1255         * testsuite/performance/22_locale/wchar_t_in.cc: New.
1256         * testsuite/performance/22_locale/wchar_t_length.cc: New.
1257         * testsuite/performance/22_locale/wchar_t_out.cc: New.
1258         * testsuite/performance/23_containers/container_benchmark.cc: New.
1259         * testsuite/performance/23_containers/list_create_fill_sort.cc: New.
1260         * testsuite/performance/23_containers/map_create_fill.cc: New.
1261         * testsuite/performance/26_numerics/complex_norm.cc: New.
1262         * testsuite/performance/27_io/cout_insert_int.cc: New.
1263         * testsuite/performance/27_io/filebuf_copy.cc: New.
1264         * testsuite/performance/27_io/filebuf_sputc.cc: New.
1265         * testsuite/performance/27_io/fstream_seek_write.cc: New.
1266         * testsuite/performance/27_io/ifstream_extract_float.cc: New.
1267         * testsuite/performance/27_io/ifstream_extract_int.cc: New.
1268         * testsuite/performance/27_io/ifstream_getline.cc: New.
1269         * testsuite/performance/27_io/ofstream_insert_float.cc: New.
1270         * testsuite/performance/27_io/ofstream_insert_int.cc: New.
1271
1272 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
1273
1274         * include/bits/basic_string.tcc (_Rep::_S_create):
1275         Never allocate a string bigger than max_size(); always keep
1276         __capacity and __size in sync to avoid memory leaks at
1277         deallocation time.
1278
1279 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
1280
1281         * include/bits/basic_string.tcc (_S_construct(_InIterator,
1282         _InIterator, const _Alloc&, input_iterator_tag)): Simplify
1283         the double loop, streamline.
1284
1285         * include/bits/basic_string.tcc: Very minor tweaks.
1286
1287 2004-01-30  Loren J. Rittle  <ljrittle@acm.org>
1288
1289         * scripts/check_performance: Only compile with $THREAD_FLAG
1290         when test is marked to require it.  Allow multiple
1291         compilations/executions of marked tests.
1292         * testsuite/testsuite_performance.h (report_performance):
1293         Report dynamic thread support status.
1294         (report_header): Likewise.
1295         * testsuite/performance/allocator.cc: Stabilize iteration
1296         count.  Support more allocators.  Mark each allocator test to
1297         run and report independently.
1298         * testsuite/performance/allocator_map_thread.cc: Likewise.
1299         * testsuite/performance/allocator_thread.cc: Likewise.
1300
1301 2004-01-29  Stephen M. Webb  <stephen.webb@bregmasoft.com>
1302
1303         * config/local/generic/c_locale.h: Change ::malloc() to new char[].
1304         * config/local/gnu/c_locale.h: Change ::malloc() to new char[].
1305         * include/bits/stl_tempbuf.h: Convert _Temporary_buffer to use
1306         std::get_temporary_buffer() instead of duplicating its code.
1307         Update to C++STYLE conventions.
1308         * include/std/std_memory.h (get_temporary_buffer): Use ::operator
1309         new() instead of std::malloc().
1310         (return_temporary_buffer): Use ::operator delete() instead of
1311         std::free().
1312
1313 2004-01-29  Benjamin Kosnik  <bkoz@redhat.com>
1314
1315         * include/bits/allocator.h: Temporary switch to new_allocator as
1316         the default to unjam bootstraps.
1317
1318 2004-01-28  Benjamin Kosnik  <bkoz@redhat.com>
1319
1320         * include/Makefile.am (bits_headers): Remove allocator_traits.h.
1321         * include/Makefile.in: Regenerate.
1322         * include/bits/allocator_traits.h: Remove.
1323         * include/bits/allocator.h: Remove allocator_traits.h include, and
1324         relevant comments.
1325         (allocator): Empty base class, inherit from the underlying allocator.
1326         * src/allocator-inst.cc: Move __pool_alloc instantiation to...
1327         * src/allocator.cc: ...here. New. For the underlying allocators.
1328         Add __mt_alloc, __pool_alloc, new_allocator, malloc_allocator bits.
1329         * config/linker-map.gnu: Remove __pool_alloc bits.
1330         * src/Makefile.am (sources): Add allocator.cc.
1331         * src/Makefile.in: Regenerate.
1332         * testsuite/20_util/allocator/1.cc: Split second test into...
1333         * testsuite/20_util/allocator/8230.cc: ...this.
1334         * include/bits/stl_bvector.h (__gnu_norm): Change bit_vector
1335         typedef to use std::allocatore. Format.
1336         * include/ext/pool_allocator.h: Remove allocator_traits.h include,
1337         _Alloc_traits.
1338         * include/ext/mt_allocator.h (__gnu_cxx): Qualify
1339         __throw_bad_alloc calls. Don't include <memory>.
1340         * include/ext/malloc_allocator.h: Remove <memory> include.
1341         * include/ext/new_allocator.h (new_allocator): Same.
1342         * include/ext/ropeimpl.h (__gnu_cxx): Remove __alloc using
1343         declaration. Switch __alloc to _Alloc.
1344         * include/ext/hashtable.h: Remove __alloc.
1345         * include/backward/alloc.h: Only inject allocator, not
1346         implementation details.
1347
1348         * include/ext/mt_allocator.h: Replace free with delete.
1349
1350 2004-01-28  Benjamin Kosnik  <bkoz@redhat.com>
1351
1352         * src/globals_io.cc: Change to __gnu_internal namespace.
1353         * src/globals_locale.cc: Same.
1354         * src/locale_init.cc: Same.
1355         * src/ios_init.cc: Same.
1356
1357 2004-01-28  Stefan Olsson  <stefan@snon.net>
1358
1359         * include/ext/mt_allocator.h: Replaced all malloc() calls with
1360         operator new(). Added support for the env variable
1361         GLIBCXX_FORCE_NEW (this required the _S_init call to be the first
1362         one in allocate() as well). Fix typos.
1363
1364 2004-01-28  Paolo Carlini  <pcarlini@suse.de>
1365
1366         * include/bits/basic_string.h (_S_create(size_t,
1367         const _Alloc&): Change signature to take two size_type
1368         arguments.
1369         * include/bits/basic_string.tcc (_S_construct(_InIterator,
1370         _InIterator, const _Alloc&, input_iterator_tag)): Update
1371         call, tweak a bit.
1372         (_S_construct(_InIterator, _InIterator, const _Alloc&,
1373         forward_iterator_tag)): Likewise.
1374         (_S_construct(size_type, _CharT, const _Alloc&)): Likewise.
1375         (_M_mutate(size_type, size_type, size_type)): Don't
1376         implement the exponential growth policy, demand it to
1377         _S_create, update call and simplify.
1378         (_M_clone(const _Alloc&, size_type)): Likewise.
1379         (_S_create(size_type, size_type, const _Alloc&)): Implement
1380         the growth policy, simplify otherwise.
1381
1382         * include/bits/basic_string.h (_Rep::operator[]): Tweak
1383         signature to take a size_type, consistently with the other
1384         members.
1385
1386 2004-01-27  Benjamin Kosnik  <bkoz@redhat.com>
1387
1388         * testsuite/27_io/ios_base/storage/11584.cc: Correct new and
1389         delete declarations, add include and test variable.
1390
1391 2003-01-27  Jerry Quinn  <jlquinn@optonline.net>
1392
1393         * include/bits/codecvt.h, include/bits/locale_facets.h,
1394         include/bits/postypes.h, include/bits/stl_bvector.h,
1395         include/bits/stl_multiset.h, include/bits/stl_set.h,
1396         include/bits/stream_iterator.h, include/bits/streambuf_iterator.h,
1397         include/std/std_complex.h:  Document.
1398
1399 2004-01-27  Jerry Quinn  <jlquinn@optonline.net>
1400
1401         PR libstdc++/11584
1402         * include/bits/ios_base.h (ios_base::_M_grow_words):  Add
1403         iword/pword selector.
1404         (ios_base::iword, ios_base::pword):  Use it.
1405         * src/ios.cc (ios_base::_M_grow_words):  Clear _M_word_zero
1406         iword or pword member on alloc failure.
1407         * testsuite/27_io/ios_base/storage/11584.cc:  New test.
1408
1409 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
1410             PJ Darcy  <darcypj@us.ibm.com>
1411
1412         * configure.host: Add support for *-tpf.
1413         * crossconfig.m4: Likewise.
1414         * configure: Regenerate.
1415         * config/os/tpf: New directory.
1416         * config/os/tpf/os_defines.h: New file.
1417         * config/os/tpf/ctype_base.h: Likewise.
1418         * config/os/tpf/ctype_inline.h: Likewise.
1419         * config/os/tpf/ctype_noninline.h: Likewise.
1420
1421 2004-01-27  Paolo Carlini  <pcarlini@suse.de>
1422
1423         PR libstdc++/13884
1424         * include/bits/sstream.tcc: Guard use of extern template.
1425
1426 2004-01-27  Paolo Carlini  <pcarlini@suse.de>
1427
1428         * include/bits/basic_string.tcc
1429         (basic_string(const basic_string&, size_type, size_type),
1430         basic_string(const basic_string&, size_type, size_type,
1431         const _Alloc&)): Avoid unnecessarily constructing iterators.
1432
1433 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
1434
1435         * config/locale/generic/c_locale.cc: Fix throw messages
1436         to use the __N marker.
1437         * config/locale/gnu/c_locale.cc: Likewise.
1438         * config/locale/ieee_1003.1-2001/codecvt_specializations.h:
1439         Likewise.
1440         * docs/html/17_intro/C++STYLE: Likewise.
1441         * include/bits/basic_ios.tcc: Likewise.
1442         * include/bits/fstream.tcc: Likewise.
1443         * include/bits/vector.tcc: Likewise.
1444         * include/ext/ropeimpl.h: Likewise.
1445         * include/std/std_bitset.h: Likewise.
1446         * src/ios.cc: Likewise.
1447         * src/locale.cc: Likewise.
1448         * src/localename.cc: Likewise.
1449
1450 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
1451
1452         * include/bits/basic_string.h (_M_replace_aux): Use the
1453         __N marker in throw message.
1454         * include/bits/basic_string.tcc (assign(const _CharT*,
1455         size_type), insert(size_type, const _CharT*, size_type),
1456         replace(size_type, size_type, const _CharT*, size_type),
1457         reserve, _Rep::_S_create, resize, _M_replace_dispatch):
1458         Likewise.
1459
1460         * include/bits/basic_string.h, include/bits/basic_string.tcc:
1461         Fold overlong lines, minor formatting changes.
1462
1463 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
1464
1465         * include/bits/basic_string.h (replace(iterator, iterator,
1466         const basic_string&)): Remove _GLIBCXX_DEBUG_PEDASSERT.
1467         (replace(iterator, iterator, const _CharT*)): Ditto.
1468         (replace(iterator, iterator, const _CharT*, size_type)):
1469         Add missing _GLIBCXX_DEBUG_PEDASSERT.
1470
1471 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
1472
1473         * include/bits/basic_string.tcc (replace(size_type,
1474         size_type, const _CharT*, size_type)): Implement optimized
1475         in-place algorithm for non-overlapping ranges.
1476         * testsuite/21_strings/basic_string/replace/char/6.cc: New.
1477         * testsuite/21_strings/basic_string/replace/wchar_t/6.cc: New.
1478
1479         * include/bits/basic_string.tcc (insert(size_type,
1480         const _CharT*, size_type)): Tweak slightly.
1481
1482 2004-01-26  Andreas Schwab  <schwab@suse.de>
1483
1484         * config/locale/gnu/monetary_members.cc: Restore locale before
1485         rethrowing exception.
1486
1487 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
1488
1489         * include/bits/basic_string.h (_M_replace_aux, _M_replace_safe):
1490         Define inline here.
1491         * include/bits/basic_string.tcc (_M_replace_aux, _M_replace_safe):
1492         Move inline.
1493
1494         * include/bits/basic_string.tcc: Very minor tweaks.
1495
1496 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
1497
1498         * testsuite/performance/string_append.cc: Increase number
1499         of iterations.
1500
1501 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
1502
1503         * include/bits/basic_string.h (erase(size_type, size_type),
1504         erase(iterator), erase(iterator, iterator)): Call _M_replace_safe
1505         instead, thus avoiding redundant check for length_error.
1506
1507         * include/bits/basic_string.h: Tweak some comments.
1508
1509 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
1510
1511         * include/bits/basic_string.tcc (operator+(const _CharT*,
1512         const basic_string&)): No need to go through the append
1513         taking two iterators.
1514
1515 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
1516
1517         * include/bits/basic_string.tcc (rfind(_CharT, size_type)):
1518         Revert last change to use std::min: machine language is worse.
1519         (find_last_of(const _CharT*, size_type, size_type)): Ditto.
1520         (find_last_not_of(const _CharT*, size_type, size_type)): Ditto.
1521         (find_last_not_of(_CharT, size_type)): Ditto.
1522
1523         * include/bits/basic_string.tcc (insert(size_type, const _CharT*,
1524         size_type)): Discard the value returned by _M_check.
1525         (replace(size_type, size_type, const _CharT*, size_type)): Ditto.
1526         (append(const basic_string&, size_type, size_type)): Ditto.
1527         (copy(_CharT*, size_type, size_type)): Ditto.
1528         (compare(size_type, size_type, const basic_string&)): Ditto.
1529         (compare(size_type, size_type, const basic_string&,
1530         size_type, size_type)): Ditto.
1531         (compare(size_type, size_type, const _CharT*)): Ditto.
1532         (compare(size_type, size_type, const _CharT*, size_type)): Ditto.
1533
1534 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
1535
1536         * include/bits/basic_string.h (insert(size_type,
1537         const basic_string&, size_type, size_type)): Define inline here.
1538         * include/bits/basic_string.tcc (insert(size_type,
1539         const basic_string&, size_type, size_type)): Move inline.
1540
1541 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
1542
1543         * include/bits/basic_string.h (assign(const basic_string&,
1544         size_type, size_type)): Define inline here.
1545         (replace(size_type, size_type, const basic_string&,
1546         size_type, size_type)): Ditto.
1547         (_M_replace_dispatch(iterator, iterator, _InputIterator,
1548         _InputIterator, __false_type)): Only declare.
1549         (_M_replace(iterator, iterator, _InputIterator,
1550         _InputIterator)): Remove.
1551         * include/bits/basic_string.tcc (assign(const basic_string&,
1552         size_type, size_type)): Move inline.
1553         (replace(size_type, size_type, const basic_string&,
1554         size_type, size_type)): Ditto.
1555         (_M_replace_dispatch(iterator, iterator, _InputIterator,
1556         _InputIterator, __false_type)): Define, now does also what
1557         _M_replace did before.
1558         * src/string-inst.cc (_M_replace): Don't instantiate.
1559
1560         * include/bits/basic_string.tcc (find(const _CharT*,
1561         size_type, size_type)): Tidy.
1562         (rfind(_CharT, size_type)): Ditto.
1563         (find_first_not_of(const _CharT*, size_type, size_type)): Ditto.
1564         (find_first_not_of(_CharT, size_type)): Ditto.
1565         (find_last_not_of(const _CharT*, size_type, size_type)): Ditto.
1566         (find_last_not_of(_CharT, size_type)): Ditto.
1567
1568 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
1569
1570         PR libstdc++/13838
1571         * include/debug/bitset (operator|=): Fix typo.
1572         * testsuite/23_containers/bitset/operations/13838.cc: New.
1573
1574 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
1575
1576         * include/bits/basic_string.tcc (insert(size_type,
1577         const _CharT*, size_type __n)): Fix length_error check.
1578         (replace(size_type, size_type, const _CharT*, size_type):
1579         Ditto; call _M_replace_safe.
1580         (_M_replace_aux(size_type, size_type, size_type, _CharT):
1581         Fix length_error check.
1582         (_M_replace(iterator, iterator, _InputIterator,
1583         _InputIterator)): Ditto, tweak.
1584         (_M_replace_safe(size_type, size_type, const _CharT*,
1585         size_type)): Remove length_error check.
1586
1587         * include/bits/basic_string.tcc (append(const basic_string&),
1588         append(const basic_string&, size_type, size_type)): Tweak
1589         comment.
1590
1591         * include/bits/basic_string.tcc (copy(_CharT*, size_type,
1592         size_type)): If __n == 0 don't call traits::copy.
1593
1594 2004-01-23  Stefan Olsson  <stefan@snon.net>
1595
1596         * include/ext/mt_allocator.h: Reduce lock contention.
1597
1598 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
1599
1600         PR libstdc++/13831
1601         * include/bits/fstream.tcc (underflow): Remove unused
1602         variable.
1603         * include/bits/streambuf_iterator.h (equal): Ditto.
1604         * include/bits/locale_facets.h (_M_convert_from_char):
1605         Ditto.
1606
1607 2004-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1608
1609         PR c/13814
1610         * config/linker-map.gnu (nan): Delete.
1611         * libmath/mathconf.h (NAN, nan): Delete.
1612         * linkage.m4 (nan): Don't check for it.
1613         * libmath/nan.c: Delete file.
1614
1615         * config.h.in, configure: Regenerate.
1616
1617 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
1618
1619         * include/bits/basic_string.h (push_back(_CharT)):
1620         Call _M_replace_aux.
1621         (insert(size_type, const basic_string&)): Trivial tweak.
1622         (insert(size_type, size_type, _CharT)): Call _M_replace_aux.
1623         (insert(iterator, _CharT)): Ditto.
1624         (erase(size_type, size_type)): Ditto.
1625         (erase(iterator)): Ditto.
1626         (erase(iterator, iterator)): Ditto.
1627         (replace(size_type, size_type, size_type, _CharT)): Ditto.
1628
1629 2004-01-23  Loren J. Rittle  <ljrittle@acm.org>
1630
1631         libstdc++/13823
1632         * testsuite/performance/allocator_map_thread.cc: New test.
1633
1634 2004-01-22  Paolo Carlini  <pcarlini@suse.de>
1635
1636         * include/bits/locale_facets.tcc
1637         (money_put::do_put(..., long double)): Use the basic_string
1638         constructor for char arrays, not that for C-strings, to pass
1639         __digits to do_put(..., const string_type&): __ws isn't
1640         null-terminated.
1641
1642 2004-01-22  Paolo Carlini  <pcarlini@suse.de>
1643
1644         * include/bits/basic_string.h (_M_replace_safe): Change
1645         signatures to take size_types and const _CharT*.
1646         (_M_replace_aux): Likewise, takes size_types instead of
1647         iterators.
1648         (append(size_type, _CharT)): Update call.
1649         (assign(size_type, _CharT)): Ditto.
1650         (replace(iterator, iterator, size_type, _CharT)): Ditto.
1651         (_M_replace_dispatch(iterator, iterator, _Integer,
1652         _Integer, __true_type)): Ditto.
1653         * include/bits/basic_string.tcc (assign(const _CharT*,
1654         size_type)): Ditto.
1655         (insert(size_type, const _CharT*, size_type)): Ditto.
1656         (replace(size_type, size_type, const _CharT*,
1657         size_type)): Ditto.
1658         (_M_replace(iterator, iterator, _InputIterator,
1659         _InputIterator)): Ditto.
1660         (append(const basic_string&)): Ditto.
1661         (append(const basic_string&, size_type, size_type): Ditto.
1662         (append(const _CharT*, size_type): Ditto.
1663         (_M_replace_safe, _M_replace_safe): Change definitions
1664         accordingly, simplify.
1665         * string-inst.cc (_M_replace_safe): Don't instantiate.
1666
1667 2004-01-21  Paolo Carlini  <pcarlini@suse.de>
1668
1669         * include/bits/basic_string.tcc (append(const basic_string&)):
1670         Revert previous change.
1671         (append(const basic_string&, size_type, size_type)): Revert
1672         previous change, use _M_check and _M_limit.
1673
1674 2004-01-21  Paolo Carlini  <pcarlini@suse.de>
1675
1676         * include/bits/basic_string.h (_M_check): Change to return
1677         a checked __pos and take an additional const char* argument.
1678         (_M_fold): Rename to _M_limit, change to return a size_type,
1679         corresponding to the __off limited to the actual length.
1680         (insert(size_type, size_type, _CharT)): Update call, call
1681         replace.
1682         (insert(iterator, _CharT)): Call replace(iterator, iterator,
1683         size_type, _CharT) instead.
1684         (erase(size_type, size_type)): Update calls.
1685         (replace(size_type, size_type, size_type, _CharT)): Ditto.
1686         (substr(size_type, size_type)): Use _M_check.
1687         * include/bits/basic_string.tcc (basic_string(const basic_string&,
1688         size_type, size_type)): Update calls.
1689         (basic_string(const basic_string&, size_type, size_type,
1690         const _Alloc&)): Ditto.
1691         (assign(const basic_string&, size_type, size_type)): Use the
1692         new _M_check and _M_limit.
1693         (insert(size_type, const basic_string&, size_type, size_type):
1694         Ditto.
1695         (insert(size_type, const _CharT*, size_type)): Ditto.
1696         (replace(size_type, size_type, const _CharT*, size_type): Ditto.
1697         (replace(size_type, size_type, const basic_string&,
1698         size_type, size_type)): Ditto.
1699         (append(const basic_string&)): Ditto.
1700         (append(const basic_string&, size_type, size_type)): Ditto.
1701         (copy(_CharT*, size_type, size_type)): Ditto.
1702         (compare(size_type, size_type, const basic_string&)): Ditto.
1703         (compare(size_type, size_type, const basic_string&,size_type,
1704         size_type)): Ditto.
1705         (compare(size_type, size_type, const _CharT*)): Ditto.
1706         (compare(size_type, size_type, const _CharT*, size_type)): Ditto.
1707
1708 2004-01-19  Stefan Olsson  <stefan@snon.net>
1709
1710         * include/ext/mt_allocator.h: If a thread, when it dies, still has
1711         memory on it's freelist this memory is not returned to global
1712         list. Simplification of deallocate so that memory is always
1713         returned to the calling thread id's freelist instead of to
1714         global. Fix typos. Add volatile where appropriate.
1715
1716 2004-01-19  Loren J. Rittle  <ljrittle@acm.org>
1717
1718         * testsuite/ext/stdio_filebuf/char/10063-2.cc: Treat unbuffered.
1719         * testsuite/ext/stdio_filebuf/char/10063-3.cc: New test.  Like -2 but
1720         use __gnu_cxx::stdio_sync_filebuf<char> instead; allow buffered stream.
1721
1722 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
1723
1724         * src/debug.cc: Make sure all the names are prefixed with
1725         double (or single) underscore.
1726
1727 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
1728
1729         * src/debug.cc: Trivial formatting change.
1730
1731 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
1732
1733         * include/bits/basic_string.tcc (_S_construct(size_type,
1734         _CharT, const _Alloc&)): Remove redundant try/catch.
1735         (_M_mutate(size_type, size_type, size_type)): Ditto.
1736         (_M_clone(const _Alloc&, size_type)): Ditto.
1737
1738 2004-01-18  Paolo Carlini  <pcarlini@suse.de>
1739
1740         * include/bits/basic_string.h (c_str()): Simplify, due to
1741         21.3.4 the internal representation is always kept null-terminated.
1742         * include/bits/basic_string.tcc (_M_clone): Null-terminate.
1743         * testsuite/21_strings/basic_string/element_access/char/4.cc: New.
1744         * testsuite/21_strings/basic_string/element_access/wchar_t/4.cc:
1745         Ditto.
1746
1747 2004-01-18  Paolo Carlini  <pcarlini@suse.de>
1748
1749         * include/bits/basic_string.h (append(size_type, _CharT)):
1750         Moved inline, just call _M_replace_aux, no source iterators at
1751         risk of being clobbered.
1752         (assign(size_type, _CharT)): Call directly _M_replace_aux.
1753         (_M_replace(iterator, iterator, _InputIterator, _InputIterator,
1754         input_iterator_tag)): Remove fifth unused argument.
1755         (_M_replace_dispatch(iterator, iterator, _InputIterator,
1756         _InputIterator, __false_type)): Update call.
1757         * include/bits/basic_string.tcc (replace(size_type, size_type,
1758         const _CharT*, size_type)): Update call.
1759         (_M_replace_aux(iterator, iterator, size_type, _CharT)): Tweak
1760         throw string literal.
1761         (_M_replace_safe(iterator, iterator, _ForwardIterator,
1762         _ForwardIterator)): Likewise.
1763         (_M_replace(iterator, iterator, _InputIterator, _InputIterator,
1764         input_iterator_tag)): Remove fifth unused argument.
1765         (append(size_type __n, _CharT __c)): Move inline.
1766         * src/string-inst.cc (S::_M_replace(S::iterator, S::iterator,
1767         const C*, const C*, input_iterator_tag)): Remove fifth unused
1768         argument.
1769
1770 2004-01-16  Benjamin Kosnik  <bkoz@redhat.com>
1771
1772         * testsuite/ext/enc_filebuf/char/13189.cc: Fix guards.
1773         * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Same.
1774
1775 2004-01-16  Danny Smith  <dannysmith@users.sourceforge.net>
1776
1777         * testsuite/testsuite_hooks.cc (try_mkfifo): Avoid calling
1778         mkfifo for mingw32.
1779
1780 2004-01-15  Stefan Olsson  <stefan@snon.net>
1781
1782         * include/ext/mt_allocator.h: Reuse thread id's as soon as
1783         possible by changing the behaviour of thread_freelist to do
1784         push_front when threads die instead of push_back.
1785
1786 2004-01-14  Paolo Carlini  <pcarlini@suse.de>
1787
1788         * include/bits/locale_facets.h (struct __numpunct_cache):
1789         Add member _M_grouping_size, caching the length of _M_grouping.
1790         (__numpunct_cache<>::_M_cache): Assign the latter.
1791         (__verify_grouping): Move declaration...
1792         * include/bits/locale_facets.tcc (__verify_grouping):
1793         ... here, change signature to take a const char* and a size_t
1794         for the grouping; not a template anymore.
1795         (__add_grouping, num_put::_M_group_int, num_put::_M_group_float):
1796         Likewise change signature and tweak consistently.
1797         (num_get::_M_extract_float, num_get::_M_extract_int,
1798         num_put::_M_insert_int, num_put::_M_insert_float,
1799         money_get::do_get(string_type&), money_get::do_put(string_type)):
1800         Update callers.
1801         * config/locale/generic/numeric_members.cc
1802         (numpunct<>::_M_initialize_numpunct): Assign the new member.
1803         * config/locale/gnu/numeric_members.cc
1804         (numpunct<>::_M_initialize_numpunct): Likewise.
1805         * src/locale-inst.cc (__add_grouping): Tweak signature.
1806         (__verify_grouping): Don't instantiate, not a template anymore.
1807
1808         * include/bits/locale_facets.h: Rename _M_truename_len ->
1809         _M_truename_size, _M_falsename_len -> _M_falsename_size.
1810         * include/bits/locale_facets.tcc: Likewise.
1811         * config/locale/generic/numeric_members.cc: Likewise.
1812         * config/locale/gnu/numeric_members.cc: Likewise.
1813
1814 2004-01-14  Stefan Olsson  <stefan@snon.net>
1815
1816         * include/ext/mt_allocator.h: Fixups.
1817         * testsuite/performance/allocator.cc: Enable __mt_alloc tests.
1818         * testsuite/performance/allocator_thread.cc: Same.
1819
1820 2004-01-13  Benjamin Kosnik  <bkoz@redhat.com>
1821
1822         * testsuite/performance/ifstream_extract_float.cc: Add higher
1823         precision tests.
1824         * testsuite/performance/ofstream_insert_float.cc: Same.
1825
1826 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
1827
1828         * src/locale-misc-inst.cc (__convert_from_v(long),
1829         __convert_from_v(unsigned long), __convert_from_v(long long),
1830         __convert_from_v(unsigned long long)): Remove, unused.
1831
1832 2004-01-13  Benjamin Kosnik  <bkoz@redhat.com>
1833
1834         * testsuite/performance/ifstream_extract_float.cc: New.
1835         * testsuite/performance/ofstream_insert_float.cc: Float generation
1836         matches above.
1837
1838         * 20_util/auto_ptr.cc, auto_ptr_neg.cc: Break into...
1839         * 20_util/auto_ptr/1.cc: ...this.
1840         * 20_util/auto_ptr/2.cc: Same.
1841         * 20_util/auto_ptr/3.cc: Same.
1842         * 20_util/auto_ptr/3946.cc: Same.
1843         * 20_util/auto_ptr/4.cc: Same.
1844         * 20_util/auto_ptr/5.cc: Same.
1845         * 20_util/auto_ptr/6.cc: Same.
1846         * 20_util/auto_ptr/7.cc: Same.
1847         * 20_util/auto_ptr/assign_neg.cc
1848         * 20_util/pairs.cc: Break into...
1849         * 20_util/pair/1.cc: ...this.
1850         * 20_util/pair/2.cc: Same.
1851         * 20_util/pair/3.cc: Same.
1852         * 20_util/pair/4.cc: Same.
1853
1854 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
1855
1856         * include/bits/locale_facets.tcc (num_get::do_get(void*&)):
1857         Set correctly just basefield, the only group that matters.
1858
1859 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
1860
1861         * include/ext/rope (_Rope_rep_alloc_base): Eliminate.
1862         (_Rope_rep_base): Inherit directly from the rope allocator;
1863         use rebinding instead of _Alloc_traits; pick up data member
1864         from _Rope_rep_alloc_base.
1865         (_Rope_alloc_base): Eliminate.
1866         (_Rope_base): Inherit directly from the rope allocator; use
1867         rebinding instead of _Alloc_traits; pick up data member from
1868         _Rope_alloc_base.
1869         (rope::_S_new_RopeLeaf, rope::_S_new_RopeConcatenation,
1870         rope::_S_new_RopeFunction, rope::_S_new_RopeSubstring): Tweak.
1871
1872 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
1873
1874         PR libstdc++/13650
1875         * include/bits/basic_string.tcc (compare(size_type, size_type,
1876         const _CharT*, size_type)): Implement correctly the resolution
1877         of DR 5: basically, s is a char array, -not- a C string.
1878         * include/bits/basic_string.h: Tweak some comments.
1879         * testsuite/21_strings/basic_string/compare/char/13650.cc: New.
1880         * testsuite/21_strings/basic_string/compare/wchar_t/13650.cc: New.
1881
1882 2004-01-12  Andreas Tobler  <a.tobler@schweiz.ch>
1883
1884         * testsuite/lib/libstdc++.exp: Set LD_LIBRARY_PATH_32 for
1885         Solaris.
1886
1887 2004-01-12  Paolo Carlini  <pcarlini@suse.de>
1888
1889         * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc:
1890         Use try_mkfifo.
1891         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc:
1892         Likewise.
1893
1894 2004-01-12  Paolo Carlini  <pcarlini@suse.de>
1895
1896         * include/bits/locale_facets.h (struct __numpunct_cache):
1897         Add members _M_truename_len and _M_falsename_len, caching
1898         the lengths of _M_truename and _M_falsename.
1899         (__numpunct_cache<>::_M_cache): Assign the latter.
1900         * include/bits/locale_facets.tcc (num_get::do_get(bool&),
1901         num_put::do_put(bool)): Use the new members, thus avoiding
1902         computing string lengths again and again.
1903         * config/locale/generic/numeric_members.cc
1904         (numpunct<>::_M_initialize_numpunct): Assign the new members.
1905         * config/locale/gnu/numeric_members.cc
1906         (numpunct<>::_M_initialize_numpunct): Likewise.
1907
1908 2004-01-12  Mark Mitchell  <mark@codesourcery.com>
1909
1910         * testsuite/testsuite_hooks.h (__gnu_test::try_mkfifo): Declare it.
1911         * testsuite/testsuite_hooks.cc (__gnu_test::try_mkfifo): Define
1912         it.
1913         * testsuite/27_io/basic_filebuf/close/char/4879.cc: Use try_mkfifo
1914         and remove Cygwin XFAIL.
1915         * testsuite/27_io/basic_filebuf/close/char/9964.cc: Likewise.
1916         * testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc: Likewise.
1917         * testsuite/27_io/basic_filebuf/open/char/9507.cc: Likewise.
1918         * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc:
1919         Likewise.
1920         * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise.
1921         * testsuite/27_io/objects/char/7.cc: Likewise.
1922         * testsuite/27_io/objects/char/9661-1.cc: Likewise.
1923         * testsuite/27_io/objects/wchar_t/7.cc: Likewise.
1924         * testsuite/27_io/objects/wchar_t/9661-1.cc: Likewise.
1925
1926 2004-01-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1927
1928         * include/std/std_complex.h (std::complex<>::real): Return a
1929         reference. Add non-const overload.
1930         (std::complex<>::real): Likewise.
1931         (std::real): Likewise.
1932         (std::imag): Likewise.
1933         (std::operator+): Tidy.
1934         (std::operator-): Likewise.
1935         (std::operator*): Likewise.
1936         (std::operator/): Likewise.
1937         (std::operator>>): Likewise.
1938
1939 2004-01-11  Paolo Carlini  <pcarlini@suse.de>
1940
1941         PR libstdc++/13582
1942         * include/bits/fstream.tcc (imbue): Exploit the external
1943         buffer to imbue 'on the fly' a new locale and convert its
1944         remainder with the new codecvt facet.
1945         (underflow): Tweak slightly to deal with this special case.
1946         * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc: New.
1947         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc: Ditto.
1948         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Ditto.
1949         * testsuite/27_io/objects/wchar_t/13582-1_xin.cc: Ditto.
1950         * testsuite/27_io/objects/wchar_t/13582-1_xin.in: Ditto.
1951
1952 2004-01-10  Paolo Carlini  <pcarlini@suse.de>
1953
1954         * docs/html/ext/lwg-active.html, docs/html/ext/lwg-defects.html:
1955         Import Revision 28.
1956
1957 2004-01-10  Paolo Carlini  <pcarlini@suse.de>
1958
1959         PR libstdc++/13630
1960         * include/bits/locale_classes.h (class locale): Fix category
1961         typedef.
1962         * testsuite/22_locale/locale/13630.cc: Add.
1963
1964 2004-01-10  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1965
1966         * include/bits/locale_facets.h: Make a name really dependent. This
1967         will be needed when Core Issue 224 is implemented.
1968
1969 2004-01-09  Paolo Carlini  <pcarlini@suse.de>
1970
1971         * testsuite/performance/allocator.cc: Demangle typeid(obj).name().
1972         * testsuite/performance/allocator_thread.cc: Likewise.
1973
1974 2004-01-07  Benjamin Kosnik  <bkoz@redhat.com>
1975
1976         * crossconfig.m4: Add LFS, io bits to linux cross config.
1977         * acconfig.h: Remove obsolete bits, reorder.
1978         * config.h.in: Regenerate.
1979         * aclocal.m4: Same.
1980         * configure: Same.
1981
1982 2004-01-07  Gawain Bolton  <gp.bolton@computer.org>
1983
1984         * include/bits/stl_list.h:
1985         * include/bits/list.tc:
1986         * src/list.cc:
1987         Performance enhancements for destructor, push_front(),
1988         push_back(), pop_front(), pop_back(), sort()
1989         Eliminated static_casts where possible.
1990         Moved code out of header files into new src/list.cc
1991         implementation file for library where possible.
1992         Remove inheritance from iterator class and create separate
1993         classes for non-constant and constant iterators.
1994         * include/bits/stl_tree.h (_Rb_tree class):
1995         * src/tree.cc:
1996         Only erase contents in destructor.
1997         Eliminate unnecessary initialization in assignment operator.
1998         Optimize for the nominal case by not checking whether
1999         container is empty in clear().
2000         Re-order test in _M_insert() to improve performance.
2001         Move initialization of new node's left & right pointers to
2002         src/tree.cc to where new node's colour is initialized
2003         and to reduce the amount of inline code.
2004         Use  _M_leftmost() and _M_end() to improve readability where
2005         appropriate.
2006         Create separate classes for non-constant and constant
2007         iterators to clarify code, avoid extra template parameters and
2008         casting away constness.
2009
2010 2004-01-07  Benjamin Kosnik  <bkoz@redhat.com>
2011
2012         * src/Makefile.am (sources): Add list.cc, tree.cc.
2013         * src/stl_tree.cc: Move to...
2014         * src/tree.cc: ...here.
2015         * src/list.cc: Add.
2016         * config/linker-map.gnu: Tweaks.
2017         * testsuite/23_containers/map/operators/1_neg.cc: Add excess errors.
2018         * testsuite/23_containers/set/operators/1_neg.cc: Add excess errors.
2019
2020         * bits/stl_vector.h: Column wrap comments.
2021
2022 2004-01-07  Loren J. Rittle  <ljrittle@acm.org>
2023
2024         (re-open) PR libstdc++/12658
2025         * src/locale_init.cc (locale::locale): Remove ill-scoped mutex.
2026         (locale::global): Likewise.
2027
2028 2004-01-07  Paolo Carlini  <pcarlini@suse.de>
2029
2030         * testsuite/27_io/basic_istream/extractors_other/char/9318-in.cc:
2031         Remove redundant #include.
2032         * testsuite/27_io/basic_ostream/endl/char/1.cc: Likewise.
2033         * testsuite/27_io/basic_ostream/ends/char/1.cc: Likewise,
2034         re-enable normal testing.
2035         * testsuite/27_io/basic_ostream/ends/char/2.cc: Remove redundant
2036         #include.
2037         * testsuite/27_io/basic_ostream/flush/char/1.cc: Likewise.
2038         * testsuite/27_io/basic_ostream/inserters_character/char/1.cc:
2039         Likewise.
2040         * testsuite/27_io/basic_ostream/inserters_character/char/2.cc:
2041         Likewise.
2042         * testsuite/27_io/basic_ostream/inserters_character/char/3.cc:
2043         Likewise.
2044         * testsuite/27_io/basic_ostream/inserters_character/char/4.cc:
2045         Likewise.
2046         * testsuite/27_io/basic_ostream/inserters_character/char/5.cc:
2047         Likewise.
2048         * testsuite/27_io/basic_ostream/inserters_character/char/6.cc:
2049         Likewise.
2050         * testsuite/27_io/basic_ostream/inserters_character/char/8.cc:
2051         Likewise.
2052         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/7.cc:
2053         More properly, #include <locale>.
2054         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/8.cc:
2055         Remove redundant #include.
2056         * testsuite/27_io/basic_ostream/inserters_other/char/2.cc: Likewise.
2057         * testsuite/27_io/basic_ostream/inserters_other/char/3.cc: Remove
2058         redundant DejaGnu directive.
2059         * testsuite/27_io/basic_ostream/inserters_other/char/4.cc: Remove
2060         redundant #include.
2061
2062 2004-01-06  Benjamin Kosnik  <bkoz@redhat.com>
2063             Stefan Olsson  <stefan@snon.net>
2064
2065         * scripts/check_performance: Use -pthread.
2066         * testsuite/performance/allocator.cc: Tweaks, add list.
2067         * testsuite/performance/allocator_thread.cc: New.
2068
2069 2004-01-06  Jerry Quinn  <jlquinn@optonline.net>
2070
2071         * include/bits/locale_facets.h: Document public classes and
2072         functions.
2073         * include/bits/locale_facets.tcc (time_get::_M_extract_via_format):
2074         Add comment.
2075
2076 2004-01-06  Paolo Carlini  <pcarlini@suse.de>
2077
2078         * testsuite/27_io/basic_istream/extractors_other/char/1.cc:
2079         Remove redundant #includes.
2080         * testsuite/27_io/basic_istream/extractors_other/char/2.cc:
2081         Likewise.
2082         * testsuite/27_io/basic_istream/extractors_other/char/3.cc:
2083         Likewise.
2084         * testsuite/27_io/basic_istream/get/char/1.cc: Likewise.
2085         * testsuite/27_io/basic_istream/get/char/2.cc: Likewise.
2086         * testsuite/27_io/basic_istream/getline/char/1.cc: Likewise.
2087         * testsuite/27_io/basic_istream/getline/char/2.cc: Likewise.
2088         * testsuite/27_io/basic_istream/getline/char/3.cc: Likewise.
2089         * testsuite/27_io/basic_istream/ignore/char/1.cc: Likewise.
2090         * testsuite/27_io/basic_istream/ignore/char/6360.cc: Likewise.
2091         * testsuite/27_io/basic_istream/ignore/char/7220.cc: Likewise.
2092         * testsuite/27_io/basic_istream/peek/char/1.cc: Likewise.
2093         * testsuite/27_io/basic_istream/peek/char/6414.cc: Likewise.
2094         * testsuite/27_io/basic_istream/putback/char/1.cc: Likewise.
2095         * testsuite/27_io/basic_istream/read/char/1.cc: Likewise.
2096         * testsuite/27_io/basic_istream/read/char/2.cc: Likewise.
2097         * testsuite/27_io/basic_istream/read/char/3.cc: Likewise.
2098         * testsuite/27_io/basic_istream/readsome/char/6746-1.cc:
2099         Likewise.
2100         * testsuite/27_io/basic_istream/readsome/char/6746-2.cc:
2101         Likewise.
2102         * testsuite/27_io/basic_istream/readsome/char/8258.cc:
2103         Likewise.
2104         * testsuite/27_io/basic_istream/seekg/char/2346-fstream.cc:
2105         Likewise.
2106         * testsuite/27_io/basic_istream/seekg/char/2346-sstream.cc:
2107         Likewise.
2108         * testsuite/27_io/basic_istream/seekg/char/8348-1.cc: Likewise.
2109         * testsuite/27_io/basic_istream/seekg/char/8348-2.cc: Likewise.
2110         * testsuite/27_io/basic_istream/tellg/char/8348.cc: Likewise.
2111
2112 2004-01-04  Paolo Carlini  <pcarlini@suse.de>
2113
2114         * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc:
2115         Remove redundant #includes.
2116         * testsuite/27_io/basic_istream/extractors_arithmetic/char/02.cc:
2117         Likewise.
2118         * testsuite/27_io/basic_istream/extractors_arithmetic/char/03.cc:
2119         Likewise.
2120         * testsuite/27_io/basic_istream/extractors_arithmetic/char/06.cc:
2121         Likewise.
2122         * testsuite/27_io/basic_istream/extractors_arithmetic/char/07.cc:
2123         Likewise.
2124         * testsuite/27_io/basic_istream/extractors_arithmetic/char/08.cc:
2125         Likewise.
2126         * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc:
2127         Likewise.
2128         * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
2129         Likewise.
2130         * testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc:
2131         Likewise.
2132         * testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc:
2133         Likewise.
2134         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/1.cc:
2135         Likewise.
2136         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc:
2137         Likewise.
2138         * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/1.cc:
2139         Likewise.
2140
2141 2004-01-04  Mark Mitchell  <mark@codesourcery.com>
2142
2143         PR c++/12226
2144         * testsuite/27_io/basic_filebuf/4.cc: Remove use of invalid copy
2145         constructor.
2146         * testsuite/27_io/basic_fstream/4.cc: Likewise.
2147         * testsuite/27_io/basic_ifstream/4.cc: Likewise.
2148         * testsuite/27_io/basic_ios/4.cc: Likewise.
2149         * testsuite/27_io/basic_iostream/4.cc: Likewise.
2150         * testsuite/27_io/basic_istream/4.cc: Likewise.
2151         * testsuite/27_io/basic_istingstream/4.cc: Likewise.
2152         * testsuite/27_io/basic_ofstream/4.cc: Likewise.
2153         * testsuite/27_io/basic_ostream/4.cc: Likewise.
2154         * testsuite/27_io/basic_ostringstream/4.cc: Likewise.
2155         * testsuite/27_io/basic_stringbuf/5.cc: Likewise.
2156         * testsuite/27_io/basic_stringstream/4.cc: Likewise.
2157
2158 2004-01-04  Paolo Carlini  <pcarlini@suse.de>
2159
2160         * config/locale/generic/numeric_members.cc (_M_initialize_numpunct):
2161         Avoid unnecessarily zero terminating _M_atoms_out and _M_atoms_in;
2162         always use double underscored names.
2163         * config/locale/gnu/numeric_members.cc (_M_initialize_numpunct):
2164         Likewise.
2165         * include/bits/locale_facets.h (struct __numpunct_cache):
2166         Dimension _M_atoms_out and _M_atoms_in one position smaller.
2167         (__numpunct_cache<>::_M_cache): Don't zero terminate _M_atoms_out
2168         and _M_atoms_in.