http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12306
--- Comment #7 from Kazumoto Kojima <kkojima at gcc dot gnu.org> --- Even a static pic function can be called from non-pic functions via function pointer. Functions with hidden visibility in static libraries can be compiled with -fPIC. A typical example is libgcc.a. Something based on WPA may be possible, though in general, it would be not easy to assure a pic function can never be called from any non-pic functions. An explicit attribute or a flag which assures that will work, though might be not so attractive.