diff options
Diffstat (limited to 'lib/Sema')
-rw-r--r-- | lib/Sema/Sema.h | 2 | ||||
-rw-r--r-- | lib/Sema/SemaDeclCXX.cpp | 11 |
2 files changed, 8 insertions, 5 deletions
diff --git a/lib/Sema/Sema.h b/lib/Sema/Sema.h index e01bf23ce6..f17b77baaa 100644 --- a/lib/Sema/Sema.h +++ b/lib/Sema/Sema.h @@ -1468,7 +1468,7 @@ public: SourceLocation MemberLoc, IdentifierInfo &Member, DeclPtrTy ImplDecl); - virtual void ActOnDefaultInitializers(DeclPtrTy ConstructorDecl); + virtual void ActOnDefaultCDtorInitializers(DeclPtrTy CDtorDecl); bool ConvertArgumentsForCall(CallExpr *Call, Expr *Fn, FunctionDecl *FDecl, const FunctionProtoType *Proto, diff --git a/lib/Sema/SemaDeclCXX.cpp b/lib/Sema/SemaDeclCXX.cpp index 7d039dc2d6..c62858ac73 100644 --- a/lib/Sema/SemaDeclCXX.cpp +++ b/lib/Sema/SemaDeclCXX.cpp @@ -902,15 +902,18 @@ void Sema::ActOnMemInitializers(DeclPtrTy ConstructorDecl, } } -void Sema::ActOnDefaultInitializers(DeclPtrTy ConstructorDecl) { - if (!ConstructorDecl) +void Sema::ActOnDefaultCDtorInitializers(DeclPtrTy CDtorDecl) { + if (!CDtorDecl) return; if (CXXConstructorDecl *Constructor - = dyn_cast<CXXConstructorDecl>(ConstructorDecl.getAs<Decl>())) + = dyn_cast<CXXConstructorDecl>(CDtorDecl.getAs<Decl>())) Constructor->setBaseOrMemberInitializers(Context, (CXXBaseOrMemberInitializer **)0, 0); - + else + if (CXXDestructorDecl *Destructor + = dyn_cast<CXXDestructorDecl>(CDtorDecl.getAs<Decl>())) + Destructor->setBaseOrMemberDestructions(Context); } namespace { |