@@ -918,7 +918,8 @@ process_function_and_variable_attributes (cgraph_node *first,
/* redefining extern inline function makes it DECL_UNINLINABLE. */
&& !DECL_UNINLINABLE (decl))
warning_at (DECL_SOURCE_LOCATION (decl), OPT_Wattributes,
- "%<always_inline%> function might not be inlinable");
+ "%<always_inline%> function might not be inlinable"
+ " unless also declared %<inline%>");
process_common_attributes (node, decl);
}
@@ -26,7 +26,7 @@ B::operator char () const { return 0; }
ATTR ((__noinline__))
B::operator int () const // { dg-warning "ignoring attribute .noinline. because it conflicts with attribute .always_inline." }
-// { dg-warning "function might not be inlinable" "" { target *-*-* } .-1 }
+// { dg-warning "function might not be inlinable unless also declared .inline." "" { target *-*-* } .-1 }
{
return 0;
@@ -45,7 +45,7 @@ C::operator char () { return 0; }
ATTR ((__noinline__))
C::operator short () // { dg-warning "ignoring attribute .noinline. because it conflicts with attribute .always_inline." }
-// { dg-warning "function might not be inlinable" "" { target *-*-* } .-1 }
+// { dg-warning "function might not be inlinable unless also declared .inline." "" { target *-*-* } .-1 }
{ return 0; }
inline ATTR ((__noinline__))
@@ -2,7 +2,7 @@
/* { dg-add-options bind_pic_locally } */
extern __attribute__ ((always_inline)) void
- bar() { } /* { dg-warning "function might not be inlinable" } */
+ bar() { } /* { dg-warning "function might not be inlinable unless also declared .inline." } */
void
f()