diff options
Diffstat (limited to 'clang/lib/AST')
| -rw-r--r-- | clang/lib/AST/ExprConstant.cpp | 7 | 
1 files changed, 5 insertions, 2 deletions
diff --git a/clang/lib/AST/ExprConstant.cpp b/clang/lib/AST/ExprConstant.cpp index 2412facf05c..cd984a251c9 100644 --- a/clang/lib/AST/ExprConstant.cpp +++ b/clang/lib/AST/ExprConstant.cpp @@ -3623,8 +3623,11 @@ static bool HandleConstructorCall(SourceLocation CallLoc, const LValue &This,    // If it's a delegating constructor, just delegate.    if (Definition->isDelegatingConstructor()) {      CXXConstructorDecl::init_const_iterator I = Definition->init_begin(); -    if (!EvaluateInPlace(Result, Info, This, (*I)->getInit())) -      return false; +    { +      FullExpressionRAII InitScope(Info); +      if (!EvaluateInPlace(Result, Info, This, (*I)->getInit())) +        return false; +    }      return EvaluateStmt(Result, Info, Definition->getBody()) != ESR_Failed;    }  | 

