Handout
This commit is contained in:
33
kernel/compiler/libcxx.cc
Normal file
33
kernel/compiler/libcxx.cc
Normal file
@@ -0,0 +1,33 @@
|
||||
/*! \file
|
||||
* \brief C++ runtime support functions
|
||||
*/
|
||||
|
||||
#include "../debug/assert.h"
|
||||
#include "../types.h"
|
||||
|
||||
void* operator new([[maybe_unused]] size_t size, void* place) { return place; }
|
||||
|
||||
void* operator new(size_t size) {
|
||||
(void)size;
|
||||
assert(!"Memory allocation not supported");
|
||||
}
|
||||
|
||||
void* operator new[](size_t size) {
|
||||
(void)size;
|
||||
assert(!"Memory allocation not supported");
|
||||
}
|
||||
|
||||
void operator delete(void* ptr) { (void)ptr; }
|
||||
void operator delete(void* ptr, [[maybe_unused]] size_t size) {
|
||||
operator delete(ptr);
|
||||
}
|
||||
|
||||
void operator delete[](void* ptr) { operator delete(ptr); }
|
||||
void operator delete[](void* ptr, size_t size) { operator delete(ptr, size); }
|
||||
|
||||
extern "C" [[noreturn]] void __cxa_pure_virtual() {
|
||||
// Pure virtual function was called -- this if obviously not valid,
|
||||
// therefore we wait infinitely.
|
||||
while (true) {
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user