aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-decl.c
diff options
context:
space:
mode:
authorManuel López-Ibáñez <manu@gcc.gnu.org>2008-07-29 10:00:25 +0000
committerManuel López-Ibáñez <manu@gcc.gnu.org>2008-07-29 10:00:25 +0000
commite27fb29c0dec9ef1cf32fe44ecbf7a6fcc3f09a9 (patch)
treef2de39c2d6ed6b532b2174d3e32c316cae390851 /gcc/c-decl.c
parent1fbfb0e27a982802abc2cdd4e5a7d5c4eff49f5e (diff)
downloadgcc-e27fb29c0dec9ef1cf32fe44ecbf7a6fcc3f09a9.zip
gcc-e27fb29c0dec9ef1cf32fe44ecbf7a6fcc3f09a9.tar.gz
gcc-e27fb29c0dec9ef1cf32fe44ecbf7a6fcc3f09a9.tar.bz2
re PR c/34985 (Warning "defined but not used" despite __attribute__((__used__)))
2008-07-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR 34985 * c-decl.c (merge_decls): Merge USED flags. cp/ * decl.c (duplicate_decls): Merge USED flags. testsuite/ * gcc.dg/pr34985.c: New. * g++.dg/warn/pr34985.C: New. From-SVN: r138235
Diffstat (limited to 'gcc/c-decl.c')
-rw-r--r--gcc/c-decl.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/c-decl.c b/gcc/c-decl.c
index bdb6819..7929aa8 100644
--- a/gcc/c-decl.c
+++ b/gcc/c-decl.c
@@ -1862,6 +1862,12 @@ merge_decls (tree newdecl, tree olddecl, tree newtype, tree oldtype)
extern_changed = DECL_EXTERNAL (olddecl) && !DECL_EXTERNAL (newdecl);
+ /* Merge the USED information. */
+ if (TREE_USED (olddecl))
+ TREE_USED (newdecl) = 1;
+ else if (TREE_USED (newdecl))
+ TREE_USED (olddecl) = 1;
+
/* Copy most of the decl-specific fields of NEWDECL into OLDDECL.
But preserve OLDDECL's DECL_UID and DECL_CONTEXT. */
{