OSDN Git Service

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