diff options
author | Manuel López-Ibáñez <manu@gcc.gnu.org> | 2008-07-29 10:00:25 +0000 |
---|---|---|
committer | Manuel López-Ibáñez <manu@gcc.gnu.org> | 2008-07-29 10:00:25 +0000 |
commit | e27fb29c0dec9ef1cf32fe44ecbf7a6fcc3f09a9 (patch) | |
tree | f2de39c2d6ed6b532b2174d3e32c316cae390851 /gcc/c-decl.c | |
parent | 1fbfb0e27a982802abc2cdd4e5a7d5c4eff49f5e (diff) | |
download | gcc-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.c | 6 |
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. */ { |