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.

Reply via email to