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
