diff options
author | Richard Stallman <rms@gnu.org> | 1992-07-07 01:47:54 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1992-07-07 01:47:54 +0000 |
commit | e2f6a3cfee9db7a6e8a451ff53d099750b7b64bf (patch) | |
tree | 17be87a2d1df06c668b8fea166ec1411591f43e6 | |
parent | 176e81ebf96ff9e6dbd15df9f5d37808711c2a11 (diff) | |
download | gcc-e2f6a3cfee9db7a6e8a451ff53d099750b7b64bf.zip gcc-e2f6a3cfee9db7a6e8a451ff53d099750b7b64bf.tar.gz gcc-e2f6a3cfee9db7a6e8a451ff53d099750b7b64bf.tar.bz2 |
(duplicate_decls): Merge DECL_IN_SYSTEM_HEADER between duplicate decls.
From-SVN: r1492
-rw-r--r-- | gcc/c-decl.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/gcc/c-decl.c b/gcc/c-decl.c index 4f00471..34c4e10 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -1449,7 +1449,11 @@ duplicate_decls (newdecl, olddecl) if (TREE_READONLY (newdecl)) TREE_READONLY (olddecl) = 1; if (TREE_THIS_VOLATILE (newdecl)) - TREE_THIS_VOLATILE (olddecl) = 1; + { + TREE_THIS_VOLATILE (olddecl) = 1; + if (TREE_CODE (newdecl) == VAR_DECL) + make_var_volatile (newdecl); + } /* Keep source location of definition rather than declaration. */ if (DECL_INITIAL (newdecl) == 0 && DECL_INITIAL (olddecl) != 0) @@ -1458,14 +1462,18 @@ duplicate_decls (newdecl, olddecl) DECL_SOURCE_FILE (newdecl) = DECL_SOURCE_FILE (olddecl); } + /* Merge the unused-warning information. */ + if (DECL_IN_SYSTEM_HEADER (olddecl)) + DECL_IN_SYSTEM_HEADER (newdecl) = 1; + else if (DECL_IN_SYSTEM_HEADER (newdecl)) + DECL_IN_SYSTEM_HEADER (olddecl) = 1; + /* Merge the initialization information. */ if (DECL_INITIAL (newdecl) == 0) DECL_INITIAL (newdecl) = DECL_INITIAL (olddecl); + /* Keep the old rtl since we can safely use it. */ DECL_RTL (newdecl) = DECL_RTL (olddecl); - if (TREE_CODE (newdecl) == VAR_DECL - && TREE_THIS_VOLATILE (newdecl)) - make_var_volatile (newdecl); } /* If cannot merge, then use the new type and qualifiers, and don't preserve the old rtl. */ |