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

Reply via email to