diff options
Diffstat (limited to 'lib/Sema/SemaDeclCXX.cpp')
-rw-r--r-- | lib/Sema/SemaDeclCXX.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/Sema/SemaDeclCXX.cpp b/lib/Sema/SemaDeclCXX.cpp index 7202d2f2f1..251fb5e72b 100644 --- a/lib/Sema/SemaDeclCXX.cpp +++ b/lib/Sema/SemaDeclCXX.cpp @@ -74,13 +74,14 @@ namespace { return S->Diag(DRE->getSourceRange().getBegin(), diag::err_param_default_argument_references_param, Param->getName(), DefaultArg->getSourceRange()); - } else if (BlockVarDecl *BlockVar = dyn_cast<BlockVarDecl>(Decl)) { + } else if (VarDecl *VDecl = dyn_cast<VarDecl>(Decl)) { // C++ [dcl.fct.default]p7 // Local variables shall not be used in default argument // expressions. - return S->Diag(DRE->getSourceRange().getBegin(), - diag::err_param_default_argument_references_local, - BlockVar->getName(), DefaultArg->getSourceRange()); + if (VDecl->isBlockVarDecl()) + return S->Diag(DRE->getSourceRange().getBegin(), + diag::err_param_default_argument_references_local, + VDecl->getName(), DefaultArg->getSourceRange()); } // FIXME: when Clang has support for member functions, "this" |