diff mbox series

libstdc++: Fix --disable-libstdcxx-verbose abi break [PR115585]

Message ID SA1PR11MB71309671E062B7F61AA7423FB2CA2@SA1PR11MB7130.namprd11.prod.outlook.com
State New
Headers show
Series libstdc++: Fix --disable-libstdcxx-verbose abi break [PR115585] | expand

Commit Message

Shengdun Wang June 22, 2024, 8:24 p.m. UTC
From: Shengdun Wang <uwgghhbcad@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/ChangeLog:

	* src/c++11/assert_fail.cc:
---
 libstdc++-v3/src/c++11/assert_fail.cc | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)
diff mbox series

Patch

diff --git a/libstdc++-v3/src/c++11/assert_fail.cc b/libstdc++-v3/src/c++11/assert_fail.cc
index 6d99c7958f3..8842bf85cee 100644
--- a/libstdc++-v3/src/c++11/assert_fail.cc
+++ b/libstdc++-v3/src/c++11/assert_fail.cc
@@ -22,23 +22,28 @@ 
 // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 // <http://www.gnu.org/licenses/>.
 
+#include <bits/c++config.h>
+#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*,
+                         [[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