Fixed "_ZnwmSt11align_val_t" compiler error

This commit is contained in:
Alex 2022-10-22 04:00:42 +03:00
parent ebd0273a99
commit 11e6080fe1
Signed by untrusted user who does not match committer: enderice2
GPG Key ID: EACC3AD603BAB4DD
2 changed files with 18 additions and 0 deletions

View File

@ -249,6 +249,11 @@ void HeapFree(void *Address)
void *operator new(size_t Size) { return HeapMalloc(Size); } void *operator new(size_t Size) { return HeapMalloc(Size); }
void *operator new[](size_t Size) { return HeapMalloc(Size); } void *operator new[](size_t Size) { return HeapMalloc(Size); }
void *operator new(unsigned long Size, std::align_val_t Alignment)
{
fixme("operator new with alignment(%#lx) is not implemented", Alignment);
return HeapMalloc(Size);
}
void operator delete(void *Pointer) { HeapFree(Pointer); } void operator delete(void *Pointer) { HeapFree(Pointer); }
void operator delete[](void *Pointer) { HeapFree(Pointer); } void operator delete[](void *Pointer) { HeapFree(Pointer); }
void operator delete(void *Pointer, long unsigned int Size) { HeapFree(Pointer); } void operator delete(void *Pointer, long unsigned int Size) { HeapFree(Pointer); }

View File

@ -433,10 +433,23 @@ namespace Memory
}; };
} }
/**
* @brief // stub namespace for std::align_val_t and new operator
* @note // Found on https://gcc.gnu.org/legacy-ml/gcc-patches/2016-09/msg00628.html for "_ZnwmSt11align_val_t" compiler error
*/
namespace std
{
typedef __SIZE_TYPE__ size_t;
enum class align_val_t : std::size_t
{
};
}
void InitializeMemoryManagement(BootInfo *Info); void InitializeMemoryManagement(BootInfo *Info);
void *operator new(size_t Size); void *operator new(size_t Size);
void *operator new[](size_t Size); void *operator new[](size_t Size);
void *operator new(size_t Size, std::align_val_t Alignment);
void operator delete(void *Pointer); void operator delete(void *Pointer);
void operator delete[](void *Pointer); void operator delete[](void *Pointer);
void operator delete(void *Pointer, long unsigned int Size); void operator delete(void *Pointer, long unsigned int Size);