https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92467
--- Comment #3 from Stephan Tolksdorf <st at quanttec dot com> --- Calling release on tmp should set the internal pointer member to null so that the destructor won't call the deleter on the (void*)1 ptr.