mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-09 13:18:15 +00:00
Add checks to all new / delete overload arguments
This commit is contained in:
42
memcheck/tests/sized_aligned_new_delete_args.cpp
Normal file
42
memcheck/tests/sized_aligned_new_delete_args.cpp
Normal file
@@ -0,0 +1,42 @@
|
||||
#include <cstdlib>
|
||||
#include <new>
|
||||
#include <iostream>
|
||||
#include "../memcheck.h"
|
||||
|
||||
int main() {
|
||||
std::align_val_t align(static_cast<std::align_val_t>(64U));
|
||||
std::align_val_t uninitalign(static_cast<std::align_val_t>(64U));
|
||||
size_t uninitsize(16);
|
||||
size_t size(16);
|
||||
std::nothrow_t tag;
|
||||
void *mem;
|
||||
VALGRIND_MAKE_MEM_UNDEFINED(&uninitsize, sizeof(uninitsize));
|
||||
VALGRIND_MAKE_MEM_UNDEFINED(&uninitalign, sizeof(uninitalign));
|
||||
|
||||
mem = operator new(uninitsize, uninitalign);
|
||||
operator delete(mem, uninitalign);
|
||||
|
||||
mem = operator new[](uninitsize, uninitalign);
|
||||
operator delete[](mem, uninitalign);
|
||||
|
||||
// doesn't matter that tag is uninit
|
||||
// don't want to see an error
|
||||
mem = operator new(uninitsize, uninitalign, tag);
|
||||
operator delete(mem, uninitalign, tag);
|
||||
|
||||
mem = operator new[](uninitsize, uninitalign, tag);
|
||||
operator delete[](mem, uninitalign, tag);
|
||||
|
||||
mem = operator new(size);
|
||||
operator delete(mem, uninitsize);
|
||||
|
||||
mem = operator new[](size);
|
||||
operator delete[](mem, uninitsize);
|
||||
|
||||
mem = operator new(size, align);
|
||||
operator delete(mem, uninitsize, uninitalign);
|
||||
|
||||
mem = operator new[](size, align);
|
||||
operator delete[](mem, uninitsize, uninitalign);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user