c-common.c (handle_used_attribute): Accept static data too.
* c-common.c (handle_used_attribute): Accept static data too. * gcc.dg/attr-invalid.c: Allow __used__ on static data. * gcc.dg/attr-used-2.c: New. From-SVN: r63082
This commit is contained in:
parent
05e9e0a570
commit
d7ddbe241a
@ -1,4 +1,8 @@
|
||||
003-02-18 Nick Clifton <nickc@redhat.com>
|
||||
2003-02-18 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* c-common.c (handle_used_attribute): Accept static data too.
|
||||
|
||||
2003-02-18 Nick Clifton <nickc@redhat.com>
|
||||
Aldy Hernandez <aldyh@redhat.com>
|
||||
|
||||
* testsuite/gcc.dg/20030218-1.c: New.
|
||||
|
@ -5415,16 +5415,19 @@ handle_always_inline_attribute (node, name, args, flags, no_add_attrs)
|
||||
struct attribute_spec.handler. */
|
||||
|
||||
static tree
|
||||
handle_used_attribute (node, name, args, flags, no_add_attrs)
|
||||
tree *node;
|
||||
handle_used_attribute (pnode, name, args, flags, no_add_attrs)
|
||||
tree *pnode;
|
||||
tree name;
|
||||
tree args ATTRIBUTE_UNUSED;
|
||||
int flags ATTRIBUTE_UNUSED;
|
||||
bool *no_add_attrs;
|
||||
{
|
||||
if (TREE_CODE (*node) == FUNCTION_DECL)
|
||||
TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (*node))
|
||||
= TREE_USED (*node) = 1;
|
||||
tree node = *pnode;
|
||||
|
||||
if (TREE_CODE (node) == FUNCTION_DECL
|
||||
|| (TREE_CODE (node) == VAR_DECL && TREE_STATIC (node)))
|
||||
TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (node))
|
||||
= TREE_USED (node) = 1;
|
||||
else
|
||||
{
|
||||
warning ("`%s' attribute ignored", IDENTIFIER_POINTER (name));
|
||||
|
@ -1,3 +1,8 @@
|
||||
2003-02-18 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* gcc.dg/attr-invalid.c: Allow __used__ on static data.
|
||||
* gcc.dg/attr-used-2.c: New.
|
||||
|
||||
2003-02-18 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
PR c++/9704
|
||||
|
@ -43,7 +43,7 @@ struct ATSYM(struct) {
|
||||
char dummy ATTR; /* { dg-warning "attribute ignored" "" } */
|
||||
} ATTR; /* { dg-warning "does not apply to types" "" } */
|
||||
|
||||
int ATSYM(var) ATTR; /* { dg-warning "attribute ignored" "" } */
|
||||
int ATSYM(var) ATTR;
|
||||
|
||||
int ATSYM(fn_knrarg) (arg)
|
||||
int arg ATTR; /* { dg-warning "attribute ignored" "" } */
|
||||
@ -52,7 +52,7 @@ int ATSYM(fn_knrarg) (arg)
|
||||
int ATSYM(fn_isoarg) (int arg ATTR) { return 0; } /* { dg-warning "attribute ignored" "" } */
|
||||
|
||||
int ATSYM(fn_vars) (void) {
|
||||
static int svar ATTR; /* { dg-warning "attribute ignored" "" } */
|
||||
static int svar ATTR;
|
||||
auto int lvar ATTR; /* { dg-warning "attribute ignored" "" } */
|
||||
return 0;
|
||||
}
|
||||
|
11
gcc/testsuite/gcc.dg/attr-used-2.c
Normal file
11
gcc/testsuite/gcc.dg/attr-used-2.c
Normal file
@ -0,0 +1,11 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-Wall -O2" } */
|
||||
|
||||
static int xyzzy __attribute__((__used__)) = 1;
|
||||
|
||||
void foo()
|
||||
{
|
||||
int x __attribute__((__used__)); /* { dg-warning "attribute ignored|unused variable" } */
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "xyzzy" } } */
|
Loading…
Reference in New Issue
Block a user