delete static_cast<char*>(operator new(1));
It destroys the implicitly created char object ([intro.object] paragraph 13) and deallocates the memory, but the behavior is undefined because the operand is not resulted from a previous non-array new-expression.
But the operand of a single-object delete-expression should be legal as long as it's a null pointer, it's resulted from operator new and points to an object created on it, or it points to the object's base class subobject.
I tried submitting it as a core language issue, but a proposal is needed. Can someone help?
I'd like someone to help me write a proposal because I'm not very good at writing these kinds of standard documents and my English is not very good. I will be very grateful.