diff options
| author | Roman Divacky <rdivacky@FreeBSD.org> | 2010-05-04 20:51:19 +0000 |
|---|---|---|
| committer | Roman Divacky <rdivacky@FreeBSD.org> | 2010-05-04 20:51:19 +0000 |
| commit | be17651f5cd2e94922c1b732bc8589e180698193 (patch) | |
| tree | 938fcb7c80a0402925b5b00fa684a245ab0936a5 /lib/CodeGen/CGBlocks.cpp | |
| parent | 0883ccd9eac3b974df00e6548ee319a7dd3646f4 (diff) | |
Notes
Diffstat (limited to 'lib/CodeGen/CGBlocks.cpp')
| -rw-r--r-- | lib/CodeGen/CGBlocks.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/CodeGen/CGBlocks.cpp b/lib/CodeGen/CGBlocks.cpp index db24def216d5..8082b33fd66d 100644 --- a/lib/CodeGen/CGBlocks.cpp +++ b/lib/CodeGen/CGBlocks.cpp @@ -532,6 +532,8 @@ llvm::Value *CodeGenFunction::GetAddrOfBlockDecl(const BlockDeclRefExpr *E) { V = Builder.CreateBitCast(V, PtrStructTy); V = Builder.CreateStructGEP(V, getByRefValueLLVMField(VD), VD->getNameAsString()); + if (VD->getType()->isReferenceType()) + V = Builder.CreateLoad(V); } else { const llvm::Type *Ty = CGM.getTypes().ConvertType(VD->getType()); |
