https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64146
--- Comment #4 from Martin Liška <marxin at gcc dot gnu.org> --- Hello. Test case you described should be covered by IPA ICF, where we create a non-interposable alias of a original symbol that is target of newly created thunk. There's -fpic snippet: _Z8test_barv: .LFB3: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq %rsp, %rbp .cfi_def_cfa_register 6 call bar@PLT popq %rbp .cfi_def_cfa 7, 8 ret .cfi_endproc .LFE3: .size _Z8test_barv, .-_Z8test_barv .set _Z8test_barv.localalias.0,_Z8test_barv .ident "GCC: (GNU) 5.0.0 20141209 (experimental)" .section .note.GNU-stack,"",@progbits But it's probably not enough, what exactly means binds_local_p ? Thanks, Martin