#include "int_util.h"
#include "int_lib.h"
#ifdef KERNEL_USE
extern void panic(const char *, ...) __attribute__((noreturn));
#ifndef _WIN32
__attribute__((visibility("hidden")))
#endif
void compilerrt_abort_impl(const char *file, int line, const char *function) {
panic("%s:%d: abort in %s", file, line, function);
}
#elif __APPLE__
extern void __assert_rtn(const char *func, const char *file,
int line, const char * message) __attribute__((noreturn));
#ifndef _WIN32
__attribute__((weak))
__attribute__((visibility("hidden")))
#endif
void compilerrt_abort_impl(const char *file, int line, const char *function) {
__assert_rtn(function, file, line, "libcompiler_rt abort");
}
#else
#include <stdlib.h>
#ifndef _WIN32
__attribute__((weak))
__attribute__((visibility("hidden")))
#endif
void compilerrt_abort_impl(const char *file, int line, const char *function) {
abort();
}
#endif