OK, the only difference is that we don't have the node analyzed here, so
externally_visible, etc are not set. With the initial proposal the warning
was emitted only if the function could not be inlined. Now it will be
emitted for each DECL_COMDAT (decl)&& !DECL_DECLARED_INLINE_P (decl)) even
if not preemptible, so conservatively we don't want to duplicate the
availability check.
Hm, I'm confused. Do all DECL_COMDAT functions have the
always_inline attribute set? I would have expected
+ if (lookup_attribute ("always_inline", DECL_ATTRIBUTES (decl)))
+ {
+ if (!DECL_DECLARED_INLINE_P (decl))
+ warning (OPT_Wattributes,
+ "always_inline not declared inline might not be
inlinable");
+ }
I meant !DECL_COMDAT || !DECL_DECLARED_INLINE_P. but I was
overprecautious. Didn't realize that member functions was already marked
with DECLARED_INLINED_P even if not explicitly set. So OK one check is
enough
do you get excessive warnings with this?
No I don't. That's enough to catch the original issue
Cheers
Christian