aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm-project/compiler-rt/lib/builtins/int_util.c
diff options
context:
space:
mode:
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.c22
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