2018-10-04 Martin Liska <mliska@suse.cz>
PR c/87483
* cgraphunit.c (process_function_and_variable_attributes):
Warn about a function with alias attribute and a body.
2018-10-04 Martin Liska <mliska@suse.cz>
PR c/87483
* gcc.dg/pr87483.c: New test.
From-SVN: r264846
+2018-10-04 Martin Liska <mliska@suse.cz>
+
+ PR c/87483
+ * cgraphunit.c (process_function_and_variable_attributes):
+ Warn about a function with alias attribute and a body.
+
2018-10-04 Martin Liska <mliska@suse.cz>
PR ipa/82625
DECL_ATTRIBUTES (decl) = remove_attribute ("weakref",
DECL_ATTRIBUTES (decl));
}
+ else if (lookup_attribute ("alias", DECL_ATTRIBUTES (decl))
+ && node->definition
+ && !node->alias)
+ warning_at (DECL_SOURCE_LOCATION (node->decl), OPT_Wattributes,
+ "%<alias%> attribute ignored"
+ " because function is defined");
if (lookup_attribute ("always_inline", DECL_ATTRIBUTES (decl))
&& !DECL_DECLARED_INLINE_P (decl)
+2018-10-04 Martin Liska <mliska@suse.cz>
+
+ PR c/87483
+ * gcc.dg/pr87483.c: New test.
+
2018-10-04 Martin Liska <mliska@suse.cz>
PR ipa/82625
--- /dev/null
+/* PR c/87483 */
+/* { dg-require-alias "" } */
+
+int f (void) { return 0; }
+__attribute__ ((alias ("f"))) int g () { return 1; } /* { dg-warning "attribute ignored because function is defined" } */
+__attribute__ ((alias ("f"))) int g2 ();
+
+int h (void)
+{
+ return g2 ();
+}
+
+int main()
+{
+ return h();
+}