https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80635
--- Comment #20 from Evgeniy Dushistov <dushistov at mail dot ru> --- Also if add one line to code `printf("test\n");` ``` struct FooDeleter { void operator()(FooOpaque *p) { printf("test\n"); Foo_free(p); } }; ``` gcc don't report any warning, and valgrind also can not find any errors.