int_util.c revision 401f693a874c0f2fd9e37173e3ab7045a1bdeb3d
1401f693a874c0f2fd9e37173e3ab7045a1bdeb3dDaniel Dunbar/* ===-- int_util.c - Implement internal utilities --------------------------=== 2401f693a874c0f2fd9e37173e3ab7045a1bdeb3dDaniel Dunbar * 3401f693a874c0f2fd9e37173e3ab7045a1bdeb3dDaniel Dunbar * The LLVM Compiler Infrastructure 4401f693a874c0f2fd9e37173e3ab7045a1bdeb3dDaniel Dunbar * 5401f693a874c0f2fd9e37173e3ab7045a1bdeb3dDaniel Dunbar * This file is dual licensed under the MIT and the University of Illinois Open 6401f693a874c0f2fd9e37173e3ab7045a1bdeb3dDaniel Dunbar * Source Licenses. See LICENSE.TXT for details. 7401f693a874c0f2fd9e37173e3ab7045a1bdeb3dDaniel Dunbar * 8401f693a874c0f2fd9e37173e3ab7045a1bdeb3dDaniel Dunbar * ===----------------------------------------------------------------------=== 9401f693a874c0f2fd9e37173e3ab7045a1bdeb3dDaniel Dunbar */ 10401f693a874c0f2fd9e37173e3ab7045a1bdeb3dDaniel Dunbar 11401f693a874c0f2fd9e37173e3ab7045a1bdeb3dDaniel Dunbar#include "int_util.h" 12401f693a874c0f2fd9e37173e3ab7045a1bdeb3dDaniel Dunbar#include "int_lib.h" 13401f693a874c0f2fd9e37173e3ab7045a1bdeb3dDaniel Dunbar 14401f693a874c0f2fd9e37173e3ab7045a1bdeb3dDaniel Dunbar#ifdef KERNEL_USE 15401f693a874c0f2fd9e37173e3ab7045a1bdeb3dDaniel Dunbar 16401f693a874c0f2fd9e37173e3ab7045a1bdeb3dDaniel Dunbarextern void panic(const char *, ...) __attribute__((noreturn)); 17401f693a874c0f2fd9e37173e3ab7045a1bdeb3dDaniel Dunbar__attribute__((visibility("hidden"))) 18401f693a874c0f2fd9e37173e3ab7045a1bdeb3dDaniel Dunbarvoid compilerrt_abort_impl(const char *file, int line, const char *function) { 19401f693a874c0f2fd9e37173e3ab7045a1bdeb3dDaniel Dunbar panic("%s:%d: abort in %s", file, line, function); 20401f693a874c0f2fd9e37173e3ab7045a1bdeb3dDaniel Dunbar} 21401f693a874c0f2fd9e37173e3ab7045a1bdeb3dDaniel Dunbar 22401f693a874c0f2fd9e37173e3ab7045a1bdeb3dDaniel Dunbar#else 23401f693a874c0f2fd9e37173e3ab7045a1bdeb3dDaniel Dunbar 24401f693a874c0f2fd9e37173e3ab7045a1bdeb3dDaniel Dunbar/* Get the system definition of abort() */ 25401f693a874c0f2fd9e37173e3ab7045a1bdeb3dDaniel Dunbar#include <stdlib.h> 26401f693a874c0f2fd9e37173e3ab7045a1bdeb3dDaniel Dunbar 27401f693a874c0f2fd9e37173e3ab7045a1bdeb3dDaniel Dunbar__attribute__((visibility("hidden"))) 28401f693a874c0f2fd9e37173e3ab7045a1bdeb3dDaniel Dunbarvoid compilerrt_abort_impl(const char *file, int line, const char *function) { 29401f693a874c0f2fd9e37173e3ab7045a1bdeb3dDaniel Dunbar abort(); 30401f693a874c0f2fd9e37173e3ab7045a1bdeb3dDaniel Dunbar} 31401f693a874c0f2fd9e37173e3ab7045a1bdeb3dDaniel Dunbar 32401f693a874c0f2fd9e37173e3ab7045a1bdeb3dDaniel Dunbar#endif 33