Add r168519 back, but with a fix to also merge the used flag in variables.
llvm-svn: 168564
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp
index 629fccc..6a9065e 100644
--- a/clang/lib/Sema/SemaDecl.cpp
+++ b/clang/lib/Sema/SemaDecl.cpp
@@ -2388,6 +2388,10 @@
if (Old->isPure())
New->setPure();
+ // Merge "used" flag.
+ if (Old->isUsed(false))
+ New->setUsed();
+
// Merge attributes from the parameters. These can mismatch with K&R
// declarations.
if (New->getNumParams() == Old->getNumParams())
@@ -2613,6 +2617,10 @@
New->getDeclContext() == Old->getDeclContext())
New->setStorageClass(Old->getStorageClass());
+ // Merge "used" flag.
+ if (Old->isUsed(false))
+ New->setUsed();
+
// Keep a chain of previous declarations.
New->setPreviousDeclaration(Old);