What about non trivial struct, which free resources by calling its destructor?
The resource leaks. But that's fully defined behavior; you can accomplish the same by an unpaired resource acquisition: int main() { new int; } is a perfectly valid program.