Use proper lexcial context for newly added ivars.

llvm-svn: 96484
This commit is contained in:
Fariborz Jahanian
2010-02-17 18:10:54 +00:00
parent a11c45866e
commit c0309cd3d1
2 changed files with 4 additions and 2 deletions

View File

@@ -110,6 +110,7 @@ static bool CanBlockBeGlobal(const CodeGenFunction::BlockInfo &Info) {
/// invoke function.
static void AllocateAllBlockDeclRefs(const CodeGenFunction::BlockInfo &Info,
CodeGenFunction *CGF) {
#if 0
// Always allocate self, as it is often handy in the debugger, even if there
// is no codegen in the block that uses it. This is also useful to always do
// this as if we didn't, we'd have to figure out all code that uses a self
@@ -122,6 +123,7 @@ static void AllocateAllBlockDeclRefs(const CodeGenFunction::BlockInfo &Info,
SelfDecl->getType(), SourceLocation(), false);
CGF->AllocateBlockDecl(BDRE);
}
#endif
// FIXME: Also always forward the this pointer in C++ as well.

View File

@@ -825,8 +825,8 @@ void Sema::CheckImplementationIvars(ObjCImplementationDecl *ImpDecl,
IDecl->setLocEnd(RBrace);
// Add ivar's to class's DeclContext.
for (unsigned i = 0, e = numIvars; i != e; ++i) {
ivars[i]->setLexicalDeclContext(IDecl);
IDecl->addDecl(ivars[i]);
ivars[i]->setLexicalDeclContext(ImpDecl);
IDecl->makeDeclVisibleInContext(ivars[i], false);
}
return;