Marek Polacek <pola...@redhat.com> writes: > @@ -6666,7 +6666,16 @@ handle_noinline_attribute (tree *node, tree name, > int ARG_UNUSED (flags), bool *no_add_attrs) > { > if (TREE_CODE (*node) == FUNCTION_DECL) > - DECL_UNINLINABLE (*node) = 1; > + { > + if (lookup_attribute ("always_inline", DECL_ATTRIBUTES (*node))) > + { > + warning (OPT_Wattributes, "%qE attribute ignored due to conflict " > + "with %<always_inline%> attribute", name); > + *no_add_attrs = true; > + } > + else > + DECL_UNINLINABLE (*node) = 1; > + } > else > { > warning (OPT_Wattributes, "%qE attribute ignored", name); > @@ -6704,9 +6713,16 @@ handle_always_inline_attribute (tree *node, tree name, > { > if (TREE_CODE (*node) == FUNCTION_DECL) > { > - /* Set the attribute and mark it for disregarding inline > - limits. */ > - DECL_DISREGARD_INLINE_LIMITS (*node) = 1; > + if (lookup_attribute ("noinline", DECL_ATTRIBUTES (*node))) > + { > + warning (OPT_Wattributes, "%qE attribute ignored due to conflict " > + "with %<noinline%> attribute", name);
Sorry for the nit, but maybe it'd be better to use %qs for the second attributes, so that we can use the same translation string for all conflicts. Same with the later messages (where the quotes that come with %qs are probably needed too). Thanks, Richard