re PR libstdc++/66017 (Undefined behaviour in std::set<long long>)
authorJonathan Wakely <jwakely@redhat.com>
Wed, 27 May 2015 11:18:37 +0000 (12:18 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Wed, 27 May 2015 11:18:37 +0000 (12:18 +0100)
commit2097b5b029851d531a1424a0092992d4c9f650e4
tree96e7e2ca94b197e4d0a70f538b776fe1cbb86b64
parentb1af7da61278d2c4ae7b7f56fad37723461031cb
re PR libstdc++/66017 (Undefined behaviour in std::set<long long>)

PR libstdc++/66017
* include/bits/stl_tree.h (_Rb_tree_node): Use __aligned_membuf.
(_Rb_tree_iterator, _Rb_tree_const_iterator): Support construction
from _Base_ptr.
(_Rb_tree_const_iterator::_M_const_cast): Remove static_cast.
(_Rb_tree::begin, _Rb_tree::end): Remove static_cast.
* include/ext/aligned_buffer.h (__aligned_membuf): New type using
alignment of _Tp as a member subobject, not as a complete object.
* python/libstdcxx/v6/printers.py (StdRbtreeIteratorPrinter): Lookup
_Link_type manually as it might not be in the debug info.

From-SVN: r223745
libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/stl_tree.h
libstdc++-v3/include/ext/aligned_buffer.h
libstdc++-v3/python/libstdcxx/v6/printers.py