1 2004-01-27 Jerry Quinn <jlquinn@optonline.net>
4 * include/bits/ios_base.h (ios_base::_M_grow_words): Add
6 (ios_base::iword, ios_base::pword): Use it.
7 * src/ios.cc (ios_base::_M_grow_words): Clear _M_word_zero
8 iword or pword member on alloc failure.
9 * testsuite/27_io/ios_base/storage/11584.cc: New test.
11 2004-01-27 Ulrich Weigand <uweigand@de.ibm.com>
12 PJ Darcy <darcypj@us.ibm.com>
14 * configure.host: Add support for *-tpf.
15 * crossconfig.m4: Likewise.
16 * configure: Regenerate.
17 * config/os/tpf: New directory.
18 * config/os/tpf/os_defines.h: New file.
19 * config/os/tpf/ctype_base.h: Likewise.
20 * config/os/tpf/ctype_inline.h: Likewise.
21 * config/os/tpf/ctype_noninline.h: Likewise.
23 2004-01-27 Paolo Carlini <pcarlini@suse.de>
26 * include/bits/sstream.tcc: Guard use of extern template.
28 2004-01-27 Paolo Carlini <pcarlini@suse.de>
30 * include/bits/basic_string.tcc
31 (basic_string(const basic_string&, size_type, size_type),
32 basic_string(const basic_string&, size_type, size_type,
33 const _Alloc&)): Avoid unnecessarily constructing iterators.
35 2004-01-26 Paolo Carlini <pcarlini@suse.de>
37 * config/locale/generic/c_locale.cc: Fix throw messages
38 to use the __N marker.
39 * config/locale/gnu/c_locale.cc: Likewise.
40 * config/locale/ieee_1003.1-2001/codecvt_specializations.h:
42 * docs/html/17_intro/C++STYLE: Likewise.
43 * include/bits/basic_ios.tcc: Likewise.
44 * include/bits/fstream.tcc: Likewise.
45 * include/bits/vector.tcc: Likewise.
46 * include/ext/ropeimpl.h: Likewise.
47 * include/std/std_bitset.h: Likewise.
48 * src/ios.cc: Likewise.
49 * src/locale.cc: Likewise.
50 * src/localename.cc: Likewise.
52 2004-01-26 Paolo Carlini <pcarlini@suse.de>
54 * include/bits/basic_string.h (_M_replace_aux): Use the
55 __N marker in throw message.
56 * include/bits/basic_string.tcc (assign(const _CharT*,
57 size_type), insert(size_type, const _CharT*, size_type),
58 replace(size_type, size_type, const _CharT*, size_type),
59 reserve, _Rep::_S_create, resize, _M_replace_dispatch):
62 * include/bits/basic_string.h, include/bits/basic_string.tcc:
63 Fold overlong lines, minor formatting changes.
65 2004-01-26 Paolo Carlini <pcarlini@suse.de>
67 * include/bits/basic_string.h (replace(iterator, iterator,
68 const basic_string&)): Remove _GLIBCXX_DEBUG_PEDASSERT.
69 (replace(iterator, iterator, const _CharT*)): Ditto.
70 (replace(iterator, iterator, const _CharT*, size_type)):
71 Add missing _GLIBCXX_DEBUG_PEDASSERT.
73 2004-01-26 Paolo Carlini <pcarlini@suse.de>
75 * include/bits/basic_string.tcc (replace(size_type,
76 size_type, const _CharT*, size_type)): Implement optimized
77 in-place algorithm for non-overlapping ranges.
78 * testsuite/21_strings/basic_string/replace/char/6.cc: New.
79 * testsuite/21_strings/basic_string/replace/wchar_t/6.cc: New.
81 * include/bits/basic_string.tcc (insert(size_type,
82 const _CharT*, size_type)): Tweak slightly.
84 2004-01-26 Andreas Schwab <schwab@suse.de>
86 * config/locale/gnu/monetary_members.cc: Restore locale before
89 2004-01-25 Paolo Carlini <pcarlini@suse.de>
91 * include/bits/basic_string.h (_M_replace_aux, _M_replace_safe):
93 * include/bits/basic_string.tcc (_M_replace_aux, _M_replace_safe):
96 * include/bits/basic_string.tcc: Very minor tweaks.
98 2004-01-25 Paolo Carlini <pcarlini@suse.de>
100 * testsuite/performance/string_append.cc: Increase number
103 2004-01-25 Paolo Carlini <pcarlini@suse.de>
105 * include/bits/basic_string.h (erase(size_type, size_type),
106 erase(iterator), erase(iterator, iterator)): Call _M_replace_safe
107 instead, thus avoiding redundant check for length_error.
109 * include/bits/basic_string.h: Tweak some comments.
111 2004-01-24 Paolo Carlini <pcarlini@suse.de>
113 * include/bits/basic_string.tcc (operator+(const _CharT*,
114 const basic_string&)): No need to go through the append
115 taking two iterators.
117 2004-01-24 Paolo Carlini <pcarlini@suse.de>
119 * include/bits/basic_string.tcc (rfind(_CharT, size_type)):
120 Revert last change to use std::min: machine language is worse.
121 (find_last_of(const _CharT*, size_type, size_type)): Ditto.
122 (find_last_not_of(const _CharT*, size_type, size_type)): Ditto.
123 (find_last_not_of(_CharT, size_type)): Ditto.
125 * include/bits/basic_string.tcc (insert(size_type, const _CharT*,
126 size_type)): Discard the value returned by _M_check.
127 (replace(size_type, size_type, const _CharT*, size_type)): Ditto.
128 (append(const basic_string&, size_type, size_type)): Ditto.
129 (copy(_CharT*, size_type, size_type)): Ditto.
130 (compare(size_type, size_type, const basic_string&)): Ditto.
131 (compare(size_type, size_type, const basic_string&,
132 size_type, size_type)): Ditto.
133 (compare(size_type, size_type, const _CharT*)): Ditto.
134 (compare(size_type, size_type, const _CharT*, size_type)): Ditto.
136 2004-01-24 Paolo Carlini <pcarlini@suse.de>
138 * include/bits/basic_string.h (insert(size_type,
139 const basic_string&, size_type, size_type)): Define inline here.
140 * include/bits/basic_string.tcc (insert(size_type,
141 const basic_string&, size_type, size_type)): Move inline.
143 2004-01-24 Paolo Carlini <pcarlini@suse.de>
145 * include/bits/basic_string.h (assign(const basic_string&,
146 size_type, size_type)): Define inline here.
147 (replace(size_type, size_type, const basic_string&,
148 size_type, size_type)): Ditto.
149 (_M_replace_dispatch(iterator, iterator, _InputIterator,
150 _InputIterator, __false_type)): Only declare.
151 (_M_replace(iterator, iterator, _InputIterator,
152 _InputIterator)): Remove.
153 * include/bits/basic_string.tcc (assign(const basic_string&,
154 size_type, size_type)): Move inline.
155 (replace(size_type, size_type, const basic_string&,
156 size_type, size_type)): Ditto.
157 (_M_replace_dispatch(iterator, iterator, _InputIterator,
158 _InputIterator, __false_type)): Define, now does also what
159 _M_replace did before.
160 * src/string-inst.cc (_M_replace): Don't instantiate.
162 * include/bits/basic_string.tcc (find(const _CharT*,
163 size_type, size_type)): Tidy.
164 (rfind(_CharT, size_type)): Ditto.
165 (find_first_not_of(const _CharT*, size_type, size_type)): Ditto.
166 (find_first_not_of(_CharT, size_type)): Ditto.
167 (find_last_not_of(const _CharT*, size_type, size_type)): Ditto.
168 (find_last_not_of(_CharT, size_type)): Ditto.
170 2004-01-23 Paolo Carlini <pcarlini@suse.de>
173 * include/debug/bitset (operator|=): Fix typo.
174 * testsuite/23_containers/bitset/operations/13838.cc: New.
176 2004-01-23 Paolo Carlini <pcarlini@suse.de>
178 * include/bits/basic_string.tcc (insert(size_type,
179 const _CharT*, size_type __n)): Fix length_error check.
180 (replace(size_type, size_type, const _CharT*, size_type):
181 Ditto; call _M_replace_safe.
182 (_M_replace_aux(size_type, size_type, size_type, _CharT):
183 Fix length_error check.
184 (_M_replace(iterator, iterator, _InputIterator,
185 _InputIterator)): Ditto, tweak.
186 (_M_replace_safe(size_type, size_type, const _CharT*,
187 size_type)): Remove length_error check.
189 * include/bits/basic_string.tcc (append(const basic_string&),
190 append(const basic_string&, size_type, size_type)): Tweak
193 * include/bits/basic_string.tcc (copy(_CharT*, size_type,
194 size_type)): If __n == 0 don't call traits::copy.
196 2004-01-23 Stefan Olsson <stefan@snon.net>
198 * include/ext/mt_allocator.h: Reduce lock contention.
200 2004-01-23 Paolo Carlini <pcarlini@suse.de>
203 * include/bits/fstream.tcc (underflow): Remove unused
205 * include/bits/streambuf_iterator.h (equal): Ditto.
206 * include/bits/locale_facets.h (_M_convert_from_char):
209 2004-01-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
212 * config/linker-map.gnu (nan): Delete.
213 * libmath/mathconf.h (NAN, nan): Delete.
214 * linkage.m4 (nan): Don't check for it.
215 * libmath/nan.c: Delete file.
217 * config.h.in, configure: Regenerate.
219 2004-01-23 Paolo Carlini <pcarlini@suse.de>
221 * include/bits/basic_string.h (push_back(_CharT)):
223 (insert(size_type, const basic_string&)): Trivial tweak.
224 (insert(size_type, size_type, _CharT)): Call _M_replace_aux.
225 (insert(iterator, _CharT)): Ditto.
226 (erase(size_type, size_type)): Ditto.
227 (erase(iterator)): Ditto.
228 (erase(iterator, iterator)): Ditto.
229 (replace(size_type, size_type, size_type, _CharT)): Ditto.
231 2004-01-23 Loren J. Rittle <ljrittle@acm.org>
234 * testsuite/performance/allocator_map_thread.cc: New test.
236 2004-01-22 Paolo Carlini <pcarlini@suse.de>
238 * include/bits/locale_facets.tcc
239 (money_put::do_put(..., long double)): Use the basic_string
240 constructor for char arrays, not that for C-strings, to pass
241 __digits to do_put(..., const string_type&): __ws isn't
244 2004-01-22 Paolo Carlini <pcarlini@suse.de>
246 * include/bits/basic_string.h (_M_replace_safe): Change
247 signatures to take size_types and const _CharT*.
248 (_M_replace_aux): Likewise, takes size_types instead of
250 (append(size_type, _CharT)): Update call.
251 (assign(size_type, _CharT)): Ditto.
252 (replace(iterator, iterator, size_type, _CharT)): Ditto.
253 (_M_replace_dispatch(iterator, iterator, _Integer,
254 _Integer, __true_type)): Ditto.
255 * include/bits/basic_string.tcc (assign(const _CharT*,
257 (insert(size_type, const _CharT*, size_type)): Ditto.
258 (replace(size_type, size_type, const _CharT*,
260 (_M_replace(iterator, iterator, _InputIterator,
261 _InputIterator)): Ditto.
262 (append(const basic_string&)): Ditto.
263 (append(const basic_string&, size_type, size_type): Ditto.
264 (append(const _CharT*, size_type): Ditto.
265 (_M_replace_safe, _M_replace_safe): Change definitions
266 accordingly, simplify.
267 * string-inst.cc (_M_replace_safe): Don't instantiate.
269 2004-01-21 Paolo Carlini <pcarlini@suse.de>
271 * include/bits/basic_string.tcc (append(const basic_string&)):
272 Revert previous change.
273 (append(const basic_string&, size_type, size_type)): Revert
274 previous change, use _M_check and _M_limit.
276 2004-01-21 Paolo Carlini <pcarlini@suse.de>
278 * include/bits/basic_string.h (_M_check): Change to return
279 a checked __pos and take an additional const char* argument.
280 (_M_fold): Rename to _M_limit, change to return a size_type,
281 corresponding to the __off limited to the actual length.
282 (insert(size_type, size_type, _CharT)): Update call, call
284 (insert(iterator, _CharT)): Call replace(iterator, iterator,
285 size_type, _CharT) instead.
286 (erase(size_type, size_type)): Update calls.
287 (replace(size_type, size_type, size_type, _CharT)): Ditto.
288 (substr(size_type, size_type)): Use _M_check.
289 * include/bits/basic_string.tcc (basic_string(const basic_string&,
290 size_type, size_type)): Update calls.
291 (basic_string(const basic_string&, size_type, size_type,
292 const _Alloc&)): Ditto.
293 (assign(const basic_string&, size_type, size_type)): Use the
294 new _M_check and _M_limit.
295 (insert(size_type, const basic_string&, size_type, size_type):
297 (insert(size_type, const _CharT*, size_type)): Ditto.
298 (replace(size_type, size_type, const _CharT*, size_type): Ditto.
299 (replace(size_type, size_type, const basic_string&,
300 size_type, size_type)): Ditto.
301 (append(const basic_string&)): Ditto.
302 (append(const basic_string&, size_type, size_type)): Ditto.
303 (copy(_CharT*, size_type, size_type)): Ditto.
304 (compare(size_type, size_type, const basic_string&)): Ditto.
305 (compare(size_type, size_type, const basic_string&,size_type,
307 (compare(size_type, size_type, const _CharT*)): Ditto.
308 (compare(size_type, size_type, const _CharT*, size_type)): Ditto.
310 2004-01-19 Stefan Olsson <stefan@snon.net>
312 * include/ext/mt_allocator.h: If a thread, when it dies, still has
313 memory on it's freelist this memory is not returned to global
314 list. Simplification of deallocate so that memory is always
315 returned to the calling thread id's freelist instead of to
316 global. Fix typos. Add volatile where appropriate.
318 2004-01-19 Loren J. Rittle <ljrittle@acm.org>
320 * testsuite/ext/stdio_filebuf/char/10063-2.cc: Treat unbuffered.
321 * testsuite/ext/stdio_filebuf/char/10063-3.cc: New test. Like -2 but
322 use __gnu_cxx::stdio_sync_filebuf<char> instead; allow buffered stream.
324 2004-01-19 Paolo Carlini <pcarlini@suse.de>
326 * src/debug.cc: Make sure all the names are prefixed with
327 double (or single) underscore.
329 2004-01-19 Paolo Carlini <pcarlini@suse.de>
331 * src/debug.cc: Trivial formatting change.
333 2004-01-19 Paolo Carlini <pcarlini@suse.de>
335 * include/bits/basic_string.tcc (_S_construct(size_type,
336 _CharT, const _Alloc&)): Remove redundant try/catch.
337 (_M_mutate(size_type, size_type, size_type)): Ditto.
338 (_M_clone(const _Alloc&, size_type)): Ditto.
340 2004-01-18 Paolo Carlini <pcarlini@suse.de>
342 * include/bits/basic_string.h (c_str()): Simplify, due to
343 21.3.4 the internal representation is always kept null-terminated.
344 * include/bits/basic_string.tcc (_M_clone): Null-terminate.
345 * testsuite/21_strings/basic_string/element_access/char/4.cc: New.
346 * testsuite/21_strings/basic_string/element_access/wchar_t/4.cc:
349 2004-01-18 Paolo Carlini <pcarlini@suse.de>
351 * include/bits/basic_string.h (append(size_type, _CharT)):
352 Moved inline, just call _M_replace_aux, no source iterators at
353 risk of being clobbered.
354 (assign(size_type, _CharT)): Call directly _M_replace_aux.
355 (_M_replace(iterator, iterator, _InputIterator, _InputIterator,
356 input_iterator_tag)): Remove fifth unused argument.
357 (_M_replace_dispatch(iterator, iterator, _InputIterator,
358 _InputIterator, __false_type)): Update call.
359 * include/bits/basic_string.tcc (replace(size_type, size_type,
360 const _CharT*, size_type)): Update call.
361 (_M_replace_aux(iterator, iterator, size_type, _CharT)): Tweak
362 throw string literal.
363 (_M_replace_safe(iterator, iterator, _ForwardIterator,
364 _ForwardIterator)): Likewise.
365 (_M_replace(iterator, iterator, _InputIterator, _InputIterator,
366 input_iterator_tag)): Remove fifth unused argument.
367 (append(size_type __n, _CharT __c)): Move inline.
368 * src/string-inst.cc (S::_M_replace(S::iterator, S::iterator,
369 const C*, const C*, input_iterator_tag)): Remove fifth unused
372 2004-01-16 Benjamin Kosnik <bkoz@redhat.com>
374 * testsuite/ext/enc_filebuf/char/13189.cc: Fix guards.
375 * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Same.
377 2004-01-16 Danny Smith <dannysmith@users.sourceforge.net>
379 * testsuite/testsuite_hooks.cc (try_mkfifo): Avoid calling
382 2004-01-15 Stefan Olsson <stefan@snon.net>
384 * include/ext/mt_allocator.h: Reuse thread id's as soon as
385 possible by changing the behaviour of thread_freelist to do
386 push_front when threads die instead of push_back.
388 2004-01-14 Paolo Carlini <pcarlini@suse.de>
390 * include/bits/locale_facets.h (struct __numpunct_cache):
391 Add member _M_grouping_size, caching the length of _M_grouping.
392 (__numpunct_cache<>::_M_cache): Assign the latter.
393 (__verify_grouping): Move declaration...
394 * include/bits/locale_facets.tcc (__verify_grouping):
395 ... here, change signature to take a const char* and a size_t
396 for the grouping; not a template anymore.
397 (__add_grouping, num_put::_M_group_int, num_put::_M_group_float):
398 Likewise change signature and tweak consistently.
399 (num_get::_M_extract_float, num_get::_M_extract_int,
400 num_put::_M_insert_int, num_put::_M_insert_float,
401 money_get::do_get(string_type&), money_get::do_put(string_type)):
403 * config/locale/generic/numeric_members.cc
404 (numpunct<>::_M_initialize_numpunct): Assign the new member.
405 * config/locale/gnu/numeric_members.cc
406 (numpunct<>::_M_initialize_numpunct): Likewise.
407 * src/locale-inst.cc (__add_grouping): Tweak signature.
408 (__verify_grouping): Don't instantiate, not a template anymore.
410 * include/bits/locale_facets.h: Rename _M_truename_len ->
411 _M_truename_size, _M_falsename_len -> _M_falsename_size.
412 * include/bits/locale_facets.tcc: Likewise.
413 * config/locale/generic/numeric_members.cc: Likewise.
414 * config/locale/gnu/numeric_members.cc: Likewise.
416 2004-01-14 Stefan Olsson <stefan@snon.net>
418 * include/ext/mt_allocator.h: Fixups.
419 * testsuite/performance/allocator.cc: Enable __mt_alloc tests.
420 * testsuite/performance/allocator_thread.cc: Same.
422 2004-01-13 Benjamin Kosnik <bkoz@redhat.com>
424 * testsuite/performance/ifstream_extract_float.cc: Add higher
426 * testsuite/performance/ofstream_insert_float.cc: Same.
428 2004-01-13 Paolo Carlini <pcarlini@suse.de>
430 * src/locale-misc-inst.cc (__convert_from_v(long),
431 __convert_from_v(unsigned long), __convert_from_v(long long),
432 __convert_from_v(unsigned long long)): Remove, unused.
434 2004-01-13 Benjamin Kosnik <bkoz@redhat.com>
436 * testsuite/performance/ifstream_extract_float.cc: New.
437 * testsuite/performance/ofstream_insert_float.cc: Float generation
440 * 20_util/auto_ptr.cc, auto_ptr_neg.cc: Break into...
441 * 20_util/auto_ptr/1.cc: ...this.
442 * 20_util/auto_ptr/2.cc: Same.
443 * 20_util/auto_ptr/3.cc: Same.
444 * 20_util/auto_ptr/3946.cc: Same.
445 * 20_util/auto_ptr/4.cc: Same.
446 * 20_util/auto_ptr/5.cc: Same.
447 * 20_util/auto_ptr/6.cc: Same.
448 * 20_util/auto_ptr/7.cc: Same.
449 * 20_util/auto_ptr/assign_neg.cc
450 * 20_util/pairs.cc: Break into...
451 * 20_util/pair/1.cc: ...this.
452 * 20_util/pair/2.cc: Same.
453 * 20_util/pair/3.cc: Same.
454 * 20_util/pair/4.cc: Same.
456 2004-01-13 Paolo Carlini <pcarlini@suse.de>
458 * include/bits/locale_facets.tcc (num_get::do_get(void*&)):
459 Set correctly just basefield, the only group that matters.
461 2004-01-13 Paolo Carlini <pcarlini@suse.de>
463 * include/ext/rope (_Rope_rep_alloc_base): Eliminate.
464 (_Rope_rep_base): Inherit directly from the rope allocator;
465 use rebinding instead of _Alloc_traits; pick up data member
466 from _Rope_rep_alloc_base.
467 (_Rope_alloc_base): Eliminate.
468 (_Rope_base): Inherit directly from the rope allocator; use
469 rebinding instead of _Alloc_traits; pick up data member from
471 (rope::_S_new_RopeLeaf, rope::_S_new_RopeConcatenation,
472 rope::_S_new_RopeFunction, rope::_S_new_RopeSubstring): Tweak.
474 2004-01-13 Paolo Carlini <pcarlini@suse.de>
477 * include/bits/basic_string.tcc (compare(size_type, size_type,
478 const _CharT*, size_type)): Implement correctly the resolution
479 of DR 5: basically, s is a char array, -not- a C string.
480 * include/bits/basic_string.h: Tweak some comments.
481 * testsuite/21_strings/basic_string/compare/char/13650.cc: New.
482 * testsuite/21_strings/basic_string/compare/wchar_t/13650.cc: New.
484 2004-01-12 Andreas Tobler <a.tobler@schweiz.ch>
486 * testsuite/lib/libstdc++.exp: Set LD_LIBRARY_PATH_32 for
489 2004-01-12 Paolo Carlini <pcarlini@suse.de>
491 * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc:
493 * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc:
496 2004-01-12 Paolo Carlini <pcarlini@suse.de>
498 * include/bits/locale_facets.h (struct __numpunct_cache):
499 Add members _M_truename_len and _M_falsename_len, caching
500 the lengths of _M_truename and _M_falsename.
501 (__numpunct_cache<>::_M_cache): Assign the latter.
502 * include/bits/locale_facets.tcc (num_get::do_get(bool&),
503 num_put::do_put(bool)): Use the new members, thus avoiding
504 computing string lengths again and again.
505 * config/locale/generic/numeric_members.cc
506 (numpunct<>::_M_initialize_numpunct): Assign the new members.
507 * config/locale/gnu/numeric_members.cc
508 (numpunct<>::_M_initialize_numpunct): Likewise.
510 2004-01-12 Mark Mitchell <mark@codesourcery.com>
512 * testsuite/testsuite_hooks.h (__gnu_test::try_mkfifo): Declare it.
513 * testsuite/testsuite_hooks.cc (__gnu_test::try_mkfifo): Define
515 * testsuite/27_io/basic_filebuf/close/char/4879.cc: Use try_mkfifo
516 and remove Cygwin XFAIL.
517 * testsuite/27_io/basic_filebuf/close/char/9964.cc: Likewise.
518 * testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc: Likewise.
519 * testsuite/27_io/basic_filebuf/open/char/9507.cc: Likewise.
520 * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc:
522 * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise.
523 * testsuite/27_io/objects/char/7.cc: Likewise.
524 * testsuite/27_io/objects/char/9661-1.cc: Likewise.
525 * testsuite/27_io/objects/wchar_t/7.cc: Likewise.
526 * testsuite/27_io/objects/wchar_t/9661-1.cc: Likewise.
528 2004-01-11 Gabriel Dos Reis <gdr@integrable-solutions.net>
530 * include/std/std_complex.h (std::complex<>::real): Return a
531 reference. Add non-const overload.
532 (std::complex<>::real): Likewise.
533 (std::real): Likewise.
534 (std::imag): Likewise.
535 (std::operator+): Tidy.
536 (std::operator-): Likewise.
537 (std::operator*): Likewise.
538 (std::operator/): Likewise.
539 (std::operator>>): Likewise.
541 2004-01-11 Paolo Carlini <pcarlini@suse.de>
544 * include/bits/fstream.tcc (imbue): Exploit the external
545 buffer to imbue 'on the fly' a new locale and convert its
546 remainder with the new codecvt facet.
547 (underflow): Tweak slightly to deal with this special case.
548 * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc: New.
549 * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc: Ditto.
550 * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Ditto.
551 * testsuite/27_io/objects/wchar_t/13582-1_xin.cc: Ditto.
552 * testsuite/27_io/objects/wchar_t/13582-1_xin.in: Ditto.
554 2004-01-10 Paolo Carlini <pcarlini@suse.de>
556 * docs/html/ext/lwg-active.html, docs/html/ext/lwg-defects.html:
559 2004-01-10 Paolo Carlini <pcarlini@suse.de>
562 * include/bits/locale_classes.h (class locale): Fix category
564 * testsuite/22_locale/locale/13630.cc: Add.
566 2004-01-10 Giovanni Bajo <giovannibajo@gcc.gnu.org>
568 * include/bits/locale_facets.h: Make a name really dependent. This
569 will be needed when Core Issue 224 is implemented.
571 2004-01-09 Paolo Carlini <pcarlini@suse.de>
573 * testsuite/performance/allocator.cc: Demangle typeid(obj).name().
574 * testsuite/performance/allocator_thread.cc: Likewise.
576 2004-01-07 Benjamin Kosnik <bkoz@redhat.com>
578 * crossconfig.m4: Add LFS, io bits to linux cross config.
579 * acconfig.h: Remove obsolete bits, reorder.
580 * config.h.in: Regenerate.
584 2004-01-07 Gawain Bolton <gp.bolton@computer.org>
586 * include/bits/stl_list.h:
587 * include/bits/list.tc:
589 Performance enhancements for destructor, push_front(),
590 push_back(), pop_front(), pop_back(), sort()
591 Eliminated static_casts where possible.
592 Moved code out of header files into new src/list.cc
593 implementation file for library where possible.
594 Remove inheritance from iterator class and create separate
595 classes for non-constant and constant iterators.
596 * include/bits/stl_tree.h (_Rb_tree class):
598 Only erase contents in destructor.
599 Eliminate unnecessary initialization in assignment operator.
600 Optimize for the nominal case by not checking whether
601 container is empty in clear().
602 Re-order test in _M_insert() to improve performance.
603 Move initialization of new node's left & right pointers to
604 src/tree.cc to where new node's colour is initialized
605 and to reduce the amount of inline code.
606 Use _M_leftmost() and _M_end() to improve readability where
608 Create separate classes for non-constant and constant
609 iterators to clarify code, avoid extra template parameters and
610 casting away constness.
612 2004-01-07 Benjamin Kosnik <bkoz@redhat.com>
614 * src/Makefile.am (sources): Add list.cc, tree.cc.
615 * src/stl_tree.cc: Move to...
616 * src/tree.cc: ...here.
618 * config/linker-map.gnu: Tweaks.
619 * testsuite/23_containers/map/operators/1_neg.cc: Add excess errors.
620 * testsuite/23_containers/set/operators/1_neg.cc: Add excess errors.
622 * bits/stl_vector.h: Column wrap comments.
624 2004-01-07 Loren J. Rittle <ljrittle@acm.org>
626 (re-open) PR libstdc++/12658
627 * src/locale_init.cc (locale::locale): Remove ill-scoped mutex.
628 (locale::global): Likewise.
630 2004-01-07 Paolo Carlini <pcarlini@suse.de>
632 * testsuite/27_io/basic_istream/extractors_other/char/9318-in.cc:
633 Remove redundant #include.
634 * testsuite/27_io/basic_ostream/endl/char/1.cc: Likewise.
635 * testsuite/27_io/basic_ostream/ends/char/1.cc: Likewise,
636 re-enable normal testing.
637 * testsuite/27_io/basic_ostream/ends/char/2.cc: Remove redundant
639 * testsuite/27_io/basic_ostream/flush/char/1.cc: Likewise.
640 * testsuite/27_io/basic_ostream/inserters_character/char/1.cc:
642 * testsuite/27_io/basic_ostream/inserters_character/char/2.cc:
644 * testsuite/27_io/basic_ostream/inserters_character/char/3.cc:
646 * testsuite/27_io/basic_ostream/inserters_character/char/4.cc:
648 * testsuite/27_io/basic_ostream/inserters_character/char/5.cc:
650 * testsuite/27_io/basic_ostream/inserters_character/char/6.cc:
652 * testsuite/27_io/basic_ostream/inserters_character/char/8.cc:
654 * testsuite/27_io/basic_ostream/inserters_character/wchar_t/7.cc:
655 More properly, #include <locale>.
656 * testsuite/27_io/basic_ostream/inserters_character/wchar_t/8.cc:
657 Remove redundant #include.
658 * testsuite/27_io/basic_ostream/inserters_other/char/2.cc: Likewise.
659 * testsuite/27_io/basic_ostream/inserters_other/char/3.cc: Remove
660 redundant DejaGnu directive.
661 * testsuite/27_io/basic_ostream/inserters_other/char/4.cc: Remove
664 2004-01-06 Benjamin Kosnik <bkoz@redhat.com>
665 Stefan Olsson <stefan@snon.net>
667 * scripts/check_performance: Use -pthread.
668 * testsuite/performance/allocator.cc: Tweaks, add list.
669 * testsuite/performance/allocator_thread.cc: New.
671 2004-01-06 Jerry Quinn <jlquinn@optonline.net>
673 * include/bits/locale_facets.h: Document public classes and
675 * include/bits/locale_facets.tcc (time_get::_M_extract_via_format):
678 2004-01-06 Paolo Carlini <pcarlini@suse.de>
680 * testsuite/27_io/basic_istream/extractors_other/char/1.cc:
681 Remove redundant #includes.
682 * testsuite/27_io/basic_istream/extractors_other/char/2.cc:
684 * testsuite/27_io/basic_istream/extractors_other/char/3.cc:
686 * testsuite/27_io/basic_istream/get/char/1.cc: Likewise.
687 * testsuite/27_io/basic_istream/get/char/2.cc: Likewise.
688 * testsuite/27_io/basic_istream/getline/char/1.cc: Likewise.
689 * testsuite/27_io/basic_istream/getline/char/2.cc: Likewise.
690 * testsuite/27_io/basic_istream/getline/char/3.cc: Likewise.
691 * testsuite/27_io/basic_istream/ignore/char/1.cc: Likewise.
692 * testsuite/27_io/basic_istream/ignore/char/6360.cc: Likewise.
693 * testsuite/27_io/basic_istream/ignore/char/7220.cc: Likewise.
694 * testsuite/27_io/basic_istream/peek/char/1.cc: Likewise.
695 * testsuite/27_io/basic_istream/peek/char/6414.cc: Likewise.
696 * testsuite/27_io/basic_istream/putback/char/1.cc: Likewise.
697 * testsuite/27_io/basic_istream/read/char/1.cc: Likewise.
698 * testsuite/27_io/basic_istream/read/char/2.cc: Likewise.
699 * testsuite/27_io/basic_istream/read/char/3.cc: Likewise.
700 * testsuite/27_io/basic_istream/readsome/char/6746-1.cc:
702 * testsuite/27_io/basic_istream/readsome/char/6746-2.cc:
704 * testsuite/27_io/basic_istream/readsome/char/8258.cc:
706 * testsuite/27_io/basic_istream/seekg/char/2346-fstream.cc:
708 * testsuite/27_io/basic_istream/seekg/char/2346-sstream.cc:
710 * testsuite/27_io/basic_istream/seekg/char/8348-1.cc: Likewise.
711 * testsuite/27_io/basic_istream/seekg/char/8348-2.cc: Likewise.
712 * testsuite/27_io/basic_istream/tellg/char/8348.cc: Likewise.
714 2004-01-04 Paolo Carlini <pcarlini@suse.de>
716 * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc:
717 Remove redundant #includes.
718 * testsuite/27_io/basic_istream/extractors_arithmetic/char/02.cc:
720 * testsuite/27_io/basic_istream/extractors_arithmetic/char/03.cc:
722 * testsuite/27_io/basic_istream/extractors_arithmetic/char/06.cc:
724 * testsuite/27_io/basic_istream/extractors_arithmetic/char/07.cc:
726 * testsuite/27_io/basic_istream/extractors_arithmetic/char/08.cc:
728 * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc:
730 * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
732 * testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc:
734 * testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc:
736 * testsuite/27_io/basic_ostream/inserters_arithmetic/char/1.cc:
738 * testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc:
740 * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/1.cc:
743 2004-01-04 Mark Mitchell <mark@codesourcery.com>
746 * testsuite/27_io/basic_filebuf/4.cc: Remove use of invalid copy
748 * testsuite/27_io/basic_fstream/4.cc: Likewise.
749 * testsuite/27_io/basic_ifstream/4.cc: Likewise.
750 * testsuite/27_io/basic_ios/4.cc: Likewise.
751 * testsuite/27_io/basic_iostream/4.cc: Likewise.
752 * testsuite/27_io/basic_istream/4.cc: Likewise.
753 * testsuite/27_io/basic_istingstream/4.cc: Likewise.
754 * testsuite/27_io/basic_ofstream/4.cc: Likewise.
755 * testsuite/27_io/basic_ostream/4.cc: Likewise.
756 * testsuite/27_io/basic_ostringstream/4.cc: Likewise.
757 * testsuite/27_io/basic_stringbuf/5.cc: Likewise.
758 * testsuite/27_io/basic_stringstream/4.cc: Likewise.
760 2004-01-04 Paolo Carlini <pcarlini@suse.de>
762 * config/locale/generic/numeric_members.cc (_M_initialize_numpunct):
763 Avoid unnecessarily zero terminating _M_atoms_out and _M_atoms_in;
764 always use double underscored names.
765 * config/locale/gnu/numeric_members.cc (_M_initialize_numpunct):
767 * include/bits/locale_facets.h (struct __numpunct_cache):
768 Dimension _M_atoms_out and _M_atoms_in one position smaller.
769 (__numpunct_cache<>::_M_cache): Don't zero terminate _M_atoms_out