[committed] libstdc++: Fix errors when syncbuf is used without RTTI

Jonathan Wakely jwakely@redhat.com
Fri Feb 12 14:45:35 GMT 2021


libstdc++-v3/ChangeLog:

	* include/std/ostream (__syncbuf_base::_S_get): Mark parameter
	as unused and only use dynamic_cast when RTTI is enabled.

Tested powerpc64le-linux. Committed to trunk.

-------------- next part --------------
commit 14b554c462d5b6450fa24afb7ba55435ebd4b46f
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Fri Feb 12 11:36:27 2021

    libstdc++: Fix errors when syncbuf is used without RTTI
    
    libstdc++-v3/ChangeLog:
    
            * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
            as unused and only use dynamic_cast when RTTI is enabled.

diff --git a/libstdc++-v3/include/std/ostream b/libstdc++-v3/include/std/ostream
index 85ed47ecbce..c7c4e78e8a7 100644
--- a/libstdc++-v3/include/std/ostream
+++ b/libstdc++-v3/include/std/ostream
@@ -783,10 +783,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     {
     public:
       static bool*
-      _S_get(basic_streambuf<_CharT, _Traits>* __buf) noexcept
+      _S_get(basic_streambuf<_CharT, _Traits>* __buf [[maybe_unused]]) noexcept
       {
+#if __cpp_rtti
 	if (auto __p = dynamic_cast<__syncbuf_base*>(__buf))
 	  return &__p->_M_emit_on_sync;
+#endif
 	return nullptr;
       }
 


More information about the Libstdc++ mailing list