Bug 466762 - Add redirs for C23 free_sized() and free_aligned_sized()
[valgrind.git] / memcheck / tests / sized_aligned_new_delete_args.cpp
bloba8d5024ac5089ea698e36f8cefee34d96e08b42e
1 #include <cstdlib>
2 #include <new>
3 #include <iostream>
4 #include "../memcheck.h"
6 int main() {
7 std::align_val_t align(static_cast<std::align_val_t>(64U));
8 std::align_val_t uninitalign(static_cast<std::align_val_t>(64U));
9 size_t uninitsize(16);
10 size_t size(16);
11 std::nothrow_t tag;
12 void *mem;
13 VALGRIND_MAKE_MEM_UNDEFINED(&uninitsize, sizeof(uninitsize));
14 VALGRIND_MAKE_MEM_UNDEFINED(&uninitalign, sizeof(uninitalign));
16 mem = operator new(uninitsize, uninitalign);
17 operator delete(mem, uninitalign);
19 mem = operator new[](uninitsize, uninitalign);
20 operator delete[](mem, uninitalign);
22 // doesn't matter that tag is uninit
23 // don't want to see an error
24 mem = operator new(uninitsize, uninitalign, tag);
25 operator delete(mem, uninitalign, tag);
27 mem = operator new[](uninitsize, uninitalign, tag);
28 operator delete[](mem, uninitalign, tag);
30 mem = operator new(size);
31 operator delete(mem, uninitsize);
33 mem = operator new[](size);
34 operator delete[](mem, uninitsize);
36 mem = operator new(size, align);
37 operator delete(mem, uninitsize, uninitalign);
39 mem = operator new[](size, align);
40 operator delete[](mem, uninitsize, uninitalign);