https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111080
--- Comment #2 from sagebar at web dot de ---
@Andrew Pinski
Of course: yes. I did make a mistake there, but only for this case:
> int (*fun_t)(struct foo *); // Leak (even w/o restrict!)
asm:
...
.globl fun_t
.section .bss
.align 4
.type fun_t, @object
.size fun_t, 4
fun_t:
.zero 4
...
In the other case:
> static int (*fun_t)(struct foo *); // Leak (even w/o restrict!)
asm:
...
# No data-symbol is generated for `fun_t`
...
Gcc actually doesn't generate a .bss-symbol for the static variable (since it's
unused), but it still generates debug inforation for `struct foo`. So I guess
strike `int (*fun_t)(struct foo *);` from the list, but keep `static int
(*fun_t)(struct foo *);` which still leaks