clang-format stopped working when compiled with gcc-7. 
It turned out that an uninitialized _M_color is responsible.

The fix is easy, just copy _M_color in the move case, too.

Tested on ppc64le.
OK for trunk?
Thanks.

        PR libstdc++/80183
        * include/bits/stl_tree.h:
        (_Rb_tree_header::_M_move_data(_Rb_tree_header&)): Also save _M_color.

diff --git a/libstdc++-v3/include/bits/stl_tree.h 
b/libstdc++-v3/include/bits/stl_tree.h
index cbcf7f2606f..ce7ecdaa87a 100644
--- a/libstdc++-v3/include/bits/stl_tree.h
+++ b/libstdc++-v3/include/bits/stl_tree.h
@@ -192,6 +192,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     void
     _M_move_data(_Rb_tree_header& __from)
     {
+      _M_header._M_color = __from._M_header._M_color;
       _M_header._M_parent = __from._M_header._M_parent;
       _M_header._M_left = __from._M_header._M_left;
       _M_header._M_right = __from._M_header._M_right;
-- 
Markus

Reply via email to