From: trcrsired <uwgghhb...@gmail.com>

__glibcxx_assert_fail is not defined when we disable
the libstdcxx-verbose. This causes ABI break when a
binary is compiled with verbose enabled.
---
 libstdc++-v3/src/c++11/assert_fail.cc | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/libstdc++-v3/src/c++11/assert_fail.cc 
b/libstdc++-v3/src/c++11/assert_fail.cc
index 6d99c7958f3..7eed3d072d7 100644
--- a/libstdc++-v3/src/c++11/assert_fail.cc
+++ b/libstdc++-v3/src/c++11/assert_fail.cc
@@ -22,23 +22,25 @@
 // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 // <http://www.gnu.org/licenses/>.
 
+#ifdef _GLIBCXX_VERBOSE_ASSERT
 #include <cstdio>      // for std::fprintf, stderr
+#endif
 #include <cstdlib>     // for std::abort
 
-#ifdef _GLIBCXX_VERBOSE_ASSERT
 namespace std
 {
   [[__noreturn__]]
   void
-  __glibcxx_assert_fail(const char* file, int line,
-                       const char* function, const char* condition) noexcept
+  __glibcxx_assert_fail([[maybe_unused]] const char* file, [[maybe_unused]] 
int line,
+                       [[maybe_unused]] const char* function, [[maybe_unused]] 
const char* condition) noexcept
   {
+#ifdef _GLIBCXX_VERBOSE_ASSERT
     if (file && function && condition)
       fprintf(stderr, "%s:%d: %s: Assertion '%s' failed.\n",
              file, line, function, condition);
     else if (function)
       fprintf(stderr, "%s: Undefined behavior detected.\n", function);
+#endif
     abort();
   }
 }
-#endif
-- 
2.45.2

Reply via email to