summaryrefslogtreecommitdiff
path: root/Libraries/LibC/cxxabi.cpp
diff options
context:
space:
mode:
authorBen Wiederhake <BenWiederhake.GitHub@gmx.de>2020-08-12 02:11:07 +0200
committerAndreas Kling <kling@serenityos.org>2020-08-12 20:40:59 +0200
commitff590db7e51cb3f4dae45c72f747107602defb04 (patch)
treeaf80f7bd986e86e5869f3d2dbdeed1201846a699 /Libraries/LibC/cxxabi.cpp
parent9d2d97a05922599e714f2243b3d12248a386ac6a (diff)
downloadserenity-ff590db7e51cb3f4dae45c72f747107602defb04.zip
LibC: Move C++ABI functions to cxxabi.cpp, typecheck cxa_atexit
Diffstat (limited to 'Libraries/LibC/cxxabi.cpp')
-rw-r--r--Libraries/LibC/cxxabi.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/Libraries/LibC/cxxabi.cpp b/Libraries/LibC/cxxabi.cpp
index 68c9e33f3e..cc920dec89 100644
--- a/Libraries/LibC/cxxabi.cpp
+++ b/Libraries/LibC/cxxabi.cpp
@@ -28,13 +28,12 @@
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
+#include <sys/internals.h>
//#define GLOBAL_DTORS_DEBUG
extern "C" {
-typedef void (*AtExitFunction)(void*);
-
struct __exit_entry {
AtExitFunction method;
void* parameter;
@@ -83,4 +82,16 @@ void __cxa_finalize(void* dso_handle)
}
}
+[[noreturn]] void __cxa_pure_virtual()
+{
+ ASSERT_NOT_REACHED();
+}
+
+extern u32 __stack_chk_guard;
+u32 __stack_chk_guard = (u32)0xc6c7c8c9;
+
+[[noreturn]] void __stack_chk_fail()
+{
+ ASSERT_NOT_REACHED();
+}
} // extern "C"