Revert r184205 and associated patches while investigating issue with broken buildbot (possible interaction with LTO)

<rdar://problem/14209661>

llvm-svn: 184384
This commit is contained in:
Stephen Lin
2013-06-19 23:23:19 +00:00
parent 11b3ba7176
commit 19cee1871e
18 changed files with 276 additions and 263 deletions

View File

@@ -1662,8 +1662,11 @@ CodeGenFunction::EmitCXXConstructorCall(const CXXConstructorDecl *D,
}
// Non-trivial constructors are handled in an ABI-specific manner.
CGM.getCXXABI().EmitConstructorCall(*this, D, Type, ForVirtualBase,
Delegating, This, ArgBeg, ArgEnd);
llvm::Value *Callee = CGM.getCXXABI().EmitConstructorCall(*this, D, Type,
ForVirtualBase, Delegating, This, ArgBeg, ArgEnd);
if (CGM.getCXXABI().HasThisReturn(CurGD) &&
CGM.getCXXABI().HasThisReturn(GlobalDecl(D, Type)))
CalleeWithThisReturn = Callee;
}
void
@@ -1755,6 +1758,9 @@ CodeGenFunction::EmitDelegateCXXConstructorCall(const CXXConstructorDecl *Ctor,
llvm::Value *Callee = CGM.GetAddrOfCXXConstructor(Ctor, CtorType);
EmitCall(CGM.getTypes().arrangeCXXConstructorDeclaration(Ctor, CtorType),
Callee, ReturnValueSlot(), DelegateArgs, Ctor);
if (CGM.getCXXABI().HasThisReturn(CurGD) &&
CGM.getCXXABI().HasThisReturn(GlobalDecl(Ctor, CtorType)))
CalleeWithThisReturn = Callee;
}
namespace {
@@ -1821,6 +1827,9 @@ void CodeGenFunction::EmitCXXDestructorCall(const CXXDestructorDecl *DD,
EmitCXXMemberCall(DD, SourceLocation(), Callee, ReturnValueSlot(), This,
VTT, getContext().getPointerType(getContext().VoidPtrTy),
0, 0);
if (CGM.getCXXABI().HasThisReturn(CurGD) &&
CGM.getCXXABI().HasThisReturn(GlobalDecl(DD, Type)))
CalleeWithThisReturn = Callee;
}
namespace {