https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82012
--- Comment #3 from Andreas Krebbel <krebbel at gcc dot gnu.org> --- (In reply to Richard Biener from comment #1) ... > inline int __attribute__((always_inline)) foo () { return 0; } > int __attribute__((target("soft-float"))) test () { return foo (); } > > > s390 misses to implement TARGET_CAN_INLINE_P. Well, but what should the can_inline_p hook answer in that case? Since soft-float/hard-float is an ABI switch the hook probably should reject inlining. But that would not be helpful. What about ignoring differences of target attributes if the callee has been declared "always_inline"? If the programmer uses always_inline it means that the function is expected to inherit the target attributes of the caller. This should be part of the default implementation of the can_inline_p hook then.