improve compatibility with the VC++'08 C++ compiler. Patch by

Niklas Larsson!

llvm-svn: 65706
This commit is contained in:
Chris Lattner 2009-02-28 19:01:03 +00:00
parent fb23a968ad
commit 3385fe12ce
3 changed files with 9 additions and 8 deletions

View File

@ -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) {

View File

@ -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;

View File

@ -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);