diff options
| author | John McCall <rjmccall@apple.com> | 2010-05-20 01:18:31 +0000 | 
|---|---|---|
| committer | John McCall <rjmccall@apple.com> | 2010-05-20 01:18:31 +0000 | 
| commit | 87fe5d561815de46450813c3d50e9c338c97dc1e (patch) | |
| tree | fbe116d7c0893e6fce12932c89dad90daf4880e8 /clang/lib/Sema/SemaTemplate.cpp | |
| parent | 1d881510791582a045d0f178779fc486295f9eb2 (diff) | |
| download | bcm5719-llvm-87fe5d561815de46450813c3d50e9c338c97dc1e.tar.gz bcm5719-llvm-87fe5d561815de46450813c3d50e9c338c97dc1e.zip | |
Support implicitly closing on 'this' in a block.  Fixed PR7165.
(the codegen works here, too, but that's annoying to test without execution)
llvm-svn: 104202
Diffstat (limited to 'clang/lib/Sema/SemaTemplate.cpp')
| -rw-r--r-- | clang/lib/Sema/SemaTemplate.cpp | 8 | 
1 files changed, 5 insertions, 3 deletions
| diff --git a/clang/lib/Sema/SemaTemplate.cpp b/clang/lib/Sema/SemaTemplate.cpp index 91ef67e1c9a..3242f70f128 100644 --- a/clang/lib/Sema/SemaTemplate.cpp +++ b/clang/lib/Sema/SemaTemplate.cpp @@ -330,11 +330,13 @@ Sema::ActOnDependentIdExpression(const CXXScopeSpec &SS,                             const TemplateArgumentListInfo *TemplateArgs) {    NestedNameSpecifier *Qualifier      = static_cast<NestedNameSpecifier*>(SS.getScopeRep()); + +  DeclContext *DC = getFunctionLevelDeclContext();    if (!isAddressOfOperand && -      isa<CXXMethodDecl>(CurContext) && -      cast<CXXMethodDecl>(CurContext)->isInstance()) { -    QualType ThisType = cast<CXXMethodDecl>(CurContext)->getThisType(Context); +      isa<CXXMethodDecl>(DC) && +      cast<CXXMethodDecl>(DC)->isInstance()) { +    QualType ThisType = cast<CXXMethodDecl>(DC)->getThisType(Context);      // Since the 'this' expression is synthesized, we don't need to      // perform the double-lookup check. | 

