diff options
Diffstat (limited to 'gcc/c-common.c')
-rw-r--r-- | gcc/c-common.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/c-common.c b/gcc/c-common.c index 58c48d8..167d04b 100644 --- a/gcc/c-common.c +++ b/gcc/c-common.c @@ -4737,12 +4737,17 @@ handle_aligned_attribute (tree *node, tree ARG_UNUSED (name), tree args, struct attribute_spec.handler. */ static tree -handle_weak_attribute (tree *node, tree ARG_UNUSED (name), +handle_weak_attribute (tree *node, tree name, tree ARG_UNUSED (args), int ARG_UNUSED (flags), bool * ARG_UNUSED (no_add_attrs)) { - declare_weak (*node); + if (TREE_CODE (*node) == FUNCTION_DECL + || TREE_CODE (*node) == VAR_DECL) + declare_weak (*node); + else + warning (OPT_Wattributes, "%qE attribute ignored", name); + return NULL_TREE; } |