diff options
author | Anders Carlsson <andersca@mac.com> | 2009-12-22 05:24:09 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2009-12-22 05:24:09 +0000 |
commit | 9c45ad7a1b8f28390a114ccec5d475b25258f324 (patch) | |
tree | a2967cf8501bb2f66bcefb09c300a14264ccff6b /clang/lib/Sema | |
parent | f3ef2cada74bfc315150c1c3dbf6b8cafce2eeb0 (diff) | |
download | bcm5719-llvm-9c45ad7a1b8f28390a114ccec5d475b25258f324.tar.gz bcm5719-llvm-9c45ad7a1b8f28390a114ccec5d475b25258f324.zip |
When we simply return a retained member expression when instantiating, we must also mark the member decl as referenced.
llvm-svn: 91887
Diffstat (limited to 'clang/lib/Sema')
-rw-r--r-- | clang/lib/Sema/TreeTransform.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h index 03169bf3800..8c84d4a95ac 100644 --- a/clang/lib/Sema/TreeTransform.h +++ b/clang/lib/Sema/TreeTransform.h @@ -3688,8 +3688,13 @@ TreeTransform<Derived>::TransformMemberExpr(MemberExpr *E) { Base.get() == E->getBase() && Qualifier == E->getQualifier() && Member == E->getMemberDecl() && - !E->hasExplicitTemplateArgumentList()) + !E->hasExplicitTemplateArgumentList()) { + + // Mark it referenced in the new context regardless. + // FIXME: this is a bit instantiation-specific. + SemaRef.MarkDeclarationReferenced(E->getMemberLoc(), Member); return SemaRef.Owned(E->Retain()); + } TemplateArgumentListInfo TransArgs; if (E->hasExplicitTemplateArgumentList()) { |