diff options
Diffstat (limited to 'contrib/llvm-project/compiler-rt/lib/builtins/int_util.c')
-rw-r--r-- | contrib/llvm-project/compiler-rt/lib/builtins/int_util.c | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/contrib/llvm-project/compiler-rt/lib/builtins/int_util.c b/contrib/llvm-project/compiler-rt/lib/builtins/int_util.c index 226a6e93440d..bbb735ccf279 100644 --- a/contrib/llvm-project/compiler-rt/lib/builtins/int_util.c +++ b/contrib/llvm-project/compiler-rt/lib/builtins/int_util.c @@ -33,35 +33,31 @@ void __compilerrt_abort_impl(const char *file, int line, const char *function) { NORETURN extern void __assert_rtn(const char *func, const char *file, int line, const char *message); -#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"); } -#elif __Fuchsia__ - -#ifndef _WIN32 -__attribute__((weak)) -__attribute__((visibility("hidden"))) -#endif -void __compilerrt_abort_impl(const char *file, int line, const char *function) { - __builtin_trap(); -} - #else -// Get the system definition of abort() +#ifdef _WIN32 #include <stdlib.h> +#endif #ifndef _WIN32 __attribute__((weak)) __attribute__((visibility("hidden"))) #endif void __compilerrt_abort_impl(const char *file, int line, const char *function) { +#if !__STDC_HOSTED__ + // Avoid depending on libc when compiling with -ffreestanding. + __builtin_trap(); +#elif defined(_WIN32) abort(); +#else + __builtin_abort(); +#endif } #endif |