22 #include <llvm/Support/ErrorHandling.h>
32 #if LLVM_VERSION_MAJOR > 4
33 static void fatal_llvm_new_handler(
void *user_data,
const char *reason,
bool gen_crash_diag);
34 #if LLVM_VERSION_MAJOR < 14
35 static void fatal_llvm_new_handler(
void *user_data,
const std::string& reason,
bool gen_crash_diag);
39 #if LLVM_VERSION_MAJOR < 14
68 #if LLVM_VERSION_MAJOR > 4
69 llvm::install_bad_alloc_error_handler(fatal_llvm_new_handler);
86 #if LLVM_VERSION_MAJOR > 4
87 llvm::remove_bad_alloc_error_handler();
89 llvm::remove_fatal_error_handler();
113 #if LLVM_VERSION_MAJOR > 4
114 llvm::remove_bad_alloc_error_handler();
116 llvm::remove_fatal_error_handler();
131 (
errcode(ERRCODE_OUT_OF_MEMORY),
136 #if LLVM_VERSION_MAJOR > 4
138 fatal_llvm_new_handler(
void *user_data,
143 (
errcode(ERRCODE_OUT_OF_MEMORY),
145 errdetail(
"While in LLVM: %s", reason)));
147 #if LLVM_VERSION_MAJOR < 14
149 fatal_llvm_new_handler(
void *user_data,
153 fatal_llvm_new_handler(user_data, reason.c_str(), gen_crash_diag);
164 (
errcode(ERRCODE_OUT_OF_MEMORY),
165 errmsg(
"fatal llvm error: %s", reason)));
168 #if LLVM_VERSION_MAJOR < 14
int errdetail(const char *fmt,...)
int errcode(int sqlerrcode)
int errmsg(const char *fmt,...)
#define ereport(elevel,...)
Assert(fmt[strlen(fmt) - 1] !='\n')
void llvm_enter_fatal_on_oom(void)
static std::new_handler old_new_handler
bool llvm_in_fatal_on_oom(void)
static void fatal_system_new_handler(void)
static int fatal_new_handler_depth
void llvm_assert_in_fatal_section(void)
void llvm_reset_after_error(void)
void llvm_leave_fatal_on_oom(void)
static void fatal_llvm_error_handler(void *user_data, const char *reason, bool gen_crash_diag)