First pass at abstracting out a class for the target C++ ABI.
llvm-svn: 173514
This commit is contained in:
@@ -721,7 +721,7 @@ void CodeGenFunction::EmitConstructorBody(FunctionArgList &Args) {
|
||||
// Before we go any further, try the complete->base constructor
|
||||
// delegation optimization.
|
||||
if (CtorType == Ctor_Complete && IsConstructorDelegationValid(Ctor) &&
|
||||
CGM.getContext().getTargetInfo().getCXXABI() != CXXABI_Microsoft) {
|
||||
CGM.getContext().getTargetInfo().getCXXABI().hasConstructorVariants()) {
|
||||
if (CGDebugInfo *DI = getDebugInfo())
|
||||
DI->EmitLocation(Builder, Ctor->getLocEnd());
|
||||
EmitDelegateCXXConstructorCall(Ctor, Ctor_Base, Args);
|
||||
@@ -920,7 +920,8 @@ void CodeGenFunction::EmitDestructorBody(FunctionArgList &Args) {
|
||||
// Enter the cleanup scopes for virtual bases.
|
||||
EnterDtorCleanups(Dtor, Dtor_Complete);
|
||||
|
||||
if (!isTryBody && CGM.getContext().getTargetInfo().getCXXABI() != CXXABI_Microsoft) {
|
||||
if (!isTryBody &&
|
||||
CGM.getContext().getTargetInfo().getCXXABI().hasDestructorVariants()) {
|
||||
EmitCXXDestructorCall(Dtor, Dtor_Base, /*ForVirtualBase=*/false,
|
||||
LoadCXXThis());
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user