1 2006-10-02 Paolo Carlini <pcarlini@suse.de>
4 * include/bits/streambuf.tcc (__copy_streambufs_eof): New, like
5 the existing __copy_streambufs but reporting eof in input.
6 (__copy_streambufs): Just use the latter.
7 * src/streambuf.cc (__copy_streambufs_eof): Adjust specializations
9 * include/bits/istream.tcc (operator>>(__streambuf_type*)): Use
10 __copy_streambufs_eof instead.
11 * include/std/std_streambuf.h: Adjust.
12 * src/streambuf-inst.cc: Adjust.
13 * config/abi/pre/gnu.ver: Export the new symbols.
14 * testsuite/27_io/basic_istream/extractors_other/char/26181.cc: New.
15 * testsuite/27_io/basic_istream/extractors_other/wchar_t/26181.cc:
17 * testsuite/27_io/basic_istream/extractors_other/char/1.cc: Adjust.
18 * testsuite/27_io/basic_istream/extractors_other/wchar_t/1.cc:
21 2006-02-08 Benjamin Kosnik <bkoz@redhat.com>
24 * include/debug/debug.h: Move debug alias inside namespace std,
25 same with namespace __gnu_cxx. Add top-level __gnu_debug
27 * include/debug/hash_multimap.h: Nest within __gnu_cxx, not
28 std. Also, change nesting namespace name from __gnu_debug_def to
30 * include/debug/hash_map.h: Same.
31 * include/debug/hash_multiset.h: Same.
32 * include/debug/hash_set.h: Same.
33 * docs/html/debug.html: Same.
34 * testsuite/23_containers/vector/26412.cc: New.
35 * testsuite/23_containers/vector/invalidation/1.cc: Correct
36 qualifications for debug namespace change.
37 * testsuite/23_containers/vector/invalidation/2.cc: Same.
38 * testsuite/23_containers/vector/invalidation/3.cc: Same.
39 * testsuite/23_containers/vector/invalidation/4.cc: Same.
40 * testsuite/23_containers/deque/invalidation/1.cc: Same.
41 * testsuite/23_containers/deque/invalidation/2.cc: Same.
42 * testsuite/23_containers/deque/invalidation/3.cc: Same.
43 * testsuite/23_containers/deque/invalidation/4.cc: Same.
44 * testsuite/23_containers/multiset/invalidation/1.cc: Same.
45 * testsuite/23_containers/multiset/invalidation/2.cc: Same.
46 * testsuite/23_containers/multimap/invalidation/1.cc: Same.
47 * testsuite/23_containers/multimap/invalidation/2.cc: Same.
48 * testsuite/23_containers/bitset/invalidation/1.cc: Same.
49 * testsuite/23_containers/bitset/cons/16020.cc: Same.
50 * testsuite/23_containers/bitset/operations/13838.cc: Same.
51 * testsuite/23_containers/list/invalidation/1.cc: Same.
52 * testsuite/23_containers/list/invalidation/2.cc: Same.
53 * testsuite/23_containers/list/invalidation/3.cc: Same.
54 * testsuite/23_containers/list/invalidation/4.cc: Same.
55 * testsuite/23_containers/set/invalidation/1.cc: Same.
56 * testsuite/23_containers/set/invalidation/2.cc: Same.
57 * testsuite/23_containers/map/invalidation/1.cc: Same.
58 * testsuite/23_containers/map/invalidation/2.cc: Same.
59 * testsuite/23_containers/map/modifiers/insert/16813.cc: Same.
60 * testsuite/21_strings/basic_string/2.cc: Same.
62 2006-02-08 Paolo Carlini <pcarlini@suse.de>
64 PR libstdc++/26133 (DR 241, [WP])
65 * include/bits/stl_algo.h (__unique_copy(,,, forward_iterator_tag,
66 output_iterator_tag), __unique_copy(,,, input_iterator_tag,
67 output_iterator_tag), __unique_copy(,,, input_iterator_tag,
68 forward_iterator_tag), and predicated counterparts): Add.
69 (__unique_copy(,,, output_iterator_tag), __unique_copy(,,,
70 forward_iterator_tag), and predicated counterparts): Remove.
71 (unique_copy): Adjust, dispatch to the three helpers above.
72 * testsuite/25_algorithms/unique_copy/2.cc: New.
73 * testsuite/25_algorithms/unique_copy/26133.cc: Likewise.
74 * testsuite/25_algorithms/unique_copy/3.cc: Likewise.
75 * docs/html/ext/howto.html: Add an entry for DR 241.
77 * testsuite/25_algorithms/unique_copy/1.cc: Minor cosmetic changes.
79 2006-02-07 Jakub Jelinek <jakub@redhat.com>
80 Benjamin Kosnik <bkoz@redhat.com>
82 * configure.ac (_GLIBCXX_LONG_DOUBLE_COMPAT): New check.
83 If true, set also port_specific_symbol_files and create
85 (GLIBCXX_LDBL_COMPAT): New GLIBCXX_CONDITIONAL.
87 * config.h.in: Rebuilt.
88 * config/os/gnu-linux/ldbl-extra.ver: New file.
89 * config/abi/pre/gnu.ver: Make sure no __float128 symbols are
91 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_COMPAT,
92 _GLIBCXX_LDBL_NAMESPACE, _GLIBCXX_BEGIN_LDBL_NAMESPACE,
93 _GLIBCXX_END_LDBL_NAMESPACE): Define.
94 * include/bits/localefwd.h: Use them to conditionally scope facets.
95 * include/bits/locale_facets.h: Surround std::{money,num}_{get,put}
96 with _GLIBCXX_BEGIN_LDBL_NAMESPACE and _GLIBCXX_END_LDBL_NAMESPACE.
97 Surround std::{money,num}_{get,put}
98 with _GLIBCXX_BEGIN_LDBL_NAMESPACE and _GLIBCXX_END_LDBL_NAMESPACE.
99 [_GLIBCXX_LONG_DOUBLE_COMPAT] (std::money_get): Add __do_get method.
100 [_GLIBCXX_LONG_DOUBLE_COMPAT] (std::money_put): Add __do_put method.
101 [_GLIBCXX_LONG_DOUBLE_COMPAT] (std::num_get): Add __do_get method.
102 [_GLIBCXX_LONG_DOUBLE_COMPAT] (std::num_put): Add __do_put method.
103 * include/bits/locale_facets.tcc: Surround std::{money,num}_{get,put}
104 with _GLIBCXX_BEGIN_LDBL_NAMESPACE and _GLIBCXX_END_LDBL_NAMESPACE.
105 (std::money_get::__do_get, std::money_put::__do_put,
106 std::num_get::__do_get, std::num_put::__do_put): New
108 * include/Makefile.am: Conditionally define
109 _GLIBCXX_LONG_DOUBLE_COMPAT in c++config.
110 * include/Makefile.in: Regenerate.
111 * src/locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT] (_GLIBCXX_LOC_ID,
112 _GLIBCXX_SYNC_ID): Define, use them.
113 * src/compatibility-ldbl.cc: New file.
114 * src/complex_io.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Add compatibility
116 * src/limits.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
117 * src/locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
118 * src/locale-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
119 * src/locale-misc-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
120 * src/istream-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
121 * src/ostream-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
122 * src/locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
123 * src/wlocale-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
124 * src/compatibility.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
125 * config/locale/generic/c_locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]:
127 * config/locale/gnu/c_locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]:
129 * src/Makefile.am (libstdc++-symbol.ver): Append instead of
130 insert in the middle if port specific symbol file requests it.
131 (ldbl_compat_sources): New variable.
133 (compatibility-ldbl.lo, compatibility-ldbl.o): New rules.
134 * src/Makefile.in: Rebuilt.
135 * testsuite/testsuite_abi.cc: Recognize GLIBCXX_LDBL_3.4,
136 GLIBCXX_LDBL_3.4.7, CXXABI_LDBL_1.3.
138 2006-02-07 Paolo Carlini <pcarlini@suse.de>
140 * include/tr1/hashtable: Trivial formatting fixes.
142 2006-02-07 Paolo Carlini <pcarlini@suse.de>
143 Zak Kipling <zak@transversal.com>
146 * include/tr1/hashtable (hashtable<>::key_equal): Define.
147 (hashtable<>::bucket, rehash_base<>::max_load_factor): Fix.
148 * testsuite/tr1/6_containers/unordered/hashtable/26127.cc: New.
150 2006-02-07 Paolo Carlini <pcarlini@suse.de>
152 * include/tr1/cmath: New.
153 * include/tr1/cstdlib: Likewise.
154 * include/tr1/ctime: Likewise.
155 * include/tr1/math.h: Likewise.
156 * include/tr1/stdlib.h: Likewise.
157 * include/Makefile.am: Add.
158 * acinclude.m4 ([GLIBCXX_CHECK_C99_TR1]): Add <math.h> checks.
159 * testsuite/tr1/8_c_compatibility/cmath/functions.cc: New.
160 * testsuite/tr1/8_c_compatibility/cstdlib/functions.cc: Likewise.
161 * testsuite/tr1/8_c_compatibility/cstdlib/types.cc: Likewise.
162 * testsuite/tr1/headers.cc: Update.
164 * include/tr1/cinttypes: Do not provide abs and div, conflicting
165 with the above overloads for _Longlong types.
166 * include/tr1/inttypes.h: Adjust.
167 * testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Adjust.
169 * docs/html/ext/tr1.html: Update.
171 * testsuite/tr1/8_c_compatibility/cwchar/functions.cc: Tweak.
173 * include/Makefile.in: Regenerate.
174 * config.h.in: Likewise.
175 * configure: Likewise.
177 2006-02-07 Mark Mitchell <mark@codesourcery.com>
179 * testsuite/testsuite_tr1.h (test_property): New function.
180 * testsuite/tr1/4_metaprogramming/type_properties/extent/extent.cc
183 2006-02-05 Paolo Carlini <pcarlini@suse.de>
185 * include/tr1/cstdio: New.
186 * include/tr1/stdio.h: Likewise.
187 * include/Makefile.am: Add.
188 * testsuite/tr1/8_c_compatibility/cstdio/functions.cc: New.
189 * testsuite/tr1/headers.cc: Update.
190 * docs/html/ext/tr1.html: Update.
192 * include/tr1/cwchar: Simplify, use _GLIBCXX_USE_C99, consistently
193 with the facilities in std::.
194 * include/tr1/cwctype: Likewise.
195 * testsuite/tr1/8_c_compatibility/cwchar/functions.cc: Tweak.
196 * testsuite/tr1/8_c_compatibility/cwctype/functions.cc: Likewise.
197 * acinclude.m4 ([GLIBCXX_CHECK_C99_TR1]): Remove <wchar.h> and
200 * include/Makefile.in: Regenerate.
201 * config.h.in: Likewise.
202 * configure: Likewise.
204 2006-02-04 Paolo Carlini <pcarlini@suse.de>
206 * testsuite/tr1/8_c_compatibility/cwchar/functions.cc: Fix.
208 2006-02-04 Paolo Carlini <pcarlini@suse.de>
210 * testsuite/27_io/basic_stringbuf/in_avail/char/21955.cc: Avoid
211 warning on string constant.
213 2006-02-03 Paolo Carlini <pcarlini@suse.de>
215 * include/tr1/cwchar: New.
216 * include/tr1/cwctype: Likewise.
217 * include/tr1/wchar.h: Likewise.
218 * include/tr1/wctype.h: Likewise.
219 * include/Makefile.am: Add.
220 * testsuite/tr1/8_c_compatibility/cwchar/functions.cc: New.
221 * testsuite/tr1/8_c_compatibility/cwctype/functions.cc: Likewise.
222 * testsuite/tr1/headers.cc: Update.
223 * acinclude.m4 ([GLIBCXX_CHECK_C99_TR1]): Add <wchar.h> and
225 * docs/html/ext/tr1.html: Update.
226 * include/Makefile.in: Regenerate.
227 * config.h.in: Likewise.
228 * configure: Likewise.
230 * testsuite/tr1/8_c_compatibility/cctype/functions.cc: Cosmetic tweak.
232 2006-02-02 Paolo Carlini <pcarlini@suse.de>
234 * include/tr1/cfloat: New.
235 * include/tr1/climits: Likewise.
236 * include/tr1/cstdarg: Likewise.
237 * include/tr1/ctype.h: Likewise.
238 * include/tr1/fenv.h: Likewise.
239 * include/tr1/float.h: Likewise.
240 * include/tr1/inttypes.h: Likewise.
241 * include/tr1/limits.h: Likewise.
242 * include/tr1/stdint.h: Likewise.
243 * include/tr1/stdarg.h: Likewise.
244 * include/Makefile.am: Add.
245 * include/Makefile.in: Regenerate.
246 * docs/html/ext/tr1.html: Update.
247 * testsuite/tr1/headers.cc: New.
249 * include/tr1/cctype: Include <cctype> instead.
251 2006-01-31 Paolo Carlini <pcarlini@suse.de>
254 * include/tr1/array (array<>::_M_instance): Maximally align.
255 * testsuite/ext/array_allocator/2.cc: Do not xfail for powerpc.
257 2006-01-31 Ed Smith-Rowland <3dw4rd@verizon.net>
259 * docs/html/faq/index.html ([1.0]): Replace references to CVS
260 with appropriate references to SVN.
264 * docs/html/faq/index.txt: Regenerated.
266 2006-01-30 Gabriel Dos Reis <gdr@integrable-solutions.net>
268 * include/bits/valarray_array.h (__valarray_default_construct):
269 Replace use __is_fundamental with __is_pod.
270 (__valarray_fill_construct): Likewise.
271 (__valarray_copy_construct): Likewise.
272 (__valarray_destroy_elements): Likewise.
273 (__valarray_copy): Likewise.
275 2006-01-30 Paolo Carlini <pcarlini@suse.de>
277 * acinclude.m4 ([GLIBCXX_CHECK_C99_TR1]): Do the <inttypes.h>
278 checks only if the <stdint.h> checks are successful.
279 * configure: Regenerate.
281 2006-01-30 Paolo Carlini <pcarlini@suse.de>
283 * include/tr1/cinttypes: New.
284 * include/Makefile.am: Add.
285 * testsuite/tr1/8_c_compatibility/cinttypes/functions: New.
286 * testsuite/tr1/8_c_compatibility/cinttypes/types: Likewise.
287 * acinclude.m4 ([GLIBCXX_CHECK_C99_TR1]): Add <inttypes.h> checks.
288 * docs/html/ext/tr1.html: Update.
289 * include/Makefile.in: Regenerate.
290 * config.h.in: Likewise.
291 * configure: Likewise.
293 * testsuite/tr1/8_c_compatibility/cfenv/functions.cc: Cosmetic tweak.
294 * testsuite/tr1/8_c_compatibility/cfenv/types.cc: Likewise.
296 * testsuite/tr1/8_c_compatibility/cstdint/types.cc: Fix, check in
299 2006-01-29 Paolo Carlini <pcarlini@suse.de>
301 * include/tr1/cstdint: New.
302 * include/Makefile.am: Add.
303 * testsuite/tr1/8_c_compatibility/cstdint/types: New.
304 * acinclude.m4 ([GLIBCXX_CHECK_C99_TR1]): Add <stdint.h> checks.
305 * docs/html/ext/tr1.html: Update.
306 * include/Makefile.in: Regenerate.
307 * config.h.in: Likewise.
308 * configure: Likewise.
310 * testsuite/tr1/8_c_compatibility/cfenv/types.cc: Cosmetic tweak.
312 2006-01-29 Paolo Carlini <pcarlini@suse.de>
315 * acinclude.m4 ([GLIBCXX_CHECK_C99_TR1]): Tighten <ctype.h> and
317 * configure: Regenerate.
319 2006-01-26 Paolo Carlini <pcarlini@suse.de>
321 * include/std/std_bitset.h (bitset<>::_M_copy_to_string):
322 Call the internal _Unchecked_set(size_t) instead of set.
324 2006-01-26 Paolo Carlini <pcarlini@suse.de>
326 * docs/html/install.html ([Tools you will need beforehand]):
327 Clarify that the de_DE locale is used by configure; clarify
328 that missing localedata leads to skipped tests, not fails.
330 2006-01-26 Paolo Carlini <pcarlini@suse.de>
332 * include/tr1/cfenv: New.
333 * include/Makefile.am: Add.
334 * testsuite/tr1/8_c_compatibility/cfenv/functions.cc: New.
335 * testsuite/tr1/8_c_compatibility/cfenv/types.cc: Likewise.
336 * acinclude.m4 ([GLIBCXX_CHECK_C99_TR1]): Add <fenv.h> checks.
337 * docs/html/ext/tr1.html: Update; add note.
338 * include/Makefile.in: Regenerate.
339 * config.h.in: Likewise.
340 * configure: Likewise.
342 * testsuite/tr1/8_c_compatibility/complex/functions.cc: Tweak.
343 * testsuite/tr1/8_c_compatibility/cctype/functions.cc: Likewise.
345 * docs/html/faq/index.html: Fix link to tr1.html text; fix
348 2006-01-25 Paolo Carlini <pcarlini@suse.de>
350 * include/tr1/cctype: New.
351 * include/Makefile.am: Add.
352 * testsuite/tr1/8_c_compatibility/cctype/functions.cc: New.
353 * include/Makefile.in: Regenerate.
355 * acinclude.m4 ([GLIBCXX_CHECK_C99_TR1]): New, check for C99
356 support to TR1, Chapter 8.
357 * configure.ac: Use it.
358 * include/tr1/complex: Adjust.
359 * config.h.in: Regenerate.
360 * configure: Likewise.
362 2006-01-25 Benjamin Kosnik <bkoz@redhat.com>
364 * docs/html/configopts.html: Tweak docs.
366 * libsupc++/eh_personality.cc: Fix typos.
368 2006-01-24 Paolo Carlini <pcarlini@suse.de>
371 * include/std/std_istream.h (operator>>(short&), operator>>(int&)):
373 * include/bits/istream.tcc: ... here.
374 * include/std/std_ostream.h (operator<<(short), operator<<(int)):
376 * include/bits/ostream.tcc: ... here.
378 2006-01-24 Ed Smith-Rowland <3dw4rd@verizon.net>
380 * docs/html/faq/index.html ([5.2]): Mention TR1 and point to
381 paragraph [5.5], describing it.
383 * docs/html/ext/tr1.html: New.
385 2006-01-20 Benjamin Kosnik <bkoz@redhat.com>
387 * acinclude.m4 (GLIBCXX_CHECK_LINKER_FEATURES): Verbose ld version
388 reporting. Disable --gc-sections for old binutils, by version.
389 * configure: Regenerate.
391 2006-01-20 Joseph S. Myers <joseph@codesourcery.com>
394 * include/Makefile.am: Install host-specific headers in multilib
396 * include/Makefile.in: Regenerate.
398 2006-01-19 Paolo Carlini <pcarlini@suse.de>
400 Implement list::splice (and merge) bits of N1599
401 * include/bits/stl_list.h (list<>::_M_check_equal_allocators): New.
402 (list<>::splice(iterator, list&), splice(iterator, list&, iterator),
403 splice(iterator, list&, iterator, iterator)): Use it.
404 * include/bits/list.tcc (list<>::merge(list&), merge(list&,
405 _StrictWeakOrdering)): Likewise.
406 * testsuite/23_containers/list/operators/5.cc: New.
408 2006-01-19 H.J. Lu <hongjiu.lu@intel.com>
411 * acinclude.m4 (GLIBCXX_CHECK_LINKER_FEATURES): Remove -Werror
412 from CFLAGS. Check if linker really supports --gc-sections.
413 * configure: Regenerated.
415 2006-01-18 Paul Brook <paul@codesourcery.com>
417 * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Use std::abort.
419 2006-01-18 Paolo Carlini <pcarlini@suse.de>
421 * include/bits/allocator.h: Include <bits/cpp_type_traits.h>.
423 2006-01-18 Perry Smith <pedz@easesoftware.net>
427 * libsupc++/eh_alloc.cc: Fix return type of memset declaration.
428 * libsupc++/eh_globals.cc: If !_GLIBCXX_HOSTED declare malloc and free.
430 2006-01-18 Paolo Carlini <pcarlini@suse.de>
432 * include/ext/pb_assoc/detail/value_type_adapter/
433 value_type_adapter.hpp: Include <tr1/type_traits>.
434 * include/ext/pb_assoc/detail/value_type_adapter/
435 it_value_type_traits.hpp (it_value_type_traits_<>::value_type_holder):
436 Use tr1::aligned_storage and tr1::alignment_of.
437 (it_value_type_traits_<>::buf_t): Remove.
438 (it_value_type_traits_<>::make_valid, recast): Adjust.
440 2006-01-16 Benjamin Kosnik <bkoz@redhat.com>
443 * acinclude.m4 (GLIBCXX_CHECK_LINKER_FEATURES): Add -Werror to
444 CFLAGS for --gc-sections test. Correct compile test.
445 * configure: Regenerated.
447 2006-01-15 Paolo Carlini <pcarlini@suse.de>
448 Gabriel Dos Reis <gdr@integrable-solutions.net>
451 * include/std/std_valarray.h (valarray(const slice_array<>&),
452 valarray(const gslice_array<>&), valarray(const mask_array<>&),
453 valarray(const indirect_array<>&), valarray(const _Expr<>&)):
454 Forward to __valarray_copy_construct, not __valarray_copy.
455 * include/bits/valarray_array.h
456 (__valarray_copy_construct(_Array<>, _Array<>, _Array<>, size_t),
457 __valarray_copy_construct(_Array<>, size_t, size_t, _Array<>)):
460 2006-01-15 Paolo Carlini <pcarlini@suse.de>
462 * testsuite/tr1/8_c_compatibility/complex/overloads_int.cc:
463 Fix norm test, use casts everywhere.
465 2006-01-14 Paolo Carlini <pcarlini@suse.de>
467 * testsuite/testsuite_tr1.h: Add missing include; use std::__are_same.
469 2006-01-14 Paolo Carlini <pcarlini@suse.de>
471 * testsuite/tr1/8_c_compatibility/complex/overloads_int.cc:
472 Fix wrong test (don't pick by mistake the (const complex<>&, int)
475 2006-01-13 Paolo Carlini <pcarlini@suse.de>
476 Howard Hinnant <hhinnant@apple.com>
478 * include/tr1/complex (arg, conj, imag, norm, polar, pow, real):
479 Add, implementing TR1, 8.1.9.
481 * include/tr1/common.h: New, provides __promote, __promote_2.
482 * include/Makefile.am: Add.
483 * include/Makefile.in: Regenerate.
484 * testsuite/testsuite_tr1.h (check_ret_type): New.
485 * testsuite/tr1/8_c_compatibility/complex/overloads_int.cc: New.
486 * testsuite/tr1/8_c_compatibility/complex/overloads_float.cc: New.
488 2006-01-12 Benjamin Kosnik <bkoz@redhat.com>
490 * acinclude.m4(GLIBCXX_CHECK_LINKER_FEATURES): Enable
491 --gc-sections in more cases.
492 * configure: Regenerate.
493 * scripts/testsuite_flags.in: Remove SECTION_LDFLAGS.
494 * scripts/testsuite_flags.in (cxxldflags): New.
495 * testsuite/lib/libstdc++.exp (v3_target_compile): Add cxxldflags.
496 (libstdc++_init ): Same.
498 2006-01-12 Jan Beulich <jbeulich@novell.com>
500 * crossconfig.m4: Add AC_DEFINE-s for HAVE_HYPOT, HAVE_ISINF, and
501 HAVE_ISNAN for *-*-netware*.
502 * configure: Refresh.
504 2006-01-11 Benjamin Kosnik <bkoz@redhat.com>
506 * acinclude.m4(GLIBCXX_CHECK_LINKER_FEATURES): Use -Wl,-z,relro if
508 * configure: Regenerate.
510 2006-01-10 Paolo Carlini <pcarlini@suse.de>
512 * include/tr1/complex: New file, hosts the additions to header
513 <complex> described in TR1, Chapter 8 [tr.c99].
514 * include/Makefile.am: Add.
515 * include/Makefile.in: Regenerate.
516 * testsuite/tr1/8_c_compatibility/complex/functions.cc: New.
518 2006-01-09 Paolo Carlini <pcarlini@suse.de>
521 * testsuite/23_containers/deque/cons/assign/1.cc: Divide
524 2006-01-08 Paolo Carlini <pcarlini@suse.de>
526 PR libstdc++/22102 (insert as close to hint as possible)
527 * include/bits/stl_tree.h (_Rb_tree<>::_M_insert_lower,
528 _M_insert_equal_lower): New.
529 (_M_insert_equal(iterator, const _Val&),
530 _M_insert_equal(const_iterator, const _Val&)): Use the above.
531 * docs/html/ext/howto.html: Add an entry for DR 233.
532 * testsuite/23_containers/multiset/modifiers/insert/22102.cc: New.
533 * testsuite/23_containers/multimap/modifiers/insert/22102.cc: New.
535 * testsuite/23_containers/set/insert/: Move...
536 * testsuite/23_containers/set/modifiers/insert/: ...here.
537 * testsuite/23_containers/map/insert/: Move...
538 * testsuite/23_containers/map/modifiers/insert/: ...here.
539 * testsuite/23_containers/multiset/insert/: Move...
540 * testsuite/23_containers/multiset/modifiers/insert/: ...here.
542 2006-01-06 Paolo Carlini <pcarlini@suse.de>
544 * include/bits/stl_tree.h (_Rb_tree<>::insert_unique): Rename
546 (_Rb_tree<>::insert_equal): Rename to _M_insert_equal.
547 * include/bits/stl_map.h (class map<>): Update callers.
548 * include/bits/stl_set.h (class set<>): Likewise.
549 * include/bits/stl_multimap.h (class multimap<>): Likewise.
550 * include/bits/stl_multiset.h (class multiset<>): Likewise.
552 2006-01-06 Paolo Carlini <pcarlini@suse.de>
554 * include/bits/stl_bvector.h (vector<bool>::erase(iterator,
555 iterator)): Just use _M_erase_at_end.
557 2006-01-06 Paolo Carlini <pcarlini@suse.de>
559 * include/bits/stl_bvector.h (class vector<bool>): Move all the
560 helpers under protected access mode, consistently with the primary
562 (vector<bool>::_M_erase_at_end): Add.
563 (erase(iterator, iterator), clear, resize, _M_fill_assign,
564 _M_assign_aux): Use it.
565 * testsuite/23_containers/vector/bool/modifiers/erase/1.cc: New.
567 2006-01-06 Paolo Carlini <pcarlini@suse.de>
569 Implement Option 3 of DR 431 for vector<bool>.
570 * include/bits/stl_bvector.h (class _Bvector_base): Change to
571 a struct, consistently with the primary vector template.
572 (class vector<bool>): Adjust to protected inheritance, tidy
574 (_Bvector_base<>::_M_get_Bit_allocator): Add.
575 (vector<bool>::vector(const vector&)): Use it.
576 (_Bvector_base<>::get_allocator): Tidy.
577 (vector<bool>::swap): Use __alloc_swap.
578 * testsuite/23_containers/vector/bool/modifiers/swap/1.cc: New.
579 * testsuite/23_containers/vector/bool/modifiers/swap/2.cc: New.
581 2006-01-05 Paolo Carlini <pcarlini@suse.de>
583 * testsuite/testsuite_hooks.h (test_tm(unsigned)): Change to
584 take all the tm members.
585 * testsuite/testsuite_hooks.cc (test_tm): Adjust.
586 * testsuite/22_locale/time_put/put/wchar_t/10.cc: Update.
587 * testsuite/22_locale/time_put/put/wchar_t/1.cc: Likewise.
588 * testsuite/22_locale/time_put/put/wchar_t/2.cc: Likewise.
589 * testsuite/22_locale/time_put/put/wchar_t/3.cc: Likewise.
590 * testsuite/22_locale/time_put/put/wchar_t/4.cc: Likewise.
591 * testsuite/22_locale/time_put/put/wchar_t/5.cc: Likewise.
592 * testsuite/22_locale/time_put/put/wchar_t/6.cc: Likewise.
593 * testsuite/22_locale/time_put/put/wchar_t/7.cc: Likewise.
594 * testsuite/22_locale/time_put/put/wchar_t/8.cc: Likewise.
595 * testsuite/22_locale/time_put/put/wchar_t/9.cc: Likewise.
596 * testsuite/22_locale/time_put/put/wchar_t/17038.cc: Likewise.
597 * testsuite/22_locale/time_put/put/char/10.cc: Likewise.
598 * testsuite/22_locale/time_put/put/char/1.cc: Likewise.
599 * testsuite/22_locale/time_put/put/char/2.cc: Likewise.
600 * testsuite/22_locale/time_put/put/char/3.cc: Likewise.
601 * testsuite/22_locale/time_put/put/char/4.cc: Likewise.
602 * testsuite/22_locale/time_put/put/char/5.cc: Likewise.
603 * testsuite/22_locale/time_put/put/char/6.cc: Likewise.
604 * testsuite/22_locale/time_put/put/char/7.cc: Likewise.
605 * testsuite/22_locale/time_put/put/char/8.cc: Likewise.
606 * testsuite/22_locale/time_put/put/char/9.cc: Likewise.
607 * testsuite/22_locale/time_put/put/char/17038.cc: Likewise.
608 * testsuite/22_locale/time_get/get_year/wchar_t/1.cc: Likewise.
609 * testsuite/22_locale/time_get/get_year/wchar_t/3.cc: Likewise.
610 * testsuite/22_locale/time_get/get_year/char/1.cc: Likewise.
611 * testsuite/22_locale/time_get/get_year/char/3.cc: Likewise.
612 * testsuite/22_locale/time_get/get_monthname/wchar_t/1.cc: Likewise.
613 * testsuite/22_locale/time_get/get_monthname/wchar_t/2.cc: Likewise.
614 * testsuite/22_locale/time_get/get_monthname/char/1.cc: Likewise.
615 * testsuite/22_locale/time_get/get_monthname/char/2.cc: Likewise.
616 * testsuite/22_locale/time_get/get_weekday/wchar_t/1.cc: Likewise.
617 * testsuite/22_locale/time_get/get_weekday/wchar_t/2.cc: Likewise.
618 * testsuite/22_locale/time_get/get_weekday/wchar_t/3.cc: Likewise.
619 * testsuite/22_locale/time_get/get_weekday/char/1.cc: Likewise.
620 * testsuite/22_locale/time_get/get_weekday/char/2.cc: Likewise.
621 * testsuite/22_locale/time_get/get_weekday/char/3.cc: Likewise.
622 * testsuite/22_locale/time_get/get_date/wchar_t/12750.cc: Likewise.
623 * testsuite/22_locale/time_get/get_date/wchar_t/12750.cc: Likewise.
624 * testsuite/22_locale/time_get/get_date/wchar_t/1.cc: Likewise.
625 * testsuite/22_locale/time_get/get_date/wchar_t/2.cc: Likewise.
626 * testsuite/22_locale/time_get/get_date/wchar_t/3.cc: Likewise.
627 * testsuite/22_locale/time_get/get_date/char/12750.cc: Likewise.
628 * testsuite/22_locale/time_get/get_date/char/12750.cc: Likewise.
629 * testsuite/22_locale/time_get/get_date/char/1.cc: Likewise.
630 * testsuite/22_locale/time_get/get_date/char/2.cc: Likewise.
631 * testsuite/22_locale/time_get/get_date/char/3.cc: Likewise.
632 * testsuite/22_locale/time_get/get_time/wchar_t/1.cc: Likewise.
633 * testsuite/22_locale/time_get/get_time/wchar_t/2.cc: Likewise.
634 * testsuite/22_locale/time_get/get_time/wchar_t/3.cc: Likewise.
635 * testsuite/22_locale/time_get/get_time/wchar_t/4.cc: Likewise.
636 * testsuite/22_locale/time_get/get_time/char/1.cc: Likewise.
637 * testsuite/22_locale/time_get/get_time/char/2.cc: Likewise.
638 * testsuite/22_locale/time_get/get_time/char/3.cc: Likewise.
639 * testsuite/22_locale/time_get/get_time/char/4.cc: Likewise.
641 2006-01-05 Paolo Carlini <pcarlini@suse.de>
643 * testsuite/testsuite_hooks.h (test_tm(unsigned)): New.
644 * testsuite/testsuite_hooks.cc (test_tm(unsigned)): Define.
645 * testsuite/22_locale/time_put/put/wchar_t/10.cc: Use it.
646 * testsuite/22_locale/time_put/put/wchar_t/1.cc: Likewise.
647 * testsuite/22_locale/time_put/put/wchar_t/2.cc: Likewise.
648 * testsuite/22_locale/time_put/put/wchar_t/3.cc: Likewise.
649 * testsuite/22_locale/time_put/put/wchar_t/4.cc: Likewise.
650 * testsuite/22_locale/time_put/put/wchar_t/5.cc: Likewise.
651 * testsuite/22_locale/time_put/put/wchar_t/6.cc: Likewise.
652 * testsuite/22_locale/time_put/put/wchar_t/7.cc: Likewise.
653 * testsuite/22_locale/time_put/put/wchar_t/8.cc: Likewise.
654 * testsuite/22_locale/time_put/put/wchar_t/9.cc: Likewise.
655 * testsuite/22_locale/time_put/put/wchar_t/17038.cc: Likewise.
656 * testsuite/22_locale/time_put/put/char/10.cc: Likewise.
657 * testsuite/22_locale/time_put/put/char/1.cc: Likewise.
658 * testsuite/22_locale/time_put/put/char/2.cc: Likewise.
659 * testsuite/22_locale/time_put/put/char/3.cc: Likewise.
660 * testsuite/22_locale/time_put/put/char/4.cc: Likewise.
661 * testsuite/22_locale/time_put/put/char/5.cc: Likewise.
662 * testsuite/22_locale/time_put/put/char/6.cc: Likewise.
663 * testsuite/22_locale/time_put/put/char/7.cc: Likewise.
664 * testsuite/22_locale/time_put/put/char/8.cc: Likewise.
665 * testsuite/22_locale/time_put/put/char/9.cc: Likewise.
666 * testsuite/22_locale/time_put/put/char/17038.cc: Likewise.
667 * testsuite/22_locale/time_get/get_year/wchar_t/1.cc: Likewise.
668 * testsuite/22_locale/time_get/get_year/wchar_t/3.cc: Likewise.
669 * testsuite/22_locale/time_get/get_year/char/1.cc: Likewise.
670 * testsuite/22_locale/time_get/get_year/char/3.cc: Likewise.
671 * testsuite/22_locale/time_get/get_monthname/wchar_t/1.cc: Likewise.
672 * testsuite/22_locale/time_get/get_monthname/wchar_t/2.cc: Likewise.
673 * testsuite/22_locale/time_get/get_monthname/char/1.cc: Likewise.
674 * testsuite/22_locale/time_get/get_monthname/char/2.cc: Likewise.
675 * testsuite/22_locale/time_get/get_weekday/wchar_t/1.cc: Likewise.
676 * testsuite/22_locale/time_get/get_weekday/wchar_t/2.cc: Likewise.
677 * testsuite/22_locale/time_get/get_weekday/wchar_t/3.cc: Likewise.
678 * testsuite/22_locale/time_get/get_weekday/char/1.cc: Likewise.
679 * testsuite/22_locale/time_get/get_weekday/char/2.cc: Likewise.
680 * testsuite/22_locale/time_get/get_weekday/char/3.cc: Likewise.
681 * testsuite/22_locale/time_get/get_date/wchar_t/12750.cc: Likewise.
682 * testsuite/22_locale/time_get/get_date/wchar_t/12750.cc: Likewise.
683 * testsuite/22_locale/time_get/get_date/wchar_t/1.cc: Likewise.
684 * testsuite/22_locale/time_get/get_date/wchar_t/2.cc: Likewise.
685 * testsuite/22_locale/time_get/get_date/wchar_t/3.cc: Likewise.
686 * testsuite/22_locale/time_get/get_date/char/12750.cc: Likewise.
687 * testsuite/22_locale/time_get/get_date/char/12750.cc: Likewise.
688 * testsuite/22_locale/time_get/get_date/char/1.cc: Likewise.
689 * testsuite/22_locale/time_get/get_date/char/2.cc: Likewise.
690 * testsuite/22_locale/time_get/get_date/char/3.cc: Likewise.
691 * testsuite/22_locale/time_get/get_time/wchar_t/1.cc: Likewise.
692 * testsuite/22_locale/time_get/get_time/wchar_t/2.cc: Likewise.
693 * testsuite/22_locale/time_get/get_time/wchar_t/3.cc: Likewise.
694 * testsuite/22_locale/time_get/get_time/wchar_t/4.cc: Likewise.
695 * testsuite/22_locale/time_get/get_time/char/1.cc: Likewise.
696 * testsuite/22_locale/time_get/get_time/char/2.cc: Likewise.
697 * testsuite/22_locale/time_get/get_time/char/3.cc: Likewise.
698 * testsuite/22_locale/time_get/get_time/char/4.cc: Likewise.
700 2006-01-04 Paolo Carlini <pcarlini@suse.de>
702 * include/ext/sso_string_base.h (__sso_string_base<>::_M_dataplus):
703 Use _CharT_alloc_type as base class.
704 (_M_get_allocator, _M_swap, _M_create, _M_destroy): Adjust.
705 * include/ext/vstring.h (get_allocator): Tidy.
707 2006-01-04 Paolo Carlini <pcarlini@suse.de>
709 Implement Option 3 of DR 431 for all the containers.
710 * include/bits/allocator.h (struct __alloc_swap): Add, swaps
711 allocators, optimized to nothing in case they are empty.
712 * include/bits/stl_deque.h (deque<>::swap): Use it.
713 * include/bits/stl_list.h (list<>::swap): Likewise.
714 * include/bits/stl_tree.h (_Rb_tree<>::swap): Likewise.
715 * include/bits/stl_vector.h (vector<>::swap): Likewise.
716 * include/tr1/hashtable (hashtable<>::swap): Likewise.
717 * include/ext/rc_string_base.h (__rc_string_base<>::_M_swap):
719 * include/ext/sso_string_base.h (__sso_string_base<>::_M_swap):
721 * include/ext/vstring_util.h (__vstring_utility<>::_Alloc_hider):
722 Clean-up (now vstring uses the generic __alloc_swap facility).
723 * include/tr1/unordered_map: Adjust includes.
724 * include/tr1/unordered_set: Likewise.
725 * docs/html/ext/howto.html: Add an entry for DR 431.
726 * testsuite/23_containers/deque/modifiers/swap.cc: Move to...
727 * testsuite/23_containers/deque/modifiers/swap/1.cc: ... here.
728 * testsuite/23_containers/deque/modifiers/swap/2.cc: New.
729 * testsuite/23_containers/deque/modifiers/swap/3.cc: New.
730 * testsuite/23_containers/list/modifiers/swap.cc: Move to...
731 * testsuite/23_containers/list/modifiers/swap/1.cc: ... here.
732 * testsuite/23_containers/list/modifiers/swap/2.cc: New.
733 * testsuite/23_containers/list/modifiers/swap/3.cc: New.
734 * testsuite/23_containers/vector/modifiers/swap.cc: Move to...
735 * testsuite/23_containers/vector/modifiers/swap/1.cc: ... here.
736 * testsuite/23_containers/vector/modifiers/swap/2.cc: New.
737 * testsuite/23_containers/vector/modifiers/swap/3.cc: New.
738 * testsuite/23_containers/set/modifiers/swap.cc: Move to...
739 * testsuite/23_containers/set/modifiers/swap/1.cc: ... here.
740 * testsuite/23_containers/set/modifiers/swap/2.cc: New.
741 * testsuite/23_containers/set/modifiers/swap/3.cc: New.
742 * testsuite/23_containers/map/modifiers/swap.cc: Move to...
743 * testsuite/23_containers/map/modifiers/swap/1.cc: ... here.
744 * testsuite/23_containers/map/modifiers/swap/2.cc: New.
745 * testsuite/23_containers/map/modifiers/swap/3.cc: New.
746 * testsuite/23_containers/multiset/modifiers/swap.cc: Move to...
747 * testsuite/23_containers/multiset/modifiers/swap/1.cc: ... here.
748 * testsuite/23_containers/multiset/modifiers/swap/2.cc: New.
749 * testsuite/23_containers/multiset/modifiers/swap/3.cc: New.
750 * testsuite/23_containers/multimap/modifiers/swap.cc: Move to...
751 * testsuite/23_containers/multimap/modifiers/swap/1.cc: ... here.
752 * testsuite/23_containers/multimap/modifiers/swap/2.cc: New.
753 * testsuite/23_containers/multimap/modifiers/swap/3.cc: New.
754 * testsuite/tr1/6_containers/unordered/swap/unordered_set/1.cc: New.
755 * testsuite/tr1/6_containers/unordered/swap/unordered_set/2.cc: New.
756 * testsuite/tr1/6_containers/unordered/swap/unordered_map/1.cc: New.
757 * testsuite/tr1/6_containers/unordered/swap/unordered_map/2.cc: New.
758 * testsuite/tr1/6_containers/unordered/swap/unordered_multiset/1.cc: New.
759 * testsuite/tr1/6_containers/unordered/swap/unordered_multiset/2.cc: New.
760 * testsuite/tr1/6_containers/unordered/swap/unordered_multimap/1.cc: New.
761 * testsuite/tr1/6_containers/unordered/swap/unordered_multimap/2.cc: New.
763 2006-01-03 Paolo Carlini <pcarlini@suse.de>
765 * include/bits/stl_list.h (_List_base<>::_M_get_Node_allocator): Add.
766 (_M_get_Tp_allocator, get_allocator): Tidy.
767 (list<>::list(const list&), insert(iterator, size_type, const
768 value_type&), insert(iterator, _InputIterator, _InputIterator)):
769 Use _M_get_Node_allocator.
770 * include/bits/stl_tree.h (_Rb_tree<>::_M_get_Node_allocator()): Add.
771 (_Rb_tree(const _Rb_tree<>&): Use it.
772 * include/bits/stl_deque.h (_Deque_base<>::_M_get_map_allocator,
773 get_allocator): Tidy.
774 * include/bits/stl_vector.h (_Vector_base<>::get_allocator): Tidy.
775 * testsuite/23_containers/map/operators/1_neg.cc: Adjust dg-error
777 * testsuite/23_containers/set/operators/1_neg.cc: Likewise.
779 * testsuite/testsuite_allocator.h (uneq_allocator<>::swap): Fix.
781 * testsuite/testsuite_allocator.h (class uneq_allocator): A simple
782 non-empty testing allocator which can be endowed of a "personality"
783 at construction time.
785 2006-01-03 Paolo Carlini <pcarlini@suse.de>
787 * testsuite/27_io/basic_stringstream/str/char/1.cc: Initialize vars.
788 * testsuite/27_io/basic_stringstream/str/wchar_t/1.cc: Likewise.
789 * testsuite/27_io/basic_istringstream/str/char/1.cc: Likewise, tidy.
790 * testsuite/27_io/basic_istringstream/str/wchar_t/1.cc: Likewise.
792 2006-01-02 Mark Mitchell <mark@codesourcery.com>
794 * src/Makefile.am (LTLDFLAGS): New variable.
795 (CXXLINK): Use LTLDFLAGS.
796 * src/Makefile.in: Regenerated.
797 * libsupc++/Makefile.am (LTLDFLAGS): New variable.
798 (CXXLINK): Use LTLDFLAGS.
799 * libsupc++/Makefile.in: Regenerated.
801 2006-01-02 Paolo Carlini <pcarlini@suse.de>
804 * include/std/std_istream.h (basic_istream<>::_M_extract): New.
805 (operator>>(bool&), operator>>(short&), operator>>(unsigned short&),
806 operator>>(int&), operator>>(unsigned int&), operator>>(long&),
807 operator>>(unsigned long&), operator>>(long long&), operator>>
808 (unsigned long long&), operator>>(float&), operator>>(double&),
809 operator>>(long double&), operator>>(void*&)): Use it.
810 * include/bits/istream.tcc (basic_istream<>::_M_extract): Define.
811 * include/std/std_ostream.h (basic_ostream<>::_M_insert): New.
812 (operator<<(long), operator<<(unsigned long), operator<<(bool),
813 operator<<(short), operator<<(unsigned short), operator<<(int),
814 operator<<(unsigned int), operator<<(long long), operator<<
815 (unsigned long long), operator<<(double), operator<<(float),
816 operator<<(long double), operator<<(const void*): Use it.
817 * include/bits/ostream.tcc (basic_ostream<>::_M_insert): Define.
818 * src/istream-inst.cc: Add _M_extract instantiations.
819 * src/ostream-inst.cc: Add _M_insert instantiations.
820 * config/abi/pre/gnu.ver: Export the new symbols @GLIBCXX_3.4.7;
821 detail existing @GLIBCXX_3.4 exports of basic_ostream, num_put,
822 money_put, etc., symbols to avoid exporting _M_insert symbols