OSDN Git Service

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