[libcxx-commits] [libcxx] 867c966 - [libc++] Fix __verbose_abort in C++11

Louis Dionne via libcxx-commits libcxx-commits at lists.llvm.org
Fri Apr 28 12:30:22 PDT 2023


Author: Louis Dionne
Date: 2023-04-28T15:30:08-04:00
New Revision: 867c966c7d1f0c1d60c4b7439182f85fca87f42b

URL: https://github.com/llvm/llvm-project/commit/867c966c7d1f0c1d60c4b7439182f85fca87f42b
DIFF: https://github.com/llvm/llvm-project/commit/867c966c7d1f0c1d60c4b7439182f85fca87f42b.diff

LOG: [libc++] Fix __verbose_abort in C++11

__use() can't be marked as constexpr in C++11 because it returns void,
which is not a literal type. But it turns out that we just don't need
to define it at all, since it's never called outside of decltype.

Differential Revision: https://reviews.llvm.org/D149360

Added: 
    

Modified: 
    libcxx/include/__verbose_abort

Removed: 
    


################################################################################
diff  --git a/libcxx/include/__verbose_abort b/libcxx/include/__verbose_abort
index 048d9ff9a003..a38284b711f3 100644
--- a/libcxx/include/__verbose_abort
+++ b/libcxx/include/__verbose_abort
@@ -47,7 +47,7 @@ void __libcpp_verbose_abort(const char *__format, ...);
 
 #  if defined(_LIBCPP_AVAILABILITY_HAS_NO_VERBOSE_ABORT)
 // The decltype is there to suppress -Wunused warnings in this configuration.
-_LIBCPP_HIDE_FROM_ABI inline _LIBCPP_CONSTEXPR void __use(const char*, ...) { }
+void __use(const char*, ...);
 #    define _LIBCPP_VERBOSE_ABORT(...) (decltype(::std::__use(__VA_ARGS__))(), __builtin_abort())
 #  else
 #    define _LIBCPP_VERBOSE_ABORT(...) ::std::__libcpp_verbose_abort(__VA_ARGS__)


        


More information about the libcxx-commits mailing list