|
@@ -157,7 +157,7 @@ CodeGenFunction::GenerateVarArgsThunk(llvm::Function *Fn,
|
|
|
const CGFunctionInfo &FnInfo,
|
|
|
GlobalDecl GD, const ThunkInfo &Thunk) {
|
|
|
const CXXMethodDecl *MD = cast<CXXMethodDecl>(GD.getDecl());
|
|
|
- const FunctionProtoType *FPT = MD->getType()->getAs<FunctionProtoType>();
|
|
|
+ const FunctionProtoType *FPT = MD->getType()->castAs<FunctionProtoType>();
|
|
|
QualType ResultType = FPT->getReturnType();
|
|
|
|
|
|
// Get the original function
|
|
@@ -242,7 +242,6 @@ void CodeGenFunction::StartThunk(llvm::Function *Fn, GlobalDecl GD,
|
|
|
// Build FunctionArgs.
|
|
|
const CXXMethodDecl *MD = cast<CXXMethodDecl>(GD.getDecl());
|
|
|
QualType ThisType = MD->getThisType();
|
|
|
- const FunctionProtoType *FPT = MD->getType()->getAs<FunctionProtoType>();
|
|
|
QualType ResultType;
|
|
|
if (IsUnprototyped)
|
|
|
ResultType = CGM.getContext().VoidTy;
|
|
@@ -251,7 +250,7 @@ void CodeGenFunction::StartThunk(llvm::Function *Fn, GlobalDecl GD,
|
|
|
else if (CGM.getCXXABI().hasMostDerivedReturn(GD))
|
|
|
ResultType = CGM.getContext().VoidPtrTy;
|
|
|
else
|
|
|
- ResultType = FPT->getReturnType();
|
|
|
+ ResultType = MD->getType()->castAs<FunctionProtoType>()->getReturnType();
|
|
|
FunctionArgList FunctionArgs;
|
|
|
|
|
|
// Create the implicit 'this' parameter declaration.
|