On 4/9/20 1:05 AM, Martin Liška wrote:
Hi.
We've got one another sneaky test-case (thank you Marc ;) ):
$ cat pr94314-array.C
#include <stdio.h>
#include <new>
int count = 0;
__attribute__((malloc, noinline)) void* operator new[](unsigned long sz) {
++count;
return ::operator new(sz);
}
void operator delete[](void* ptr) noexcept {
--count;
::operator delete(ptr);
}
void operator delete[](void* ptr, std::size_t sz) noexcept {
--count;
::operator delete(ptr, sz);
}
int main() {
delete[] new int[1];
if (count != 0)
__builtin_abort ();
}
I bet we need to include the Honza's fix for inline stacks.
Or it the test-case invalid?
I suppose that these inlining issues are a good reason why the standard
talks about new-expressions and delete-expressions rather than calls.
Jason