xref: /llvm-project/libcxxabi/src/abort_message.h (revision e0737174f944e6da2d3052e57de04ad93503956b)
1 //===----------------------------------------------------------------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef __ABORT_MESSAGE_H_
10 #define __ABORT_MESSAGE_H_
11 
12 #include "cxxabi.h"
13 
14 extern "C" _LIBCXXABI_HIDDEN _LIBCXXABI_NORETURN void
15 __abort_message(const char *format, ...) __attribute__((format(printf, 1, 2)));
16 
17 #ifndef _LIBCXXABI_ASSERT
18 #  define _LIBCXXABI_ASSERT(expr, msg)                                                                                 \
19     do {                                                                                                               \
20       if (!(expr)) {                                                                                                   \
21         char const* __msg = (msg);                                                                                     \
22         ::__abort_message("%s:%d: %s", __FILE__, __LINE__, __msg);                                                     \
23       }                                                                                                                \
24     } while (false)
25 
26 #endif
27 
28 #endif // __ABORT_MESSAGE_H_
29