https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87525

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #16 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
GNU extern inline is an extension, so is covered by whatever we define (or
should have defined).  We've never required that the out of line and inline
definitions are the same or in any way similar (prototypes have to match
obviously), though without always_inline it is a compiler's choice what it will
pick, whether it decides to inline it or not.  AFAIK __fortify_function are
extern inline __attribute__((always_inline, gnu_inline, aritifical)), so at
that point the compiler needs to do what it is told, if it is possible to
inline at all, inline, period.
The additional complication is that those __fortify_function functions need to
call the original out of line functions, and that is done through those
aliases, with __asm redirects, so it is important to note in cgraph that those
should not call those always inline extern inline gnu_inline functions, but the
out of line ones.

Reply via email to