summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGObjC.cpp
diff options
context:
space:
mode:
authorKuba Mracek <mracek@apple.com>2017-04-14 01:00:03 +0000
committerKuba Mracek <mracek@apple.com>2017-04-14 01:00:03 +0000
commit82c2175793ae96ad0f0a7f88f967025bad56bbe7 (patch)
treee3b7611bcbe4a63b8c6a89e5d580af3d951d553f /clang/lib/CodeGen/CGObjC.cpp
parent216db546787a271572638b1d4a2c2829265fcdc1 (diff)
downloadbcm5719-llvm-82c2175793ae96ad0f0a7f88f967025bad56bbe7.tar.gz
bcm5719-llvm-82c2175793ae96ad0f0a7f88f967025bad56bbe7.zip
Revert r300287.
llvm-svn: 300290
Diffstat (limited to 'clang/lib/CodeGen/CGObjC.cpp')
-rw-r--r--clang/lib/CodeGen/CGObjC.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/clang/lib/CodeGen/CGObjC.cpp b/clang/lib/CodeGen/CGObjC.cpp
index 50252d5a44b..929bda9099b 100644
--- a/clang/lib/CodeGen/CGObjC.cpp
+++ b/clang/lib/CodeGen/CGObjC.cpp
@@ -1469,6 +1469,11 @@ void CodeGenFunction::EmitObjCForCollectionStmt(const ObjCForCollectionStmt &S){
if (DI)
DI->EmitLexicalBlockStart(Builder, S.getSourceRange().getBegin());
+ // The local variable comes into scope immediately.
+ AutoVarEmission variable = AutoVarEmission::invalid();
+ if (const DeclStmt *SD = dyn_cast<DeclStmt>(S.getElement()))
+ variable = EmitAutoVarAlloca(*cast<VarDecl>(SD->getSingleDecl()));
+
JumpDest LoopEnd = getJumpDestInCurrentScope("forcoll.end");
// Fast enumeration state.
@@ -1620,10 +1625,8 @@ void CodeGenFunction::EmitObjCForCollectionStmt(const ObjCForCollectionStmt &S){
bool elementIsVariable;
LValue elementLValue;
QualType elementType;
- AutoVarEmission variable = AutoVarEmission::invalid();
if (const DeclStmt *SD = dyn_cast<DeclStmt>(S.getElement())) {
// Initialize the variable, in case it's a __block variable or something.
- variable = EmitAutoVarAlloca(*cast<VarDecl>(SD->getSingleDecl()));
EmitAutoVarInit(variable);
const VarDecl* D = cast<VarDecl>(SD->getSingleDecl());
OpenPOWER on IntegriCloud