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

Reply via email to