OSDN Git Service

2004-10-05 Christopher Jefferson <caj@cs.york.ac.uk>
[pf3gnuchains/gcc-fork.git] / libstdc++-v3 / ChangeLog
1 2004-10-05  Christopher Jefferson  <caj@cs.york.ac.uk>
2
3         * include/bits/stl_algobase.h (iter_swap): delegate to swap via
4         __iter_swap when iterator's value_types are equal.
5         (struct __iter_swap): New.
6
7 2004-10-04  Benjamin Kosnik  <bkoz@redhat.com>
8
9         * configure.ac (libtool_VERSION): To 6:3:0.
10         * configure: Regnerate.
11         * testsuite/testsuite_abi.cc (check_version): Add 3.4.3.
12
13 2004-10-04  Roger Sayle  <roger@eyesopen.com>
14             Eric Botcazou  <ebotcazou@libertysurf.fr>
15
16         PR libstdc++/17505
17         * config/linker-map.gnu: Synchronize the current list of stub
18         functions from libmath.
19
20 2004-10-03  Roger Sayle  <roger@eyesopen.com>
21
22         * config/locale/generic/c_locale.cc (__convert_to_v): Use
23         _GLIBCXX_HAVE_STRTOF instead _GLIBCXX_USE_C99 to check for strtof.
24         Likewise, use _GLIBCXX_HAVE_STRTOLD instead of _GLIBCXX_USE_C99
25         to check for presence of strtold.
26
27 2004-10-03  Paolo Carlini  <pcarlini@suse.de>
28
29         * include/bits/stl_list.h: Trivial formatting fixes.
30         * include/bits/stl_tree.h: Likewise.
31
32 2004-10-03  Paolo Carlini  <pcarlini@suse.de>
33
34         * include/bits/sstream.tcc (seekpos): In case of success, just
35         return __sp.
36
37 2004-10-01  Paolo Carlini  <pcarlini@suse.de>
38
39         * include/bits/sstream.tcc (pbackfail): Implement correctly
40         27.7.1.3/2, bullet 2: if mode & ios_base::out is false do not
41         write in the buffer.
42         * testsuite/27_io/basic_stringbuf/pbackfail/char/1.cc: New.
43         * testsuite/27_io/basic_stringbuf/pbackfail/char/2.cc: Likewise.
44         * testsuite/27_io/basic_stringbuf/pbackfail/wchar_t/1.cc: Likewise.
45         * testsuite/27_io/basic_stringbuf/pbackfail/wchar_t/2.cc: Likewise.
46         * testsuite/27_io/basic_istream/putback/char/1.cc: Tweak consistently.
47
48 2004-10-01  Paolo Carlini  <pcarlini@suse.de>
49
50         * include/bits/sstream.tcc (seekpos): Minor rearrangement of two
51         conditionals consistently with seekoff.
52         * include/std/std_sstream.h (setbuf): Avoid a string temporary.
53         (_M_sync): Simplify a bit, clean-up comment.
54
55 2004-09-30  Paolo Carlini  <pcarlini@suse.de>
56
57         PR libstdc++/10975 (DR 453)
58         * include/bits/sstream.tcc (seekoff): Don't fail if __beg == 0
59         and __off == 0.
60         * docs/html/ext/howto.html: Add an entry for DR 453.
61         * testsuite/27_io/basic_stringbuf/seekoff/char/10975.cc: New.
62         * testsuite/27_io/basic_stringbuf/seekoff/wchar_t/10975.cc: Likewise.
63         * testsuite/27_io/basic_istream/tellg/char/1.cc: Tweak consistently.
64         * testsuite/27_io/basic_ostream/tellp/char/1.cc: Likewise.
65         * testsuite/27_io/basic_ostream/tellp/char/2.cc: Likewise.
66         * testsuite/27_io/basic_istream/seekg/char/2346-fstream.cc: Fix and
67         move to...
68         * testsuite/27_io/basic_istream/seekp/char/2346-fstream.cc: ... here.
69         * testsuite/27_io/basic_istream/seekg/char/2346-sstream.cc: Fix and
70         move to...
71         * testsuite/27_io/basic_istream/seekp/char/2346-sstream.cc: ... here.
72
73 2004-09-29  Paolo Carlini  <pcarlini@suse.de>
74
75         * include/std/std_sstream.h (basic_stringbuf(ios_base::openmode)):
76         Don't use _M_stringbuf_init, keep the pointers null, per 27.7.1.1.
77         (str()): Slightly tweak, protect from pptr() == 0.
78         (_M_update_egptr()): Likewise.
79         * include/bits/sstream.tcc (ssekoff, seekpos): In order to check
80         for an empty buffer use __beg instead of _M_string.capacity().
81         * testsuite/27_io/basic_stringbuf/cons/char/1.cc: New.
82         * testsuite/27_io/basic_stringbuf/cons/wchar_t/1.cc: Likewise.
83
84         * testsuite/27_io/basic_filebuf/cons/char/1.cc: New.
85         * testsuite/27_io/basic_filebuf/cons/wchar_t/1.cc: Likewise.
86         * testsuite/27_io/basic_streambuf/cons/char/1.cc: Update.
87         * testsuite/27_io/basic_streambuf/cons/wchar_t/1.cc: Likewise.
88
89 2004-09-29  Paolo Carlini  <pcarlini@suse.de>
90             Benjamin Kosnik  <bkoz@redhat.com>
91         
92         * testsuite/testsuite_io.h (class constraint_buf): New, extended
93         and templatized version of constraint_filebuf; add typedefs for
94         streambuf/stringbuf/filebuf and wchar_t counterparts.
95
96 2004-09-28  Paolo Carlini  <pcarlini@suse.de>
97
98         PR libstdc++/16612
99         * include/bits/basic_string.h (_M_dispose, _M_refcopy,
100         basic_string()): When _GLIBCXX_FULLY_DYNAMIC_STRING is defined,
101         don't deal with _S_empty_rep.
102         * include/bits/basic_string.tcc (_S_construct, _M_destroy,
103         _M_leak_hard, _M_mutate): Likewise.
104         * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): New.
105         * acconfig.h: Add corresponding undef.  
106         * configure.ac: Use GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING.
107         * docs/html/configopts.html: Document --enable-fully-dynamic-string.
108         * configure: Regenerate.
109         * config.h.in: Likewise.
110
111 2004-09-28  Benjamin Kosnik  <bkoz@redhat.com>
112             Paolo Carlini  <pcarlini@suse.de>
113
114         * testsuite/21_strings/basic_string/operations/char/1.cc: New.
115         * testsuite/21_strings/basic_string/operations/wchar_t/1.cc: New.
116         * testsuite/21_strings/basic_string/element_access/char/empty.cc: New.
117         * testsuite/21_strings/basic_string/element_access/wchar_t/empty.cc: 
118         New.
119
120 2004-09-28  Paolo Carlini  <pcarlini@suse.de>
121
122         * README: Remove obsolete entry about include/c_shadow.
123
124 2004-09-24  H.J. Lu  <hongjiu.lu@intel.com>
125
126         PR libstdc++/17469
127         * testsuite/lib/libstdc++.exp: Don't use global ld_library_path.
128
129 2004-09-24  Paolo Carlini  <pcarlini@suse.de>
130
131         * src/localename.cc (locale::locale(const char*)): Minor tweaks:
132         rename a variable, move an assignment.
133         (locale::_Impl::_Impl(const char*, size_t)): Likewise, minor tweak.
134
135 2004-09-24  Paul Brook  <paul@codesourcery.com>
136
137         * testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc: XFAIL more arm
138         simulator targets.
139         * testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc: Ditto.
140         * testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc: Ditto.
141         * testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc: Ditto.
142         * testsuite/27_io/basic_istream/readsome/char/6746-2.cc: Ditto.
143         * testsuite/ext/stdio_filebuf/char/10063-2.cc: Ditto.
144         * testsuite/ext/stdio_filebuf/char/10063-3.cc: Ditto.
145
146 2004-09-23  Zack Weinberg  <zack@codesourcery.com>
147
148         * testsuite/20_util/memory/auto_ptr/assign_neg.cc
149         * testsuite/23_containers/map/operators/1_neg.cc
150         * testsuite/23_containers/set/operators/1_neg.cc:
151         Update locations and/or regexps of dg-error markers.
152
153 2004-09-23  P.J. Darcy  <darcypj@us.ibm.com>
154
155         * include/Makefile.am (thread_host_headers): Add gthr-tpf.h.
156         Add rule to build ${host_builddir}/gthr-tpf.h.
157         * include/Makefile.in: Regenerate.
158
159 2004-09-23  Paolo Carlini  <pcarlini@suse.de>
160             Magnus Fromreide  <magfr@lysator.liu.se>
161
162         * include/bits/boost_concept_check.h (struct _SequenceConcept):
163         Remove wrong requirement, i.e., not present in Table 67.
164
165 2004-09-21  Paolo Carlini  <pcarlini@suse.de>
166
167         PR libstdc++/12882 (cont)
168         * acinclude.m4 (GLIBCXX_CHECK_LFS): Check for fstat64 too.
169         * configure: Regenerate.
170         * config/io/basic_file_stdio.cc (__basic_file<>::showmanyc): When
171         _GLIBCXX_USE_LFS use fstat64 and lseek64, thus providing a non
172         trivial showmanyc for large files too.
173
174 2004-09-17  Jonathan Wakely  <redi@gcc.gnu.org>
175
176         * include/bits/stl_algo.h (remove): Remove too restrictive
177         concept-check.
178
179 2004-09-17  Paolo Carlini  <pcarlini@suse.de>
180
181         * include/bits/fstream.tcc (xsgetn): Slightly tweak conditional,
182         as per Nathan's original suggestion.
183
184 2004-09-17  Paolo Carlini  <pcarlini@suse.de>
185
186         * testsuite/ext/mt_allocator/tune-1.cc: Use VERIFY, clean
187         up a bit.
188         * testsuite/ext/mt_allocator/tune-2.cc: Likewise.
189         * testsuite/ext/mt_allocator/tune-3.cc: Likewise.
190         * testsuite/ext/mt_allocator/tune-4.cc: Likewise.
191
192 2004-09-17  Paolo Carlini  <pcarlini@suse.de>
193             Andrea Arcangeli  <andrea@suse.de>
194
195         * config/io/basic_file_stdio.cc (__basic_file<>::close)): Don't
196         call unnecessarily sync, that is fflush: the library, since 3.4.0
197         does not use buffered fread/fwrite.
198         * include/bits/fstream.tcc (basic_filebuf<>::overflow): Likewise.
199
200 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
201
202         * config/cpu/arm/cxxabi_tweaks.h (__cxa_cdtor_return_type):
203         Define.
204         * config/cpu/generic/cxxabi_tweaks.h (__cxa_cdtor_return_type):
205         Define.
206         * libsupc++/cxxabi.h (__cxa_cdtor_return_type): New type.
207         (__cxa_vec_new): Use it.
208         (__cxa_vec_new2): Likewise.
209         (__cxa_vec_new3): Likewise.
210         (__cxa_vec_cdtor): Likewise.
211         (__cxa_vec_cctor): Likeiwse.
212         (__cxa_vec_dtor): Likewise.
213         (__cxa_vec_cleanup): Likewise.
214         (__cxa_vec_delete2): Likewise.
215         (__cxa_vec_delete3): Likewise.
216         * libsupc++/vec.cc (__cxa_vec_new): Likewise.
217         (__cxa_vec_new2): Likewise.
218         (__cxa_vec_new3): Likewise.
219         (__cxa_vec_cdtor): Likewise.
220         (__cxa_vec_cctor): Likeiwse.
221         (__cxa_vec_dtor): Likewise.
222         (__cxa_vec_cleanup): Likewise.
223         (__cxa_vec_delete2): Likewise.
224         (__cxa_vec_delete3): Likewise.
225         (__aeabi_vec_ctor_nocookie_nodtor): New function.
226         (__aeabi_vec_ctor_cookie_nodtor): Likewise.
227         (__aeabi_vec_cctor_nocookie_nodtor): Likewise.
228         (__aeabi_vec_new_cookie_noctor): Likewise.
229         (__aeabi_vec_new_nocookie): Likewise.
230         (__aeabi_vec_new_cookie_nodtor): Likewise.
231         (__aeabi_vec_new_cookie): Likewise.
232         (__aeabi_vec_dtor): Likewise.
233         (__aeabi_vec_dtor_cookie): Likewise.
234         (__aeabi_vec_delete): Likewise.
235         (__aeabi_vec_delete3): Likewise.
236         (__aeabi_vec_delete3_nodtor): Likewise.
237         (__aeabi_atexit): Likewise.
238
239 2004-09-14  Nathan Myers  <ncm@cantrip.org>
240
241         * include/bits/fstream.tcc (xsgetn): Slightly tweak the recent fix
242         for 11722: copy can replace move; the common case is __avail == 0.
243
244 2004-09-14  Paolo Carlini  <pcarlini@suse.de>
245
246         * include/bits/cpp_type_traits.h: Rename __is_trivially_copyable
247         to __is_scalar, more clear and consistent with "tr1" naming.
248         * include/bits/stl_algobase.h: Update consistently throughout.
249
250 2004-09-13  Paolo Carlini  <pcarlini@suse.de>
251
252         PR libstdc++/11722
253         * include/std/std_fstream.h (xsgetn): Declare only.
254         * include/bits/fstream.tcc (xsgetn): Define, optimize for the
255         always_noconv() case: when __n > __buflen, copy the available
256         buffer and issue a direct read.
257         * testsuite/performance/27_io/filebuf_sgetn_unbuf.cc: New.
258
259         * include/bits/fstream.tcc (xsputn): Minor tweak, reorder a
260         conditional.
261
262 2004-09-13  Hans-Peter Nilsson  <hp@bitrange.com>
263
264         * testsuite/lib/libstdc++.exp: Use gcc wrapper.exp and call
265         libstdc++_maybe_build_wrapper instead of using local code.
266
267 2004-09-08  Benjamin Kosnik  <bkoz@redhat.com>
268
269         * config/linker-map.gnu (GLIBCXX_3.4.3): New, adjust symbol exports.
270
271 2004-09-03  Jan Beulich  <jbeulich@novell.com>
272
273         * crossconfig.m4: Add NetWare as a target.
274         * configure: Regenerate.
275
276 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
277
278         * libsupc++/typeinfo: Honor __GXX_MERGED_TYPEINFO_NAMES if already
279         defined.
280
281 2004-09-02  Benjamin Kosnik  <bkoz@redhat.com>
282             Simon Richter  <Simon.Richter@hogyros.de>
283
284         PR libstdc++/16715
285         * include/bits/istream.tcc: Add extern template for iostream
286         char and wchar_t instantiations.
287
288 2004-09-02  Benjamin Kosnik  <bkoz@redhat.com>
289             Leland Wang  <llwang@infor.org>
290
291         PR libstdc++/17259
292         * include/ext/ropeimpl.h (rope::_S_compare): Use
293         _Rope_constants::_S_leaf.
294
295 2004-09-02  Benjamin Kosnik  <bkoz@redhat.com>
296
297         PR libstdc++/16848
298         * include/Makefile.am (ext_headers): Remove demangle.h.
299         * include/Makefile.in: Regenerate.
300         * include/ext/demangle.h: Remove.
301
302 2004-09-01  Benjamin Kosnik  <bkoz@redhat.com>
303
304         PR libstdc++/16614
305         * include/ext/mt_allocator.h (__mt_base): Not type dependent,
306         split into..
307         (__pool): New, specialize.
308         (__common_pool): New, static bits here.
309         (__per_type_pool): New, and here.
310         (__mt_alloc_base): New.
311         (__mt_alloc): Add template parameter, inherit from it.
312         * src/allocator.cc: Split this...
313         * src/allocator-inst.cc: And this...
314         * src/pool_allocator.cc: ...into this.
315         * src/mt_allocator.cc: ... and this. Add definitions for
316         __mt_base.
317         * src/Makefile.am (sources): Split allocator.cc to
318         pool_allocator.cc and mt_allocator.cc.
319         * src/Makefile.in: Regenerate.
320         * config/linker-map.gnu: Add symbols.
321         * docs/html/ext/mt_allocator.html: Document new design.
322         * testsuite/ext/mt_allocator/tune-1.cc: New.
323         * testsuite/ext/mt_allocator/tune-2.cc: New.
324         * testsuite/ext/mt_allocator/tune-3.cc: New.
325         * testsuite/ext/mt_allocator/tune-4.cc: New.
326
327         * testsuite/testsuite_allocator.h (__gnu_test::check_new): New.
328         * testsuite/ext/allocators.cc: Use check_new, split into...
329         * testsuite/ext/mt_allocator/check_new.cc: this.
330         * testsuite/ext/pool_allocator/check_new.cc: this.
331         * testsuite/ext/malloc_allocator/check_new.cc: this.
332         * testsuite/ext/debug_allocator/check_new.cc: this.
333         * testsuite/ext/mt_allocator/instantiate.cc: this.
334         * testsuite/ext/pool_allocator/instantiate.cc: this.
335         * testsuite/ext/malloc_allocator/instantiate.cc: this.
336         * testsuite/ext/debug_allocator/instantiate.cc: this.
337
338 2004-08-30  Phil Edwards  <phil@codesourcery.com>
339
340         * docs/html/install.html:  Update locales list (from Paolo).
341         Remove other redundant information and point to the GCC install
342         documentation.
343
344 2004-08-30  Benjamin Kosnik  <bkoz@redhat.com>
345
346         * include/ext/pool_allocator.h: Rename __pool_base to
347         __pool_alloc_base.
348         * src/allocator.cc: Same.
349         * config/linker-map.gnu: Same.
350
351 2004-08-30  Paolo Carlini  <pcarlini@suse.de>
352             Kenneth C. Schalk  <ken@xorian.net>
353
354         PR libstdc++/17215
355         * config/io/basic_file_stdio.cc (__basic_file<char>::close()):
356         Check the return value of fclose/sync, loop on EINTR.
357         (__basic_file<char>::sys_open): Likewise, for sync.
358
359 2004-08-29  Paolo Carlini  <pcarlini@suse.de>
360
361         * include/bits/locale_facets.tcc (time_get<>::_M_extract_via_format,
362         case 'S'): Allow for at least one leap-second (as per C99, 7.23.1
363         and 7.23.3.5), two if !_GLIBCXX_USE_C99.
364         * testsuite/22_locale/time_get/get_time/char/4.cc: New.
365         * testsuite/22_locale/time_get/get_time/wchar_t/4.cc: Likewise.
366
367 2004-08-27  Jason Merrill  <jason@redhat.com>
368
369         PR c++/13684
370         * libsupc++/guard.cc (static_mutex): Internal class implementing a
371         recursive mutex which controls initialization of local statics.
372         (__gnu_cxx::recursive_init): New exception class.
373         (__cxa_guard_acquire): Deal with locking and recursion detection.
374         (acquire_1, __cxa_guard_abort, __cxa_guard_release): Likewise.
375
376 2004-08-27  Matthias Klose  <doko@debian.org>
377
378         * configure.host: For mips*-*-linux* update cpu_include_dir
379         after atomicity_dir is set.
380
381 2004-08-27  Matthias Klose  <doko@debian.org>
382
383         * config/abi/arm-linux-gnu/baseline_symbols.txt: New.
384         * config/abi/mips-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
385         * configure.host: Set abi_baseline_pair for arm*-*-linux* and
386         mips*-*-linux*.
387
388 2004-08-27  Paolo Carlini  <pcarlini@suse.de>
389
390         * testsuite/27_io/manipulators/adjustfield/wchar_t/1.cc: New.
391         * testsuite/27_io/manipulators/adjustfield/wchar_t/2.cc: Likewise.
392         * testsuite/27_io/manipulators/basefield/wchar_t/1.cc: Likewise.
393         * testsuite/27_io/manipulators/standard/wchar_t/1.cc: Likewise.
394         * testsuite/27_io/manipulators/standard/wchar_t/2.cc: Likewise.
395
396         * testsuite/27_io/manipulators/adjustfield/char/1.cc: Minor
397         formatting fixes.
398         * testsuite/27_io/manipulators/adjustfield/char/2.cc: Likewise.
399         * testsuite/27_io/manipulators/basefield/char/1.cc: Likewise.
400         * testsuite/27_io/manipulators/standard/char/1.cc: Likewise.
401         * testsuite/27_io/manipulators/standard/char/2.cc: Likewise.
402
403 2004-08-25  Paolo Carlini  <pcarlini@suse.de>
404
405         PR libstdc++/17038 (partial)
406         * include/bits/locale_facets.tcc (time_put<>::do_put): Increase
407         __maxlen to 128.
408         * include/bits/locale_facets.h (class __timepunct): Add FIXME
409         comment about _M_put.
410         * config/locale/generic/time_members.cc (_M_put): Always null
411         terminate __s.
412         * config/locale/gnu/time_members.cc (_M_put): Likewise.
413         * testsuite/22_locale/time_put/put/char/17038.cc: New.
414         * testsuite/22_locale/time_put/put/wchar_t/17038.cc: New.
415
416 2004-08-24  Paolo Carlini  <pcarlini@suse.de>
417
418         * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc: New.
419         * testsuite/27_io/basic_istringstream/str/wchar_t/1.cc: Likewise.
420         * testsuite/27_io/basic_ostringstream/cons/wchar_t/3.cc: Likewise.
421         * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc: Likewise.
422         * testsuite/27_io/basic_ostringstream/str/wchar_t/1.cc: Likewise.
423         * testsuite/27_io/basic_ostringstream/str/wchar_t/2.cc: Likewise.
424
425         * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Trim excess
426         newlines.
427         * testsuite/27_io/basic_istringstream/str/char/1.cc: Likewise.
428
429 2004-08-22  Matthias Klose  <doko@debian.org>
430
431         * config/abi/m68k-linux-gnu/baseline_symbols.txt: New.
432         * config/abi/sparc-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
433
434 2004-08-23  Paolo Carlini  <pcarlini@suse.de>
435
436         * configure.ac: Specify version 1.9.1 in AM_INIT_AUTOMAKE.
437         * aclocal.m4: Regenerate with automake-1.9.1.
438         * configure: Regenerate.
439         * Makefile.in: Likewise.
440         * include/Makefile.in: Likewise.
441         * libmath/Makefile.in: Likewise.
442         * libsupc++/Makefile.in: Likewise.
443         * po/Makefile.in: Likewise.
444         * src/Makefile.in: Likewise.
445         * testsuite/Makefile.in: Likewise.
446
447 2004-08-22  Paolo Carlini  <pcarlini@suse.de>
448
449         * include/bits/locale_facets.tcc (num_put<>::do_put(bool)): Cast
450         to a signed type, long according to the resolution of DR 359.
451         * testsuite/22_locale/num_put/put/char/9.cc: New.
452         * testsuite/22_locale/num_put/put/wchar_t/9.cc: New.
453
454         * include/bits/locale_facets.tcc (num_put<>::do_put(const void*)):
455         Simplify a bit: no need to clear showpos.
456
457 2004-08-21  Paolo Carlini  <pcarlini@suse.de>
458
459         * include/bits/char_traits.h (struct _Char_traits_match): Remove,
460         unused.
461
462 2004-08-21  Paolo Carlini  <pcarlini@suse.de>
463
464         * testsuite/22_locale/money_put/put/wchar_t/1.cc: Use proper
465         wchar_t type for the fill argument; minor formatting tweaks.
466         * testsuite/22_locale/money_put/put/wchar_t/12971.cc: Likewise.
467         * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise.
468         * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise.
469         * testsuite/22_locale/money_put/put/wchar_t/4.cc: Likewise.
470         * testsuite/22_locale/money_put/put/wchar_t/5.cc: Likewise.
471         * testsuite/22_locale/money_put/put/wchar_t/6.cc: Likewise.
472
473 2004-08-21  Paolo Carlini  <pcarlini@suse.de>
474
475         * include/bits/basic_ios.tcc (basic_ios<>::copyfmt): Don't deal
476         with _M_word != _M_local_word two times, redundantly.
477
478 2004-08-20  Jason Merrill  <jason@redhat.com>
479
480         * include/Makefile.am (${host_builddir}/gthr.h): Don't add
481         _GLIBCXX_ to #pragma lines.
482         * include/Makefile.in: Update.
483
484 2004-08-20  Paolo Carlini  <pcarlini@suse.de>
485
486         PR libstdc++/7219 (continued)
487         * include/bits/ios_base.h (class ios_base): Expose Annex D.6
488         typedefs by default.
489         * testsuite/27_io/types/1.cc: Remove #if _GLIBCXX_DEPRECATED.
490         * testsuite/27_io/ios_base/cons/assign_neg.cc: Tweak dg-error
491         line number.
492         * testsuite/27_io/ios_base/cons/copy_neg.cc: Likewise.
493
494 2004-08-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
495
496         * cpu/hppa/atomicity.h (__exchange_and_add, __atomic_add): Add memory
497         barrier to locking asm.
498
499 2004-08-20  Paolo Carlini  <pcarlini@suse.de>
500
501         * include/c_std/cmath.tcc (__cmath_power): Revert previous commit:
502         actually the warning is a front-end bug (c++/17120).
503
504 2004-08-20  Matthias Klose  <doko@debian.org>
505
506         * config/abi/s390-linux-gnu/baseline_symbols.txt: New.
507
508 2004-08-20  Paolo Carlini  <pcarlini@suse.de>
509
510         * include/c_std/cmath.tcc (__cmath_power): Suppress assignment
511         used as truth value warning.
512
513 2004-08-20  Paolo Carlini  <pcarlini@suse.de>
514
515         * config/abi/x86_64-linux-gnu/32/baseline_symbols.txt: Add 32 bit
516         baseline.
517
518 2004-08-20  Paolo Carlini  <pcarlini@suse.de>
519
520         * config/abi/x86_64-linux-gnu/baseline_symbols.txt: Fix it.
521
522 2004-08-19  Benjamin Kosnik  <bkoz@redhat.com>
523
524         * testsuite/22_locale/time_put/put/char/3.cc (test03): Don't check
525         timezone.
526         * testsuite/22_locale/time_put/put/wchar_t/3.cc (test03): Same.
527
528 2004-08-19  Paolo Carlini  <pcarlini@suse.de>
529
530         * testsuite/performance/20_util/allocator/insert.cc: For std::map
531         instantiate the allocator for a correct pair type.
532         * testsuite/performance/20_util/allocator/insert_insert.cc: Likewise.
533         * testsuite/performance/20_util/allocator/map_thread.cc: Likewise.
534         * testsuite/performance/20_util/allocator/producer_consumer.cc:
535         Likewise.
536
537         * testsuite/performance/20_util/allocator/list_sort_search.cc: Very
538         minor formatting fixes.
539         * testsuite/performance/20_util/allocator/map_mt_find.cc: Likewise.
540
541 2004-08-19  Paolo Carlini  <pcarlini@suse.de>
542
543         * testsuite/22_locale/time_put/put/char/1.cc: Add VERIFY on the
544         results.
545         * testsuite/22_locale/time_put/put/char/2.cc: Likewise.
546         * testsuite/22_locale/time_put/put/char/3.cc: Likewise.
547         * testsuite/22_locale/time_put/put/char/4.cc: Likewise.
548         * testsuite/22_locale/time_put/put/wchar_t/1.cc: Likewise.
549         * testsuite/22_locale/time_put/put/wchar_t/2.cc: Likewise.
550         * testsuite/22_locale/time_put/put/wchar_t/3.cc: Likewise.
551         * testsuite/22_locale/time_put/put/wchar_t/4.cc: Likewise.
552
553 2004-08-19  Paolo Carlini  <pcarlini@suse.de>
554
555         * config/abi/x86_64-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
556
557 2004-08-18  Matthias Klose  <doko@debian.org>
558
559         * config/abi/hppa-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
560         * config/abi/i386-linux-gnu/baseline_symbols.txt: New.
561         * config/abi/powerpc-linux-gnu/baseline_symbols.txt: New.
562
563 2004-08-17  Paolo Carlini  <pcarlini@suse.de>
564
565         * config/abi/alpha-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
566
567 2004-08-17  Paolo Carlini  <pcarlini@suse.de>
568
569         * config/abi/ia64-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
570
571 2004-08-17  Benjamin Kosnik  <bkoz@redhat.com>
572
573         * config/abi/i486-linux-gnu/baseline_symbols.txt: Update to 3.4.0.
574
575 2004-08-16  Paolo Carlini  <pcarlini@suse.de>
576
577         * include/bits/indirect_array.h: Trivial formatting fixes.
578         * include/bits/valarray_after.h: Likewise.
579         * include/bits/valarray_array.h: Likewise.
580         * src/valarray-inst.cc: Likewise.
581
582 2004-08-15  Paolo Carlini  <pcarlini@suse.de>
583
584         * testsuite/27_io/basic_stringstream/rdbuf/char/2832.cc: Remove junk.
585         * testsuite/27_io/basic_stringstream/str/char/1.cc: Likewise.
586         * testsuite/27_io/basic_stringstream/str/char/3.cc: Likewise.
587
588         * testsuite/27_io/basic_stringstream/rdbuf/wchar_t/2832.cc: New.
589         * testsuite/27_io/basic_stringstream/str/wchar_t/1.cc: Likewise.
590         * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc: Likewise.
591         * testsuite/27_io/basic_stringstream/str/wchar_t/3.cc: Likewise.
592         * testsuite/27_io/basic_stringstream/str/wchar_t/4.cc: Likewise.
593
594 2004-08-15  Paolo Carlini  <pcarlini@suse.de>
595
596         * include/bits/deque.tcc: Trivial formatting fixes.
597
598 2004-08-15  Paolo Carlini  <pcarlini@suse.de>
599
600         * include/bits/deque.tcc: Trivial formatting fixes.
601
602         * include/bits/locale_facets.tcc (num_get<>::do_get(&bool)):
603         Remove unneded typedef.
604
605         * include/bits/locale_facets.tcc: Very minor tweaks.
606
607         * testsuite/22_locale/time_put/put/wchar_t/1.cc: Use proper
608         type for the fill argument.
609         * testsuite/22_locale/time_put/put/wchar_t/10.cc: Likewise.
610         * testsuite/22_locale/time_put/put/wchar_t/2.cc: Likewise.
611         * testsuite/22_locale/time_put/put/wchar_t/3.cc: Likewise.
612         * testsuite/22_locale/time_put/put/wchar_t/4.cc: Likewise.
613         * testsuite/22_locale/time_put/put/wchar_t/5.cc: Likewise.
614         * testsuite/22_locale/time_put/put/wchar_t/6.cc: Likewise.
615         * testsuite/22_locale/time_put/put/wchar_t/7.cc: Likewise.
616         * testsuite/22_locale/time_put/put/wchar_t/8.cc: Likewise.
617
618 2004-08-13  Paolo Carlini  <pcarlini@suse.de>
619
620         * src/debug.cc (_Error_formatter::_M_print_string): Fix thinko,
621         memmove is not needed, memcpy suffices.
622
623 2004-08-13  Paolo Carlini  <pcarlini@suse.de>
624
625         * include/std/std_fstream.h (class basic_ifstream,
626         class basic_ofstream, class basic_fstream): Add const overloads
627         of is_open, as per DR 365 [WP].
628         * docs/html/ext/howto.html: Add an entry for DR 365.
629
630 2004-08-12  Paolo Carlini  <pcarlini@suse.de>
631
632         * configure.ac: Specify version 1.8.5 in AM_INIT_AUTOMAKE.
633
634 2004-08-12  Paolo Carlini  <pcarlini@suse.de>
635
636         PR libstdc++/16956
637         * include/bits/sstream.tcc (basic_stringbuf<>::seekoff): Add __off
638         to the returned value, reorganize a bit.
639         * testsuite/27_io/basic_stringbuf/seekoff/char/16956.cc: New.
640         * testsuite/27_io/basic_stringbuf/seekoff/wchar_t/16956.cc: New.
641
642         * testsuite/27_io/basic_stringbuf/seekoff/char/1.cc: Remove junk.
643         * testsuite/27_io/basic_stringbuf/seekoff/wchar_t/1.cc: Likewise.
644         * testsuite/27_io/basic_stringbuf/seekpos/char/1.cc: Likewise.
645         * testsuite/27_io/basic_stringbuf/seekpos/wchar_t/1.cc: Likewise.
646
647 2004-08-12  Paul Brook  <paul@codesourcery.com>
648
649         * config/cpu/arm/cxxabi_tweaks.h: Define __cxa_vec_ctor_return and
650         _GLIBCXX_CXA_VEC_CTOR_RETURN.
651         * config/cpu/generic/cxxabi_tweaks.h: Ditto.
652         * libsupc++/cxxabi.h (__cxa_vec_ctor, __cxa_vec_cctor): Use
653         __cxa_vec_ctor_return.
654         * libsupc++/vec.cc (__cxa_vec_ctor, __cxa_vec_cctor): Ditto.
655         Use _GLIBCXX_CXA_VEC_CTOR_RETURN.
656
657 2004-08-12  Kelley Cook  <kcook@gcc.gnu.org>
658
659         * Makefile.in, aclocal.m4, configure, include/Makefile.in,
660         libmath/Makefile.in, libsupc++/Makefile.in, po/Makefile.in,
661         src/Makefile.in, testsuite/Makefile.in: Regenerate
662
663 2004-08-12  Jan Beulich  <jbeulich@novell.com>
664
665         * config/locale/generic/ctype_members.cc
666         (ctype<wchar_t>::_M_convert_to_wmask): Default case must not use 0 as
667         initializer for return value, as that is invalid for enumerated types.
668         * config/locale/gnu/ctype_members.cc
669         (ctype<wchar_t>::_M_convert_to_wmask): Likewise.
670
671 2004-08-11  Paolo Carlini  <pcarlini@suse.de>
672
673         * testsuite/27_io/basic_stringbuf/sbumpc/wchar_t/1.cc: Fix typo.
674
675 2004-08-11  Paolo Carlini  <pcarlini@suse.de>
676
677         * testsuite/27_io/basic_stringbuf/imbue/char/1.cc: Declare test
678         variable.
679         * testsuite/27_io/basic_stringbuf/imbue/wchar_t/1.cc: Ditto.
680         * testsuite/27_io/basic_stringbuf/in_avail/char/1.cc: Remove junk.
681         * testsuite/27_io/basic_stringbuf/in_avail/wchar_t/1.cc: Ditto.
682         * testsuite/27_io/basic_stringbuf/sbumpc/char/1.cc: Ditto.
683         * testsuite/27_io/basic_stringbuf/sbumpc/wchar_t/1.cc: Ditto.
684         * testsuite/27_io/basic_stringbuf/setbuf/char/1.cc: Ditto.
685         * testsuite/27_io/basic_stringbuf/setbuf/wchar_t/1.cc: Ditto.
686         * testsuite/27_io/basic_stringbuf/sgetc/char/1.cc: Ditto.
687         * testsuite/27_io/basic_stringbuf/sgetc/wchar_t/1.cc: Ditto.
688         * testsuite/27_io/basic_stringbuf/sgetn/char/1.cc: Ditto.
689         * testsuite/27_io/basic_stringbuf/sgetn/wchar_t/1.cc: Ditto.
690         * testsuite/27_io/basic_stringbuf/snextc/char/1.cc: Ditto.
691         * testsuite/27_io/basic_stringbuf/snextc/wchar_t/1.cc: Ditto.
692         * testsuite/27_io/basic_stringbuf/sputbackc/char/1.cc: Ditto.
693         * testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/1.cc: Ditto.
694         * testsuite/27_io/basic_stringbuf/sputc/char/1.cc: Ditto.
695         * testsuite/27_io/basic_stringbuf/sputc/wchar_t/1.cc: Ditto.
696         * testsuite/27_io/basic_stringbuf/sputn/char/1.cc: Ditto.
697         * testsuite/27_io/basic_stringbuf/sputn/wchar_t/1.cc: Ditto.
698         * testsuite/27_io/basic_stringbuf/sungetc/char/1.cc: Ditto.
699         * testsuite/27_io/basic_stringbuf/sungetc/wchar_t/1.cc: Ditto.
700
701 2004-08-11  Paolo Carlini  <pcarlini@suse.de>
702             Petur Runolfsson  <peturr02@ru.is>
703
704         PR libstdc++/16959
705         * src/ios_init.cc (ios_base::sync_with_stdio): Make sure the
706         standard streams are constructed.
707         * testsuite/27_io/ios_base/sync_with_stdio/16959.cc: New.
708
709 2004-08-09  Paolo Carlini  <pcarlini@suse.de>
710
711         * include/bits/stl_bvector.h: Trivial formatting fixes.
712
713 2004-08-09  Paolo Carlini  <pcarlini@suse.de>
714
715         * src/ios.cc (ios_base::_M_grow_words): Uglify the names.
716
717 2004-08-07  Jonathan Wakely  <redi@gcc.gnu.org>
718             Paolo Carlini  <pcarlini@suse.de>
719
720         * src/debug.cc (_Error_formatter::_M_print_string): In order
721         to print individual words from __string, _M_format_word can't
722         be called since may be just sprintf, thus ignoring completely
723         __n: instead, use memmove and append '\0' by hand.
724
725 2004-08-07  Paolo Carlini  <pcarlini@suse.de>
726
727         * config/locale/generic/c_locale.h (__convert_from_v): Don't
728         use a default for __prec, assume __prec >= 0 and simplify.
729         * config/locale/gnu/c_locale.h (__convert_from_v): Likewise.
730         * include/bits/locale_facets.tcc (money_put<>::do_put(long double)):
731         Pass format "%.*Lf" + precision == 0, equivalent to "%.0Lf".
732
733 2004-08-04  Phil Edwards  <phil@codesourcery.com>
734
735         * docs/html/configopts.html:  Emphasize that options change.
736         * docs/html/17_intro/configury.html:  Update links.
737
738 2004-08-03  Paolo Carlini  <pcarlini@suse.de>
739
740         * include/bits/list.tcc: Trivial formatting fixes.
741
742 2004-08-03  Mark Mitchell  <mark@codesourcery.com>
743
744         * libsupc++/new_op.cc: Update comments.
745         * libsupc++/del_op.cc: Likewise.
746
747 2004-08-02  Mark Mitchell  <mark@codesourcery.com>
748
749         * libsupc++/cxxabi.h: Make all declarations have default
750         visibility.
751         * libsupc++/exception: Likewise.
752         * libsupc++/new: Likewise.
753         * libsupc++/typeinfo: Likewise.
754         * libsupc++/unwind-cxx.h: Likewise.
755         * libsupc++/eh_alloc.cc (__cxa_allocate_exception): Put it into
756         the __cxxabiv1 namespace.
757         (__cxa_free_exception): Likewise.
758         * libsupc++/eh_aux_runtime.cc (__cxa_bad_cast): Likewise.
759         (__cxa_bad_typeid): Likewise.
760         * libsupc++/eh_catch.cc (__cxa_begin_catch): Likewise.
761         (__cxa_end_catch): Likewise.
762         * libsupc++/eh_globals.cc (__cxa_get_globals_fast): Likewise.
763         (__cxa_get_globals): Likewise.
764         * libsupc++/eh_throw.cc (__cxa_throw): Likewise.
765         (__cxa_rethrow): Likewise.
766         * libsupc++/pure.cc (__cxa_pure_virtual): Likewise.
767         * libsupc++/eh_type.cc: Include <cxxabi.h>.
768
769         * Makefile.am (hosted_source): Add libmath and testsuite.
770         (SUBDIRS): Remove them.
771         * acinclude.m4: (GLIBCXX_ENABLED_HOSTED): Default to freestanding
772         on arm*-*-symbianelf*.
773         * crossconfig.m4: Add arm*-*-symbianelf* support.
774         * include/c_std/std/std_cstdlib.h (stdlib.h): Do not include it
775         when freestanding.  Do not bring names into std:: namespace with
776         "using" when freestanding.  Declare required functions and macros
777         when freestanding.
778         * libsupc++/Makefile.am (c_sources): Do not include cp-demangle.c
779         when freestanding.
780         * libsupc++/del_op.cc: Declare "free" only when freestanding.
781         * libsupc++/eh_alloc.cc (cstring): Include it only when hosted.
782         (malloc): Declare when freestanding.
783         (free): Likewise.
784         (memset): Likewise.
785         (__cxa_allocate_exception): Call malloc, not std::malloc.  Likewise
786         for memset.
787         (__cxa_free_exception): Likewise for free.
788         * libsupc++/new_op.cc: Declare "malloc" when freestanding.
789         * libsupc++/pure.cc (writestr): Define to nothing when
790         freestanding.
791         * libsupc++/vterminate.cc: Do not define anything when
792         freestanding.
793         * Makefile.in: Regenerated.
794         * aclocal.m4: Likewise.
795         * configure: Likewise.
796         * include/Makefile.in: Likewise.
797         * libmath/Makefile.in: Likewise.
798         * libsupc++/Makefile.in: Likewise.
799         * po/Makefile.in: Likewise.
800         * src/Makefile.in: Likewise.
801         * testsuite/Makefile.in: Likewise.
802
803 2004-08-01  Matt Austern  <austern@apple.com>
804
805         PR libstdc++/16844
806         * include/bits/stl_list.h (_M_create_node): Remove unused
807         zero-argument version.
808         * include/ext/slist (_M_create_node): Pass two arguments to
809         allocator's construct() member function.
810         * testsuite/23_containers/deque/explicit_instantiation.cc: New.
811         * testsuite/23_containers/list/explicit_instantiation.cc: New.
812         * testsuite/23_containers/vector/explicit_instantiation.cc: New.
813         * testsuite/23_containers/map/explicit_instantiation.cc: New.
814         * testsuite/23_containers/set/explicit_instantiation.cc: New.
815         * testsuite/23_containers/multimap/explicit_instantiation.cc: New.
816         * testsuite/23_containers/multiset/explicit_instantiation.cc: New.
817         * testsuite/ext/hash_set_explicit_instantiation.cc: New.
818         * testsuite/ext/slist_explicit_instantiation.cc: New.
819
820 2004-07-30  Paolo Carlini  <pcarlini@suse.de>
821
822         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
823         num_get<>::_M_extract_int): In the main parsing loop delay the
824         life of __q to the actual use point.
825
826 2004-07-29  Paolo Carlini  <pcarlini@suse.de>
827
828         PR libstdc++/14220
829         * include/bits/locale_facets.tcc (num_put<>::_M_insert_float):
830         Don't clip the precision passed down to __convert_from_v:
831         22.2.2.2.2 nowhere says so.
832         * testsuite/22_locale/num_put/put/char/14220.cc: New.
833         * testsuite/22_locale/num_put/put/wchar_t/14220.c: Likewise.
834
835 2004-07-29  Paolo Carlini  <pcarlini@suse.de>
836
837         * docs/html/ext/lwg-active.html, lwg-defects.html: Import Revision 31.
838
839 2004-07-29  Paolo Carlini  <pcarlini@suse.de>
840             Petur Runolfsson  <peturr02@ru.is>
841
842         PR libstdc++/12658 (continued)
843         * src/locale_init.cc (locale::locale, locale::global): Use
844         a single locale_mutex instead of two separate mutexes.
845
846 2004-07-29  Paolo Carlini  <pcarlini@suse.de>
847
848         PR libstdc++/16813
849         * include/debug/map.h (insert(_InputIterator, _InputIterator)):
850         Fix typo.
851         * testsuite/23_containers/map/insert/16813.cc: New.
852
853 2004-07-29  Phil Edwards  <phil@codesourcery.com>
854
855         * docs/html/faq/index.html:  Update version references.  Make
856         clear that code from SGI has diverged greatly.  Remove references
857         to library snapshots and what's-new sections.
858         * docs/html/faq/index.txt:  Regenerate.
859
860 2004-07-28  Matt Austern  <austern@apple.com>
861
862         * include/bits/stl_construct.h (_Destroy): New three-argument
863         overload that takes an allocator argument.  Another inline
864         three-argument overload that takes std::allocator and dispatches
865         to the two-argument version.
866         * include/bits/stl_uninitialized.h (__uninitialized_fill_n_aux):
867         Change return type to void to match uninitialized_fill_n.
868         (__uninitialized_copy_a_): New function.  Like uninitialized_copy
869         except that it takes an allocator and uses it for construct and
870         destroy.  If the allocator is std::allocator, dispatches to
871         uninitialized_copy.
872         (__uninitialized_fill_a): Likewise.
873         (__uninitialized_fill_n_a): Likewise.
874         (__uninitialized_copy_copy): Give it an allocator argument.
875         (__uninitialized_fill_copy): Likewise.
876         (__uninitialized_copy_fill): Likewise.
877         * include/bits/deque.tcc: Use new forms defined in stl_construct.h
878         and stl_uninitialized.h.  Replace use of single-argument _Construct
879         and _Destroy with use of allocator's construct and destroy methods.
880         * include/bits/list.tcc: Likewise.
881         * include/bits/stl_deque.h: Likewise.
882         * include/bits/stl_list.h: Likewise.
883         * include/bits/stl_tree.h: Likewise.
884         * include/bits/stl_vector.h: Likewise.
885         * include/bits/vector.tcc: Likewise.
886         * include/ext/hashtable.h: Use rebind so that allocator_type
887         has correct type for a container's allocator.  Replace use of
888         single-argument _Construct and _Destroy with use of allocator's
889         construct and destroy methods.
890         * include/ext/memory (__uninitialized_copy_n_a): New function.
891         Like uninitialized_copy_n except that it takes an extra parameter,
892         an allocator, and uses it for construct and destroy operations.
893         * include/ext/rope: Use new forms defined in stl_construct.h,
894         stl_uninitialized.h, and ext/memory.  Replace use of single-argument
895         _Construct and _Destroy with allocator construct and destroy methods.
896         * include/ext/ropeimpl.h: Likewise.
897         * include/ext/slist.h: Likewise.
898         * testsuite/testsuite_allocator.h (check_construct_destroy): New.
899         * testsuite/testsuite_allocator.cc (check_construct_destroy): New.
900         * testsuite/23_containers/deque/check_construct_destroy.cc: New.
901         * testsuite/23_containers/list/check_construct_destroy.cc: New.
902         * testsuite/23_containers/set/check_construct_destroy.cc: New.
903         * testsuite/23_containers/vector/check_construct_destroy.cc: New.
904         * testsuite/ext/hash_check_construct_destroy.cc: New.
905         * testsuite/ext/slist_check_construct_destroy.cc: New.
906
907 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
908
909         2003-10-01  Eric Christopher  <echristo@redhat.com>
910         * config/cpu/sh/atomicity.h (__exchange_and_add): Remove 'm'
911         constraint.
912         2003-07-09  Alexandre Oliva  <aoliva@redhat.com>
913         * config/cpu/sh/atomicity.h: New.  Use movli and movco on SH4a.
914
915 2004-07-23  Benjamin Kosnik  <bkoz@redhat.com>
916
917         PR libstdc++/16678
918         * include/bits/locale_facets.tcc: Fix for -Werror.
919
920 2004-07-23  Jonathan Wakely  <redi@gcc.gnu.org>
921
922         * docs/html/debug.html: Say debug mode only available since 3.4.0.
923
924 2004-07-21  Benjamin Kosnik  <bkoz@redhat.com>
925
926         * docs/doxygen/mainpage.html: Clarify links.
927         * docs/doxygen/stdheader.cc: Add files.
928         * docs/doxygen/style.css: Remove bolds, add h2, h3 styles.
929         * docs/doxygen/user.cfg.in: New options, wrap.
930
931 2004-07-20  Danny Smith  <dannysmith@users.sourceforge.net>
932
933         * include/c_std/std_cwchar.h (wcsstr): Correct signature.
934
935 2004-07-19  Benjamin Kosnik  <bkoz@redhat.com>
936
937         PR libstdc++/15488
938         * testsuite/lib/libstdc++.exp (v3-copy-files): Revert.
939
940 2004-07-17  Richard Sandiford  <rsandifo@redhat.com>
941
942         PR bootstrap/16469
943         * scripts/create_testsuite_files: Pass -print to find.
944
945 2004-07-15  Paolo Carlini  <pcarlini@suse.de>
946
947         * docs/html/ext/lwg-active.html, lwg-defects.html: Import Revision 30.
948         * docs/html/ext/howto.html: Tweak entries for DRs 167/253/389/402.
949
950 2004-07-15  Jakub Jelinek  <jakub@redhat.com>
951
952         PR libstdc++/14697
953         * acinclude.m4 (glibcxx_shared_libgcc): Correct
954         glibcxx_shared_libgcc test for multilibs.
955         * configure: Rebuilt.
956
957 2004-07-14  Paolo Carlini  <pcarlini@suse.de>
958
959         PR libstdc++/16505
960         * include/bits/stl_uninitialized.h (uninitialized_fill_n): Fix
961         the signature to return void, as per 20.4.4.3.
962         * include/bits/stl_vector.h (vector::vector(size_type,
963         const value_type&, const allocator_type&), vector::vector(size_type),
964         vector::_M_initialize_dispatch): Adjust callers.
965         * include/bits/vector.tcc (vector<>::_M_fill_assign,
966         vector<>::_M_fill_insert): Likewise.
967         * testsuite/20_util/memory/16505.cc: New.
968
969 2004-07-14  Paolo Carlini  <pcarlini@suse.de>
970
971         * testsuite/22_locale/locale/cons/12658_thread-1.cc,
972         12658_thread-2.cc: Use __gnu_test::try_named_locale.
973
974 2004-07-13  Benjamin Kosnik  <bkoz@redhat.com>
975
976         * docs/html/ext/mt_allocator.html: Add docs for _Tune.
977         * include/ext/mt_allocator.h (__mt_alloc::_S_get_options): Make public.
978         (__mt_alloc::_S_set_options): Same.
979         Add to comments.
980
981 2004-07-13  Benjamin Kosnik  <bkoz@redhat.com>
982
983         * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Add allocator defaults
984         for linux.
985         * configure: Regenerated.
986
987 2004-07-13  Paolo Carlini  <pcarlini@suse.de>
988
989         * testsuite/22_locale/locale/cons/12658_thread.cc: Move/rename
990         to 12658_thread-1.cc and xfail.
991         * testsuite/22_locale/locale/cons/12658_thread-2.c: New, much
992         simpler version of 12658_thread-1.cc, still failing on 3_3 and
993         not failing on 3_4/mainline - both on single processor and
994         multiprocessor machines.
995
996 2004-07-12  Benjamin Kosnik  <bkoz@redhat.com>
997
998         * docs/html/abi.html: Remove non-public qualification.
999
1000         * include/bits/concurrence.h: Tweak comments.
1001
1002 2004-07-11  Paolo Carlini  <pcarlini@suse.de>
1003
1004         Add wchar_t counterparts of the basic_streambbuf<char> tests.
1005         * testsuite/27_io/basic_streambuf/cons/wchar_t/1.cc: New.
1006         * testsuite/27_io/basic_streambuf/imbue/wchar_t/1.cc, 9322.cc:
1007         Likewise.
1008         * testsuite/27_io/basic_streambuf/in_avail/wchar_t/9701-3.cc: Likewise.
1009         * testsuite/27_io/basic_streambuf/overflow/wchar_t/1.cc, 2.cc,
1010         3599.cc: Likewise.
1011         * testsuite/27_io/basic_streambuf/sgetc/wchar_t/1.cc: Likewise.
1012         * testsuite/27_io/basic_streambuf/sgetn/wchar_t/1.cc: Likewise.
1013         * testsuite/27_io/basic_streambuf/sputbackc/wchar_t/9538.cc: Likewise.
1014         * testsuite/27_io/basic_streambuf/sputc/wchar_t/1057.cc: Likewise.
1015         * testsuite/27_io/basic_streambuf/sputn/wchar_t/1.cc, 1057.cc:
1016         Likewise.
1017         * testsuite/27_io/basic_streambuf/sync/wchar_t/1057.cc: Likewise.
1018
1019         * testsuite/27_io/basic_streambuf/imbue/char/1.cc, 9322.cc: Minor
1020         tweaks.
1021         * testsuite/27_io/basic_streambuf/overflow/char/2.cc, 3599.cc:
1022         Likewise.
1023         * testsuite/27_io/basic_streambuf/sputn/char/1057.cc: Likewise.
1024         * testsuite/27_io/basic_streambuf/sync/char/1057.cc: Likewise.
1025
1026 2004-07-11  Phil Edwards  <phil@codesourcery.com>
1027
1028         * acinclude.m4:  Cosmetic shell syntax fixes.
1029         * configure.ac:  Bring comment inline with reality.
1030         * configure.host:  Both of the above.  Move 'arm' case to right
1031         place in host_cpu switch.
1032         * aclocal.m4, configure:  Regenerate.
1033
1034 2004-07-09  Paolo Carlini  <pcarlini@suse.de>
1035
1036         Add wchar_t counterparts of the basic_stringbuf<char> tests.
1037         * testsuite/27_io/basic_stringbuf/imbue/wchar_t/1.cc, 9322.cc: New.
1038         * testsuite/27_io/basic_stringbuf/in_avail/wchar_t/1.cc: Likewise.
1039         * testsuite/27_io/basic_stringbuf/overflow/wchar_t/1.cc, 2.cc,
1040         3599.cc, 9988.cc: Likewise.
1041         * testsuite/27_io/basic_stringbuf/sbumpc/wchar_t/1.cc, 9825.cc:
1042         Likewise.
1043         * testsuite/27_io/basic_stringbuf/seekoff/wchar_t/1.cc, 2.cc:
1044         Likewise.
1045         * testsuite/27_io/basic_stringbuf/seekoff/wchar_t/1.cc, 2.cc, 3.cc:
1046         Likewise.
1047         * testsuite/27_io/basic_stringbuf/setbuf/wchar_t/1.cc, 2.cc, 3.cc:
1048         Likewise.
1049         * testsuite/27_io/basic_stringbuf/sgetc/wchar_t/1.cc: Likewise.
1050         * testsuite/27_io/basic_stringbuf/sgetn/wchar_t/1.cc: Likewise.
1051         * testsuite/27_io/basic_stringbuf/snextc/wchar_t/1.cc: Likewise.
1052         * testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/1.cc, 9425.cc:
1053         Likewise.
1054         * testsuite/27_io/basic_stringbuf/sputc/wchar_t/1.cc, 1057.cc,
1055         9404-1.cc: Likewise.
1056         * testsuite/27_io/basic_stringbuf/sputn/wchar_t/1.cc, 1057.cc,
1057         9404-2.cc: Likewise.
1058         * testsuite/27_io/basic_stringbuf/str/wchar_t/1.cc, 2.cc, 3.cc,
1059         3955.cc: Likewise.
1060         * testsuite/27_io/basic_stringbuf/sungetc/wchar_t/1.cc: Likewise.
1061         * testsuite/27_io/basic_stringbuf/sync/wchar_t/1057.cc: Likewise.
1062
1063 2004-07-08  Paolo Carlini  <pcarlini@suse.de>
1064
1065         * include/bits/gslice.h: Trivial formatting fixes.
1066         * include/bits/gslice_array.h: Likewise.
1067         * include/bits/indirect_array.h: Likewise.
1068         * include/bits/mask_array.h: Likewise.
1069         * include/bits/slice_array.h: Likewise.
1070         * include/bits/valarray_after.h: Likewise.
1071         * include/bits/valarray_array.h: Likewise.
1072         * include/bits/valarray_before.h: Likewise.
1073         * include/std/std_valarray.h: Likewise.
1074
1075 2004-07-08  Benjamin Kosnik  <bkoz@redhat.com>
1076
1077         PR c++/16169
1078         * include/bits/basic_string.h (basic_string::operator=): Revert.
1079
1080 2004-07-07  Benjamin Kosnik  <bkoz@redhat.com>
1081
1082         * configure.ac (libtool_VERSION): To 6:2:0.
1083         * configure: Regenerated.
1084
1085         * testsuite/testsuite_abi.cc (check_version): Add 3.4.2.
1086
1087 2004-07-07  Aaron W. LaFramboise  <aaronraolete36@aaronwl.com>
1088
1089         PR libstdc++/16411
1090         * config/linker-map.gnu: Add stdio_sync_filebuf::file exports.
1091
1092 2004-07-07  Benjamin Kosnik  <bkoz@redhat.com>
1093
1094         * docs/html/abi.html: Updates for 3.4.1 release. Add summary of
1095         -Weffc++ issues.
1096
1097 2004-07-07  Paolo Carlini  <pcarlini@suse.de>
1098
1099         PR libstdc++/16401
1100         * include/bits/sstream.tcc (overflow): When reallocating _M_string
1101         use an exponential grow policy.
1102         * testsuite/27_io/basic_stringbuf/overflow/char/1.cc: New.
1103         * testsuite/performance/27_io/stringbuf_overflow.cc: New.
1104
1105 2004-07-06  Anssi Hannula  <anssi.hannula@mbnet.fi>
1106
1107         PR libstdc++/15928
1108         * crossconfig.m4: Add in bits for djgpp.
1109         * configure: Regenerate.
1110
1111 2004-07-05  Jonathan Wakely  <redi@gcc.gnu.org>
1112
1113         * testsuite/23_containers/{set,multiset}/14340.cc: Fix typos in
1114         instantiation of set and multiset (functor param given as int).
1115
1116 2004-07-04  Paolo Carlini  <pcarlini@suse.de>
1117
1118         * include/bits/basic_string.h: Trivial formatting fixes and/or
1119         const-ification of some variables.
1120         * include/bits/deque.tcc: Likewise.
1121         * include/bits/stl_algobase.h: Likewise.
1122         * include/bits/stl_bvector.h: Likewise.
1123         * include/bits/stl_construct.h: Likewise.
1124         * include/bits/stl_deque.h: Likewise.
1125         * include/bits/stl_pair.h: Likewise.
1126         * include/bits/stl_vector.h: Likewise.
1127         * include/bits/vector.tcc: Likewise.
1128
1129 2004-07-04  Paolo Carlini  <pcarlini@suse.de>
1130
1131         * testsuite/25_algorithms/copy/1.cc: Add instantiations for
1132         systems with no COMDAT or weak support.
1133         * testsuite/25_algorithms/copy/2.cc: Likewise.
1134         * testsuite/25_algorithms/copy/3.cc: Likewise.
1135         * testsuite/25_algorithms/copy/4.cc: Likewise.
1136
1137 2004-07-03  Paul Brook  <paul@codesourcery.com>
1138
1139         * configure.ac: Set ABI_TWEAKS_SRCDIR.
1140         * configure.host: Set abi_tweaks_dir.  Check for atomicity.h when
1141         setting atomicity_dir.  Override type_cpu for arm based targets.
1142         * include/Makefile.am (host_headers): Add cxxabi_tweaks.h.
1143         * libsupc++/cxxabi.h: Include bits/cxxabi.h. Don't declare __guard.
1144         * libsupc++/guard.cc: Use definitions from cxxabi_tweaks.h.
1145         * libsupc++/vec.cc: Ditto.
1146         * config/cpu/arm/cxxabi_tweaks.h: New file.
1147         * config/cpu/generic/cxxabi_tweaks.h: New file.
1148         * */Makefile.in: Regenerate.
1149         * configure: Regenerate.
1150
1151 2004-07-02  Paolo Carlini  <pcarlini@suse.de>
1152
1153         * include/bits/type_traits.h (_Is_normal_iterator): Move...
1154         * include/bits/cpp_type_traits.h: ... here, renamed to
1155         __is_normal_iterator and consistent with the other traits.
1156         * include/bits/stl_algobase.h (__copy_ni1, __copy_ni2): Convert
1157         to the struct __copy_normal and three specializations.
1158         (__copy_backward_output_normal_iterator,
1159         __copy_backward_input_normal_iterator): Likewise, convert to
1160         the struct __copy_backward_normal and three specializations.
1161         (copy, copy_backward): Use the latter.
1162         (__copy_aux, __copy_backward_aux): Very minor tweaks.
1163
1164 2004-07-01  Paolo Carlini  <pcarlini@suse.de>
1165
1166         * include/bits/stl_algobase.h (__copy_trivial): Remove.
1167         (__copy_aux2): Rewrite as __copy_aux to use __is_pointer,
1168         __is_trivially_copyable, __are_same and __copy::copy.
1169         (__copy): Rewrite as a class template and two specializations.
1170         (__copy_ni2): Simplify, just call __copy_aux.
1171
1172         * include/bits/stl_algobase.h (__copy_backward_aux): Add __are_same
1173         check.
1174         * testsuite/25_algorithms/copy/1.cc, 2.cc, 3.cc, 4.cc: Test also
1175         for destination value type != source value type.
1176
1177 2004-07-01  Benjamin Kosnik  <bkoz@redhat.com>
1178             Per Bothner  <per@bothner.com>
1179             Mohan Embar  <gnustuff@thisiscool.com>
1180
1181         PR libstdc++/16248
1182         * include/bits/concurrence.h (__glibcxx_mutex_type): New.
1183         (__glibcxx_mutex): Encapsulate mutex init function into type for
1184         threaded configurations without __GTHREAD_MUTEX_INIT.
1185         (lock::lock): Make device member a reference.
1186         (lock::~lock): Same.
1187         * include/ext/pool_allocator.h (__pool_base::_M_get_mutex): Change
1188         to mutex_type.
1189         * src/allocator.cc: Same.
1190
1191 2004-06-30  Brad Spencer  <spencer@infointeractive.com>
1192
1193         * include/ext/mt_allocator.h: Handle allocations at static
1194         initialization that happen before _S_options is (automatically)
1195         constructed; set _S_init even if _M_force_new is true.
1196
1197 2004-06-30  Benjamin Kosnik  <bkoz@redhat.com>
1198
1199         * config/linker-map.gnu: Revert new exports.
1200
1201 2004-06-30  Benjamin Kosnik  <bkoz@redhat.com>
1202             Stuart Anderson  <anderson@netsweng.com>
1203
1204         * config/linker-map.gnu: Add destructor exports for abstract base
1205         classes to conform to LSB.
1206
1207 2004-06-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1208             Paolo Carlini  <pcarlini@suse.de>
1209
1210         * include/bits/cpp_type_traits.h: Add __is_pointer and
1211         __is_trivially_copyable.
1212         * include/bits/stl_algobase.h (fill, fill_n): Slightly
1213         tweak to use the latter.
1214         (__copy_backward_dispatch): Remove.
1215         (__copy_backward_aux): Rewrite to use __is_pointer and
1216         __is_trivially_copyable and __copy_backward::copy_b.
1217         (__copy_backward): Rewrite as a class template and two
1218         specializations.
1219
1220 2004-06-30  Paolo Carlini  <pcarlini@suse.de>
1221
1222         * testsuite/25_algorithms/copy.cc: Move to...
1223         * testsuite/25_algorithms/copy/1.cc: ... here, extend.
1224         * testsuite/25_algorithms/copy/2.cc: New.
1225         * testsuite/25_algorithms/copy/3.cc: New.
1226         * testsuite/25_algorithms/copy/4.cc: New.
1227
1228 2004-06-29  Paul Brook  <paul@codesourcery.com>
1229
1230         * libsupc++/vec.cc (__cxa_vec_new2, __cxa_vec_new3): Store the
1231         element size in the cookie.
1232
1233 2004-06-28  Paolo Carlini  <pcarlini@suse.de>
1234
1235         * include/bits/cpp_type_traits.h: Move the additions to
1236         namespace __gnu_internal outside of namespace std; trivial
1237         formatting fixes.
1238
1239 2004-06-28  Benjamin Kosnik  <bkoz@redhat.com>
1240
1241         * include/debug/safe_base.h (__gnu_debug::_Safe_sequence_base):
1242         Revert -Weffc++ changes that defined copy ctory and or assignment
1243         operator.
1244         * libsupc++/tinfo.cc (__upcast_result): Same.
1245
1246 2004-06-28  Paolo Carlini  <pcarlini@suse.de>
1247
1248         * src/localename.cc (locale::_Impl::_Impl): Slightly improve
1249         the algorithm used to name the categories.
1250
1251 2004-06-28  Paolo Bonzini  <bonzini@gnu.org>
1252
1253         * include/Makefile.am: Give a .gch extension to
1254         the PCH files, not only to the directory.
1255         * include/Makefile.in: Regenerate.
1256
1257 2004-06-28  Paolo Carlini  <pcarlini@suse.de>
1258
1259         * config/locale/gnu/monetary_members.cc
1260         (moneypunct<wchar_t>::_M_initialize_moneypunct): Clean up
1261         assignments of _M_decimal_point and _M_thousands_sep.
1262
1263 2004-06-27  Paolo Carlini  <pcarlini@suse.de>
1264
1265         * docs/html/17_intro/contribute.html: Update some links.
1266         * docs/html/17_intro/porting-howto.html: Likewise.
1267         * docs/html/17_intro/porting-howto.xml: Likewise.
1268         * docs/html/18_support/howto.html: Likewise.
1269         * docs/html/21_strings/howto.html: Likewise.
1270         * docs/html/27_io/howto.html: Likewise.
1271         * docs/html/configopts.html: Likewise.
1272         * docs/html/ext/howto.html: Likewise.
1273         * docs/html/faq/index.html: Likewise.
1274         * docs/html/install.html: Don't mention 2.x compilers.
1275
1276 2004-06-27  Paolo Carlini  <pcarlini@suse.de>
1277
1278         * include/ext/rope: Trivial formatting fixes.
1279         * include/ext/ropeimpl.h: Likewise.
1280
1281 2004-06-26  Paolo Carlini  <pcarlini@suse.de>
1282
1283         PR libstdc++/16210
1284         * acinclude.m4 (GLIBCXX_ENABLE_LONG_LONG): Do not check for the
1285         availability of strto(u)ll, not used anymore in the iostreams.
1286         * configure: Regenerate.
1287
1288 2004-06-25  Benjamin Kosnik  <bkoz@redhat.com>
1289
1290         PR libstdc++/16182
1291         * linkage.m4 (GLIBCXX_CHECK_BUILTIN_MATH_DEC): Revert to
1292         AC_DEFINE_UNQUOTED.
1293         * configure: Regenerate.
1294
1295 2004-06-25  Paul Brook  <paul@codesourcery.com>
1296
1297         * libsupc++/cxxabi.h: Define __ARM_EABI__
1298         (__guard): Use it.
1299         * libsupc++/guard.h (__cxa_guard_acquire, __cxa_guard_release): Ditto.
1300
1301 2004-06-25  Paul Brook  <paul@codesourcery.com>
1302
1303         * include/bits/concurrence.h: Still create mutex object when
1304         single-threaded.
1305
1306 2004-06-25  Paolo Carlini  <pcarlini@suse.de>
1307
1308         * include/bits/stl_algobase.h (fill, fill_n): Revert last
1309         change: actually we need to copy construct an object of type
1310         _Tp, not of type iterator_traits<>::value_type, therefore the
1311         code is ok.
1312
1313 2004-06-25  Paolo Carlini  <pcarlini@suse.de>
1314
1315         * include/bits/stl_algobase.h (fill, fill_n): Tighten the
1316         dispatch: use iterator_traits<>::value_type, not _Tp.
1317
1318 2004-06-25  Paolo Carlini  <pcarlini@suse.de>
1319
1320         * testsuite/25_algorithms/fill/1.cc: Tweak instantiations.
1321         * testsuite/25_algorithms/fill/2.cc: Likewise.
1322
1323 2004-06-25  Dan Nicolaescu  <dann@ics.uci.edu>
1324             Paolo Carlini  <pcarlini@suse.de>
1325
1326         * include/bits/stl_algobase.h (__fill, __fill_n): New helpers
1327         for fill and fill_n, respectively: when copying is cheap, use a
1328         temporary to avoid a memory read in each iteration.
1329
1330 2004-06-25  Paolo Carlini  <pcarlini@suse.de>
1331
1332         * testsuite/25_algorithms/fill/1.cc: New.
1333         * testsuite/25_algorithms/fill/2.cc: Likewise.
1334
1335 2004-06-25  Benjamin Kosnik  <bkoz@redhat.com>
1336
1337         * include/debug/formatter.h (__gnu_debug::_Error_formatter):
1338         Remove copy constructor and assignment operator.
1339
1340 2004-06-24  Benjamin Kosnik  <bkoz@redhat.com>
1341
1342         * include/bits/concurrence.h (__gnu_cxx::lock): New.
1343         * include/ext/pool_allocator.h (__pool_base::_Lock::_S_lock): Remove.
1344         (__pool_base::_M_get_mutex): New.
1345         * include/bits/allocator.h: Tweak.
1346         * src/allocator.cc (__pool_base::_M_get_free_list): Correct offset.
1347         * config/linker-map.gnu: Remove __pool_base::_Lock::_S_lock.
1348         * include/bits/stl_threads.h: Remove.
1349         * include/Makefile.am: Also here.
1350         * include/Makefile.in: Regenerate.
1351
1352         * src/locale_init.cc: Use __gnu_cxx::lock.
1353
1354         * src/allocator.cc: Move all instantiations...
1355         * src/allocator-inst.cc: ...here.
1356
1357 2004-06-23  Andrew Pinski  <apinski@apple.com>
1358
1359         * linkage.m4: Remove check for libmx.
1360         * configure: Regenerate.
1361
1362 2004-06-23  Paolo Carlini  <pcarlini@suse.de>
1363
1364         PR libstdc++/16154
1365         * include/bits/boost_concept_check.h (struct _TrivialIteratorConcept):
1366         Don't require the _DefaultConstructibleConcept.
1367         (struct _ForwardIteratorConcept): Require it here.
1368
1369 2004-06-22  Alexandre Oliva  <aoliva@redhat.com>
1370
1371         * include/bits/istream.tcc (getline): Make sure arguments passed
1372         to min/max have the same type.
1373         * include/bits/locale_facets.tcc (__verify_grouping): Likewise.
1374         * include/bits/stl_deque.h (_Deque_base::_Deque_base): Likewise.
1375
1376 2004-06-22  Benjamin Kosnik  <bkoz@redhat.com>
1377
1378         * docs/html/abi.html: Update links.
1379
1380 2004-06-22  Paolo Carlini  <pcarlini@suse.de>
1381
1382         * testsuite/26_numerics/complex_inserters_extractors.cc,
1383         complex_value.cc, buggy_complex.cc: Move to...
1384         * testsuite/26_numerics/complex/: ... here.
1385         * testsuite/26_numerics/c99_classification_macros_c++.cc,
1386         c99_classification_macros_c.cc, c_math.cc, c_math_dynamic.cc,
1387         fabs_inline.cc: Move to...
1388         * testsuite/26_numerics/cmath/: ... here.
1389         * testsuite/26_numerics/binary_closure.cc, slice.cc,
1390         slice_array_assignment.cc, valarray.cc, valarray_const_bracket.cc,
1391         valarray_name_lookup.cc, valarray_operators.cc,
1392         valarray_subset_assignment.cc: Move to...
1393         * testsuite/26_numerics/valarray/: ... here (new dir).
1394         * testsuite/26_numerics/sum_diff.cc: Move to...
1395         * testsuite/26_numerics/numeric/: ... here (new dir).
1396
1397 2004-06-22  Paolo Carlini  <pcarlini@suse.de>
1398
1399         * include/std/std_istream.h (ignore(streamsize __n = 1,
1400         int_type __delim = traits_type::eof())): Split into...
1401         (ignore(), ignore(streamsize __n), ignore(streamsize __n,
1402         int_type __delim)): The first two can be much more simpler
1403         and efficient than the fully general case; also, the last
1404         two can take advantage of the same mechanism already used
1405         for getline.
1406         * include/bits/istream.tcc (ignore(streamsize __n = 1,
1407         int_type __delim = traits_type::eof()): Remove.
1408         (ignore(), ignore(streamsize __n), ignore(streamsize __n,
1409         int_type __delim)): New.
1410
1411 2004-06-21  Loren J. Rittle  <ljrittle@acm.org>
1412
1413         * config/linker-map.gnu: Use wildcards for
1414         __basic_file::sys_open(FILE*, _Ios_Openmode).
1415
1416 2004-06-20  Paolo Carlini  <pcarlini@suse.de>
1417
1418         * testsuite/27_io/basic_istream/ignore/char/3.cc: New.
1419
1420 2004-06-18  Paolo Carlini  <pcarlini@suse.de>
1421
1422         * include/ext/mt_allocator (__mt_alloc<>::_Tune): Add _M_align,
1423         the alignment requested.
1424         (__mt_alloc<>::_Tune::_Tune): Tweak consistently.
1425         (__mt_alloc<>::allocate): Use it instead of sizeof(_Block_record).
1426         (__mt_alloc<>::deallocate): Likewise.
1427
1428 2004-06-18  Paolo Carlini  <pcarlini@suse.de>
1429
1430         PR libstdc++/16020
1431         * include/debug/safe_base.h
1432         (_Safe_sequence_base::_Safe_sequence_base(const _Safe_sequence_base&),
1433         _Safe_sequence_base::operator=): Provide definitions.
1434         * testsuite/23_containers/bitset/cons/16020.cc: New.
1435
1436 2004-06-18  Benjamin Kosnik  <bkoz@redhat.com>
1437
1438         * include/ext/pool_allocator.h: Qualify __throw_bad_alloc.
1439         (__pool_base): Remove unused template parameter.  Add
1440         protected. Move lock data into __pool_base::_Lock. Remove static
1441         on member functions.
1442         (__pool_base::_M_get_free_list): New.
1443         (__pool_alloc): Move _S_force new here.
1444         * src/allocator.cc: Move out of line __pool_base definitions here.
1445         * config/linker-map.gnu: Export bits from __pool_base.
1446
1447 2004-06-18  Paolo Carlini  <pcarlini@suse.de>
1448
1449         * config/locale/gnu/numeric_members.cc
1450         (numpunct<wchar_t>::_M_initialize_numpunct): Clean up
1451         assignments of _M_decimal_point and _M_thousands_sep.
1452         * config/locale/gnu/time_members.cc
1453         (__timepunct<wchar_t>::_M_initialize_timepunct): Clean up
1454         and reformat assignments of date and time fields.
1455
1456 2004-06-16  Paolo Carlini  <pcarlini@suse.de>
1457
1458         * include/ext/rope (rope(_CharT, const allocator_type&)): Fix
1459         to use _Data_allocate.
1460         * include/ext/ropeimpl.h (rope<>::_S_leaf_concat_char_iter): Likewise.
1461         (rope<>::_S_substring): Likewise.
1462         (rope<>::rope(size_t, _CharT, const allocator_type&)): Likewise.
1463         (rope<>::c_str()): Likewise.
1464         (rope<>::replace_with_c_str()): Likewise.
1465
1466         * include/ext/ropeimpl.h (_Rope_iterator_base<>::_S_setbuf):
1467         Correctly qualify _S_leaf, _S_function, etc., with _Rope_constants::,
1468         not _RopeRep.
1469         (_Rope_iterator_base<>::_S_setcache): Likewise.
1470         (_Rope_iterator_base<>::_S_setcache_for_incr): Likewise.
1471         (rope<>::_S_substring): Likewise.
1472         (rope<>::_S_dump): Likewise.
1473         (rope<>::_S_fetch_ptr): Likewise.
1474         (rope<>::_S_compare): Likewise.
1475         (rope<>::replace_with_c_str()): Likewise.
1476
1477         * testsuite/ext/rope.cc: Rename to testsuite/ext/rope/1.cc.
1478         * testsuite/ext/rope/2.cc: New.
1479
1480 2004-06-16  Paolo Carlini  <pcarlini@suse.de>
1481             Matt Austern  <austern@apple.com>
1482
1483         * testsuite/ext/rope/3.cc: New.
1484
1485 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1486
1487         * acinclude.m4: Remove useless multilib configury.
1488         * Makefile.am: Remove useless multilib rules.
1489         * aclocal.m4: Regenerate.
1490         * Makefile.in: Regenerate.
1491         * configure: Regenerate.
1492
1493 2004-06-15  Paolo Carlini  <pcarlini@suse.de>
1494
1495         * include/ext/hashtable.h: Trivial formatting fixes.
1496         * include/ext/rb_tree: Likewise.
1497
1498 2004-06-14  Paolo Carlini  <pcarlini@suse.de>
1499
1500         * include/ext/hash_map: Trivial formatting fixes.
1501         * include/ext/hash_set: Likewise.
1502         * include/ext/memory: Likewise.
1503         * include/ext/numeric: Likewise.
1504
1505 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
1506
1507         * Makefile.in: Regenerate with automake 1.8.5.
1508         * aclocal.m4: Same.
1509         * include/Makefile.in: Same.
1510         * libmath/Makefile.in: Same.
1511         * libsupc++/Makefile.in: Same.
1512         * po/Makefile.in: Same.
1513         * src/Makefile.in: Same.
1514         * testsuite/Makefile.in: Same.
1515
1516 2004-06-14  Paolo Carlini  <pcarlini@suse.de>
1517
1518         * include/ext/slist: Trivial formatting fixes.
1519
1520 2004-06-14  Paolo Carlini  <pcarlini@suse.de>
1521
1522         * include/bits/locale_facets.tcc (time_get<>::_M_extract_name):
1523         Don't use the 'magic number' 10 in the computation of __minlen;
1524         never access __name past __minlen; in the loop over __i3, don't
1525         decrease __nmatches and increase __i3 at once, only either of
1526         the two; tidy.
1527
1528 2004-06-13  Paolo Carlini  <pcarlini@suse.de>
1529
1530         * include/bits/locale_facets.tcc (time_get<>::do_get_time,
1531         time_get<>::do_get_date): Use only once _M_extract_via_format,
1532         instead of going through "%X"/"%x" and calling it two times
1533         (+ using widen).
1534
1535 2004-06-12  Paolo Carlini  <pcarlini@suse.de>
1536
1537         * include/ext/algorithm: Trivial formatting fixes.
1538         * include/ext/functional: Likewise.
1539         * include/ext/hash_fun.h: Likewise.
1540         * include/ext/iterator: Likewise.
1541
1542 2004-06-12  Paolo Carlini  <pcarlini@suse.de>
1543
1544         * include/bits/basic_string.tcc (find(const _CharT*, size_type,
1545         size_type)): Reimplement using std::search.
1546         * src/string-inst.cc: Instantiate std::search for char/wchar_t.
1547
1548 2004-06-12  Dhruv Matani  <dhruvbird@gmx.net>
1549
1550         * testsuite/performance/21_strings/string_find.cc: New.
1551
1552 2004-06-10  Aaron W. LaFramboise  <aaronraolete36@aaronwl.com>
1553
1554         * include/bits/istream.tcc (istream::ignore): Fix for -Wuninitialized.
1555
1556 2004-06-10  Jan van Dijk  <jan@etpmod.phys.tue.nl>
1557
1558         * include/std/std_complex.h (sin(const complex<_Tp>& __z)): Make
1559         this function return a value.
1560
1561 2004-06-09  Paolo Carlini  <pcarlini@suse.de>
1562
1563         PR libstdc++/15775
1564         * include/bits/stl_deque.h: Consistently with stl_set.h, define
1565         pointer as allocator's pointer, likewise for reference,
1566         const_pointer, and const_reference.
1567         * include/bits/stl_list.h: Likewise.
1568         * include/bits/stl_map.h: Likewise.
1569         * include/bits/stl_multimap.h: Likewise.
1570         * include/bits/stl_vector.h: Likewise.
1571
1572 2004-06-09  Benjamin Kosnik  <bkoz@redhat.com>
1573
1574         * crossconfig.m4: Remove signbit, signbitf, signbitl.
1575         * linkage.m4: Comment LIBMATHOBJS, tweak others.  AC_DEFINES for
1576         builtin math functions instead of AC_DEFINE_UNQUOTED.
1577         * configure: Regenerate.
1578
1579 2004-06-08  Benjamin Kosnik  <bkoz@redhat.com>
1580
1581         * docs/doxygen/filter.sed: Rename _GLIBCXX_STD to std.
1582         * docs/doxygen/mainpage.html: Remove links.
1583
1584 2004-06-08  Jason Merrill  <jason@redhat.com>
1585
1586         * config/linker-map.gnu: Use wildcards for
1587         __basic_file::{xsgetn,xsputn,seekoff,xsputn_2}.
1588
1589 2004-06-08  Paolo Carlini  <pcarlini@suse.de>
1590
1591         * include/ext/pool_allocator.h: Convert to a global free-list,
1592         as per the original SGI/HP design: move the implementation
1593         details to struct __pool_base, from which __pool_alloc derives.
1594         * src/allocator.cc: Instantiate __pool_base.
1595
1596 2004-06-07  Dhruv Matani  <dhruvbird@gmx.net>
1597             Paolo Carlini  <pcarlini@suse.de>
1598
1599         * testsuite/testsuite_performance.h
1600         (resource_counter::allocated_memory): Make it return the right
1601         number of bytes requested by the allocators/application. This is
1602         the sbrk+mmaped memory.
1603
1604 2004-06-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1605
1606         * include/std/std_complex.h (log): Tidy.
1607
1608 2004-05-31  Benjamin Kosnik  <bkoz@redhat.com>
1609
1610         * config/linker-map.gnu (GLIBCXX_3.4.1): Add.
1611         * testsuite/testsuite_abi.cc: Same.
1612         * configure.ac (libtool_VERSION): Bump to 6:1:0.
1613         * configure: Regenerate.
1614         * aclocal.m4: Regenerate.
1615
1616 2004-05-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1617
1618         * include/std/std_complex.h (complex<_Tp>): Properly indent
1619         to follow C++STYLE.
1620         (complex<>::__rep): New.
1621         (__complex_abs): New.  Dispatch to built-ins.
1622         (abs): Use them.
1623         (__complex_arg): New. Dispatch to built-ins.
1624         (arg): Use it.
1625         (__complex_cos): New. Dispatch to built-ins.
1626         (cos): Use it.
1627         (__complex_cosh): New. Dispatch to built-ins.
1628         (cosh): Use it.
1629         (__complex_exp): New. Dispatch to built-ins.
1630         (exp): Use it.
1631         (__complex_log): New. Dispatch to built-ins.
1632         (log): Use it.
1633         (__complex_sin): New. Dispatch to built-ins.
1634         (sin): Use it.
1635         (__complex_sinh): New. Dispatch to built-ins.
1636         (sinh): Use it.
1637         (__complex_sqrt): New. Dispatch to built-ins.
1638         (sqrt): Use it.
1639         (__complex_tan): New. Dispatch to built-ins.
1640         (tan): Use it.
1641         (__complex_tanh): New. Dispatch to built-ins.
1642         (tanh): Use it.
1643         (__complex_pow): New. Dispatch to built-ins.
1644         (pow): Use it.
1645
1646 2004-05-29  Richard B. Kreckel  <Richard.Kreckel@Framatome-ANP.com>
1647             Benjamin Kosnik  <bkoz@redhat.com>
1648
1649         PR libstdc++/14600
1650         * include/ext/stdio_sync_filebuf.h (stdio_sync_filebuf::file): New.
1651         * include/ext/stdio_filebuf.h (stdio_filebuf::file): New.
1652         * config/io/basic_file_stdio.cc (__basic_file::file): New.
1653         * config/io/basic_file_stdio.h: Define.
1654
1655 2004-05-27  Benjamin Kosnik  <bkoz@redhat.com>
1656
1657         PR libstdc++/15675
1658         * docs/html/documentation.html: Update doxygen links for 3.4.0.
1659
1660 2004-05-27  Jan Beulich  <jbeulich@novell.com>
1661
1662         * scripts/create_testsuite_files: Tweak.
1663
1664 2004-05-25  Benjamin Kosnik  <bkoz@redhat.com>
1665
1666         PR libstdc++/15489
1667         * scripts/create_testsuite_files: Revert xtype change, add non-GNU
1668         bits to do the same thing.
1669
1670 2004-05-24  Paolo Carlini  <pcarlini@suse.de>
1671
1672         * include/bits/istream.tcc (ignore): Correctly deal with
1673         n == numeric_limits<streamsize>::max().
1674         * testsuite/27_io/basic_istream/ignore/char/2.cc: New.
1675
1676         * include/bits/istream.tcc (basic_istream<>::getline): Prefer
1677         '_M_gcount + 1 < __n' to '--__n; _M_gcount < __n', just in case
1678         __n == numeric_limits<>::min().
1679
1680         * include/bits/istream.tcc: Minor tweaks.
1681
1682         * testsuite/21_strings/basic_string/inserters_extractors/char/10.cc:
1683         Tighten.
1684         * testsuite/21_strings/basic_string/inserters_extractors/char/11.cc:
1685         Likewise.
1686         * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/10.cc:
1687         Likewise.
1688         * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/11.cc:
1689         Likewise.
1690         * testsuite/27_io/basic_istream/getline/char/5.cc: Likewise.
1691
1692 2004-05-22  Benjamin Kosnik  <bkoz@redhat.com>
1693
1694         PR libstdc++/12854
1695         Fixups for -Weffc++.
1696         * include/bits/basic_string.h (basic_string::operator=): Return
1697         pointer to this instead of result of assign. Although redundant,
1698         this doesn't impact resultant codegen.
1699
1700         * include/bits/locale_facets.h (__numpunct_cache): Declare
1701         assignment opxserator and copy constructor private.
1702         (__timepunct_cache): Same.
1703         (__moneypunct_cache): Same.
1704         (collate): Use member initialization list for _M_c_locale_collate.
1705         * config/locale/gnu/messages_members.h: Same.
1706         * config/locale/gnu/time_members.h (__timepunct): Same.
1707         * src/codecvt.cc: Use member initialization list to initialize
1708         _M_c_locale_codecvt.
1709         * src/ctype.cc: Same, with _M_c_locale_ctype and _M_narrow_ok.
1710         * config/os/gnu-linux/ctype_noninline.h: Same.
1711         * src/locale.cc (_Impl): Same.
1712         * src/locale_init.cc: Same.
1713         * src/localename.cc: Same.
1714
1715         * include/bits/basic_ios.h (basic_ios): Complete member
1716         initialization list.
1717         * include/bits/istream.tcc (basic_istream::sentry): Same.
1718         * include/bits/ostream.tcc (basic_ostream::sentry): Same.
1719         * include/bits/fstream.tcc (basic_filebuf): Add _M_lock and
1720         _M_pback to member initialization list.
1721         * include/std/std_streambuf.h: Same.
1722         * include/std/std_sstream.h: Same, for _M_mode.
1723         * src/ios.cc (ios_base): Same.
1724
1725         * include/ext/rope: Make derived classes match exception
1726
1727          specifications. Add copy constructors and assignment operators.
1728
1729         * include/debug/safe_base.h (_Safe_sequence_base): Declare copy
1730         constructor and assignment operator protected.
1731         (_Safe_iterator_base): Same.
1732         * include/debug/formatter.h (_Error_formatter): Define copy
1733         constructor and assignment operator.
1734
1735         * include/backward/strstream: Declare assignment operator and copy
1736         constructor private.
1737
1738 2004-05-22  Benjamin Kosnik  <bkoz@redhat.com>
1739
1740         * testsuite/testsuite_hooks.h (func_callback): Declare copy
1741         constructor and assignment operator private.
1742         * testsuite/23_containers/deque/cons/clear_allocator.cc: Match
1743         exception specifications of base class.
1744         * testsuite/23_containers/list/cons/clear_allocator.cc: Same.
1745         * testsuite/23_containers/vector/cons/clear_allocator.cc: Same.
1746         * testsuite/23_containers/vector/bool/clear_allocator.cc: New.
1747
1748 2004-05-22  Benjamin Kosnik  <bkoz@redhat.com>
1749
1750         * libsupc++/cxxabi.h: Remove duplicated and useless public and
1751         private keywords in class declarations. Format. Use
1752         stddef.h. Expose declarations to "C" compilation.
1753         * libsupc++/tinfo.cc (__upcast_result): Add copy constructor and
1754         assignment operator.
1755         (__dyncast_result): Same.
1756         * libsupc++/vec.cc (uncatch_exception): Same, use member
1757         initialization list.
1758
1759 2004-05-22  Benjamin Kosnik  <bkoz@redhat.com>
1760
1761         * testsuite/abi_check.cc: Add unistd.h.
1762
1763 2004-05-22  Paolo Carlini  <pcarlini@suse.de>
1764
1765         PR libstdc++/15565
1766         * include/bits/locale_facets.tcc (__int_to_char(unsigned long),
1767         __int_to_char(unsigned long long)): Showpos is not relevant
1768         for unsigned types.
1769         * testsuite/22_locale/num_put/put/char/15565.cc: New.
1770         * testsuite/22_locale/num_put/put/wchar_t/15565.cc: New.
1771
1772         * testsuite/22_locale/num_put/put/wchar_t/1.cc: Use L for the fill
1773         char.
1774         * testsuite/22_locale/num_put/put/wchar_t/2.cc: Likewise.
1775         * testsuite/22_locale/num_put/put/wchar_t/3.cc: Likewise.
1776         * testsuite/22_locale/num_put/put/wchar_t/4.cc: Likewise.
1777         * testsuite/22_locale/num_put/put/wchar_t/5.cc: Likewise.
1778         * testsuite/22_locale/num_put/put/wchar_t/6.cc: Likewise.
1779         * testsuite/22_locale/num_put/put/wchar_t/8.cc: Likewise.
1780
1781 2004-05-21  Matthias Klose  <doko@debian.org>
1782
1783         * docs/doxygen/run_doxygen:  Bump required version.
1784
1785 2004-05-21  Benjamin Kosnik  <bkoz@redhat.com>
1786
1787         * docs/html/abi.html (libgcc_s): Additions suggested by Matthias Klose.
1788         * docs/doxygen/Intro.3: Subtractions suggested by Phil Edwards.
1789
1790 2004-05-21  Paolo Carlini  <pcarlini@suse.de>
1791
1792         * include/bits/istream.tcc (ignore): Remove redundant line.
1793         (readsome): Tidy, closely following 27.6.1.3, p30.
1794
1795 2004-05-20  Paolo Carlini  <pcarlini@suse.de>
1796
1797         * include/bits/istream.tcc (operator>>(basic_istream<>&,
1798         basic_string<>&)): Use a temporary buffer, thus avoiding
1799         reallocation for common case.
1800         * testsuite/21_strings/basic_string/inserters_extractors/char/11.cc:
1801         New.
1802         * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/11.cc:
1803         Likewise.
1804
1805         * include/bits/istream.tcc: Const-ification of a few variables.
1806
1807         * include/bits/ostream.tcc: Trivial formatting fixes and
1808         const-ification of some variables.
1809
1810 2004-05-20  Benjamin Kosnik  <bkoz@redhat.com>
1811
1812         PR libstdc++/15123
1813         PR libstdc++/13928
1814         * docs/doxygen/Intro.3: Remove Allocators.3.
1815         Add new extension headers, extension namespace list.
1816         * docs/doxygen/run_doxygen (problematic): Remove Allocators.3
1817         Rename GLIBCXXSTD names to std::. Rename __gnu_debug to
1818         __gnu_debug::. Remove __policy_ renames.
1819         * docs/doxygen/guide.html: Add dot note.
1820         * docs/doxygen/stdheader.cc: Edit, add files.
1821         * docs/doxygen/user.cfg.in: Regenerate with Doxygen 1.3.7.
1822
1823 2004-05-18  Jonathan Wakely  <redi@gcc.gnu.org>
1824
1825         * include/ext/stdio_filebuf.h: Update comments to reflect PR 11691.
1826
1827 2004-05-18  Jan Beulich  <jbeulich@novell.com>
1828
1829         PR libstdc++/15489
1830         * scripts/create_testsuite_files: Also find source files through
1831         symbolic links.
1832
1833 2004-05-18  Jan Beulich  <jbeulich@novell.com>
1834
1835         PR libstdc++/15488
1836         * testsuite/lib/libstdc++.exp: Make test files writable.
1837
1838 2004-05-18  Paolo Carlini  <pcarlini@suse.de>
1839
1840         * include/ext/mt_allocator.h:(__mt_alloc::allocate): Minor
1841         tweaks.
1842
1843 2004-05-18  Dhruv Matani  <dhruvbird@gmx.net>
1844
1845         * include/ext/mt_allocator.h:(__mt_alloc::allocate): Re-write
1846         allocation loop which removes blocks from the global free list
1847         from O(N) to O(1) when the required blocks are <= the number
1848         available.
1849
1850 2004-05-18  Jonathan Wakely  <redi@gcc.gnu.org>
1851
1852         * include/ext/enc_filebuf.h: Move concept-check macro to class scope.
1853
1854 2004-05-17  Benjamin Kosnik  <bkoz@redhat.com>
1855
1856         * testsuite/testsuite_hooks.h (__gnu_test::conversion): New class.
1857         * testsuite/23_containers/deque/14340.cc: New.
1858         * testsuite/23_containers/list/14340.cc: New.
1859         * testsuite/23_containers/map/14340.cc: New.
1860         * testsuite/23_containers/multimap/14340.cc: New.
1861         * testsuite/23_containers/multiset/14340.cc: New.
1862         * testsuite/23_containers/set/14340.cc: New.
1863         * testsuite/23_containers/vector/14340.cc: New.
1864
1865 2004-05-17  Douglas Gregor   <gregod@cs.rpi.edu>
1866
1867         PR libstdc++/14340
1868         * include/debug/safe_iterator.h (_Safe_iterator converting
1869         constructor): Only allow declaration to instantiate when the
1870         incoming _Safe_iterator has exactly the right iterator type.
1871
1872 2004-05-17  Jonathan Wakely  <redi@gcc.gnu.org>
1873
1874         * include/bits/boost_concept_check.h: Fix old attribute syntax.
1875         * testsuite/23_containers/map/modifiers/swap.cc: Define operator<
1876         to pass concept-checks.
1877         * testsuite/23_containers/multimap/modifiers/swap.cc: Same.
1878         * testsuite/23_containers/set/modifiers/swap.cc: Same.
1879         * testsuite/23_containers/multiset/modifiers/swap.cc: Same.
1880
1881 2004-05-16  Paolo Carlini  <pcarlini@suse.de>
1882
1883         * include/std/std_bitset.h: Minor formatting fixes.
1884
1885 2004-05-16  Paolo Carlini  <pcarlini@suse.de>
1886
1887         * include/ext/mt_allocator.h (__mt_alloc<>::deallocate):
1888         Consistently update __bin._M_free[0].
1889         (__mt_alloc<>::allocate): When __bin._M_first[0] != NULL use
1890         __bin._M_free[0] to simplify the while loop (i.e., the number
1891         of iterations becomes known at the outset).
1892
1893 2004-05-15  Paolo Carlini  <pcarlini@suse.de>
1894
1895         * include/std/std_bitset.h: Trivial formatting fixes.
1896
1897 2004-05-14  Paolo Carlini  <pcarlini@suse.de>
1898             Ivan Godard  <igodard@pacbell.net>
1899
1900         PR libstdc++/15361
1901         * include/std/std_bitset.h (_Base_bitset<_Nw>::_M_do_find_next): Fix.
1902         * testsuite/23_containers/bitset/ext/15361.cc: New.
1903
1904 2004-05-13  Benjamin Kosnik  <bkoz@redhat.com>
1905
1906         PR libstdc++/15046
1907         * crossconfig.m4: Add C99 math bits for linux crosses.
1908         * configure: Regenerate.
1909
1910 2004-05-13  Simon Marshall <simon.marshall@misys.com>
1911             Benjamin Kosnik  <bkoz@redhat.com>
1912
1913         PR libstdc++/15090
1914         * include/bits/locale_facets.h: Fix for -fno-for-scope.
1915         * include/debug/safe_sequence.h: Same.
1916         * include/debug/safe_iterator.tcc: Same.
1917         * src/debug.cc: Same.
1918         * src/locale.cc: Same.
1919         * src/locale_init.cc: Same.
1920         * src/localename.cc: Same.
1921         * config/locale/gnu/ctype_members.cc: Same.
1922         * config/locale/gnu/numeric_members.cc: Same.
1923         * testsuite/testsuite_abi.cc: Same.
1924         * testsuite/testsuite_hooks.cc: Same.
1925
1926 2004-05-13  Jonathan Wakely  <redi@gcc.gnu.org>
1927
1928         * docs/html/abi.html: Document effect of -fabi-version on value
1929         of __GXX_ABI_VERSION, and that it's defined in c-cppbuiltin.c.
1930         Fix markup.
1931
1932 2004-05-13  Benjamin Kosnik  <bkoz@redhat.com>
1933
1934         PR libstdc++/15074
1935         * docs/html/faq/index.html: Update docs for libsupc++ usage.
1936
1937 2004-05-13  Benjamin Kosnik  <bkoz@redhat.com>
1938
1939         PR libstdc++/15412
1940         * include/bits/stl_threads.h (_GLIBCXX_mutex): Move to namespace
1941         __gnu_internal.
1942         (_GLIBCXX_mutex_address): Same.
1943         (_GLIBCXX_once): Same.
1944         (_GLIBCXX_mutex_init): Same.
1945         (_GLIBCXX_mutex_address_init): Same.
1946
1947 2004-05-13  Benjamin Kosnik  <bkoz@redhat.com>
1948
1949         * docs/html/abi.html: New.
1950         * docs/html/abi.txt: Remove.
1951         * docs/html/documentation.html: Add link.
1952         * testsuite/Makefile.am: Add files.
1953         * testsuite/Makefile.in: Regenerated.
1954         * testsuite/abi_check.cc: Move and modify code into...
1955         * testsuite/testsuite_abi.cc: Add.
1956         * testsuite/testsuite_abi.h: Add.
1957
1958         * docs/html/17_intro/TODO: Update.
1959         * include/bits/stl_pair.h: Format.
1960
1961 2004-05-06  Matthias Klose  <doko@debian.org>
1962
1963         * include/backward/iterator.h:  Add GPL copyright info,
1964         with exception clause.
1965         * include/bits/boost_concept_check.h: Likewise.
1966         * include
1967         * libsupc++/tinfo.h: Likewise.
1968         * po/string_literals.cc: Likewise.
1969
1970 2004-05-03  Andreas Tobler  <a.tobler@schweiz.ch>
1971
1972         * acinclude.m4: Replace -W with more speaking -Wextra.
1973         * configure: Rebuilt.
1974
1975 2004-05-03  Paolo Carlini  <pcarlini@suse.de>
1976
1977         Optimize locale::_M_impl->_M_names for the most common cases:
1978         !_M_names[0] means unnamed; !_M_names[1] means all the categories
1979         the same name (_M_names[0] && _M_names[1] means that the full set
1980         of _M_names must be processed, the general case).
1981         * include/bits/locale_classes.h (locale::_Impl::_M_check_same_name):
1982         Tweak, saving work when !_M_names[1].
1983         (locale::locale(const locale&, _Facet*): Simplify: now just setting
1984         _M_names[0] = 0 means unnamed.
1985         * src/locale.cc (locale::operator==): Deal first with the common,
1986         easy cases, otherwise fall back to locale::name().
1987         (locale::name()): Tweak, if !_M_names[0] just return "*".
1988         (locale::_Impl::_Impl(const _Impl&, size_t): Tweak, early stop
1989         copying __imp._M_names if !__imp._M_names[0] or !__imp._M_names[1].
1990         * src/locale_init.cc (locale::_Impl::_Impl(size_t)): Tweak.
1991         * src/localename.cc (locale::_Impl::_Impl(const char*, size_t):
1992         Simplify when !std::strchr, just updating _M_names[0]; clean up.
1993         (locale::_Impl::_M_replace_categories): When !_M_names[1] prepare
1994         for the general case (full set of names), then do the usual work;
1995         clean up.
1996
1997         * src/locale.cc (locale::name()): Reserve space in __ret.
1998         * src/locale_init.cc (locale::global(const locale&)): Save
1999         the name in a temporary.
2000         * src/localename.cc (locale::locale(const char*)): Reserve space
2001         in __str.
2002
2003 2004-04-29  Paolo Carlini  <pcarlini@suse.de>
2004
2005         * src/locale.cc (locale::operator==): Always avoid constructing
2006         locale::name(), directly compare pairs of _M_names.
2007
2008 2004-04-26  Paolo Carlini  <pcarlini@suse.de>
2009
2010         * include/bits/istream.tcc: Fix comment.
2011
2012 2004-04-26  Paolo Carlini  <pcarlini@suse.de>
2013
2014         * include/bits/stl_vector.h: Trivial formatting fixes.
2015         * include/bits/vector.tcc: Likewise.
2016
2017 2004-04-25  Paolo Carlini  <pcarlini@suse.de>
2018
2019         PR libstdc++/15002 (continued again)
2020         * include/bits/istream.tcc (getline(basic_istream<>&,
2021         basic_string<>&, _CharT)): Use a temporary buffer, thus
2022         avoiding reallocation for common case.
2023
2024         * include/bits/basic_string.tcc (_S_construct(_InIterator,
2025         _InIterator, const _Alloc&, input_iterator_tag)): Tweak size
2026         of temporary buffer to a power of two.
2027
2028         * testsuite/27_io/basic_istream/getline/char/4.cc: Add comment.
2029
2030 2004-04-25  Paolo Carlini  <pcarlini@suse.de>
2031
2032         * testsuite/21_strings/basic_string/inserters_extractors/char/10.cc:
2033         New.
2034         * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/10.cc:
2035         Likewise.
2036         * testsuite/27_io/basic_istream/getline/char/5.cc: Likewise.
2037
2038 2004-04-24  Paolo Carlini  <pcarlini@suse.de>
2039             Petur Runolfsson  <peturr02@ru.is>
2040
2041         PR libstdc++/15002 (continued)
2042         * include/bits/istream.tcc (basic_istream<>::getline(char_type*,
2043         streamsize, char_type)): Use traits::find/copy in a loop to speed
2044         up greatly the function in the common case (I/O buffer size >> 1).
2045
2046 2004-04-24  Paolo Carlini  <pcarlini@suse.de>
2047
2048         * testsuite/27_io/basic_istream/getline/char/4.cc: New.
2049
2050         * include/bits/istream.tcc (getline(basic_istream<>&,
2051         basic_string<>&, _CharT)): Change to use sgetc()/snextc() instead
2052         of sbumpc(), consistently with the other functions, thus also
2053         dealing correctly with the case of exceeded string::max_size().
2054
2055 2004-04-24  Matthias Klose  <doko@debian.org>
2056
2057         Jonathan Wakely  <cow@compsoc.man.ac.uk>
2058         * docs/html/configopts.html: Fix reference to allocator config option.
2059
2060 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
2061
2062         * linkage.m4 (GLIBCXX_CHECK_MATH_SUPPORT): Check for libmx also.
2063         * configure: Regenerate.
2064
2065 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
2066
2067         PR libstdc++/15047, libstdc++/11610
2068         * testsuite/lib/libstdc++.exp (v3-copy-files): Use remote_download.
2069         (libstdc++_init): Don't pass outdir to v3-copy-files.
2070
2071 2004-04-21  Paolo Carlini  <pcarlini@suse.de>
2072
2073         * include/bits/deque.tcc: Trivial formatting fixes.
2074         * include/bits/stl_deque.h: Likewise.
2075         * include/bits/stl_list.h: Likewise.
2076         * include/bits/stl_tree.h: Likewise.
2077
2078 2004-04-21  Paolo Carlini  <pcarlini@suse.de>
2079             Andrew Pinski  <pinskia@physics.uc.edu>
2080
2081         * include/bits/basic_string.tcc (_M_mutate): Don't compute
2082         __src unnecessarily.
2083
2084 2004-04-19  Benjamin Kosnik  <bkoz@redhat.com>
2085
2086         * testsuite/27_io/basic_istream/extractors_character/char/9555-ic.cc:
2087         Clarify assertion, set test variable to false before assert.
2088         * testsuite/27_io/basic_istringstream/str/char/1.cc: Same.
2089         * testsuite/27_io/basic_stringstream/str/char/1.cc: Same.
2090         * testsuite/27_io/ios_base/storage/2.cc: Same.
2091
2092         * testsuite/27_io/basic_filebuf/imbue/char/13171-4.cc: Fix
2093         function returns.
2094         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Same.
2095         * testsuite/27_io/fpos/14320-3.cc: Same.
2096
2097         * testsuite/27_io/basic_filebuf/2.cc: Instantiate in namespace std.
2098         * testsuite/27_io/fpos/1.cc: Same.
2099         * testsuite/27_io/basic_stringstream/2.cc: Same.
2100         * testsuite/27_io/basic_stringbuf/4.cc: Same.
2101         * testsuite/27_io/basic_stringbuf/1.cc: Same.
2102         * testsuite/27_io/basic_stringbuf/2.cc: Same.
2103         * testsuite/27_io/basic_streambuf/2.cc: Same.
2104         * testsuite/27_io/basic_ostringstream/2.cc: Same.
2105         * testsuite/27_io/basic_ostream/2.cc: Same.
2106         * testsuite/27_io/basic_ofstream/2.cc: Same.
2107         * testsuite/27_io/basic_istringstream/2.cc: Same.
2108         * testsuite/27_io/basic_istream/2.cc: Same.
2109         * testsuite/27_io/basic_iostream/2.cc: Same.
2110         * testsuite/27_io/basic_ios/2.cc: Same.
2111         * testsuite/27_io/basic_ifstream/2.cc: Same.
2112         * testsuite/27_io/basic_fstream/2.cc: Same.
2113         * testsuite/ext/stdio_filebuf/char/1.cc: Same, in namespace __gnu_cxx.
2114
2115         * testsuite/21_strings/basic_string/capacity/1.cc: Don't compare
2116         unsigned against zero.
2117         * testsuite/21_strings/basic_string/capacity/wchar_t/1.cc: Same.
2118         * testsuite/21_strings/basic_string/capacity/char/1.cc: Same.
2119
2120         * testsuite/18_support/new_delete_placement.cc: Initialize
2121         variables before first use.
2122         * testsuite/21_strings/char_traits/requirements/wchar_t/1.cc: Same.
2123         * testsuite/21_strings/char_traits/requirements/char/1.cc: Same.
2124         * testsuite/21_strings/char_traits/requirements/short/1.cc: Same.
2125         * testsuite/27_io/basic_istream/seekg/char/exceptions_badbit_throw.cc:
2126         Same.
2127         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/exceptions_badbit_throw.cc: Same.
2128         * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
2129         Same.
2130         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/exceptions_failbit_throw.cc: Same.
2131         * testsuite/27_io/types/2.cc: Same.
2132
2133         * testsuite/ext/stdio_sync_filebuf/wchar_t/12077.cc: Fix temporary
2134         file name.
2135         * testsuite/27_io/fpos/14775.cc: Same.
2136
2137 2004-04-19  Paolo Carlini  <pcarlini@suse.de>
2138
2139         PR libstdc++/15002 (partial)
2140         * include/bits/basic_string.h (_M_replace_aux, _M_replace_safe):
2141         Special case __n2 == 1, not calling traits_type::assign/copy.
2142
2143 2004-04-17  Benjamin Kosnik  <bkoz@redhat.com>
2144
2145         * include/bits/stl_bvector.h: Use _M_impl._M_start.
2146
2147 2004-04-16  Benjamin Kosnik  <bkoz@redhat.com>
2148
2149         * include/bits/c++config (_GLIBCXX_STD): New.
2150         * src/list.cc: Use it.
2151         * include/std/std_bitset.h: Same.
2152         * include/bits/vector.tcc: Same.
2153         * include/bits/stl_set.h: Same.
2154         * include/bits/stl_multiset.h: Same.
2155         * include/bits/stl_multimap.h: Same.
2156         * include/bits/stl_map.h: Same.
2157         * include/bits/stl_list.h: Same.
2158         * include/bits/stl_vector.h: Same.
2159         * include/bits/stl_bvector.h: Same.
2160         * include/bits/stl_deque.h: Same.
2161         * include/bits/deque.tcc: Same.
2162         * include/bits/list.tcc: Same.
2163         * include/debug/vector: Same.
2164         * include/debug/set.h: Same.
2165         * include/debug/multiset.h: Same.
2166         * include/debug/multimap.h: Same.
2167         * include/debug/map.h: Same.
2168         * include/debug/list: Same.
2169         * include/debug/deque: Same.
2170         * include/debug/bitset: Same.
2171         * include/debug/formatter.h (__gnu_debug): Remove using directive.
2172         Add using declaration for std::type_info.
2173         * include/debug/safe_iterator.h: Add using declaration for
2174         std::iterator_traits and std::pair.
2175         * src/debug_list.cc: New.
2176         * src/Makefile.am: Add debug_list.cc.
2177         * src/Makefile.in: Regenerate.
2178         * config/linker-map.gnu: Add _List_node_base exports for std and
2179         __gnu_norm.
2180
2181         * include/bits/stl_bvector.h (_Bvector_base): Use _Bvector_impl
2182         idiom that other containers use.
2183         * testsuite/23_containers/vector/bool/clear_allocator.cc: New.
2184
2185 2004-04-16  Paolo Carlini  <pcarlini@suse.de>
2186
2187         PR libstdc++/14975
2188         * include/bits/fstream.tcc (basic_filebuf::imbue): Zero _M_codecvt
2189         in case of error.
2190         * testsuite/27_io/basic_filebuf/imbue/char/14975-1.cc: New.
2191         * testsuite/27_io/basic_filebuf/imbue/wchar_t/14975-2.cc: New.
2192
2193 2004-04-16  Paolo Carlini  <pcarlini@suse.de>
2194
2195         * acconfig.h: Remove _GLIBCXX_USE_LONG_DOUBLE entry, not
2196         used anymore.
2197         * config.h.in: Regenerate.
2198
2199 2004-04-16  Paolo Carlini  <pcarlini@suse.de>
2200
2201         * config/locale/generic/monetary_members.cc
2202         (moneypunct<wchar_t>::_M_initialize_moneypunct): Avoid calling
2203         btowc unnecessarily, just cast to wchar_t (the concerned chars
2204         all belong to the basic character set).
2205         * config/locale/generic/numeric_members.cc
2206         (numpunct<wchar_t>::_M_initialize_numpunct): Likewise.
2207         * config/locale/gnu/monetary_members.cc
2208         (moneypunct<wchar_t>::_M_initialize_moneypunct): Likewise.
2209         * config/locale/gnu/numeric_members.cc
2210         (numpunct<wchar_t>::_M_initialize_numpunct): Likewise.
2211
2212 2004-04-15  Paolo Carlini  <pcarlini@suse.de>
2213
2214         * src/locale.cc (locale::operator==): When _M_impl == __rhs._M_impl
2215         avoid constructing unnecessarily this->name().
2216
2217 2004-04-14  Zack Weinberg  <zack@codesourcery.com>
2218
2219         * testsuite/Makefile.am: Add definition of AM_CXXFLAGS.
2220         Change definition of CXX to use $(shell) instead of backticks.
2221         * testsuite/Makefile.in: Regenerate.
2222
2223 2004-04-12  Dhruv Matani  <dhruvbird@gmx.net>
2224
2225         * testsuite/performance/20_util/allocator/list_sort_search.cc:
2226         Minor formatting fixes.
2227         * testsuite/performance/20_util/allocator/map_mt_find.cc:
2228         Likewise.
2229
2230 2004-04-12  Paolo Carlini <pcarlini@suse.de>
2231
2232         * config/locale/gnu/numeric_members.cc
2233         (numpunct<wchar_t>::_M_initialize_numpunct): No need to wrap
2234         in __uselocale, since btowc is called for chars belonging to
2235         the basic character set.
2236
2237 2004-04-09  Paolo Carlini  <pcarlini@suse.de>
2238
2239         * testsuite/22_locale/messages/members/char/1.cc: Remove junk.
2240         * testsuite/22_locale/messages/members/char/2.cc: Ditto.
2241         * testsuite/22_locale/messages/members/char/3.cc: Ditto.
2242         * testsuite/22_locale/num_get/get/char/1.cc: Ditto.
2243         * testsuite/22_locale/num_get/get/char/2.cc: Ditto.
2244         * testsuite/22_locale/num_get/get/char/3.cc: Ditto.
2245         * testsuite/22_locale/num_get/get/wchar_t/1.cc: Ditto.
2246         * testsuite/22_locale/num_get/get/wchar_t/2.cc: Ditto.
2247         * testsuite/22_locale/num_get/get/wchar_t/3.cc: Ditto.
2248         * testsuite/22_locale/num_put/put/char/1.cc: Ditto.
2249         * testsuite/22_locale/num_put/put/char/2.cc: Ditto.
2250         * testsuite/22_locale/num_put/put/char/3.cc: Ditto.
2251         * testsuite/22_locale/num_put/put/wchar_t/1.cc: Ditto.
2252         * testsuite/22_locale/num_put/put/wchar_t/2.cc: Ditto.
2253         * testsuite/22_locale/num_put/put/wchar_t/3.cc: Ditto.
2254         * testsuite/22_locale/numpunct/members/char/1.cc: Ditto.
2255         * testsuite/22_locale/numpunct/members/wchar_t/1.cc: Ditto.
2256
2257 2004-04-07  Paolo Carlini  <pcarlini@suse.de>
2258
2259         * config/locale/generic/time_members.cc
2260         (__timepunct<char>::_M_initialize_timepunct,
2261         __timepunct<wchar_t>::_M_initialize_timepunct): the correct
2262         _M_amonth07 in the "C" locale is "Jul" and L"Jul", respectively.
2263         * config/locale/gnu/time_members.cc
2264         (__timepunct<char>::_M_initialize_timepunct,
2265         __timepunct<wchar_t>::_M_initialize_timepunct): Ditto.
2266         * testsuite/22_locale/time_get/get_monthname/char/4.cc: New.
2267         * testsuite/22_locale/time_get/get_monthname/wchar_t/4.cc: New.
2268
2269         * testsuite/22_locale/time_get/date_order/char/1.cc: Remove junk.
2270         * testsuite/22_locale/time_get/date_order/wchar_t/1.cc: Ditto.
2271         * testsuite/22_locale/time_get/get_date/char/1.cc: Ditto.
2272         * testsuite/22_locale/time_get/get_date/char/2.cc: Ditto.
2273         * testsuite/22_locale/time_get/get_date/wchar_t/1.cc: Ditto.
2274         * testsuite/22_locale/time_get/get_date/wchar_t/2.cc: Ditto.
2275         * testsuite/22_locale/time_get/get_monthname/char/1.cc: Ditto.
2276         * testsuite/22_locale/time_get/get_monthname/char/2.cc: Ditto.
2277         * testsuite/22_locale/time_get/get_monthname/wchar_t/1.cc: Ditto.
2278         * testsuite/22_locale/time_get/get_monthname/wchar_t/2.cc: Ditto.
2279         * testsuite/22_locale/time_get/get_time/char/1.cc: Ditto.
2280         * testsuite/22_locale/time_get/get_time/char/2.cc: Ditto.
2281         * testsuite/22_locale/time_get/get_time/wchar_t/1.cc: Ditto.
2282         * testsuite/22_locale/time_get/get_time/wchar_t/2.cc: Ditto.
2283         * testsuite/22_locale/time_get/get_weekday/char/1.cc: Ditto.
2284         * testsuite/22_locale/time_get/get_weekday/char/2.cc: Ditto.
2285         * testsuite/22_locale/time_get/get_weekday/wchar_t/1.cc: Ditto.
2286         * testsuite/22_locale/time_get/get_weekday/wchar_t/2.cc: Ditto.
2287         * testsuite/22_locale/time_get/get_year/char/1.cc: Ditto.
2288         * testsuite/22_locale/time_get/get_year/wchar_t/1.cc: Ditto.
2289         * testsuite/22_locale/time_put/put/char/1.cc: Ditto.
2290         * testsuite/22_locale/time_put/put/char/2.cc: Ditto.
2291         * testsuite/22_locale/time_put/put/char/3.cc: Ditto.
2292         * testsuite/22_locale/time_put/put/char/4.cc: Ditto.
2293         * testsuite/22_locale/time_put/put/char/5.cc: Ditto.
2294         * testsuite/22_locale/time_put/put/char/6.cc: Ditto.
2295         * testsuite/22_locale/time_put/put/char/7.cc: Ditto.
2296         * testsuite/22_locale/time_put/put/char/8.cc: Ditto.
2297         * testsuite/22_locale/time_put/put/wchar_t/1.cc: Ditto.
2298         * testsuite/22_locale/time_put/put/wchar_t/2.cc: Ditto.
2299         * testsuite/22_locale/time_put/put/wchar_t/3.cc: Ditto.
2300         * testsuite/22_locale/time_put/put/wchar_t/4.cc: Ditto.
2301         * testsuite/22_locale/time_put/put/wchar_t/5.cc: Ditto.
2302         * testsuite/22_locale/time_put/put/wchar_t/6.cc: Ditto.
2303         * testsuite/22_locale/time_put/put/wchar_t/7.cc: Ditto.
2304         * testsuite/22_locale/time_put/put/wchar_t/8.cc: Ditto.
2305
2306         * testsuite/22_locale/time_put/put/char/9780-1.cc: Fix typos.
2307
2308 2004-04-07  Paolo Carlini  <pcarlini@suse.de>
2309
2310         * config/locale/gnu/monetary_members.cc
2311         (moneypunct<wchar_t>::_M_initialize_moneypunct): Prefer
2312         _NL_MONETARY_DECIMAL_POINT_WC, _NL_MONETARY_THOUSANDS_SEP_WC,
2313         and __MON_GROUPING to _NL_NUMERIC_DECIMAL_POINT_WC,
2314         _NL_NUMERIC_THOUSANDS_SEP_WC, and GROUPING.
2315         * config/locale/gnu/numeric_members.cc
2316         (numpunct<char>::_M_initialize_numpunct): Prefer DECIMAL_POINT
2317         and THOUSANDS_SEP to the deprecated RADIXCHAR and THOUSEP.
2318
2319 2004-04-06  Benjamin Kosnik  <bkoz@redhat.com>
2320
2321         Fixups for EDG front end.
2322         * include/ext/rope: Instead of non-existent function
2323         _Data_allocate, use allocator's allocate. Use this.
2324         (namespace _Rope_constants): Move _S_max_rope_depth, and _Tag
2325         enumerations from _Rope_RopeRep here.
2326         * include/ext/ropeimpl.h: Same.
2327         * src/ext-inst.cc (_S_min_len): Fix up definition.
2328
2329         * config/locale/gnu/ctype_members.cc: Qualify base class members
2330         with this.
2331         * config/locale/generic/ctype_members.cc: Same.
2332         * config/locale/gnu/messages_members.h: Same.
2333         * config/locale/generic/messages_members.h: Same.
2334         * src/ctype.cc: Same.
2335         * include/bits/codecvt.h: Same.
2336
2337         * include/bits/boost_concept_check.h: Declare.
2338         (__error_type_must_be_an_unsigned_integer_type): Remove this.
2339         (__error_type_must_be_an_integer_type): Remove this.
2340         (__error_type_must_be_a_signed_integer_type): Remove this.
2341
2342         * config/io/basic_file_stdio.cc (__basic_file::sys_open): Remove cast.
2343
2344         * libsupc++/eh_alloc.cc (__cxa_free_exception): Add exception
2345         specification to definition.
2346         (__cxa_allocate_exception): Same.
2347         * libsupc++/eh_catch.cc (__cxa_begin_catch): Same.
2348         * libsupc++/eh_globals.cc (__cxa_get_globals_fast): Same.
2349         (__cxa_get_globals): Same.
2350
2351         * libsupc++/del_op.cc: Add comment about freestanding.
2352
2353 2004-04-05  Paolo Carlini  <pcarlini@suse.de>
2354
2355         * include/ext/mt_allocator.h (__mt_alloc<>::deallocate):
2356         The critical section is actually very small, only two assignments.
2357
2358 2004-04-04  Paolo Carlini  <pcarlini@suse.de>
2359             Petur Runolfsson  <peturr02@ru.is>
2360
2361         * testsuite/performance/27_io/filebuf_sputn_unbuf.cc: New,
2362         adapted from libstdc++/11378.
2363
2364 2004-04-03  Paolo Carlini  <pcarlini@suse.de>
2365
2366         * include/ext/mt_allocator.h (__mt_alloc<>::allocate): Factor out
2367         some duplicated code.
2368         (__mt_alloc<>::_Bin_record): Spare the space of _M_free and _M_used
2369         in the single threaded case.
2370         * testsuite/performance/20_util/allocator/list_sort_search.cc:
2371         Reorder and renumber the tests consistently with the other testfiles.
2372         * testsuite/performance/20_util/allocator/map_mt_find.cc: Ditto.
2373         * testsuite/performance/20_util/allocator/map_thread.cc: Ditto.
2374         * testsuite/performance/20_util/allocator/producer_consumer.cc: Ditto.
2375
2376 2004-04-02  Paolo Carlini  <pcarlini@suse.de>
2377
2378         * include/ext/mt_allocator.h (__mt_alloc<>::deallocate):
2379         Rearrange arithmetic to avoid computing two divisions at
2380         each deallocation.
2381
2382 2004-04-01  Paolo Carlini  <pcarlini@suse.de>
2383
2384         * include/ext/mt_allocator.h (__mt_alloc<>::_S_initialize):
2385         Streamline the second half, wrapping it in a single
2386         '#ifdef __GTHREADS if (__gthread_active_p())' and avoiding
2387         conditionals inside loops.
2388
2389 2004-04-01  Paolo Carlini  <pcarlini@suse.de>
2390
2391         PR libstdc++/14775
2392         * acconfig.h: Rename _GLIBCXX_MEM_LIMITS to _GLIBCXX_RES_LIMITS.
2393         * acinclude.m4 (GLIBCXX_CHECK_SETRLIMIT): Call
2394         GLIBCXX_CHECK_SETRLIMIT_ancilliary for FSIZE too, adjust define
2395         to _GLIBCXX_RES_LIMITS.
2396         (GLIBCXX_CHECK_SETRLIMIT_ancilliary): Rename HAVE_MEMLIMIT_* to
2397         HAVE_LIMIT_*.
2398         * testsuite/testsuite_hooks.h: Declare set_file_limit.
2399         * testsuite/testsuite_hooks.cc: Define it, using getrlimit
2400         and setrlimit(RLIMIT_FSIZE).
2401         * testsuite/27_io/fpos/14775.cc: New.
2402         * config.h.in: Regenerate.
2403         * configure: Likewise.
2404
2405 2004-03-31  Paolo Carlini  <pcarlini@suse.de>
2406
2407         * config/locale/generic/c_locale.cc (__convert_to_v(long double&)):
2408         In v3 uses of sscanf, the special floating-point numbers INF,
2409         INFINITY, etc., cannot occur in input, therefore, if the latter
2410         is too large, ERANGE is always stored in errno, no need of finitel.
2411
2412 2004-03-30  Benjamin Kosnik  <bkoz@redhat.com>
2413
2414         PR libstdc++/14783
2415         * include/bits/stl_tree.h: Adjust initialization list order.
2416
2417 2004-03-29  Loren J. Rittle  <ljrittle@acm.org>
2418
2419         * testsuite/thread/pthread7-rope.cc: Update comment to reflect test.
2420
2421 2004-03-29  Paolo Carlini  <pcarlini@suse.de>
2422
2423         * testsuite/thread/pthread7-rope.cc: Fix, unpredictably, depending
2424         on allocator behavior, the memory pointed by data2 may well be not
2425         trashed.
2426
2427 2004-03-28  Chavdar Botev  <cbotev@yahoo.com>
2428
2429         PR libstdc++/14245
2430         * include/bits/basic_string.tcc
2431         (basic_string::basic_string(const basic_string&)): Pass to
2432         _Rep::_M_grab the actual allocator of the string being constructed
2433         not the default constructed one.
2434
2435 2004-03-27  Benjamin Kosnik  <bkoz@redhat.com>
2436
2437         libstdc++ PR/13598
2438         * config/locale/ieee_1003.1-2001/codecvt_specializations.h
2439         (__enc_traits::_M_destroy): New.
2440         (__enc_traits::~__enc_traits): Use it.
2441         (__enc_traits::operator=): Use _M_destroy, _M_init.
2442         (__enc_traits::__enc_traits): Same.
2443
2444 2004-03-27  Petur Runolfsson  <peturr02@ru.is>
2445
2446         * testsuite/ext/enc_filebuf/char/13598.cc: New.
2447
2448 2004-03-27  Paolo Carlini  <pcarlini@suse.de>
2449
2450         * include/ext/mt_allocator.h: Uglify consistently names of
2451         variables, members and classes; tidy.
2452
2453 2004-03-27  Dhruv Matani  <dhruvbird@gmx.net>
2454
2455         * include/ext/mt_allocator.h (__mt_alloc<>::deallocate):
2456         Deallocation loop rewrote.
2457
2458 2004-03-26  Paolo Carlini  <pcarlini@suse.de>
2459
2460         * include/ext/mt_allocator.h (__mt_alloc<>::allocate,
2461         __mt_alloc<>::deallocate): Protect two instances of
2462         block->thread_id with __GTHREADS.
2463
2464 2004-03-25  Gawain Bolton  <gp.bolton@computer.org>
2465
2466         * include/bits/stl_tree.h (_Rb_tree_impl): Add _Node_allocator
2467         default argument in constructors.
2468         (_Rb_tree::_M_empty_initialize): Remove.
2469
2470 2004-03-25  Benjamin Kosnik  <bkoz@redhat.com>
2471
2472         * testsuite/23_containers/map/operators/1_neg.cc: Adjust line numbers.
2473         * testsuite/23_containers/set/operators/1_neg.cc: Same.
2474
2475 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
2476
2477         * include/bits/cpp_type_traits.h: Changed __is_pod
2478         completely. Now, it does not use any of the previous type_traits
2479         to detect the pod types, and it also detects function pointers as
2480         POD types.
2481
2482         * include/bits/stl_tree.h: Introduced a new class _Rb_tree_impl,
2483         which encapsulates the internal implementation of an rb_tree. Made
2484         the allocator a base class of this class instead of the rb_tree,
2485         which was not conforming. This _Rb_tree_impl class is also
2486         specialized on whether the _Compare parameter is a POD type or
2487         not. If so, then it maintains the comparison function as a data
2488         member, otherwise it makes the _Compare parameter a base class of
2489         itself. Also, _M_key_compare is now a function instead of a data
2490         member, so that the above trick can work properly. Delegated the
2491         initialization of the other data members to this newly created
2492         class. Also, now other member functions of rb_tree must refer to
2493         _M_key_compare as _M_impl._M_key_compare(). The other data members
2494         (*) can be referenced to as _M_impl.(*), where
2495         (*) includes _M_header, and _M_node_count.
2496
2497 2004-03-25  Paolo Carlini  <pcarlini@suse.de>
2498
2499         * include/ext/mt_allocator.h (__mt_alloc<>::tune):
2500         Add _M_min_bin, the size in bytes of the smallest bin.
2501         (__mt_alloc<>::tune()): Tweak accordingly.
2502         (__mt_alloc<>::tune(size_t, ...)): Likewise.
2503         (__mt_alloc<>::block_record): Change to a union: members next
2504         and thread_id are never used at the same time.
2505         (__mt_alloc<>::allocate): Update consistently.
2506         (__mt_alloc<>::deallocate): Likewise.
2507         (__mt_alloc<>::_S_initialize): Update setups of _S_binmap and
2508         _S_bin_size for the configurable _M_min_size.
2509
2510 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
2511
2512         * include/bits/stl_list.h: Created a _List_impl class and made it
2513         derive from the allocator, instead of the list deriving from the
2514         allocator class, which was not conformant. Changed all references
2515         from this->_M_node to this->_M_impl._M_node * bits/list.tcc: Same
2516         as above (changed all references to the concerned variables).
2517
2518 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
2519
2520         * include/bits/stl_deque.h: Created a _Deque_impl class and made
2521         it derive from the allocator, instead of the deque deriving from
2522         the allocator class, which was not conformant. Changed all
2523         references to the _M_start, _M_finish, _M_map, and _M_map_size to
2524         _M_impl.*.
2525         (_Deque_base<_Tp,_Alloc>::~_Deque_base()): Added this->
2526         qualification in 2 places where it was missing.
2527         (_Deque_base<_Tp,_Alloc>::_M_initialize_map(size_t)): Same as
2528         above.
2529         * include/bits/deque.tcc: Same as above (changed all references to
2530         the concerned variables).
2531
2532 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
2533
2534         * include/bits/stl_vector.h: Created a _Vector_impl class and made
2535         it derive from the allocator, instead of the _Vector_base class,
2536         deriving from the allocator which was not conformant. Changed all
2537         references to the _M_start, _M_finish, and _M_end_of_storage to
2538         _M_impl.*.
2539         * include/bits/vector.tcc: Same as above (changed all references
2540         to the concerned variables).
2541
2542 2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>
2543
2544         * testsuite/23_containers/deque/cons/clear_allocator.cc: New.
2545         * testsuite/23_containers/list/cons/clear_allocator.cc: New.
2546         * testsuite/23_containers/vector/cons/clear_allocator.cc: New.
2547
2548 2004-03-24  Dhruv Matani  <dhruvbird@gmx.net>
2549
2550         * include/ext/malloc_allocator.h: Fixed the construct function to
2551         call global placement new instead of assignment. Added a check
2552         after the return from malloc to check whether returned pointer is
2553         NULL, and if so, throw std::bad_alloc().
2554         * include/ext/debug_allocator.h: Added a check in the deallocate
2555         function to check whether the user has passed a NULL pointer or
2556         not.
2557
2558 2004-03-24  Benjamin Kosnik  <bkoz@redhat.com>
2559
2560         * docs/html/20_util/allocator.html: Add bitmap_allocator links.
2561
2562 2004-03-24  Andreas Schwab  <schwab@suse.de>
2563
2564         * testsuite/lib/prune.exp (prune_g++_output): Ignore errata
2565         warning from IA64 assembler.
2566
2567 2004-03-24  Dhruv Matani  <dhruvbird@gmx.net>
2568
2569         * include/ext/bitmap_allocator.h: (_Bit_scan_forward) -> Made this
2570         function call __builtin_ctz instead of the while loop.
2571         (allocate) -> If condition has __builtin_expect.
2572         (deallocate) -> Ditto.
2573         Renamed a few left-over variables and typedefs according to the
2574         C++STYLE mentioned in the documentation.
2575         Protected calls to __gthread* by __gthread_active_p(), whose value
2576         is cached in the local variable __threads_active.
2577
2578 2004-03-24  Felix Yen  <fwy@alumni.brown.edu>
2579
2580         * testsuite/performance/20_util/allocator/producer_consumer.cc:
2581         Use linear algorithm for producer.
2582
2583 2004-03-24  Paolo Carlini  <pcarlini@suse.de>
2584
2585         * include/ext/mt_allocator.h (__mt_alloc<>::allocate,
2586         __mt_alloc<>::deallocate): Avoid redundant conditionals.
2587
2588 2004-03-23  Benjamin Kosnik  <bkoz@redhat.com>
2589
2590         * include/bits/locale_facets.h: Tweaks for 80 column.
2591         (__numpunct_cache::_M_cache): Move to locale_facets.tcc.
2592         (__moneypunct_cache::_M_cache): Same.
2593         (num_get): Don't inherit from __num_base.
2594         (num_put): Same.
2595         (money_get): Don't inherit from money_base.
2596         (money_put): Same.
2597         (__timepunct::_M_am_pm_format): New.
2598         (time_get::_M_extract_num): Return iterator, use ios_base as argument.
2599         (time_get::_M_extract_name): Same.
2600         (time_get::_M_extract_via_format): Same.
2601         * include/bits/locale_facets.tcc: Tweaks for 80 column.
2602         Use _M_getloc instead of getloc.
2603         * testsuite/22_locale/money_put/put/char/9780-3.cc: New.
2604         * testsuite/22_locale/num_put/put/char/9780-2.cc: New.
2605         * testsuite/22_locale/time_put/put/char/9780-1.cc: New.
2606
2607 2004-03-22  Paolo Carlini  <pcarlini@suse.de>
2608
2609         * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Add pool_allocator.
2610         * configure: Regenerate.
2611         * config/allocator/pool_allocator_base.h: New.
2612         * include/ext/pool_allocator.h: Convert to a standard-conforming
2613         allocator.
2614         * src/allocator.cc: Tweak instantiations.
2615         * testsuite/performance/20_util/allocator/insert.cc: Add __pool_alloc.
2616         * testsuite/performance/20_util/allocator/insert_insert.cc: Ditto.
2617         * testsuite/performance/20_util/allocator/list_sort_search.cc: Ditto.
2618         * testsuite/performance/20_util/allocator/map_mt_find.cc: Ditto.
2619         * testsuite/performance/20_util/allocator/map_thread.cc: Ditto.
2620         * testsuite/performance/20_util/allocator/producer_consumer.cc: Ditto.
2621
2622 2004-03-22  Hans-Peter Nilsson  <hp@axis.com>
2623
2624         * config/cpu/cris/atomicity.h (__atomic_add): Remove "static
2625         inline" and attribute-unused.  Qualify parameter __mem with
2626         "volatile".
2627         (__exchange_and_add): Ditto.  Add back memory clobber to asm.
2628
2629 2004-03-20  Paolo Carlini  <pcarlini@suse.de>
2630
2631         * testsuite/27_io/basic_istream/extractors_arithmetic/char/2.cc:
2632         Remove junk.
2633         * testsuite/27_io/basic_istream/extractors_arithmetic/char/3.cc:
2634         Likewise.
2635         * testsuite/27_io/basic_istream/extractors_arithmetic/char/6.cc:
2636         Likewise.
2637         * testsuite/27_io/basic_istream/extractors_arithmetic/char/7.cc:
2638         Likewise.
2639         * testsuite/27_io/basic_istream/extractors_arithmetic/char/8.cc:
2640         Likewise.
2641         * testsuite/27_io/basic_istream/extractors_arithmetic/char/9.cc:
2642         Likewise.
2643         * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
2644         Likewise.
2645         * testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc:
2646         Likewise.
2647         * testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
2648         Likewise.
2649         * testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc:
2650         Likewise.
2651
2652 2004-03-20  Paolo Carlini  <pcarlini@suse.de>
2653
2654         * include/std/std_valarray.h: Document DR389 [Ready].
2655         * docs/html/ext/howto.html: Add an entry for DR389.
2656
2657 2004-03-19  Michael Eager  <eager@mvista.com>
2658
2659         * config/cpu/mips/atomicity.h:  Prevent reg loads between LL and
2660         SC instructions.
2661
2662 2004-03-19  Paolo Carlini  <pcarlini@suse.de>
2663
2664         * testsuite/22_locale/num_get/get/char/11.cc: Remove redundant
2665         static_cast-s.
2666         * testsuite/22_locale/num_get/get/char/12.cc: Likewise.
2667         * testsuite/22_locale/num_get/get/char/13.cc: Likewise.
2668         * testsuite/22_locale/num_get/get/char/14.cc: Likewise.
2669         * testsuite/22_locale/num_get/get/char/15.cc: Likewise.
2670         * testsuite/22_locale/num_get/get/wchar_t/11.cc: Likewise.
2671         * testsuite/22_locale/num_get/get/wchar_t/12.cc: Likewise.
2672         * testsuite/22_locale/num_get/get/wchar_t/13.cc: Likewise.
2673         * testsuite/22_locale/num_get/get/wchar_t/14.cc: Likewise.
2674         * testsuite/22_locale/num_get/get/wchar_t/15.cc: Likewise.
2675
2676 2004-03-19  Paolo Carlini  <pcarlini@suse.de>
2677             Petur Runolfsson  <peturr02@ru.is>
2678
2679         PR libstdc++/12077
2680         * include/ext/stdio_sync_filebuf.h (showmanyc): Remove, there's
2681         no way to find out the conversion used by the underlying FILE*.
2682         * testsuite/ext/stdio_sync_filebuf/wchar_t/12077.cc: New.
2683         * testsuite/27_io/objects/char/9.cc: Tweak.
2684
2685 2004-03-19  Paolo Carlini  <pcarlini@suse.de>
2686
2687         PR libstdc++/14648
2688         * include/ext/ropeimpl.h (rope<>::_S_apply_to_pieces): Fix
2689         memory allocation/deallocation calls.
2690         * testsuite/ext/14648.cc: New.
2691
2692 2004-03-19  Peter Schmid  <schmid@snake.iap.physik.tu-darmstadt.de>
2693
2694         PR libstdc++/14647
2695         * include/backward/bvector.h (bit_vector): Allocator is in std
2696         namespace.
2697
2698 2004-03-19  Phil Edwards  <phil@codesourcery.com>
2699
2700         * acinclude.m4 (GLIBCXX_CHECK_WCHAR_T_SUPPORT):  Set LIBICONV,
2701         not libiconv.  SUBST this variable as well.
2702         * testsuite/Makefile.am (site.exp):  New target, based on that
2703         created by automake.  Also set libiconv.
2704
2705         * configure, Makefile.in, include/Makefile.in, libmath/Makefile.in,
2706         libsupc++/Makefile.in, po/Makefile.in, src/Makefile.in,
2707         testsuite/Makefile.in:  Regenerate.
2708
2709 2004-03-16  Benjamin Kosnik  <bkoz@redhat.com>
2710
2711         * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Default setting is
2712         new_allocator for all hosts.
2713         * configure: Regenerate.
2714
2715 2004-03-16  Paolo Carlini  <pcarlini@suse.de>
2716
2717         * testsuite/22_locale/num_put/put/char/4.cc: Fix for 64-bit pointers.
2718         * testsuite/22_locale/num_put/put/wchar_t/4.cc: Likewise.
2719
2720 2004-03-15  Paolo Carlini  <pcarlini@suse.de>
2721
2722         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
2723         Adjust the logic underlying the parsing of symbol to deal
2724         correctly with an optional sign component (i.e., when either
2725         negative_sign or positive_sign is empty)
2726         * testsuite/22_locale/money_get/get/char/19.cc: New.
2727         * testsuite/22_locale/money_get/get/wchar_t/19.cc: New.
2728
2729 2004-03-15  Paolo Carlini  <pcarlini@suse.de>
2730
2731         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
2732         Do not accept an incomplete currency symbol.
2733         * testsuite/22_locale/money_get/get/char/18.cc: New.
2734         * testsuite/22_locale/money_get/get/wchar_t/18.cc: New.
2735
2736 2004-03-13  Benjamin Kosnik  <bkoz@redhat.com>
2737
2738         * config/allocator: New.
2739         * config/allocator/bitmap_allocator_base.h: New.
2740         * config/allocator/malloc_allocator_base.h: New.
2741         * config/allocator/mt_allocator_base.h: New.
2742         * config/allocator/new_allocator_base.h: New.
2743         * include/bits/allocator.h: Include c++allocator.h.
2744         * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): New.
2745         * aclocal.m4: Regenerate.
2746         * configure.ac: Use GLIBCXX_ENABLE_ALLOCATOR.
2747         * configure: Regenerate.
2748         * include/Makefile.am (host_headers_extra): Add c++allocator.h.
2749         * include/Makefile.in: Regenerate.
2750         * docs/html/configopts.html: Add enable-libstdcxx-allocator.
2751
2752 2004-03-12  Benjamin Kosnik  <bkoz@redhat.com>
2753
2754         * include/bits/allocator.h: Revert.
2755
2756 2004-03-12  Paolo Carlini  <pcarlini@suse.de>
2757
2758         * docs/html/ext/howto.html: Add entry for DR 253 [Ready].
2759         * include/bits/gslice_array.h: Add comment about DR 253.
2760         * include/bits/indirect_array.h: Likewise.
2761         * include/bits/mask_array.h: Likewise.
2762         * include/bits/slice_array.h: Likewise.
2763
2764 2004-03-12  Benjamin Kosnik  <bkoz@redhat.com>
2765
2766         * testsuite/20_util/allocator/14176.cc: New.
2767         * include/ext/mt_allocator.h: Formatting fixes.
2768
2769 2004-03-11  Dhruv Matani  <dhruvbird@HotPOP.com>
2770
2771         * include/Makefile.am (ext_headers): Add
2772         ${ext_srcdir}/bitmap_allocator.h .
2773         * include/Makefile.in: Regenerate.
2774         * docs/html/ext/ballocator_doc.txt: New file.
2775         * include/ext/bitmap_allocator.h: New file.
2776         * testsuite/performance/20_util/allocator/list_sort_search.cc: Add
2777         test.
2778         * testsuite/performance/20_util/allocator/map_mt_find.cc: Likewise.
2779         * testsuite/performance/20_util/allocator/producer_consumer.cc: Add
2780         test for the bitmap_allocator<>.
2781         * testsuite/performance/20_util/allocator/insert.cc: Likewise.
2782         * testsuite/performance/20_util/allocator/insert_insert.cc: Likewise.
2783         * testsuite/performance/20_util/allocator/map_thread.cc: Likewise.
2784
2785 2004-03-11  Paolo Carlini  <pcarlini@suse.de>
2786
2787         * include/std/std_complex.h (pow(const complex&, const _Tp&),
2788         pow(const _Tp&, const complex&), pow(const complex&,
2789         const complex&)): Fully qualify with std:: a few calls.
2790         * testsuite/26_numerics/complex/13450.cc: Minor tweak.
2791
2792 2004-03-11  Steven Bosscher  <stevenb@suse.de>
2793
2794         PR libstdc++/11706
2795         * include/c_std/cmath.tcc (__cmath_power): Define inline.
2796
2797 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
2798
2799         * configure.ac: Bump AC_PREREQ to 2.59.
2800
2801 2004-03-10  Paolo Carlini  <pcarlini@suse.de>
2802
2803         * testsuite/26_numerics/valarray_subset_assignment.cc: Fix typos.
2804
2805 2004-03-10  Paul Kienzle  <pkienzle@nist.gov>
2806             Paolo Carlini  <pcarlini@suse.de>
2807
2808         PR libstdc++/13450
2809         * include/std/std_complex.h (pow(const complex&, const _Tp&),
2810         pow(const _Tp&, const complex&)): Use cmath pow only when safe.
2811         * testsuite/26_numerics/complex/13450.cc: New.
2812
2813         * testsuite/26_numerics/cmath/overloads.C: Rename to overloads.cc.
2814         * testsuite/26_numerics/complex/pow.C: Rename to pow.cc and fix.
2815
2816 2004-03-10  Jerry Quinn  <jlquinn@optonline.net>
2817
2818         PR libstdc++/3247
2819         * include/bits/gslice_array.h (gslice_array()): Make public.
2820         (operator=(gslice_array)): Make public.  Implement.
2821         * include/bits/indirect_array.h (indirect_array()): Make public.
2822         * include/bits/mask_array.h (mask_array()): Make public.
2823         (operator=(mask_array)): Make public.  Implement.
2824         * include/bits/valarray_array.tcc (__valarray_copy):
2825         Comment.  Add versions for gslice_array and mask_array.
2826         * testsuite/26_numerics/valarray_subset_assignment.cc:  New test.
2827
2828 2004-03-09  Benjamin Kosnik  <bkoz@redhat.com>
2829
2830         * testsuite/23_containers/deque/modifiers/swap.cc: Add in bits for
2831         non-weak systems.
2832         * testsuite/23_containers/vector/modifiers/swap.cc: Same.
2833         * testsuite/23_containers/set/modifiers/swap.cc: Same.
2834         * testsuite/23_containers/multiset/modifiers/swap.cc: Same.
2835         * testsuite/23_containers/multimap/modifiers/swap.cc: Same.
2836         * testsuite/23_containers/map/modifiers/swap.cc: Same.
2837         * testsuite/23_containers/list/modifiers/swap.cc: Same.
2838
2839         * testsuite/22_locale/locale/cons/12658_thread.cc: Catch exceptions.
2840
2841 2004-03-08  Benjamin Kosnik  <bkoz@redhat.com>
2842
2843         PR c++/13658
2844         * testsuite/23_containers/deque/modifiers/swap.cc: New.
2845         * testsuite/23_containers/list/modifiers/swap.cc: New.
2846         * testsuite/23_containers/map/modifiers/swap.cc: New.
2847         * testsuite/23_containers/multimap/modifiers/swap.cc: New.
2848         * testsuite/23_containers/multiset/modifiers/swap.cc: New.
2849         * testsuite/23_containers/set/modifiers/swap.cc: New.
2850         * testsuite/23_containers/vector/modifiers/swap.cc: New.
2851
2852 2004-03-08  Petur Runolfsson  <peturr02@ru.is>
2853
2854         PR libstdc++/12658
2855         * testsuite/22_locale/locale/cons/12658_thread.cc: New.
2856
2857 2004-03-08  Paolo Carlini  <pcarlini@suse.de>
2858
2859         * docs/html/ext/howto.html: Add entry for DR 103 [WP].
2860         * include/bits/stl_multiset.h: Add comment about DR 103.
2861         * include/bits/stl_set.h: Likewise.
2862
2863 2004-03-08  Paolo Carlini  <pcarlini@suse.de>
2864
2865         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
2866         The value _space_ indicates that at least one space is required
2867         at that position.
2868         * testsuite/22_locale/money_get/get/char/17.cc: New.
2869         * testsuite/22_locale/money_get/get/wchar_t/17.cc: New.
2870
2871         * testsuite/22_locale/money_get/get/char/7.cc: Minor tweaks.
2872         * testsuite/22_locale/money_get/get/wchar_t/7.cc: Likewise.
2873
2874         * include/bits/locale_facets.tcc (money_get<>::do_get(long_double&)):
2875         Remove redundant conditional on __str.size().
2876
2877 2004-03-08  Benjamin Kosnik  <bkoz@redhat.com>
2878
2879         * include/bits/allocator.h: Switch defaults to mt_alloc.
2880
2881 2004-03-06  Benjamin Kosnik  <bkoz@redhat.com>
2882
2883         * include/ext/mt_allocator.h (_S_initialize): If
2884         !__GTHREAD_MUTEX_INIT, then initialize _S_thread_freelist_mutex.
2885
2886 2004-03-06  Benjamin Kosnik  <bkoz@redhat.com>
2887
2888         PR libstdc++/12658
2889         * src/locale_init.cc (locale::locale): Lock critical regions with
2890         external mutexes.
2891         (locale::global): Same.
2892         * include/bits/concurrence.h (__glibcxx_mutex_define_initialized):
2893         Add in once bits for cases without __GTHREAD_MUTEX_INIT.
2894         (__glibcxx_mutex_lock): Same.
2895
2896         * config/cpu/generic/atomicity.h: Remove
2897         _GLIBCXX_NEED_GENERIC_MUTEX, use concurrence.h.
2898         * src/misc-inst.cc: Move all locking bits out of this file.
2899
2900         * config/os/hpux/os_defines.h: Remove _GLIBCXX_INST_ATOMICITY_LOCK.
2901         * src/misc-inst.cc: Same.
2902         * config/cpu/hppa/atomicity.h: Same.
2903
2904         * config/linker-map.gnu: Remove types in the signature of atomic
2905         exports, as they may vary.
2906
2907 2004-03-06  Paolo Carlini  <pcarlini@suse.de>
2908
2909         * include/bits/locale_facets.tcc: Tweak the comment preceding
2910         has_facet: doesn't throw.
2911
2912 2004-03-06  Paolo Carlini  <pcarlini@suse.de>
2913
2914         * testsuite/22_locale/money_get/get/char/1.cc: Clean up.
2915         * testsuite/22_locale/money_get/get/char/2.cc: Likewise.
2916         * testsuite/22_locale/money_get/get/char/3.cc: Likewise.
2917         * testsuite/22_locale/money_get/get/char/4.cc: Likewise.
2918         * testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise.
2919         * testsuite/22_locale/money_get/get/wchar_t/2.cc: Likewise.
2920         * testsuite/22_locale/money_get/get/wchar_t/3.cc: Likewise.
2921         * testsuite/22_locale/money_get/get/wchar_t/4.cc: Likewise.
2922
2923 2004-03-06  Paolo Carlini  <pcarlini@suse.de>
2924
2925         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
2926         num_get<>::_M_extract_int, num_get<>::do_get(bool&),
2927         __pad<>::_S_pad): Prefer plain operator== to traits::eq().
2928         * testsuite/testsuite_character.h (struct __gnu_test::character):
2929         Provide operator==.
2930         * testsuite/testsuite_hooks.h (struct __gnu_test::pod_char):
2931         Likewise.
2932
2933 2004-03-05  Paolo Carlini  <pcarlini@suse.de>
2934
2935         * testsuite/27_io/fpos/14320-2.cc: Remove xfail.
2936
2937 2004-03-04  Benjamin Kosnik  <bkoz@redhat.com>
2938
2939         * testsuite/23_containers/multiset/insert/1.cc: Test result string.
2940
2941         * testsuite/23_containers/bitset/invalidation/1.cc: Main always
2942         returns 0.
2943         * testsuite/23_containers/deque/invalidation/4.cc: Same.
2944         * testsuite/23_containers/list/invalidation/1.cc: Same.
2945         * testsuite/23_containers/list/invalidation/2.cc: Same.
2946         * testsuite/23_containers/list/invalidation/3.cc: Same.
2947         * testsuite/23_containers/list/invalidation/4.cc: Same.
2948         * testsuite/23_containers/map/invalidation/2.cc: Same.
2949         * testsuite/23_containers/multimap/invalidation/1.cc: Same.
2950         * testsuite/23_containers/multimap/invalidation/2.cc: Same.
2951         * testsuite/23_containers/multiset/invalidation/1.cc: Same.
2952         * testsuite/23_containers/multiset/invalidation/2.cc: Same.
2953         * testsuite/23_containers/set/invalidation/1.cc: Same.
2954         * testsuite/23_containers/set/invalidation/2.cc: Same.
2955         * testsuite/23_containers/vector/invalidation/1.cc: Same.
2956         * testsuite/23_containers/vector/invalidation/2.cc: Same.
2957         * testsuite/23_containers/vector/invalidation/3.cc: Same.
2958         * testsuite/23_containers/vector/invalidation/4.cc: Same.
2959
2960 2004-03-04  Paolo Carlini  <pcarlini@suse.de>
2961
2962         * scripts/testsuite_flags.in: Add "-D_GLIBCXX_ASSERT" to
2963         CXXFLAGS_save.
2964         * testsuite/lib/libstdc++.exp: Don't add it conditionally to
2965         DEFAULT_CXXFLAGS.
2966         * testsuite/18_support/numeric_limits.cc: Remove "-D_GLIBCXX_ASSERT"
2967         from the dg-options.
2968         * testsuite/23_containers/vector/invalidation/1.cc: Likewise.
2969         * testsuite/23_containers/vector/invalidation/2.cc: Likewise.
2970         * testsuite/23_containers/vector/invalidation/3.cc: Likewise.
2971         * testsuite/23_containers/vector/invalidation/4.cc: Likewise.
2972         * testsuite/23_containers/vector/resize/1.cc: Likewise.
2973         * testsuite/26_numerics/complex_value.cc: Likewise.
2974         * testsuite/27_io/ios_base/storage/1.cc: Likewise.
2975         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
2976         * testsuite/27_io/ios_base/storage/3.cc: Likewise.
2977         * testsuite/27_io/manipulators/standard/char/2.cc: Likewise.
2978         * testsuite/27_io/objects/char/5.cc: Likewise.
2979         * testsuite/27_io/objects/wchar_t/5.cc: Likewise.
2980         * testsuite/backward/11460.cc: Likewise.
2981         * testsuite/thread/pthread7-rope.cc: Likewise.
2982
2983         * testsuite/21_strings/basic_string/compare/char/1.cc: Add
2984         missing test variable.
2985         * testsuite/21_strings/basic_string/compare/wchar_t/1.cc: Add
2986         missing test variable.
2987
2988 2004-03-04  Benjamin Kosnik  <bkoz@redhat.com>
2989
2990         * testsuite/20_util/allocator/1.cc: Provide explicit
2991         instantiations for non-weak systems.
2992         * testsuite/20_util/binders.cc: Same.
2993         * testsuite/20_util/allocator/8230.cc: Same.
2994         * testsuite/20_util/allocator/10378.cc: Same.
2995         * testsuite/22_locale/ctype/is/wchar_t/2.cc: Same.
2996         * testsuite/22_locale/ctype/is/char/2.cc: Same.
2997         * testsuite/thread/pthread7-rope.cc: Same.
2998         * testsuite/thread/pthread6.cc: Same.
2999         * testsuite/thread/pthread5.cc: Same.
3000         * testsuite/thread/pthread4.cc: Same.
3001         * testsuite/thread/pthread1.cc: Same.
3002         * testsuite/ext/rope.cc: Same.
3003         * testsuite/ext/hash_set.cc: Same.
3004         * testsuite/ext/hash_map.cc: Same.
3005         * testsuite/ext/concept_checks.cc: Same.
3006         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc: Same.
3007         * testsuite/25_algorithms/unique/2.cc: Same.
3008         * testsuite/25_algorithms/unique/1.cc: Same.
3009         * testsuite/25_algorithms/rotate.cc: Same.
3010         * testsuite/25_algorithms/min_max.cc: Same.
3011         * testsuite/25_algorithms/equal.cc: Same.
3012         * testsuite/24_iterators/rel_ops.cc: Same.
3013         * testsuite/24_iterators/iterator.cc: Same.
3014         * testsuite/24_iterators/insert_iterator.cc: Same.
3015         * testsuite/24_iterators/front_insert_iterator.cc: Same.
3016         * testsuite/24_iterators/back_insert_iterator.cc: Same.
3017         * testsuite/23_containers/vector/resize/1.cc: Same.
3018         * testsuite/23_containers/vector/modifiers/2.cc: Same.
3019         * testsuite/23_containers/vector/modifiers/1.cc: Same.
3020         * testsuite/23_containers/vector/invalidation/4.cc: Same.
3021         * testsuite/23_containers/vector/invalidation/3.cc: Same.
3022         * testsuite/23_containers/vector/invalidation/2.cc: Same.
3023         * testsuite/23_containers/vector/invalidation/1.cc: Same.
3024         * testsuite/23_containers/vector/element_access/1.cc: Same.
3025         * testsuite/23_containers/vector/cons/6513.cc: Same.
3026         * testsuite/23_containers/vector/cons/3.cc: Same.
3027         * testsuite/23_containers/vector/cons/2.cc: Same.
3028         * testsuite/23_containers/vector/cons/1.cc: Same.
3029         * testsuite/23_containers/vector/capacity/8230.cc: Same.
3030         * testsuite/23_containers/vector/capacity/1.cc: Same.
3031         * testsuite/23_containers/vector/bool/6886.cc: Same.
3032         * testsuite/23_containers/stack/members/7158.cc: Same.
3033         * testsuite/23_containers/set/invalidation/2.cc: Same.
3034         * testsuite/23_containers/set/invalidation/1.cc: Same.
3035         * testsuite/23_containers/queue/members/7157.cc: Same.
3036         * testsuite/23_containers/priority_queue/members/7161.cc: Same.
3037         * testsuite/23_containers/multiset/invalidation/2.cc: Same.
3038         * testsuite/23_containers/multiset/invalidation/2.cc: Same.
3039         * testsuite/23_containers/multiset/insert/1.cc: Same.
3040         * testsuite/23_containers/multimap/invalidation/2.cc: Same.
3041         * testsuite/23_containers/multimap/invalidation/2.cc: Same.
3042         * testsuite/23_containers/map/operators/1.cc: Same.
3043         * testsuite/23_containers/map/invalidation/2.cc: Same.
3044         * testsuite/23_containers/map/invalidation/1.cc: Same.
3045         * testsuite/23_containers/map/insert/1.cc: Same.
3046         * testsuite/23_containers/list/operators/4.cc: Same.
3047         * testsuite/23_containers/list/operators/3.cc: Same.
3048         * testsuite/23_containers/list/operators/2.cc: Same.
3049         * testsuite/23_containers/list/operators/1.cc: Same.
3050         * testsuite/23_containers/list/modifiers/3.cc: Same.
3051         * testsuite/23_containers/list/modifiers/2.cc: Same.
3052         * testsuite/23_containers/list/modifiers/1.cc: Same.
3053         * testsuite/23_containers/list/invalidation/4.cc: Same.
3054         * testsuite/23_containers/list/invalidation/3.cc: Same.
3055         * testsuite/23_containers/list/invalidation/2.cc: Same.
3056         * testsuite/23_containers/list/invalidation/1.cc: Same.
3057         * testsuite/23_containers/list/cons/9.cc: Same.
3058         * testsuite/23_containers/list/cons/8.cc: Same.
3059         * testsuite/23_containers/list/cons/7.cc: Same.
3060         * testsuite/23_containers/list/cons/6.cc: Same.
3061         * testsuite/23_containers/list/cons/5.cc: Same.
3062         * testsuite/23_containers/list/cons/4.cc: Same.
3063         * testsuite/23_containers/list/cons/3.cc: Same.
3064         * testsuite/23_containers/list/cons/2.cc: Same.
3065         * testsuite/23_containers/list/cons/1.cc: Same.
3066         * testsuite/23_containers/list/capacity/1.cc: Same.
3067         * testsuite/23_containers/deque/operators/1.cc: Same.
3068         * testsuite/23_containers/deque/invalidation/4.cc: Same.
3069         * testsuite/23_containers/deque/invalidation/3.cc: Same.
3070         * testsuite/23_containers/deque/invalidation/2.cc: Same.
3071         * testsuite/23_containers/deque/invalidation/1.cc: Same.
3072         * testsuite/23_containers/deque/cons/2.cc: Same.
3073         * testsuite/23_containers/deque/cons/1.cc: Same.
3074
3075         * src/allocator.cc: Add char, wchar_t instantiations
3076         to match extern template declarations in memory.h.
3077
3078 2004-03-03  Paolo Carlini  <pcarlini@suse.de>
3079
3080         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
3081         Fix warning regression.
3082
3083 2004-03-03  Paolo Carlini  <pcarlini@suse.de>
3084
3085         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
3086         Deal properly with empty __digits and negative frac_digits,
3087         clean-up a bit.
3088
3089 2004-03-03  Jonathan Wakely  <redi@gcc.gnu.org>
3090
3091         * docs/html/documentation.html: Regenerate.
3092
3093 2004-03-02  Paolo Carlini  <pcarlini@suse.de>
3094
3095         PR libstdc++/14320
3096         * include/bits/postypes.h (class streamoff): Remove, now
3097         streamoff is just typedef a 64 bit signed integer type.
3098         (class fpos): Tweak consistently.
3099         * testsuite/27_io/fpos/14320-1.cc: New.
3100         * testsuite/27_io/fpos/14320-2.cc: New.
3101         * testsuite/27_io/fpos/14320-3.cc: New.
3102         * testsuite/27_io/fpos/14320-4.cc: New.
3103         * testsuite/27_io/fpos/14320-5.cc: New.
3104         * testsuite/27_io/fpos/mbstate_t/4_neg.cc: xfail for now.
3105
3106 2004-03-02  Paolo Carlini  <pcarlini@suse.de>
3107
3108         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
3109         Reorganize a bit the main parsing loop, thus early detecting
3110         an empty value component.
3111         * testsuite/22_locale/money_get/get/char/16.cc: New.
3112         * testsuite/22_locale/money_get/get/wchar_t/16.cc: New.
3113
3114 2004-03-02  Benjamin Kosnik  <bkoz@redhat.com>
3115
3116         Support automake 1.8.2
3117         * configure.ac (AM_INIT_AUTOMAKE): Add -Wno-override.
3118         * po/Makefile.am (EXTRA_DIST): New.
3119         * po/Makefile.in: Regenerate.
3120         * Makefile.in: Same.
3121         * include/Makefile.in: Same.
3122         * libmath/Makefile.in: Same.
3123         * libsupc++/Makefile.in: Same.
3124         * src/Makefile.in: Same.
3125         * testsuite/Makefile.in: Same.
3126
3127         * include/Makefile.am (${host_builddir}/gthr-posix.h): Use
3128         __GXX_WEAK__ instead of SUPPORTS_WEAK.
3129         (${host_builddir}/gthr-default.h): Same.
3130         (${host_builddir}/gthr.h): Same.
3131         * acinclude.m4 (GLIBCXX_ENABLE_THREAD): Remove
3132         _GLIBCXX_SUPPORTS_WEAK, as this behavior can be modified via
3133         -fno-weak.
3134         * aclocal.m4: Regenerate.
3135         * acconfig.h: Remove _GLIBCXX_SUPPORTS_WEAK.
3136         * config.h.in: Regenerate.
3137         * configure: Same.
3138
3139 2004-03-01  Benjamin Kosnik  <bkoz@redhat.com>
3140
3141         Support autoconf 2.59
3142         * acinclude.m4: Quote correctly.
3143         * aclocal.m4: Regenerate.
3144         * linkage.m4: Same.
3145
3146 2004-03-01  Benjamin Kosnik  <bkoz@redhat.com>
3147
3148         * docs/html/test.html: Add multilib RUNTESTFLAGS example.
3149
3150         * docs/html/18_support/howto.html: Add bit about writing to
3151         stderr, mostly by Zack.
3152
3153 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
3154
3155         * include/bits/locale_facets.tcc (money_get<>::_M_extract,
3156         money_get<>::do_get(string_type&)): ... and two more.
3157
3158 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
3159
3160         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
3161         Fix thinkos in the switch from string_type& to string& as last
3162         argument.
3163
3164 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
3165
3166         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float):
3167         Also when parsing exponent sign, first look for thousands_sep
3168         and decimal_point; tweak a bit.
3169         * testsuite/22_locale/num_get/get/char/15.cc: New.
3170         * testsuite/22_locale/num_get/get/wchar_t/15.cc: New.
3171
3172         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
3173         num_get<>::_M_extract_int): Reorder some conditionals.
3174
3175 2004-03-01  Paolo Carlini  <pcarlini@suse.de>
3176
3177         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
3178         Consistently with numpunct, enforce the requirements in
3179         22.2.6.3, p3 for the thousands separators; tweak a bit.
3180         * testsuite/22_locale/money_get/get/char/15.cc: New.
3181         * testsuite/22_locale/money_get/get/wchar_t/15.cc: New.
3182
3183 2004-03-01  David Billinghurst <David.Billinghurst@riotinto.com>
3184
3185         * testsuite/lib/libstdc++.exp (v3-list-tests): Use
3186         testsuite_files from correct multilib blddir when running
3187         testsuite.
3188
3189 2004-02-29  Phil Edwards  <phil@codesourcery.com>
3190
3191         * testsuite/Makefile.am (check-abi, check-abi-verbose):  Copy
3192         the summary file to the logfile.
3193         * testsuite/Makefile.in:  Regenerate.
3194
3195 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3196
3197         * config/cpu/hppa/atomicity.h (__atomic_add): Make first argument
3198         volatile.
3199         * config/os/hpux/os_defines.h (_GLIBCXX_INST_ATOMICITY_LOCK): Use
3200         __GXX_WEAK__ instead of _GLIBCXX_SUPPORTS_WEAK.
3201
3202 2004-02-28  Paolo Carlini  <pcarlini@suse.de>
3203
3204         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float):
3205         According to 22.2.3.1, p2, 'units' may be followed by 'e' with
3206         no 'decimal-point' in the middle: in this case too we must fix
3207         up __found_grouping; slightly tweak.
3208         * testsuite/22_locale/num_get/get/char/14.cc: New.
3209         * testsuite/22_locale/num_get/get/wchar_t/14.cc: New.
3210
3211 2004-02-27  Eric Christopher  <echristo@redhat.com>
3212             Phil Edwards  <phil@codesourcery.com>
3213
3214         * testsuite/22_locale/collate/compare/wchar_t/2.cc,
3215         testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc,
3216         testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc,
3217         testsuite/22_locale/collate/hash/wchar_t/2.cc,
3218         testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc,
3219         testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc,
3220         testsuite/22_locale/collate/transform/wchar_t/2.cc,
3221         testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc,
3222         testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc:
3223         Use dg-require-iconv.
3224         * testsuite/lib/libstdc++.exp:  Load target-supports.exp.
3225
3226 2004-02-27  Phil Edwards  <phil@codesourcery.com>
3227             Eric Christopher  <echristo@redhat.com>
3228
3229         * testsuite/config/default.exp:  Update with comments.
3230         (${tool}_target_compile):  New wrapper routine.
3231         * testsuite/lib/dg-options.exp:  New file, with dg-require-iconv.
3232         * testsuite/lib/libstdc++.exp:  Update with comments and cosmetic
3233         fixes.
3234         (load_gcc_lib, v3track):  New routines.
3235         (v3-init):  Rename to libstdc++_init.
3236         * testsuite/libstdc++-dg/normal.exp:  No longer call v3-init.
3237         Move DEFAULT_CXXFLAGS handling into libstdc++_init.
3238
3239 2004-02-27  Benjamin Kosnik  <bkoz@redhat.com>
3240
3241         * config/cpu/hppa/atomicity.h: Include c++config.h to get defines.
3242
3243         * src/misc-inst.cc (_S_atomicity_lock): Move to __gnu_cxx.
3244
3245         * config/os/irix/irix5.2/atomicity.h: Merge..
3246         * config/os/irix/irix6.5/atomicity.h: Merge..
3247         * config/os/irix/atomicity.h: ...into this.
3248         * config/os/irix/atomic_word.h: New.
3249         * configure.host: Set atomic_word_dir for irix.
3250
3251         * hppa/atomicity.h: Change __Atomicity_lock to _Atomicity_lock.
3252         * i386/atomicity.h: Same.
3253         * m68k/atomicity.h: Same.
3254         * sparc/atomicity.h: Same.
3255
3256 2004-02-27  David Edelsohn  <edelsohn@gnu.org>
3257
3258         * config/os/aix/atomicity.h: Use __gnu_cxx namespace. Remove
3259         static, and inline keywords.
3260
3261 2004-02-27  Paolo Carlini  <pcarlini@suse.de>
3262
3263         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
3264         num_get<>::_M_extract_int, money_get<>::_M_extract): If appropriate,
3265         call reserve on the __tmp_gruping string.
3266         (num_get<>::_M_extract_float): Don't append unnecessarily a
3267         char() to the returned string.
3268         * include/bits/locale_facets.tcc: Trivial reformattings.
3269
3270 2004-02-27  Paolo Carlini  <pcarlini@suse.de>
3271
3272         * include/bits/locale_facets.h (money_get<>::_M_extract):
3273         Change signature: now takes a plain string&.
3274         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
3275         Update consistently the definition; use the moneypunct cache
3276         to parse the value; use swap to change __units.
3277         (money_get<>::do_get(long double&)): Update call of _M_extract,
3278         avoid ctype::narrow, not correct wrt the standard.
3279         (money_get<>::do_get(string_type&)): Likewise, update call
3280         of _M_extract, use ctype::widen.
3281         * src/locale-inst.cc: Tweak instantiations of _M_extract.
3282
3283 2004-02-26  Ian Lance Taylor  <ian@wasabisystems.com>
3284
3285         * testsuite/demangle/abi_examples/01.cc: Expect error -2.
3286         * testsuite/demangle/abi_examples/02.cc: Likewise.
3287         * testsuite/demangle/regression/cw-11.cc: Likewise.
3288         * testsuite/demangle/regression/cw-16.cc: Change two expected
3289         results to match libiberty demangler output.
3290
3291 2004-02-26  Benjamin Kosnik  <bkoz@redhat.com>
3292
3293         PR libstdc++/10246
3294         * libsupc++/Makefile.am: Use libiberty demangler.
3295         (c_sources): Add cp-demangle.c.
3296         * libsupc++/Makefile.in: Regenerate.
3297         * src/Makefile.am (sources): Remove demangle.cc.
3298         * src/Makefile.in: Regenerate.
3299         * include/Makefile.am (bits_headers): Move demangle.h.
3300         (ext_headers): ...here.
3301         * include/Makefile.in: Regenerate.
3302         * include/bits/demangle.h: Move...
3303         * include/ext/demangle.h: ...here.
3304         * src/demangle.cc: Remove.
3305
3306 2004-02-26  Benjamin Kosnik  <bkoz@redhat.com>
3307
3308         * include/bits/demangle.h: Add type template parameter to all
3309         templates with just an Allocator template parameter.
3310
3311 2004-02-25  Benjamin Kosnik  <bkoz@redhat.com>
3312
3313         * include/bits/atomicity.h: New, forward declarations for __atomic_add
3314         and __exchange_and_add.
3315         * config/cpu/generic/atomic_word.h: New, typdef for atomic word.
3316         * config/cpu/cris/atomic_word.h: Same.
3317         * config/cpu/sparc/atomic_word.h: Same.
3318         * include/bits/ios_base.h (_Callback_list::_M_remove_reference):
3319         Qualifiy with __gnu_cxx.
3320         (_Callback_list::_M_add_reference): Same.
3321         * include/bits/locale_classes.h (locale::facet::_M_add_reference): Add.
3322         (locale::facet::_M_remove_reference): Same.
3323         (locale::_Impl::_M_add_reference): Add.
3324         (locale::_Impl::_M_remove_reference): Same.
3325         * include/bits/basic_string.h (basic_string::_Rep::_M_refcopy): Same.
3326         (basic_string::_Rep::_M_dispose): Same.
3327         * src/ios.cc (ios_base::xalloc): Same.
3328         * src/ios_init.cc (ios_base::Init::Init): Same.
3329         (ios_base::Init::~Init): Same.
3330         * src/locale.cc (locale::id::_M_id): Same.
3331         * config/cpu/i486/atomicity.h: Use __gnu_cxx namespace. Remove
3332         static, and inline keywords.
3333         * config/cpu/alpha/atomicity.h: Same.
3334         * config/cpu/cris/atomicity.h: Same.
3335         * config/cpu/generic/atomicity.h: Same.
3336         * config/cpu/hppa/atomicity.h: Same.
3337         * config/cpu/i386/atomicity.h: Same.
3338         * config/cpu/ia64/atomicity.h: Same.
3339         * config/cpu/m68k/atomicity.h: Same.
3340         * config/cpu/mips/atomicity.h: Same.
3341         * config/cpu/powerpc/atomicity.h: Same.
3342         * config/cpu/s390/atomicity.h: Same.
3343         * config/cpu/sparc/atomicity.h: Same.
3344
3345         * src/Makefile.am (host_sources): Add atomicity.cc.
3346         (atomicity.cc): New rule.
3347         * src/Makefile.in: Regenerate.
3348         * include/Makefile.am (host_headers): Remove host atomicity.h.
3349         (host_headers): Add atomic_word.h.
3350         (bits_headers): Add bits atomicity.h.
3351         Change ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR.
3352         * include/Makefile.in: Regenerate.
3353         * configure.host (atomic_word_dir): Add.
3354         * configure.ac: Substitute ATOMIC_WORD_SRCDIR. Change
3355         ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR.
3356         * configure: Regenerate.
3357         * config/linker-map.gnu: Export __exchange_and_add, and __atomic_add.
3358
3359         * testsuite/27_io/ios_base/cons/assign_neg.cc: Adjust line numbers.
3360         * testsuite/27_io/ios_base/cons/copy_neg.cc: Same.
3361
3362 2004-02-25  Jonathan Wakely  <redi@gcc.gnu.org>
3363
3364         * docs/html/20_util/howto.html, docs/html/20_util/allocator.html,
3365         docs/html/ext/howto.html, docs/html/ext/mt_allocator.html:
3366         Fix markup, more <link> tags.
3367
3368 2004-02-25  Carlo Wood  <carlo@alinoe.com>
3369
3370         * bits/demangle.h
3371         namespace __gnu_cxx::demangler
3372         (session<Allocator>::qualifier_list_Allocator): Add
3373         (session<Allocator>::M_qualifier_list_alloc): Add
3374         (session<Allocator>::decode_type_with_postfix):
3375         Use M_qualifier_list_alloc instead of calling operator new/delete.
3376
3377 2004-02-24  Paolo Carlini  <pcarlini@suse.de>
3378
3379         PR libstdc++/14252
3380         * include/bits/postypes.h (class streamoff): Add operator++(),
3381         operator++(int), operator--() and operator--(int).
3382         * testsuite/27_io/fpos/14252.cc: New.
3383
3384 2004-02-24  Richard Sandiford  <rsandifo@redhat.com>
3385
3386         * include/bits/locale_facets.tcc (num_get::_M_extract_int): Fix bounds
3387         error in handling of hex constants.
3388
3389 2004-02-24  Paolo Carlini  <pcarlini@suse.de>
3390
3391         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
3392         Prefer basic_string::append to operator+= and a temporary.
3393
3394 2004-02-23  Benjamin Kosnik  <bkoz@redhat.com>
3395
3396         * libsupc++/vterminate.cc (__gnu_cxx::__verbose_terminate_handler):
3397         Only use fputs, not write.
3398
3399 2004-02-23  Benjamin Kosnik  <bkoz@redhat.com>
3400
3401         * include/ext/malloc_allocator.h: Add operators ==, !=.
3402         * include/ext/new_allocator.h: Add operators ==, !=.
3403         * include/ext/mt_allocator.h (__mt_alloc::tune): New.
3404         (__mt_alloc::_S_get_options): New.
3405         (__mt_alloc::_S_set_options): New.
3406         (__mt_alloc::_S_thread_key_destr): To _S_destroy_thread_key.
3407         (__mt_alloc::_S_no_of_bins): To _S_bin_size.
3408         Move functions out of line, simplify, format.
3409         * src/allocator.cc: Simplify explicit instantiations.
3410         * include/bits/allocator.h: Tweak.
3411
3412 2004-02-22  Paolo Carlini  <pcarlini@suse.de>
3413
3414         * include/bits/locale_facets.tcc (money_put<>::_M_insert):
3415         Restructure formatting of value component, first dealing with
3416         the non-decimal digits; use reserve.
3417
3418 2004-02-22  Paolo Carlini  <pcarlini@suse.de>
3419
3420         * include/bits/locale_facets.h (class money_get): Inherit
3421         from money_base too; tweak declaration of _M_extract, now
3422         parameterized on _Intl too.
3423         * include/bits/locale_facets.tcc (money_get<>::_M_extract):
3424         Update definition to use the cache; call reserve on __res to
3425         avoid multiple reallocations; fix parsing of sign component
3426         according to 22.2.6.1.2, p3.
3427         (money_get<>::do_get(long double&),
3428         money_get<>::do_get(string_type&)): Update calls of _M_extract.
3429         * src/locale-inst.cc:  Add instantiations of
3430         money_get::_M_extract<false> and money_get::_M_extract<true>.
3431         * testsuite/22_locale/money_get/get/char/14.cc: New.
3432         * testsuite/22_locale/money_get/get/wchar_t/14.cc: Ditto.
3433
3434 2004-02-21  Mark Mitchell  <mark@codesourcery.com>
3435
3436         * libsupc++/vterminate.cc
3437         (__gnu_cxx::__verbose_terminate_handler): Guard against recursive
3438         calls to terminate.
3439         * src/demangle.cc (__cxa_demangle): Wrap in try-catch block.
3440
3441         * testsuite/testsuite_hooks.cc (__gnu_test::set_memory_limits): Do
3442         not set RLIMIT_AS on HP-UX.
3443
3444 2004-02-21  Mark Mitchell  <mark@codesourcery.com>
3445
3446         * testsuite/testsuite_hooks.cc (__gnu_test::set_memory_limits): Do
3447         not set RLIMIT_AS on HP-UX.
3448
3449 2004-02-21  Paolo Carlini  <pcarlini@suse.de>
3450
3451         * include/bits/locale_facets.h (class money_base): Add { _S_minus,
3452         _S_zero, _S_end } enum, _S_atoms.
3453         (struct __moneypunct_cache<>): Parameterize on _Intl too; add
3454         _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size,
3455         _M_negative_sign_size, _M_atoms; tweak constructor consistently.
3456         (__moneypunct_cache<>::~__moneypunct_cache): Update.
3457         (__moneypunct_cache<>::_M_cache): Fill the cache.
3458         (class moneypunct): Tweak __cache_type typedef.
3459         (class money_put): Inherit from money_base too; tweak declaration
3460         of _M_insert, now parameterized on _Intl.
3461         * include/bits/locale_facets.tcc
3462         (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New.
3463         (money_put<>::_M_insert): Update definition to use the cache;
3464         call reserve on __res to avoid multiple reallocations.
3465         (money_put<>::do_put(long double),
3466         money_put<>::do_put(const string_type&): Update calls of _M_insert.
3467         * config/locale/generic/monetary_members.cc
3468         (moneypunct<char, true>::_M_initialize_moneypunct,
3469         moneypunct<char, false>::_M_initialize_moneypunct,
3470         moneypunct<wchar_t, true>::_M_initialize_moneypunct,
3471         moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update.
3472         * config/locale/gnu/monetary_members.cc: Likewise.
3473         * config/locale/gnu/monetary_members.cc
3474         (moneypunct<wchar_t, true>::~moneypunct(),
3475         moneypunct<wchar_t, false>::~moneypunct()): Likewise.
3476         * src/globals_locale.cc: Tweak fake_money_cache_c.
3477         * src/locale-inst.cc: Add instantiations for
3478         money_put::_M_insert<false> and money_put::_M_insert<true> and
3479         __moneypunct_cache<C, false>, __moneypunct_cache<C, true>.
3480         * src/locale_facets.cc: Define money_base::_S_atoms.
3481         * src/locale_init.cc: Update placement new of
3482         __moneypunct_cache<char, false>, __moneypunct_cache<char, true>,
3483         __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>.
3484
3485         * config/locale/generic/numeric_members.cc: Clean up.
3486         * config/locale/gnu/numeric_members.cc: Likewise.
3487         * testsuite/22_locale/money_put/put/char/1.cc: Likewise.
3488         * testsuite/22_locale/money_put/put/char/2.cc: Likewise.
3489         * testsuite/22_locale/money_put/put/char/3.cc: Likewise.
3490         * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise.
3491         * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise.
3492         * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise.
3493
3494 2004-02-20  Mark Mitchell  <mark@codesourcery.com>
3495
3496         * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc: Open
3497         FIFO for writing with ios_base::in|ios_base::out.
3498         * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise.
3499         * testsuite/27_io/objects/char/7.cc: Likewise.
3500         * testsuite/27_io/objects/char/9661-1.cc: Open FIFO for writing
3501         with "r+".
3502
3503 2004-02-19  David Edelsohn  <edelsohn@gnu.org>
3504
3505         * 22_locale/collate/compare/wchar_t/2.cc: Change input-charset
3506         from iso-8859-1 to ISO8859-1.
3507         * 22_locale/collate/compare/wchar_t/wrapped_env.cc: Same.
3508         * 22_locale/collate/compare/wchar_t/wrapped_locale.cc: Same.
3509         * 22_locale/collate/hash/wchar_t/2.cc: Same.
3510         * 22_locale/collate/hash/wchar_t/wrapped_env.cc: Same.
3511         * 22_locale/collate/hash/wchar_t/wrapped_locale.cc: Same.
3512         * 22_locale/collate/transform/wchar_t/2.cc: Same.
3513         * 22_locale/collate/transform/wchar_t/wrapped_env.cc: Same.
3514         * 22_locale/collate/transform/wchar_t/wrapped_locale.cc: Same.
3515
3516 2004-02-18  Paolo Carlini  <pcarlini@suse.de>
3517
3518         * include/bits/locale_facets.h (money_get<>::_M_extract):
3519         New, helper for do_get.
3520         (money_put<>::_M_insert): Likewise, for do_put.
3521         * include/bits/locale_facets.tcc (money_get<>::_M_extract,
3522         money_put<>::_M_insert): Define.
3523         (money_get<>::do_get(long double&), money_get<>::do_get(
3524         string_type&), money_put::do_put(long double),
3525         money_put::do_put(const string_type&)): Use the helpers.
3526
3527 2004-02-18  Paolo Carlini  <pcarlini@suse.de>
3528
3529         * config/io/basic_file_stdio.cc (__gnu_internal::xwritev):
3530         Rewrite, avoiding recursion.
3531         (__gnu_internal::xwrite): Minor tweaks.
3532
3533 2004-02-17  Stefan Olsson  <stefan@xapa.se>
3534
3535         * include/ext/mt_allocator.h: Removed the last
3536         pointer. Deallocated blocks are now added to the front of
3537         freelists as proposed by Felix Yen.  This gives roughly 10%
3538         performance boost and saves some memory.
3539         * docs/html/ext/mt_allocator.html: Change due to that deallocated
3540         blocks now are added to the front of freelists. The reason to this
3541         approach is also explained.
3542
3543 2004-02-17  Paolo Carlini  <pcarlini@suse.de>
3544
3545         * include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
3546         num_get<>::_M_extract_int, money_get<>::do_get): Simplify
3547         grouping fidelity conditional.
3548
3549 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
3550
3551         * testsuite/27_io/basic_filebuf/overflow/char/13858.cc:
3552         Qualify exception with std::.
3553         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Ditto.
3554         * testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc: Ditto.
3555         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
3556         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
3557         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
3558
3559 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
3560
3561         * testsuite/ext/enc_filebuf/char/13189.cc: Don't check
3562         for now that the catch block is not reached.
3563         * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Likewise.
3564
3565 2004-02-16  Paolo Carlini  <pcarlini@suse.de>
3566
3567         * include/bits/locale_facets.tcc (money_get::do_get(string_type&)):
3568         Fix parsing of the remaining sign characters.
3569         * 22_locale/money_get/get/char/2.cc: Tweak: now, correctly,
3570         the input is scanned 'til eof.
3571         * 22_locale/money_get/get/char/4.cc: Likewise.
3572         * 22_locale/money_get/get/wchar_t/2.cc: Likewise.
3573         * 22_locale/money_get/get/wchar_t/4.cc: Likewise.
3574         * 22_locale/money_get/get/char/8.cc: Tweak: override do_neg_format,
3575         not do_pos_format: the former is the only one that matters during
3576         input.
3577         * 22_locale/money_get/get/wchar_t/8.cc: Likewise.
3578
3579         * 22_locale/money_get/get/char/6.cc: Minor tweak.
3580         * 22_locale/money_get/get/wchar_t/6.cc: Likewise.
3581
3582 2004-02-15  David Asher  <david.asher@cavium.com>
3583
3584         PR libstdc++/11352
3585         * include/bits/locale_facets.tcc (__pad<>::_S_pad): Don't
3586         access __olds beyond __oldlen.
3587
3588 2004-02-14  Paolo Carlini  <pcarlini@suse.de>
3589
3590         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Make
3591         sure the exception is actually thrown.
3592         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
3593         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
3594         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
3595
3596 2004-02-14  Paolo Carlini  <pcarlini@suse.de>
3597
3598         PR libstdc++/13858
3599         * include/bits/fstream.tcc (basic_filebuf<>::_M_convert_to_external):
3600         In case of conversion errors, throw ios_failure; simplify.
3601         * testsuite/27_io/basic_filebuf/overflow/char/13858.cc: New.
3602         * testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc: Ditto.
3603         * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Tweak,
3604         previously we didn't throw in case of conversion errors, instead
3605         just returned eof().
3606         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto.
3607         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto.
3608         * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto.
3609
3610         * include/bits/fstream.tcc (basic_filebuf<>::overflow):
3611         Trivial simplification of a conditional.
3612
3613 2004-02-12  Paolo Carlini  <pcarlini@suse.de>
3614
3615         PR libstdc++/13731 (final part: writev)
3616         * config/io/basic_file_stdio.cc (__gnu_internal::xwritev):
3617         New, a wrapper around writev() handling partial writes.
3618         (__basic_file<char>::xwrite): Move to __gnu_internal and make
3619         static.
3620         (__basic_file<char>::xsputn): Update call.
3621         (__basic_file<char>::xsputn_2): Likewise.
3622         * config/io/basic_file_stdio.h (__basic_file<char>::xwrite):
3623         Don't declare, now static.
3624
3625 2004-02-11  Stefan Olsson  <stefan@xapa.se>
3626
3627         * docs/html/ext/mt_allocator.html: New.
3628
3629 2004-02-11  Benjamin Kosnik  <bkoz@redhat.com>
3630
3631         * docs/html/20_util/allocator.html: New file, consolidate
3632         allocator information here. Revamp.
3633         * docs/html/documentation.html: Change links.
3634         * docs/html/20_util/howto.html: Same.
3635         * docs/html/ext/howto.html: Same.
3636
3637 2004-02-11  Paolo Carlini  <pcarlini@suse.de>
3638
3639         PR libstdc++/13731 (first part: write)
3640         * config/io/basic_file_stdio.h (__basic_file<char>::xwrite):
3641         New, declare.
3642         * config/io/basic_file_stdio.cc (__basic_file<char>::xwrite):
3643         Define it: a wrapper around write() handling partial write.
3644         (__basic_file<char>::xsputn): Use it.
3645         (__basic_file<char>::xsputn_2): Likewise.
3646
3647 2004-02-11  Paolo Carlini  <pcarlini@suse.de>
3648             Petur Runolfsson  <peturr02@ru.is>
3649
3650         PR libstdc++/14078
3651         * include/std/std_istream.h (operator>>(__istream_type& (*)
3652         (__istream_type&)), operator>>(__ios_type& (*)(__ios_type&)),
3653         operator>>(ios_base& (*)(ios_base&))): Declare inline.
3654         * include/std/std_ostream.h (operator<<(__ostream_type& (*)
3655         (__ostream_type&)), operator<<(__ios_type& (*)(__ios_type&)),
3656         operator<<(ios_base& (*) (ios_base&))): Likewise.
3657         * testsuite/performance/27_io/fmtflags_manipulators.cc: New.
3658
3659 2004-02-10  Loren J. Rittle  <ljrittle@acm.org>
3660
3661         PR libstdc++/14098
3662         * config/linker-map.gnu: Add typeinfo and typeinfo name for
3663         __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> >.
3664
3665         PR libstdc++/14097
3666         * config/linker-map.gnu: Add typeinfo and typeinfo name for
3667         __gnu_cxx::stdio_filebuf<char, std::char_traits<char> >.
3668
3669 2004-02-09  Loren J. Rittle  <ljrittle@acm.org>
3670
3671         * include/ext/pool_allocator.h: Include c++config.h.
3672
3673 2004-02-09  Stefan Olsson  <stefan@xapa.se>
3674
3675         * include/ext/mt_allocator.h: thread_id is unused in non threaded
3676         applications and now has a ifdef to remove it completely on
3677         compilers without thread support. Include stdlib.h due to a
3678         compiler warning on getenv().
3679
3680 2004-02-09  Paul Brook  <paul@codesourcery.com>
3681
3682         * libstdc++-v3/configure.host: Explicitly check for atomicity.h file.
3683
3684 2004-02-09  Paolo Carlini  <pcarlini@suse.de>
3685
3686         PR libstdc++/14071
3687         * src/locale_init.cc (locale::global(const locale&)): Use
3688         locale::name() in order to decide whether calling setlocale.
3689         * testsuite/22_locale/locale/global_locale_objects/14071.cc: New.
3690
3691         * include/bits/locale_classes.h (locale::_Impl::_M_check_same_name()):
3692         Avoid computing &= unnecessarily.
3693
3694 2004-02-09  James E Wilson  <wilson@specifixinc.com>
3695
3696         PR libstdc++/5625
3697         * libsuspc++/eh_personality.cc (PERSONALITY_FUNCTION): Use
3698         __builtin_extend_pointer.
3699
3700 2004-02-09  Paolo Carlini  <pcarlini@suse.de>
3701
3702         PR libstdc++/14072
3703         * include/bits/basic_ios.tcc (basic_ios<>::_M_cache_locale):
3704         Don't leave dangling pointers.
3705         * testsuite/27_io/basic_ios/imbue/14072.cc: New.
3706         * testsuite/22_locale/numpunct/members/pod/2.cc: Tweak, the num_put
3707         facet is needed in the final test.
3708
3709 2004-02-09  Bernardo Innocenti  <bernie@develer.com>
3710
3711         * crossconfig.m4: Don't enable _GLIBCXX_USE_LFS on *-uclinux*.
3712         * configure: Regenerate.
3713
3714 2004-02-08  Richard Henderson  <rth@redhat.com>
3715
3716         PR libstdc++/14026
3717         * libsupc++/eh_catch.cc (__cxa_begin_catch): Don't adjust
3718         uncaughtExceptions during nested catch rethrow.
3719         * testsuite/18_support/14026.cc: New.
3720
3721 2004-02-08  Paolo Carlini  <pcarlini@suse.de>
3722
3723         * include/bits/basic_string.tcc (assign(const _CharT*, size_type)):
3724         When working in place remember to set the state to sharable
3725         (otherwise, _M_mutate does it).
3726
3727 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
3728
3729         * include/bits/allocator.h, include/bits/basic_ios.h,
3730         include/bits/basic_ios.tcc, include/bits/basic_string.h,
3731         include/bits/basic_string.tcc, include/bits/boost_concept_check.h,
3732         include/bits/char_traits.h, include/bits/codecvt.h,
3733         include/bits/concurrence.h, include/bits/cpp_type_traits.h,
3734         include/bits/demangle.h, include/bits/deque.tcc,
3735         include/bits/fstream.tcc, include/bits/functexcept.h,
3736         include/bits/gslice.h, include/bits/gslice_array.h,
3737         include/bits/indirect_array.h, include/bits/ios_base.h,
3738         include/bits/istream.tcc, include/bits/list.tcc,
3739         include/bits/locale_classes.h, include/bits/locale_facets.h,
3740         include/bits/locale_facets.tcc, include/bits/localefwd.h,
3741         include/bits/mask_array.h, include/bits/ostream.tcc,
3742         include/bits/postypes.h, include/bits/slice_array.h,
3743         include/bits/sstream.tcc, include/bits/stl_algo.h,
3744         include/bits/stl_algobase.h, include/bits/stl_bvector.h,
3745         include/bits/stl_construct.h, include/bits/stl_deque.h,
3746         include/bits/stl_function.h, include/bits/stl_heap.h,
3747         include/bits/stl_iterator.h, include/bits/stl_iterator_base_funcs.h,
3748         include/bits/stl_list.h, include/bits/stl_map.h,
3749         include/bits/stl_multimap.h, include/bits/stl_multiset.h,
3750         include/bits/stl_numeric.h, include/bits/stl_pair.h,
3751         include/bits/stl_queue.h, include/bits/stl_raw_storage_iter.h,
3752         include/bits/stl_relops.h, include/bits/stl_set.h,
3753         include/bits/stl_stack.h, include/bits/stl_tempbuf.h,
3754         include/bits/stl_threads.h, include/bits/stl_tree.h,
3755         include/bits/stl_uninitialized.h, include/bits/stl_vector.h,
3756         include/bits/stream_iterator.h, include/bits/streambuf.tcc,
3757         include/bits/streambuf_iterator.h,include/bits/stringfwd.h,
3758         include/bits/type_traits.h, include/bits/valarray_after.h,
3759         include/bits/valarray_array.h, include/bits/valarray_array.tcc,
3760         include/bits/valarray_before.h, include/bits/vector.tcc: Remove
3761         trailing whitespace.
3762
3763 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
3764
3765         * include/bits/basic_string.h: Fix comment.
3766
3767 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
3768
3769         * include/bits/stl_construct.h: Wrap overlong lines, reformat
3770         according to the coding standards.
3771         * include/bits/stl_pair.h: Likewise.
3772         * include/bits/stl_raw_storage_iter.h: Likewise.
3773         * include/bits/stl_stack.h: Likewise.
3774         * include/bits/stl_uninitialized.h: Likewise.
3775         * include/bits/stream_iterator.h: Likewise.
3776         * include/bits/streambuf_iterator.h: Likewise.
3777         * include/bits/type_traits.h: Likewise.
3778
3779 2004-02-06  Paolo Carlini  <pcarlini@suse.de>
3780
3781         * testsuite/27_io/basic_filebuf/open/char/9507.cc:
3782         Adjust timings.
3783
3784 2004-02-05  Loren J. Rittle  <ljrittle@acm.org>
3785
3786         * scripts/check_performance: Support PCH.
3787
3788         * scripts/check_performance (CXX): Add -DNOTHREAD.
3789         * testsuite/performance/20_util/allocator/insert.cc: Integrate
3790         threaded tests from insert_insert.cc.  Tweak iterations,
3791         remove special cases.
3792         * testsuite/performance/20_util/allocator/insert_insert.cc:
3793         Make all tests single-threaded. Tweak iterations.
3794         * testsuite/performance/20_util/allocator/map_thread.cc:
3795         Tweak iterations.
3796         * testsuite/performance/20_util/allocator/producer_consumer.cc:
3797         Likewise.
3798
3799 2004-02-05  Geoffrey Keating  <geoffk@apple.com>
3800
3801         PR 12179
3802         * .cvsignore: New.
3803         * acinclude.m4 (GLIBCXX_EXPORT_INSTALL_INFO): Use 'gcc', not
3804         'gcc-lib'.  Add comment about poorly-named variables.
3805         * aclocal.m4: Regenerate.
3806         * configure: Regenerate.
3807
3808 2004-02-05  Paolo Carlini  <pcarlini@suse.de>
3809
3810         * include/bits/locale_facets.tcc (money_get::do_get(string_type&)):
3811         Thousands-sep are always optional; thousands-sep are not allowed
3812         after the decimal_point.
3813         * testsuite/22_locale/money_get/get/char/12.cc: New.
3814         * testsuite/22_locale/money_get/get/char/13.cc: New.
3815         * testsuite/22_locale/money_get/get/wchar_t/12.cc: New.
3816         * testsuite/22_locale/money_get/get/wchar_t/13.cc: New.
3817
3818         * testsuite/22_locale/money_get/get/char/1.cc: Clean-up.
3819         * testsuite/22_locale/money_get/get/char/2.cc: Likewise.
3820         * testsuite/22_locale/money_get/get/char/3.cc: Likewise.
3821         * testsuite/22_locale/money_get/get/char/4.cc: Likewise.
3822         * testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise.
3823         * testsuite/22_locale/money_get/get/wchar_t/2.cc: Likewise.
3824         * testsuite/22_locale/money_get/get/wchar_t/3.cc: Likewise.
3825         * testsuite/22_locale/money_get/get/wchar_t/4.cc: Likewise.
3826
3827         * testsuite/22_locale/money_get/get/char/9.cc: Fix citation from
3828         the standard.
3829         * testsuite/22_locale/money_get/get/wchar_t/9.cc: Likewise.
3830
3831 2004-02-05  Richard Sandiford  <rsandifo@redhat.com>
3832
3833         * config/os/irix/irix6.5/os_defines.h (_GLIBCXX_FIONREAD_TAKES_OFF_T):
3834         Define.
3835         * config/io/basic_file_stdio.cc (__basic_file<char>::showmanyc): Use
3836         it to decide whether FIONREAD should take an off_t or int argument.
3837
3838 2004-02-05  Paolo Carlini  <pcarlini@suse.de>
3839
3840         * include/bits/stl_function.h: Minor formatting changes.
3841
3842 2004-02-04  Zack Weinberg  <zack@codesourcery.com>
3843
3844         Revert previous change to config/abi/*/baseline_symbols.txt.
3845
3846 2004-02-04  Benjamin Kosnik  <bkoz@redhat.com>
3847             Zack Weinberg  <zack@codesourcery.com>
3848
3849         * config/io/basic_file_stdio.cc (__gnu_internal::fopen_mode):
3850         New function.
3851         (__basic_file<char>::sys_open, __basic_file<char>::open): Use it.
3852         (__basic_file<char>::_M_open_mode): Delete.
3853         * config/io/basic_file_stdio.cc: Delete declaration of _M_open_mode.
3854
3855         * testsuite/27_io/basic_filebuf/close/char/9964.cc
3856         * testsuite/27_io/basic_filebuf/open/char/9507.cc:
3857         Correct flags to filebuf::open calls.
3858
3859         * config/abi/alpha-freebsd5/baseline_symbols.txt
3860         * config/abi/alpha-linux-gnu/baseline_symbols.txt
3861         * config/abi/hppa-linux-gnu/baseline_symbols.txt
3862         * config/abi/i386-freebsd4/baseline_symbols.txt
3863         * config/abi/i386-freebsd5/baseline_symbols.txt
3864         * config/abi/i486-linux-gnu/baseline_symbols.txt
3865         * config/abi/ia64-linux-gnu/baseline_symbols.txt
3866         * config/abi/mips-linux-gnu/baseline_symbols.txt
3867         * config/abi/sparc-freebsd5/baseline_symbols.txt
3868         * config/abi/sparc-linux-gnu/baseline_symbols.txt
3869         * config/abi/x86_64-linux-gnu/baseline_symbols.txt:
3870         Remove entry for __basic_file<char>::_M_open_mode.
3871
3872 2004-02-04  Loren J. Rittle  <ljrittle@acm.org>
3873
3874         * testsuite/performance/20_util/allocator/insert.cc (main): Tweak.
3875
3876 2004-02-04  Felix Yen  <fwy@alumni.brown.edu>
3877
3878         * testsuite/performance/20_util/producer_consumer.cc: New.
3879         * testsuite/performance/20_util/allocator/insert_insert.cc: Two loops.
3880
3881 2004-02-04  Benjamin Kosnik  <bkoz@redhat.com>
3882
3883         * testsuite/performance/20_util/allocator.cc: Move to..
3884         * testsuite/performance/20_util/allocator/insert.cc: ...here.
3885         * testsuite/performance/20_util/allocator_thread.cc: Move to...
3886         * testsuite/performance/20_util/allocator/insert_insert.cc: ...here.
3887         * testsuite/performance/20_util/allocator_map_thread.cc: Move to...
3888         * testsuite/performance/20_util/allocator/map_thread.cc: ...here.
3889
3890 2004-02-04  Jonathan Wakely  <redi@gcc.gnu.org>
3891
3892         * docs/html/faq/index.html: Recommend using LD_LIBRARY_PATH.
3893         * docs/html/faq/index.txt: Regenerate.
3894
3895 2004-02-04  Dhruv Matani  <dhruvbird@gmx.net>
3896
3897         * include/ext/debug_allocator.h: _M_extra now stands for the
3898         number of extra objects instead of the number of extra bytes.
3899         (debug_allocator::allocate): Adjust.
3900         (debug_allocator::deallocate): Adjust.
3901
3902         * include/ext/pool_allocator.h: Fix typo.
3903
3904 2004-02-03  Felix Yen  <fwy@alumni.brown.edu>
3905             Benjamin Kosnik  <bkoz@redhat.com>
3906
3907         * testsuite/performance/20_util/allocator.cc: Add map,
3908         deque, set tests.
3909         * testsuite/performance/20_util/allocator_thread.cc: Same.
3910
3911 2004-02-03  Paolo Carlini  <pcarlini@suse.de>
3912
3913         * include/bits/basic_string.h (insert(iterator)): Remove,
3914         non-standard and already scheduled for removal.
3915
3916 2004-02-03  Paolo Carlini  <pcarlini@suse.de>
3917
3918         * include/bits/stl_iterator_base_funcs.h: Minor formatting
3919         and indentation tweaks.
3920         * include/bits/stl_iterator_base_types.h: Likewise.
3921         * include/bits/stl_list.h: Likewise.
3922         * include/bits/stl_map.h: Likewise.
3923         * include/bits/stl_tempbuf.h: Likewise.
3924
3925 2004-02-02  Jerry Quinn  <jlquinn@optonline.net>
3926
3927         * include/bits/gslice.h, include/bits/gslice_array.h,
3928         include/bits/indirect_array.h, include/bits/mask_array.h,
3929         include/bits/slice_array.h, include/bits/stl_numeric.h,
3930         include/std/std_valarray.h:  Update copyright years.
3931
3932 2004-02-02  Jerry Quinn  <jlquinn@optonline.net>
3933
3934         * include/bits/gslice.h (gslice):  Document.
3935         * include/bits/gslice_array.h (gslice_array):  Document.
3936         * include/bits/indirect_array (indirect_array):  Document.
3937         * include/bits/mask_array (mask_array):  Document.
3938         * include/bits/slice_array.h (slice,slice_array):  Document.
3939         * include/bits/stl_numeric.h (accumulate, inner_product, partial_sum,
3940         adjacent_difference):  Document
3941         * include/std/std_valarray.h (valarray):  Document.
3942
3943 2004-02-02  Benjamin Kosnik  <bkoz@redhat.com>
3944
3945         * docs/html/19_diagnostics/howto.html: Move verbose terminate
3946         documentation...
3947         * docs/html/18_support/howto.html: Here.
3948         * docs/html/documentation.html: Add reference here.
3949
3950 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
3951
3952         * config/locale/gnu/c++locale_internal.h: Remove prototypes
3953         of no longer used GLIBC thread locale functions.
3954
3955 2004-02-02  Eric Christopher  <echristo@redhat.com>
3956             Zack Weinberg  <zack@codesourcery.com>
3957
3958         * testsuite/22_locale/collate/compare/wchar_t/2.cc: Remove xfail. Use
3959         -finput-charset.
3960         * testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc: Ditto.
3961         * testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc: Ditto
3962         * testsuite/22_locale/collate/hash/wchar_t/2.cc: Ditto.
3963         * testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc: Ditto.
3964         * testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc: Ditto.
3965         * testsuite/22_locale/collate/transform/wchar_t/2.cc: Ditto.
3966         * testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc: Ditto.
3967         * testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc:
3968         Ditto.
3969
3970 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
3971
3972         * include/bits/stl_function.h: Additional minor tweaks.
3973         * include/bits/stl_multiset.h: Likewise.
3974
3975         * include/bits/stl_queue.h: Minor tweaks.
3976
3977 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
3978
3979         PR libstdc++/13976 (continued)
3980         * include/ext/malloc_allocator.h (malloc_allocator::deallocate):
3981         Make the second parameter unnamed, to void unused parameter
3982         warnings.
3983         * include/ext/new_allocator.h (new_allocator::deallocate): Ditto.
3984
3985 2004-02-02  Paolo Carlini  <pcarlini@suse.de>
3986
3987         PR libstdc++/13976
3988         * include/ext/malloc_allocator.h (malloc_allocator::allocate):
3989         Make the second parameter unnamed, to void unused parameter
3990         warnings.
3991         * include/ext/mt_allocator.h (__mt_alloc::allocate): Ditto.
3992         * include/ext/new_allocator.h (new_allocator::allocate): Ditto.
3993
3994 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
3995
3996         * include/bits/stl_algo.h: Additional minor tweaks.
3997         * include/bits/stl_map.h: Likewise.
3998         * include/bits/stl_multimap.h: Likewise.
3999         * include/bits/stl_multiset.h: Likewise.
4000         * include/bits/stl_set.h: Likewise.
4001         * include/bits/stl_tree.h: Likewise.
4002
4003 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
4004
4005         * include/bits/vector.tcc (vector::_M_insert_aux(iterator)):
4006         Remove, unused.
4007
4008 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
4009
4010         * include/bits/stl_function.h: Additional minor tweaks.
4011
4012 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
4013
4014         * include/bits/deque.tcc: Wrap overlong lines, constify
4015         a few variables, reformat according to the coding standards.
4016         * include/bits/list.tcc: Likewise.
4017         * include/bits/stl_deque.h: Likewise.
4018         * include/bits/stl_function.h: Likewise.
4019         * include/bits/stl_iterator.h: Likewise.
4020         * include/bits/stl_iterator_base_funcs.h: Likewise.
4021         * include/bits/stl_iterator_base_types.h: Likewise.
4022         * include/bits/stl_list.h: Likewise.
4023         * include/bits/stl_map.h: Likewise.
4024         * include/bits/stl_multimap.h: Likewise.
4025         * include/bits/stl_multiset.h: Likewise.
4026         * include/bits/stl_relops.h: Likewise.
4027         * include/bits/stl_set.h: Likewise.
4028
4029 2004-02-01  Paolo Carlini  <pcarlini@suse.de>
4030
4031         * include/bits/stl_bvector.h: Wrap overlong lines, constify
4032         a few variables, reformat according to the coding standards.
4033         * include/bits/stl_tree.h: Likewise.
4034
4035 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
4036
4037         * include/bits/stl_algo.h: Minor additional reformat, add
4038         copyright year.
4039         * include/bits/stl_algobase.h: Add copyright year.
4040
4041 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
4042
4043         * include/bits/stl_algo.h: Wrap overlong lines, constify
4044         a few variables, reformat according to the coding standards.
4045         * include/bits/stl_algobase.h: Likewise.
4046         * include/bits/stl_heap.h: Likewise.
4047
4048 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
4049
4050         * include/bits/basic_string.h (_Rep::operator[]): Remove, unused.
4051
4052         * include/bits/basic_string.h: Fix two comments.
4053
4054 2004-01-31  Per Bothner  <per@bothner.com>
4055
4056         * include/ext/mt_allocator.h
4057         (__mt_alloc::_S_thread_freelist_mutex): Guard with
4058         __GTHREAD_MUTEX_INIT.
4059
4060 2004-01-31  Paolo Carlini  <pcarlini@suse.de>
4061
4062         * include/bits/basic_string.tcc (_Rep::_S_create): Minor tweak.
4063
4064 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
4065
4066         * testsuite/21_strings/basic_string/cons/char/6.cc: New.
4067         * testsuite/21_strings/basic_string/cons/wchar_t/6.cc: New.
4068         * testsuite/performance/21_strings/string_cons_input_iterator.cc: New.
4069
4070 2004-01-30  Felix Yen  <fwy@alumni.brown.edu>
4071
4072         * testsuite/performance/20_util/allocator_thread.cc (do_loop):
4073         Don't use clear, but instead assign. Use insert.
4074
4075 2004-01-30  Benjamin Kosnik  <bkoz@redhat.com>
4076
4077         * src/demangle.cc: Add instantiations.
4078         * src/Makefile.am: Remove special rules for demangle.lo, demangle.o.
4079         * src/Makefile.in: Regenerate.
4080
4081 2004-01-30  David Edelsohn  <edelsohn@gnu.org>
4082
4083         * src/allocator.cc: Protect _S_get_thread_id() and
4084         _S_thread_key_destr() with #ifdef __GTHREADS.
4085
4086 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
4087
4088         Reshuffle performance testsuite.
4089         * testsuite/performance/allocator.cc, allocator_map_thread.cc,
4090         allocator_thread.cc, complex_norm.cc, container_benchmark.cc,
4091         cout_insert_int.cc, filebuf_copy.cc, filebuf_sputc.cc,
4092         fstream_seek_write.cc, ifstream_extract_float.cc,
4093         ifstream_extract_int.cc, ifstream_getline.cc, is_wchar_t.cc,
4094         list_create_fill_sort.cc, map_create_fill.cc,
4095         narrow_widen_char.cc, narrow_widen_wchar_t.cc,
4096         ofstream_insert_float.cc, ofstream_insert_int.cc,
4097         string_append.cc, wchar_t_in.cc, wchar_t_length.cc,
4098         wchar_t_out.cc: Split into...
4099         * testsuite/performance/20_util/allocator.cc: New.
4100         * testsuite/performance/20_util/allocator_map_thread.cc: New.
4101         * testsuite/performance/20_util/allocator_thread.cc: New.
4102         * testsuite/performance/21_strings/string_append: New.
4103         * testsuite/performance/22_locale/is_wchar_t.cc: New.
4104         * testsuite/performance/22_locale/narrow_widen_char.cc: New.
4105         * testsuite/performance/22_locale/narrow_widen_wchar_t.cc: New.
4106         * testsuite/performance/22_locale/wchar_t_in.cc: New.
4107         * testsuite/performance/22_locale/wchar_t_length.cc: New.
4108         * testsuite/performance/22_locale/wchar_t_out.cc: New.
4109         * testsuite/performance/23_containers/container_benchmark.cc: New.
4110         * testsuite/performance/23_containers/list_create_fill_sort.cc: New.
4111         * testsuite/performance/23_containers/map_create_fill.cc: New.
4112         * testsuite/performance/26_numerics/complex_norm.cc: New.
4113         * testsuite/performance/27_io/cout_insert_int.cc: New.
4114         * testsuite/performance/27_io/filebuf_copy.cc: New.
4115         * testsuite/performance/27_io/filebuf_sputc.cc: New.
4116         * testsuite/performance/27_io/fstream_seek_write.cc: New.
4117         * testsuite/performance/27_io/ifstream_extract_float.cc: New.
4118         * testsuite/performance/27_io/ifstream_extract_int.cc: New.
4119         * testsuite/performance/27_io/ifstream_getline.cc: New.
4120         * testsuite/performance/27_io/ofstream_insert_float.cc: New.
4121         * testsuite/performance/27_io/ofstream_insert_int.cc: New.
4122
4123 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
4124
4125         * include/bits/basic_string.tcc (_Rep::_S_create):
4126         Never allocate a string bigger than max_size(); always keep
4127         __capacity and __size in sync to avoid memory leaks at
4128         deallocation time.
4129
4130 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
4131
4132         * include/bits/basic_string.tcc (_S_construct(_InIterator,
4133         _InIterator, const _Alloc&, input_iterator_tag)): Simplify
4134         the double loop, streamline.
4135
4136         * include/bits/basic_string.tcc: Very minor tweaks.
4137
4138 2004-01-30  Loren J. Rittle  <ljrittle@acm.org>
4139
4140         * scripts/check_performance: Only compile with $THREAD_FLAG
4141         when test is marked to require it.  Allow multiple
4142         compilations/executions of marked tests.
4143         * testsuite/testsuite_performance.h (report_performance):
4144         Report dynamic thread support status.
4145         (report_header): Likewise.
4146         * testsuite/performance/allocator.cc: Stabilize iteration
4147         count.  Support more allocators.  Mark each allocator test to
4148         run and report independently.
4149         * testsuite/performance/allocator_map_thread.cc: Likewise.
4150         * testsuite/performance/allocator_thread.cc: Likewise.
4151
4152 2004-01-29  Stephen M. Webb  <stephen.webb@bregmasoft.com>
4153
4154         * config/local/generic/c_locale.h: Change ::malloc() to new char[].
4155         * config/local/gnu/c_locale.h: Change ::malloc() to new char[].
4156         * include/bits/stl_tempbuf.h: Convert _Temporary_buffer to use
4157         std::get_temporary_buffer() instead of duplicating its code.
4158         Update to C++STYLE conventions.
4159         * include/std/std_memory.h (get_temporary_buffer): Use ::operator
4160         new() instead of std::malloc().
4161         (return_temporary_buffer): Use ::operator delete() instead of
4162         std::free().
4163
4164 2004-01-29  Benjamin Kosnik  <bkoz@redhat.com>
4165
4166         * include/bits/allocator.h: Temporary switch to new_allocator as
4167         the default to unjam bootstraps.
4168
4169 2004-01-28  Benjamin Kosnik  <bkoz@redhat.com>
4170
4171         * include/Makefile.am (bits_headers): Remove allocator_traits.h.
4172         * include/Makefile.in: Regenerate.
4173         * include/bits/allocator_traits.h: Remove.
4174         * include/bits/allocator.h: Remove allocator_traits.h include, and
4175         relevant comments.
4176         (allocator): Empty base class, inherit from the underlying allocator.
4177         * src/allocator-inst.cc: Move __pool_alloc instantiation to...
4178         * src/allocator.cc: ...here. New. For the underlying allocators.
4179         Add __mt_alloc, __pool_alloc, new_allocator, malloc_allocator bits.
4180         * config/linker-map.gnu: Remove __pool_alloc bits.
4181         * src/Makefile.am (sources): Add allocator.cc.
4182         * src/Makefile.in: Regenerate.
4183         * testsuite/20_util/allocator/1.cc: Split second test into...
4184         * testsuite/20_util/allocator/8230.cc: ...this.
4185         * include/bits/stl_bvector.h (__gnu_norm): Change bit_vector
4186         typedef to use std::allocatore. Format.
4187         * include/ext/pool_allocator.h: Remove allocator_traits.h include,
4188         _Alloc_traits.
4189         * include/ext/mt_allocator.h (__gnu_cxx): Qualify
4190         __throw_bad_alloc calls. Don't include <memory>.
4191         * include/ext/malloc_allocator.h: Remove <memory> include.
4192         * include/ext/new_allocator.h (new_allocator): Same.
4193         * include/ext/ropeimpl.h (__gnu_cxx): Remove __alloc using
4194         declaration. Switch __alloc to _Alloc.
4195         * include/ext/hashtable.h: Remove __alloc.
4196         * include/backward/alloc.h: Only inject allocator, not
4197         implementation details.
4198
4199         * include/ext/mt_allocator.h: Replace free with delete.
4200
4201 2004-01-28  Benjamin Kosnik  <bkoz@redhat.com>
4202
4203         * src/globals_io.cc: Change to __gnu_internal namespace.
4204         * src/globals_locale.cc: Same.
4205         * src/locale_init.cc: Same.
4206         * src/ios_init.cc: Same.
4207
4208 2004-01-28  Stefan Olsson  <stefan@snon.net>
4209
4210         * include/ext/mt_allocator.h: Replaced all malloc() calls with
4211         operator new(). Added support for the env variable
4212         GLIBCXX_FORCE_NEW (this required the _S_init call to be the first
4213         one in allocate() as well). Fix typos.
4214
4215 2004-01-28  Paolo Carlini  <pcarlini@suse.de>
4216
4217         * include/bits/basic_string.h (_S_create(size_t,
4218         const _Alloc&): Change signature to take two size_type
4219         arguments.
4220         * include/bits/basic_string.tcc (_S_construct(_InIterator,
4221         _InIterator, const _Alloc&, input_iterator_tag)): Update
4222         call, tweak a bit.
4223         (_S_construct(_InIterator, _InIterator, const _Alloc&,
4224         forward_iterator_tag)): Likewise.
4225         (_S_construct(size_type, _CharT, const _Alloc&)): Likewise.
4226         (_M_mutate(size_type, size_type, size_type)): Don't
4227         implement the exponential growth policy, demand it to
4228         _S_create, update call and simplify.
4229         (_M_clone(const _Alloc&, size_type)): Likewise.
4230         (_S_create(size_type, size_type, const _Alloc&)): Implement
4231         the growth policy, simplify otherwise.
4232
4233         * include/bits/basic_string.h (_Rep::operator[]): Tweak
4234         signature to take a size_type, consistently with the other
4235         members.
4236
4237 2004-01-27  Benjamin Kosnik  <bkoz@redhat.com>
4238
4239         * testsuite/27_io/ios_base/storage/11584.cc: Correct new and
4240         delete declarations, add include and test variable.
4241
4242 2003-01-27  Jerry Quinn  <jlquinn@optonline.net>
4243
4244         * include/bits/codecvt.h, include/bits/locale_facets.h,
4245         include/bits/postypes.h, include/bits/stl_bvector.h,
4246         include/bits/stl_multiset.h, include/bits/stl_set.h,
4247         include/bits/stream_iterator.h, include/bits/streambuf_iterator.h,
4248         include/std/std_complex.h:  Document.
4249
4250 2004-01-27  Jerry Quinn  <jlquinn@optonline.net>
4251
4252         PR libstdc++/11584
4253         * include/bits/ios_base.h (ios_base::_M_grow_words):  Add
4254         iword/pword selector.
4255         (ios_base::iword, ios_base::pword):  Use it.
4256         * src/ios.cc (ios_base::_M_grow_words):  Clear _M_word_zero
4257         iword or pword member on alloc failure.
4258         * testsuite/27_io/ios_base/storage/11584.cc:  New test.
4259
4260 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
4261             PJ Darcy  <darcypj@us.ibm.com>
4262
4263         * configure.host: Add support for *-tpf.
4264         * crossconfig.m4: Likewise.
4265         * configure: Regenerate.
4266         * config/os/tpf: New directory.
4267         * config/os/tpf/os_defines.h: New file.
4268         * config/os/tpf/ctype_base.h: Likewise.
4269         * config/os/tpf/ctype_inline.h: Likewise.
4270         * config/os/tpf/ctype_noninline.h: Likewise.
4271
4272 2004-01-27  Paolo Carlini  <pcarlini@suse.de>
4273
4274         PR libstdc++/13884
4275         * include/bits/sstream.tcc: Guard use of extern template.
4276
4277 2004-01-27  Paolo Carlini  <pcarlini@suse.de>
4278
4279         * include/bits/basic_string.tcc
4280         (basic_string(const basic_string&, size_type, size_type),
4281         basic_string(const basic_string&, size_type, size_type,
4282         const _Alloc&)): Avoid unnecessarily constructing iterators.
4283
4284 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
4285
4286         * config/locale/generic/c_locale.cc: Fix throw messages
4287         to use the __N marker.
4288         * config/locale/gnu/c_locale.cc: Likewise.
4289         * config/locale/ieee_1003.1-2001/codecvt_specializations.h:
4290         Likewise.
4291         * docs/html/17_intro/C++STYLE: Likewise.
4292         * include/bits/basic_ios.tcc: Likewise.
4293         * include/bits/fstream.tcc: Likewise.
4294         * include/bits/vector.tcc: Likewise.
4295         * include/ext/ropeimpl.h: Likewise.
4296         * include/std/std_bitset.h: Likewise.
4297         * src/ios.cc: Likewise.
4298         * src/locale.cc: Likewise.
4299         * src/localename.cc: Likewise.
4300
4301 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
4302
4303         * include/bits/basic_string.h (_M_replace_aux): Use the
4304         __N marker in throw message.
4305         * include/bits/basic_string.tcc (assign(const _CharT*,
4306         size_type), insert(size_type, const _CharT*, size_type),
4307         replace(size_type, size_type, const _CharT*, size_type),
4308         reserve, _Rep::_S_create, resize, _M_replace_dispatch):
4309         Likewise.
4310
4311         * include/bits/basic_string.h, include/bits/basic_string.tcc:
4312         Fold overlong lines, minor formatting changes.
4313
4314 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
4315
4316         * include/bits/basic_string.h (replace(iterator, iterator,
4317         const basic_string&)): Remove _GLIBCXX_DEBUG_PEDASSERT.
4318         (replace(iterator, iterator, const _CharT*)): Ditto.
4319         (replace(iterator, iterator, const _CharT*, size_type)):
4320         Add missing _GLIBCXX_DEBUG_PEDASSERT.
4321
4322 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
4323
4324         * include/bits/basic_string.tcc (replace(size_type,
4325         size_type, const _CharT*, size_type)): Implement optimized
4326         in-place algorithm for non-overlapping ranges.
4327         * testsuite/21_strings/basic_string/replace/char/6.cc: New.
4328         * testsuite/21_strings/basic_string/replace/wchar_t/6.cc: New.
4329
4330         * include/bits/basic_string.tcc (insert(size_type,
4331         const _CharT*, size_type)): Tweak slightly.
4332
4333 2004-01-26  Andreas Schwab  <schwab@suse.de>
4334
4335         * config/locale/gnu/monetary_members.cc: Restore locale before
4336         rethrowing exception.
4337
4338 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
4339
4340         * include/bits/basic_string.h (_M_replace_aux, _M_replace_safe):
4341         Define inline here.
4342         * include/bits/basic_string.tcc (_M_replace_aux, _M_replace_safe):
4343         Move inline.
4344
4345         * include/bits/basic_string.tcc: Very minor tweaks.
4346
4347 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
4348
4349         * testsuite/performance/string_append.cc: Increase number
4350         of iterations.
4351
4352 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
4353
4354         * include/bits/basic_string.h (erase(size_type, size_type),
4355         erase(iterator), erase(iterator, iterator)): Call _M_replace_safe
4356         instead, thus avoiding redundant check for length_error.
4357
4358         * include/bits/basic_string.h: Tweak some comments.
4359
4360 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
4361
4362         * include/bits/basic_string.tcc (operator+(const _CharT*,
4363         const basic_string&)): No need to go through the append
4364         taking two iterators.
4365
4366 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
4367
4368         * include/bits/basic_string.tcc (rfind(_CharT, size_type)):
4369         Revert last change to use std::min: machine language is worse.
4370         (find_last_of(const _CharT*, size_type, size_type)): Ditto.
4371         (find_last_not_of(const _CharT*, size_type, size_type)): Ditto.
4372         (find_last_not_of(_CharT, size_type)): Ditto.
4373
4374         * include/bits/basic_string.tcc (insert(size_type, const _CharT*,
4375         size_type)): Discard the value returned by _M_check.
4376         (replace(size_type, size_type, const _CharT*, size_type)): Ditto.
4377         (append(const basic_string&, size_type, size_type)): Ditto.
4378         (copy(_CharT*, size_type, size_type)): Ditto.
4379         (compare(size_type, size_type, const basic_string&)): Ditto.
4380         (compare(size_type, size_type, const basic_string&,
4381         size_type, size_type)): Ditto.
4382         (compare(size_type, size_type, const _CharT*)): Ditto.
4383         (compare(size_type, size_type, const _CharT*, size_type)): Ditto.
4384
4385 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
4386
4387         * include/bits/basic_string.h (insert(size_type,
4388         const basic_string&, size_type, size_type)): Define inline here.
4389         * include/bits/basic_string.tcc (insert(size_type,
4390         const basic_string&, size_type, size_type)): Move inline.
4391
4392 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
4393
4394         * include/bits/basic_string.h (assign(const basic_string&,
4395         size_type, size_type)): Define inline here.
4396         (replace(size_type, size_type, const basic_string&,
4397         size_type, size_type)): Ditto.
4398         (_M_replace_dispatch(iterator, iterator, _InputIterator,
4399         _InputIterator, __false_type)): Only declare.
4400         (_M_replace(iterator, iterator, _InputIterator,
4401         _InputIterator)): Remove.
4402         * include/bits/basic_string.tcc (assign(const basic_string&,
4403         size_type, size_type)): Move inline.
4404         (replace(size_type, size_type, const basic_string&,
4405         size_type, size_type)): Ditto.
4406         (_M_replace_dispatch(iterator, iterator, _InputIterator,
4407         _InputIterator, __false_type)): Define, now does also what
4408         _M_replace did before.
4409         * src/string-inst.cc (_M_replace): Don't instantiate.
4410
4411         * include/bits/basic_string.tcc (find(const _CharT*,
4412         size_type, size_type)): Tidy.
4413         (rfind(_CharT, size_type)): Ditto.
4414         (find_first_not_of(const _CharT*, size_type, size_type)): Ditto.
4415         (find_first_not_of(_CharT, size_type)): Ditto.
4416         (find_last_not_of(const _CharT*, size_type, size_type)): Ditto.
4417         (find_last_not_of(_CharT, size_type)): Ditto.
4418
4419 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
4420
4421         PR libstdc++/13838
4422         * include/debug/bitset (operator|=): Fix typo.
4423         * testsuite/23_containers/bitset/operations/13838.cc: New.
4424
4425 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
4426
4427         * include/bits/basic_string.tcc (insert(size_type,
4428         const _CharT*, size_type __n)): Fix length_error check.
4429         (replace(size_type, size_type, const _CharT*, size_type):
4430         Ditto; call _M_replace_safe.
4431         (_M_replace_aux(size_type, size_type, size_type, _CharT):
4432         Fix length_error check.
4433         (_M_replace(iterator, iterator, _InputIterator,
4434         _InputIterator)): Ditto, tweak.
4435         (_M_replace_safe(size_type, size_type, const _CharT*,
4436         size_type)): Remove length_error check.
4437
4438         * include/bits/basic_string.tcc (append(const basic_string&),
4439         append(const basic_string&, size_type, size_type)): Tweak
4440         comment.
4441
4442         * include/bits/basic_string.tcc (copy(_CharT*, size_type,
4443         size_type)): If __n == 0 don't call traits::copy.
4444
4445 2004-01-23  Stefan Olsson  <stefan@snon.net>
4446
4447         * include/ext/mt_allocator.h: Reduce lock contention.
4448
4449 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
4450
4451         PR libstdc++/13831
4452         * include/bits/fstream.tcc (underflow): Remove unused
4453         variable.
4454         * include/bits/streambuf_iterator.h (equal): Ditto.
4455         * include/bits/locale_facets.h (_M_convert_from_char):
4456         Ditto.
4457
4458 2004-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4459
4460         PR c/13814
4461         * config/linker-map.gnu (nan): Delete.
4462         * libmath/mathconf.h (NAN, nan): Delete.
4463         * linkage.m4 (nan): Don't check for it.
4464         * libmath/nan.c: Delete file.
4465
4466         * config.h.in, configure: Regenerate.
4467
4468 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
4469
4470         * include/bits/basic_string.h (push_back(_CharT)):
4471         Call _M_replace_aux.
4472         (insert(size_type, const basic_string&)): Trivial tweak.
4473         (insert(size_type, size_type, _CharT)): Call _M_replace_aux.
4474         (insert(iterator, _CharT)): Ditto.
4475         (erase(size_type, size_type)): Ditto.
4476         (erase(iterator)): Ditto.
4477         (erase(iterator, iterator)): Ditto.
4478         (replace(size_type, size_type, size_type, _CharT)): Ditto.
4479
4480 2004-01-23  Loren J. Rittle  <ljrittle@acm.org>
4481
4482         libstdc++/13823
4483         * testsuite/performance/allocator_map_thread.cc: New test.
4484
4485 2004-01-22  Paolo Carlini  <pcarlini@suse.de>
4486
4487         * include/bits/locale_facets.tcc
4488         (money_put::do_put(..., long double)): Use the basic_string
4489         constructor for char arrays, not that for C-strings, to pass
4490         __digits to do_put(..., const string_type&): __ws isn't
4491         null-terminated.
4492
4493 2004-01-22  Paolo Carlini  <pcarlini@suse.de>
4494
4495         * include/bits/basic_string.h (_M_replace_safe): Change
4496         signatures to take size_types and const _CharT*.
4497         (_M_replace_aux): Likewise, takes size_types instead of
4498         iterators.
4499         (append(size_type, _CharT)): Update call.
4500         (assign(size_type, _CharT)): Ditto.
4501         (replace(iterator, iterator, size_type, _CharT)): Ditto.
4502         (_M_replace_dispatch(iterator, iterator, _Integer,
4503         _Integer, __true_type)): Ditto.
4504         * include/bits/basic_string.tcc (assign(const _CharT*,
4505         size_type)): Ditto.
4506         (insert(size_type, const _CharT*, size_type)): Ditto.
4507         (replace(size_type, size_type, const _CharT*,
4508         size_type)): Ditto.
4509         (_M_replace(iterator, iterator, _InputIterator,
4510         _InputIterator)): Ditto.
4511         (append(const basic_string&)): Ditto.
4512         (append(const basic_string&, size_type, size_type): Ditto.
4513         (append(const _CharT*, size_type): Ditto.
4514         (_M_replace_safe, _M_replace_safe): Change definitions
4515         accordingly, simplify.
4516         * string-inst.cc (_M_replace_safe): Don't instantiate.
4517
4518 2004-01-21  Paolo Carlini  <pcarlini@suse.de>
4519
4520         * include/bits/basic_string.tcc (append(const basic_string&)):
4521         Revert previous change.
4522         (append(const basic_string&, size_type, size_type)): Revert
4523         previous change, use _M_check and _M_limit.
4524
4525 2004-01-21  Paolo Carlini  <pcarlini@suse.de>
4526
4527         * include/bits/basic_string.h (_M_check): Change to return
4528         a checked __pos and take an additional const char* argument.
4529         (_M_fold): Rename to _M_limit, change to return a size_type,
4530         corresponding to the __off limited to the actual length.
4531         (insert(size_type, size_type, _CharT)): Update call, call
4532         replace.
4533         (insert(iterator, _CharT)): Call replace(iterator, iterator,
4534         size_type, _CharT) instead.
4535         (erase(size_type, size_type)): Update calls.
4536         (replace(size_type, size_type, size_type, _CharT)): Ditto.
4537         (substr(size_type, size_type)): Use _M_check.
4538         * include/bits/basic_string.tcc (basic_string(const basic_string&,
4539         size_type, size_type)): Update calls.
4540         (basic_string(const basic_string&, size_type, size_type,
4541         const _Alloc&)): Ditto.
4542         (assign(const basic_string&, size_type, size_type)): Use the
4543         new _M_check and _M_limit.
4544         (insert(size_type, const basic_string&, size_type, size_type):
4545         Ditto.
4546         (insert(size_type, const _CharT*, size_type)): Ditto.
4547         (replace(size_type, size_type, const _CharT*, size_type): Ditto.
4548         (replace(size_type, size_type, const basic_string&,
4549         size_type, size_type)): Ditto.
4550         (append(const basic_string&)): Ditto.
4551         (append(const basic_string&, size_type, size_type)): Ditto.
4552         (copy(_CharT*, size_type, size_type)): Ditto.
4553         (compare(size_type, size_type, const basic_string&)): Ditto.
4554         (compare(size_type, size_type, const basic_string&,size_type,
4555         size_type)): Ditto.
4556         (compare(size_type, size_type, const _CharT*)): Ditto.
4557         (compare(size_type, size_type, const _CharT*, size_type)): Ditto.
4558
4559 2004-01-19  Stefan Olsson  <stefan@snon.net>
4560
4561         * include/ext/mt_allocator.h: If a thread, when it dies, still has
4562         memory on it's freelist this memory is not returned to global
4563         list. Simplification of deallocate so that memory is always
4564         returned to the calling thread id's freelist instead of to
4565         global. Fix typos. Add volatile where appropriate.
4566
4567 2004-01-19  Loren J. Rittle  <ljrittle@acm.org>
4568
4569         * testsuite/ext/stdio_filebuf/char/10063-2.cc: Treat unbuffered.
4570         * testsuite/ext/stdio_filebuf/char/10063-3.cc: New test.  Like -2 but
4571         use __gnu_cxx::stdio_sync_filebuf<char> instead; allow buffered stream.
4572
4573 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
4574
4575         * src/debug.cc: Make sure all the names are prefixed with
4576         double (or single) underscore.
4577
4578 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
4579
4580         * src/debug.cc: Trivial formatting change.
4581
4582 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
4583
4584         * include/bits/basic_string.tcc (_S_construct(size_type,
4585         _CharT, const _Alloc&)): Remove redundant try/catch.
4586         (_M_mutate(size_type, size_type, size_type)): Ditto.
4587         (_M_clone(const _Alloc&, size_type)): Ditto.
4588
4589 2004-01-18  Paolo Carlini  <pcarlini@suse.de>
4590
4591         * include/bits/basic_string.h (c_str()): Simplify, due to
4592         21.3.4 the internal representation is always kept null-terminated.
4593         * include/bits/basic_string.tcc (_M_clone): Null-terminate.
4594         * testsuite/21_strings/basic_string/element_access/char/4.cc: New.
4595         * testsuite/21_strings/basic_string/element_access/wchar_t/4.cc:
4596         Ditto.
4597
4598 2004-01-18  Paolo Carlini  <pcarlini@suse.de>
4599
4600         * include/bits/basic_string.h (append(size_type, _CharT)):
4601         Moved inline, just call _M_replace_aux, no source iterators at
4602         risk of being clobbered.
4603         (assign(size_type, _CharT)): Call directly _M_replace_aux.
4604         (_M_replace(iterator, iterator, _InputIterator, _InputIterator,
4605         input_iterator_tag)): Remove fifth unused argument.
4606         (_M_replace_dispatch(iterator, iterator, _InputIterator,
4607         _InputIterator, __false_type)): Update call.
4608         * include/bits/basic_string.tcc (replace(size_type, size_type,
4609         const _CharT*, size_type)): Update call.
4610         (_M_replace_aux(iterator, iterator, size_type, _CharT)): Tweak
4611         throw string literal.
4612         (_M_replace_safe(iterator, iterator, _ForwardIterator,
4613         _ForwardIterator)): Likewise.
4614         (_M_replace(iterator, iterator, _InputIterator, _InputIterator,
4615         input_iterator_tag)): Remove fifth unused argument.
4616         (append(size_type __n, _CharT __c)): Move inline.
4617         * src/string-inst.cc (S::_M_replace(S::iterator, S::iterator,
4618         const C*, const C*, input_iterator_tag)): Remove fifth unused
4619         argument.
4620
4621 2004-01-16  Benjamin Kosnik  <bkoz@redhat.com>
4622
4623         * testsuite/ext/enc_filebuf/char/13189.cc: Fix guards.
4624         * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Same.
4625
4626 2004-01-16  Danny Smith  <dannysmith@users.sourceforge.net>
4627
4628         * testsuite/testsuite_hooks.cc (try_mkfifo): Avoid calling
4629         mkfifo for mingw32.
4630
4631 2004-01-15  Stefan Olsson  <stefan@snon.net>
4632
4633         * include/ext/mt_allocator.h: Reuse thread id's as soon as
4634         possible by changing the behaviour of thread_freelist to do
4635         push_front when threads die instead of push_back.
4636
4637 2004-01-14  Paolo Carlini  <pcarlini@suse.de>
4638
4639         * include/bits/locale_facets.h (struct __numpunct_cache):
4640         Add member _M_grouping_size, caching the length of _M_grouping.
4641         (__numpunct_cache<>::_M_cache): Assign the latter.
4642         (__verify_grouping): Move declaration...
4643         * include/bits/locale_facets.tcc (__verify_grouping):
4644         ... here, change signature to take a const char* and a size_t
4645         for the grouping; not a template anymore.
4646         (__add_grouping, num_put::_M_group_int, num_put::_M_group_float):
4647         Likewise change signature and tweak consistently.
4648         (num_get::_M_extract_float, num_get::_M_extract_int,
4649         num_put::_M_insert_int, num_put::_M_insert_float,
4650         money_get::do_get(string_type&), money_get::do_put(string_type)):
4651         Update callers.
4652         * config/locale/generic/numeric_members.cc
4653         (numpunct<>::_M_initialize_numpunct): Assign the new member.
4654         * config/locale/gnu/numeric_members.cc
4655         (numpunct<>::_M_initialize_numpunct): Likewise.
4656         * src/locale-inst.cc (__add_grouping): Tweak signature.
4657         (__verify_grouping): Don't instantiate, not a template anymore.
4658
4659         * include/bits/locale_facets.h: Rename _M_truename_len ->
4660         _M_truename_size, _M_falsename_len -> _M_falsename_size.
4661         * include/bits/locale_facets.tcc: Likewise.
4662         * config/locale/generic/numeric_members.cc: Likewise.
4663         * config/locale/gnu/numeric_members.cc: Likewise.
4664
4665 2004-01-14  Stefan Olsson  <stefan@snon.net>
4666
4667         * include/ext/mt_allocator.h: Fixups.
4668         * testsuite/performance/allocator.cc: Enable __mt_alloc tests.
4669         * testsuite/performance/allocator_thread.cc: Same.
4670
4671 2004-01-13  Benjamin Kosnik  <bkoz@redhat.com>
4672
4673         * testsuite/performance/ifstream_extract_float.cc: Add higher
4674         precision tests.
4675         * testsuite/performance/ofstream_insert_float.cc: Same.
4676
4677 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
4678
4679         * src/locale-misc-inst.cc (__convert_from_v(long),
4680         __convert_from_v(unsigned long), __convert_from_v(long long),
4681         __convert_from_v(unsigned long long)): Remove, unused.
4682
4683 2004-01-13  Benjamin Kosnik  <bkoz@redhat.com>
4684
4685         * testsuite/performance/ifstream_extract_float.cc: New.
4686         * testsuite/performance/ofstream_insert_float.cc: Float generation
4687         matches above.
4688
4689         * 20_util/auto_ptr.cc, auto_ptr_neg.cc: Break into...
4690         * 20_util/auto_ptr/1.cc: ...this.
4691         * 20_util/auto_ptr/2.cc: Same.
4692         * 20_util/auto_ptr/3.cc: Same.
4693         * 20_util/auto_ptr/3946.cc: Same.
4694         * 20_util/auto_ptr/4.cc: Same.
4695         * 20_util/auto_ptr/5.cc: Same.
4696         * 20_util/auto_ptr/6.cc: Same.
4697         * 20_util/auto_ptr/7.cc: Same.
4698         * 20_util/auto_ptr/assign_neg.cc
4699         * 20_util/pairs.cc: Break into...
4700         * 20_util/pair/1.cc: ...this.
4701         * 20_util/pair/2.cc: Same.
4702         * 20_util/pair/3.cc: Same.
4703         * 20_util/pair/4.cc: Same.
4704
4705 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
4706
4707         * include/bits/locale_facets.tcc (num_get::do_get(void*&)):
4708         Set correctly just basefield, the only group that matters.
4709
4710 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
4711
4712         * include/ext/rope (_Rope_rep_alloc_base): Eliminate.
4713         (_Rope_rep_base): Inherit directly from the rope allocator;
4714         use rebinding instead of _Alloc_traits; pick up data member
4715         from _Rope_rep_alloc_base.
4716         (_Rope_alloc_base): Eliminate.
4717         (_Rope_base): Inherit directly from the rope allocator; use
4718         rebinding instead of _Alloc_traits; pick up data member from
4719         _Rope_alloc_base.
4720         (rope::_S_new_RopeLeaf, rope::_S_new_RopeConcatenation,
4721         rope::_S_new_RopeFunction, rope::_S_new_RopeSubstring): Tweak.
4722
4723 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
4724
4725         PR libstdc++/13650
4726         * include/bits/basic_string.tcc (compare(size_type, size_type,
4727         const _CharT*, size_type)): Implement correctly the resolution
4728         of DR 5: basically, s is a char array, -not- a C string.
4729         * include/bits/basic_string.h: Tweak some comments.
4730         * testsuite/21_strings/basic_string/compare/char/13650.cc: New.
4731         * testsuite/21_strings/basic_string/compare/wchar_t/13650.cc: New.
4732
4733 2004-01-12  Andreas Tobler  <a.tobler@schweiz.ch>
4734
4735         * testsuite/lib/libstdc++.exp: Set LD_LIBRARY_PATH_32 for
4736         Solaris.
4737
4738 2004-01-12  Paolo Carlini  <pcarlini@suse.de>
4739
4740         * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc:
4741         Use try_mkfifo.
4742         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc:
4743         Likewise.
4744
4745 2004-01-12  Paolo Carlini  <pcarlini@suse.de>
4746
4747         * include/bits/locale_facets.h (struct __numpunct_cache):
4748         Add members _M_truename_len and _M_falsename_len, caching
4749         the lengths of _M_truename and _M_falsename.
4750         (__numpunct_cache<>::_M_cache): Assign the latter.
4751         * include/bits/locale_facets.tcc (num_get::do_get(bool&),
4752         num_put::do_put(bool)): Use the new members, thus avoiding
4753         computing string lengths again and again.
4754         * config/locale/generic/numeric_members.cc
4755         (numpunct<>::_M_initialize_numpunct): Assign the new members.
4756         * config/locale/gnu/numeric_members.cc
4757         (numpunct<>::_M_initialize_numpunct): Likewise.
4758
4759 2004-01-12  Mark Mitchell  <mark@codesourcery.com>
4760
4761         * testsuite/testsuite_hooks.h (__gnu_test::try_mkfifo): Declare it.
4762         * testsuite/testsuite_hooks.cc (__gnu_test::try_mkfifo): Define
4763         it.
4764         * testsuite/27_io/basic_filebuf/close/char/4879.cc: Use try_mkfifo
4765         and remove Cygwin XFAIL.
4766         * testsuite/27_io/basic_filebuf/close/char/9964.cc: Likewise.
4767         * testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc: Likewise.
4768         * testsuite/27_io/basic_filebuf/open/char/9507.cc: Likewise.
4769         * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc:
4770         Likewise.
4771         * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise.
4772         * testsuite/27_io/objects/char/7.cc: Likewise.
4773         * testsuite/27_io/objects/char/9661-1.cc: Likewise.
4774         * testsuite/27_io/objects/wchar_t/7.cc: Likewise.
4775         * testsuite/27_io/objects/wchar_t/9661-1.cc: Likewise.
4776
4777 2004-01-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
4778
4779         * include/std/std_complex.h (std::complex<>::real): Return a
4780         reference. Add non-const overload.
4781         (std::complex<>::real): Likewise.
4782         (std::real): Likewise.
4783         (std::imag): Likewise.
4784         (std::operator+): Tidy.
4785         (std::operator-): Likewise.
4786         (std::operator*): Likewise.
4787         (std::operator/): Likewise.
4788         (std::operator>>): Likewise.
4789
4790 2004-01-11  Paolo Carlini  <pcarlini@suse.de>
4791
4792         PR libstdc++/13582
4793         * include/bits/fstream.tcc (imbue): Exploit the external
4794         buffer to imbue 'on the fly' a new locale and convert its
4795         remainder with the new codecvt facet.
4796         (underflow): Tweak slightly to deal with this special case.
4797         * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc: New.
4798         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc: Ditto.
4799         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Ditto.
4800         * testsuite/27_io/objects/wchar_t/13582-1_xin.cc: Ditto.
4801         * testsuite/27_io/objects/wchar_t/13582-1_xin.in: Ditto.
4802
4803 2004-01-10  Paolo Carlini  <pcarlini@suse.de>
4804
4805         * docs/html/ext/lwg-active.html, docs/html/ext/lwg-defects.html:
4806         Import Revision 28.
4807
4808 2004-01-10  Paolo Carlini  <pcarlini@suse.de>
4809
4810         PR libstdc++/13630
4811         * include/bits/locale_classes.h (class locale): Fix category
4812         typedef.
4813         * testsuite/22_locale/locale/13630.cc: Add.
4814
4815 2004-01-10  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
4816
4817         * include/bits/locale_facets.h: Make a name really dependent. This
4818         will be needed when Core Issue 224 is implemented.
4819
4820 2004-01-09  Paolo Carlini  <pcarlini@suse.de>
4821
4822         * testsuite/performance/allocator.cc: Demangle typeid(obj).name().
4823         * testsuite/performance/allocator_thread.cc: Likewise.
4824
4825 2004-01-07  Benjamin Kosnik  <bkoz@redhat.com>
4826
4827         * crossconfig.m4: Add LFS, io bits to linux cross config.
4828         * acconfig.h: Remove obsolete bits, reorder.
4829         * config.h.in: Regenerate.
4830         * aclocal.m4: Same.
4831         * configure: Same.
4832
4833 2004-01-07  Gawain Bolton  <gp.bolton@computer.org>
4834
4835         * include/bits/stl_list.h:
4836         * include/bits/list.tc:
4837         * src/list.cc:
4838         Performance enhancements for destructor, push_front(),
4839         push_back(), pop_front(), pop_back(), sort()
4840         Eliminated static_casts where possible.
4841         Moved code out of header files into new src/list.cc
4842         implementation file for library where possible.
4843         Remove inheritance from iterator class and create separate
4844         classes for non-constant and constant iterators.
4845         * include/bits/stl_tree.h (_Rb_tree class):
4846         * src/tree.cc:
4847         Only erase contents in destructor.
4848         Eliminate unnecessary initialization in assignment operator.
4849         Optimize for the nominal case by not checking whether
4850         container is empty in clear().
4851         Re-order test in _M_insert() to improve performance.
4852         Move initialization of new node's left & right pointers to
4853         src/tree.cc to where new node's colour is initialized
4854         and to reduce the amount of inline code.
4855         Use  _M_leftmost() and _M_end() to improve readability where
4856         appropriate.
4857         Create separate classes for non-constant and constant
4858         iterators to clarify code, avoid extra template parameters and
4859         casting away constness.
4860
4861 2004-01-07  Benjamin Kosnik  <bkoz@redhat.com>
4862
4863         * src/Makefile.am (sources): Add list.cc, tree.cc.
4864         * src/stl_tree.cc: Move to...
4865         * src/tree.cc: ...here.
4866         * src/list.cc: Add.
4867         * config/linker-map.gnu: Tweaks.
4868         * testsuite/23_containers/map/operators/1_neg.cc: Add excess errors.
4869         * testsuite/23_containers/set/operators/1_neg.cc: Add excess errors.
4870
4871         * bits/stl_vector.h: Column wrap comments.
4872
4873 2004-01-07  Loren J. Rittle  <ljrittle@acm.org>
4874
4875         (re-open) PR libstdc++/12658
4876         * src/locale_init.cc (locale::locale): Remove ill-scoped mutex.
4877         (locale::global): Likewise.
4878
4879 2004-01-07  Paolo Carlini  <pcarlini@suse.de>
4880
4881         * testsuite/27_io/basic_istream/extractors_other/char/9318-in.cc:
4882         Remove redundant #include.
4883         * testsuite/27_io/basic_ostream/endl/char/1.cc: Likewise.
4884         * testsuite/27_io/basic_ostream/ends/char/1.cc: Likewise,
4885         re-enable normal testing.
4886         * testsuite/27_io/basic_ostream/ends/char/2.cc: Remove redundant
4887         #include.
4888         * testsuite/27_io/basic_ostream/flush/char/1.cc: Likewise.
4889         * testsuite/27_io/basic_ostream/inserters_character/char/1.cc:
4890         Likewise.
4891         * testsuite/27_io/basic_ostream/inserters_character/char/2.cc:
4892         Likewise.
4893         * testsuite/27_io/basic_ostream/inserters_character/char/3.cc:
4894         Likewise.
4895         * testsuite/27_io/basic_ostream/inserters_character/char/4.cc:
4896         Likewise.
4897         * testsuite/27_io/basic_ostream/inserters_character/char/5.cc:
4898         Likewise.
4899         * testsuite/27_io/basic_ostream/inserters_character/char/6.cc:
4900         Likewise.
4901         * testsuite/27_io/basic_ostream/inserters_character/char/8.cc:
4902         Likewise.
4903         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/7.cc:
4904         More properly, #include <locale>.
4905         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/8.cc:
4906         Remove redundant #include.
4907         * testsuite/27_io/basic_ostream/inserters_other/char/2.cc: Likewise.
4908         * testsuite/27_io/basic_ostream/inserters_other/char/3.cc: Remove
4909         redundant DejaGnu directive.
4910         * testsuite/27_io/basic_ostream/inserters_other/char/4.cc: Remove
4911         redundant #include.
4912
4913 2004-01-06  Benjamin Kosnik  <bkoz@redhat.com>
4914             Stefan Olsson  <stefan@snon.net>
4915
4916         * scripts/check_performance: Use -pthread.
4917         * testsuite/performance/allocator.cc: Tweaks, add list.
4918         * testsuite/performance/allocator_thread.cc: New.
4919
4920 2004-01-06  Jerry Quinn  <jlquinn@optonline.net>
4921
4922         * include/bits/locale_facets.h: Document public classes and
4923         functions.
4924         * include/bits/locale_facets.tcc (time_get::_M_extract_via_format):
4925         Add comment.
4926
4927 2004-01-06  Paolo Carlini  <pcarlini@suse.de>
4928
4929         * testsuite/27_io/basic_istream/extractors_other/char/1.cc:
4930         Remove redundant #includes.
4931         * testsuite/27_io/basic_istream/extractors_other/char/2.cc:
4932         Likewise.
4933         * testsuite/27_io/basic_istream/extractors_other/char/3.cc:
4934         Likewise.
4935         * testsuite/27_io/basic_istream/get/char/1.cc: Likewise.
4936         * testsuite/27_io/basic_istream/get/char/2.cc: Likewise.
4937         * testsuite/27_io/basic_istream/getline/char/1.cc: Likewise.
4938         * testsuite/27_io/basic_istream/getline/char/2.cc: Likewise.
4939         * testsuite/27_io/basic_istream/getline/char/3.cc: Likewise.
4940         * testsuite/27_io/basic_istream/ignore/char/1.cc: Likewise.
4941         * testsuite/27_io/basic_istream/ignore/char/6360.cc: Likewise.
4942         * testsuite/27_io/basic_istream/ignore/char/7220.cc: Likewise.
4943         * testsuite/27_io/basic_istream/peek/char/1.cc: Likewise.
4944         * testsuite/27_io/basic_istream/peek/char/6414.cc: Likewise.
4945         * testsuite/27_io/basic_istream/putback/char/1.cc: Likewise.
4946         * testsuite/27_io/basic_istream/read/char/1.cc: Likewise.
4947         * testsuite/27_io/basic_istream/read/char/2.cc: Likewise.
4948         * testsuite/27_io/basic_istream/read/char/3.cc: Likewise.
4949         * testsuite/27_io/basic_istream/readsome/char/6746-1.cc:
4950         Likewise.
4951         * testsuite/27_io/basic_istream/readsome/char/6746-2.cc:
4952         Likewise.
4953         * testsuite/27_io/basic_istream/readsome/char/8258.cc:
4954         Likewise.
4955         * testsuite/27_io/basic_istream/seekg/char/2346-fstream.cc:
4956         Likewise.
4957         * testsuite/27_io/basic_istream/seekg/char/2346-sstream.cc:
4958         Likewise.
4959         * testsuite/27_io/basic_istream/seekg/char/8348-1.cc: Likewise.
4960         * testsuite/27_io/basic_istream/seekg/char/8348-2.cc: Likewise.
4961         * testsuite/27_io/basic_istream/tellg/char/8348.cc: Likewise.
4962
4963 2004-01-04  Paolo Carlini  <pcarlini@suse.de>
4964
4965         * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc:
4966         Remove redundant #includes.
4967         * testsuite/27_io/basic_istream/extractors_arithmetic/char/02.cc:
4968         Likewise.
4969         * testsuite/27_io/basic_istream/extractors_arithmetic/char/03.cc:
4970         Likewise.
4971         * testsuite/27_io/basic_istream/extractors_arithmetic/char/06.cc:
4972         Likewise.
4973         * testsuite/27_io/basic_istream/extractors_arithmetic/char/07.cc:
4974         Likewise.
4975         * testsuite/27_io/basic_istream/extractors_arithmetic/char/08.cc:
4976         Likewise.
4977         * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc:
4978         Likewise.
4979         * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
4980         Likewise.
4981         * testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc:
4982         Likewise.
4983         * testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc:
4984         Likewise.
4985         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/1.cc:
4986         Likewise.
4987         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc:
4988         Likewise.
4989         * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/1.cc:
4990         Likewise.
4991
4992 2004-01-04  Mark Mitchell  <mark@codesourcery.com>
4993
4994         PR c++/12226
4995         * testsuite/27_io/basic_filebuf/4.cc: Remove use of invalid copy
4996         constructor.
4997         * testsuite/27_io/basic_fstream/4.cc: Likewise.
4998         * testsuite/27_io/basic_ifstream/4.cc: Likewise.
4999         * testsuite/27_io/basic_ios/4.cc: Likewise.
5000         * testsuite/27_io/basic_iostream/4.cc: Likewise.
5001         * testsuite/27_io/basic_istream/4.cc: Likewise.
5002         * testsuite/27_io/basic_istingstream/4.cc: Likewise.
5003         * testsuite/27_io/basic_ofstream/4.cc: Likewise.
5004         * testsuite/27_io/basic_ostream/4.cc: Likewise.
5005         * testsuite/27_io/basic_ostringstream/4.cc: Likewise.
5006         * testsuite/27_io/basic_stringbuf/5.cc: Likewise.
5007         * testsuite/27_io/basic_stringstream/4.cc: Likewise.
5008
5009 2004-01-04  Paolo Carlini  <pcarlini@suse.de>
5010
5011         * config/locale/generic/numeric_members.cc (_M_initialize_numpunct):
5012         Avoid unnecessarily zero terminating _M_atoms_out and _M_atoms_in;
5013         always use double underscored names.
5014         * config/locale/gnu/numeric_members.cc (_M_initialize_numpunct):
5015         Likewise.
5016         * include/bits/locale_facets.h (struct __numpunct_cache):
5017         Dimension _M_atoms_out and _M_atoms_in one position smaller.
5018         (__numpunct_cache<>::_M_cache): Don't zero terminate _M_atoms_out
5019         and _M_atoms_in.