5 class alignas(64) MyClass
{
17 MyClass
* myClass
= new MyClass
;
18 operator delete(myClass
, std::align_val_t(64U));
20 MyClass
* myClass5
= new MyClass
[5];
21 operator delete [](myClass5
, std::align_val_t(64U));
24 myClass
= new MyClass();
25 operator delete(myClass
, 64U, std::align_val_t(64U));
27 myClass5
= new MyClass
[5];
28 operator delete [](myClass5
, 320U, std::align_val_t(64U));
30 MyClass
* myClassNt
= new (std::nothrow
) MyClass
;
31 operator delete(myClassNt
, std::align_val_t(64U), std::nothrow
);
33 MyClass
* myClass5Nt
= new (std::nothrow
) MyClass
[5];
34 operator delete [](myClass5Nt
, std::align_val_t(64U), std::nothrow
);
36 OrdinaryClass
* oClass
= new OrdinaryClass
;
37 // this is a limitation, VG does not use enough bits
38 // to tell apart aligned and unaligned allocations
39 // so new/aligned delete is not a mismatch
40 operator delete(oClass
, std::align_val_t(64U));
41 oClass
= new (std::nothrow
) OrdinaryClass
;
43 // changed the above delete because GCC generates
44 // a sized delete (???) whilst clang generates an ordinary delete
45 operator delete(oClass
);
46 oClass
= new OrdinaryClass
[5];
48 oClass
= new (std::nothrow
) OrdinaryClass
[5];