improve compatibility with the VC++'08 C++ compiler. Patch by
Niklas Larsson! llvm-svn: 65706
This commit is contained in:
parent
fb23a968ad
commit
3385fe12ce
|
@ -1357,7 +1357,8 @@ void GRExprEngine::VisitCallRec(CallExpr* CE, NodeTy* Pred,
|
||||||
// Transfer function: Objective-C ivar references.
|
// Transfer function: Objective-C ivar references.
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
static std::pair<const void*,const void*> EagerlyAssumeTag(&EagerlyAssumeTag,0);
|
static std::pair<const void*,const void*> EagerlyAssumeTag
|
||||||
|
= std::pair<const void*,const void*>(&EagerlyAssumeTag,0);
|
||||||
|
|
||||||
void GRExprEngine::EvalEagerlyAssume(NodeSet &Dst, NodeSet &Src, Expr *Ex) {
|
void GRExprEngine::EvalEagerlyAssume(NodeSet &Dst, NodeSet &Src, Expr *Ex) {
|
||||||
for (NodeSet::iterator I=Src.begin(), E=Src.end(); I!=E; ++I) {
|
for (NodeSet::iterator I=Src.begin(), E=Src.end(); I!=E; ++I) {
|
||||||
|
|
|
@ -472,17 +472,17 @@ llvm::Value *CodeGenFunction::LoadBlockStruct() {
|
||||||
return Builder.CreateLoad(LocalDeclMap[getBlockStructDecl()], "self");
|
return Builder.CreateLoad(LocalDeclMap[getBlockStructDecl()], "self");
|
||||||
}
|
}
|
||||||
|
|
||||||
llvm::Function *CodeGenFunction::GenerateBlockFunction(const BlockExpr *Expr,
|
llvm::Function *CodeGenFunction::GenerateBlockFunction(const BlockExpr *BExpr,
|
||||||
const BlockInfo& Info,
|
const BlockInfo& Info,
|
||||||
uint64_t &Size,
|
uint64_t &Size,
|
||||||
uint64_t &Align,
|
uint64_t &Align,
|
||||||
llvm::SmallVector<const Expr *, 8> &subBlockDeclRefDecls) {
|
llvm::SmallVector<const Expr *, 8> &subBlockDeclRefDecls) {
|
||||||
const FunctionProtoType *FTy =
|
const FunctionProtoType *FTy =
|
||||||
cast<FunctionProtoType>(Expr->getFunctionType());
|
cast<FunctionProtoType>(BExpr->getFunctionType());
|
||||||
|
|
||||||
FunctionArgList Args;
|
FunctionArgList Args;
|
||||||
|
|
||||||
const BlockDecl *BD = Expr->getBlockDecl();
|
const BlockDecl *BD = BExpr->getBlockDecl();
|
||||||
|
|
||||||
// FIXME: This leaks
|
// FIXME: This leaks
|
||||||
ImplicitParamDecl *SelfDecl =
|
ImplicitParamDecl *SelfDecl =
|
||||||
|
@ -510,9 +510,9 @@ llvm::Function *CodeGenFunction::GenerateBlockFunction(const BlockExpr *Expr,
|
||||||
&CGM.getModule());
|
&CGM.getModule());
|
||||||
|
|
||||||
StartFunction(BD, FTy->getResultType(), Fn, Args,
|
StartFunction(BD, FTy->getResultType(), Fn, Args,
|
||||||
Expr->getBody()->getLocEnd());
|
BExpr->getBody()->getLocEnd());
|
||||||
EmitStmt(Expr->getBody());
|
EmitStmt(BExpr->getBody());
|
||||||
FinishFunction(cast<CompoundStmt>(Expr->getBody())->getRBracLoc());
|
FinishFunction(cast<CompoundStmt>(BExpr->getBody())->getRBracLoc());
|
||||||
|
|
||||||
// The runtime needs a minimum alignment of a void *.
|
// The runtime needs a minimum alignment of a void *.
|
||||||
uint64_t MinAlign = getContext().getTypeAlign(getContext().VoidPtrTy) / 8;
|
uint64_t MinAlign = getContext().getTypeAlign(getContext().VoidPtrTy) / 8;
|
||||||
|
|
|
@ -279,7 +279,7 @@ public:
|
||||||
: BlockLiteralTy(blt), Name(n) {}
|
: BlockLiteralTy(blt), Name(n) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
llvm::Function *GenerateBlockFunction(const BlockExpr *Expr,
|
llvm::Function *GenerateBlockFunction(const BlockExpr *BExpr,
|
||||||
const BlockInfo& Info,
|
const BlockInfo& Info,
|
||||||
uint64_t &Size, uint64_t &Align,
|
uint64_t &Size, uint64_t &Align,
|
||||||
llvm::SmallVector<const Expr *, 8> &subBlockDeclRefDecls);
|
llvm::SmallVector<const Expr *, 8> &subBlockDeclRefDecls);
|
||||||
|
|
Loading…
Reference in New Issue