diff options
| author | Nico Weber <nicolasweber@gmx.de> | 2014-11-12 03:52:25 +0000 |
|---|---|---|
| committer | Nico Weber <nicolasweber@gmx.de> | 2014-11-12 03:52:25 +0000 |
| commit | 28309185b28034edc1b54c4e2a01c399f5097f28 (patch) | |
| tree | d35334799de7cf1ba0fd80b563f0245c93aa2fa0 /clang/lib | |
| parent | aa0117c628d8e3ccd0a3c055d8faaa01768389af (diff) | |
| download | bcm5719-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.cpp | 1 |
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(), |

