Skip to content

Commit 41f8037

Browse files
committed
Re-add + update __assertion_handler from default_assertion_handler.in
This file was added as a part of LLVM 18 update (#21638) in 8d51927 and mistakenly deleted when I ran update_libcxx.py. This file was copied from https://github.com/llvm/llvm-project/blob/aadaa00de76ed0c4987b97450dd638f63a385bed/libcxx/vendor/llvm/default_assertion_handler.in, so this also updates the file with the newest `default_assertion_handler.in`.
1 parent b74dda1 commit 41f8037

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
// -*- C++ -*-
2+
//===----------------------------------------------------------------------===//
3+
//
4+
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5+
// See https://llvm.org/LICENSE.txt for license information.
6+
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7+
//
8+
//===----------------------------------------------------------------------===//
9+
10+
#ifndef _LIBCPP___ASSERTION_HANDLER
11+
#define _LIBCPP___ASSERTION_HANDLER
12+
13+
#include <__config>
14+
#include <__verbose_abort>
15+
16+
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
17+
# pragma GCC system_header
18+
#endif
19+
20+
#if _LIBCPP_HARDENING_MODE == _LIBCPP_HARDENING_MODE_DEBUG
21+
22+
# define _LIBCPP_ASSERTION_HANDLER(message) _LIBCPP_VERBOSE_ABORT("%s", message)
23+
24+
#else
25+
26+
# if __has_builtin(__builtin_verbose_trap)
27+
// AppleClang shipped a slightly different version of __builtin_verbose_trap from the upstream
28+
// version before upstream Clang actually got the builtin.
29+
// TODO: Remove once AppleClang supports the two-arguments version of the builtin.
30+
# if defined(_LIBCPP_APPLE_CLANG_VER) && _LIBCPP_APPLE_CLANG_VER < 1700
31+
# define _LIBCPP_ASSERTION_HANDLER(message) __builtin_verbose_trap(message)
32+
# else
33+
# define _LIBCPP_ASSERTION_HANDLER(message) __builtin_verbose_trap("libc++", message)
34+
# endif
35+
# else
36+
# define _LIBCPP_ASSERTION_HANDLER(message) ((void)message, __builtin_trap())
37+
# endif
38+
39+
#endif // _LIBCPP_HARDENING_MODE == _LIBCPP_HARDENING_MODE_DEBUG
40+
41+
#endif // _LIBCPP___ASSERTION_HANDLER

0 commit comments

Comments
 (0)