diff options
Diffstat (limited to 'clang/lib/Sema/SemaExprCXX.cpp')
-rw-r--r-- | clang/lib/Sema/SemaExprCXX.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp index af0f971c1ca..7d345073d79 100644 --- a/clang/lib/Sema/SemaExprCXX.cpp +++ b/clang/lib/Sema/SemaExprCXX.cpp @@ -693,6 +693,10 @@ Sema::CXXThisScopeRAII::~CXXThisScopeRAII() { } void Sema::CheckCXXThisCapture(SourceLocation Loc, bool Explicit) { + if (getLangOpts().CPlusPlus0x && + !dyn_cast_or_null<CXXMethodDecl>(getFunctionLevelDeclContext())) + Diag(Loc, diag::warn_cxx98_compat_this_outside_method); + // We don't need to capture this in an unevaluated context. if (ExprEvalContexts.back().Context == Unevaluated && !Explicit) return; |