summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorNico Weber <nicolasweber@gmx.de>2014-11-12 03:52:25 +0000
committerNico Weber <nicolasweber@gmx.de>2014-11-12 03:52:25 +0000
commit28309185b28034edc1b54c4e2a01c399f5097f28 (patch)
treed35334799de7cf1ba0fd80b563f0245c93aa2fa0 /clang/lib
parentaa0117c628d8e3ccd0a3c055d8faaa01768389af (diff)
downloadbcm5719-llvm-28309185b28034edc1b54c4e2a01c399f5097f28.tar.gz
bcm5719-llvm-28309185b28034edc1b54c4e2a01c399f5097f28.zip
Mark TypeDecls used in member initializers as referenced.
Without this, -Wunused-local-typedef would incorrectly warn on the two typedefs in this program: void foo() { struct A {}; struct B : public A { typedef A INHERITED; B() : INHERITED() {} typedef B SELF; B(int) : SELF() {} }; } llvm-svn: 221765
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Sema/SemaDeclCXX.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp
index f9f9d3ff94e..d4cb2fe3504 100644
--- a/clang/lib/Sema/SemaDeclCXX.cpp
+++ b/clang/lib/Sema/SemaDeclCXX.cpp
@@ -2914,6 +2914,7 @@ Sema::BuildMemInitializer(Decl *ConstructorD,
if (BaseType.isNull()) {
BaseType = Context.getTypeDeclType(TyD);
+ MarkAnyDeclReferenced(TyD->getLocation(), TyD, /*OdrUse=*/false);
if (SS.isSet())
// FIXME: preserve source range information
BaseType = Context.getElaboratedType(ETK_None, SS.getScopeRep(),
OpenPOWER on IntegriCloud