Error about alias attribute with body definition (PR c/87483).
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
This commit is contained in:
parent
b8ce8129a5
commit
96c545e5ed
4 changed files with 33 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
|||
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
|
||||
|
|
|
@ -784,6 +784,12 @@ process_function_and_variable_attributes (cgraph_node *first,
|
|||
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)
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
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
|
||||
|
|
16
gcc/testsuite/gcc.dg/pr87483.c
Normal file
16
gcc/testsuite/gcc.dg/pr87483.c
Normal file
|
@ -0,0 +1,16 @@
|
|||
/* 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();
|
||||
}
|
Loading…
Add table
Reference in a new issue