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