PR c/26993
* c-common.c (handle_weakref_attribute): Ignore attribute in
the same conditions the alias attribute is ignored.
From-SVN: r115545
+2006-07-18 Alexandre Oliva <aoliva@redhat.com>
+
+ PR c/26993
+ * c-common.c (handle_weakref_attribute): Ignore attribute in
+ the same conditions the alias attribute is ignored.
+
2006-07-17 Carlos O'Donell <carlos@codesourcery.com>
* dbxout.c (dbxout_function_end): Do not increment scope_labelno.
{
tree attr = NULL_TREE;
+ /* We must ignore the attribute when it is associated with
+ local-scoped decls, since attribute alias is ignored and many
+ such symbols do not even have a DECL_WEAK field. */
+ if (decl_function_context (*node) || current_function_decl)
+ {
+ warning (OPT_Wattributes, "%qE attribute ignored", name);
+ *no_add_attrs = true;
+ return NULL_TREE;
+ }
+
/* The idea here is that `weakref("name")' mutates into `weakref,
alias("name")', and weakref without arguments, in turn,
implicitly adds weak. */