[cfe-commits] r96484 - in /cfe/trunk/lib: CodeGen/CGBlocks.cpp Sema/SemaDeclObjC.cpp

Douglas Gregor dgregor at apple.com
Wed Feb 17 10:33:36 PST 2010


Comment below...

Sent from my iPhone

On Feb 17, 2010, at 10:11 AM, Fariborz Jahanian <fjahanian at apple.com>  
wrote:

> Author: fjahanian
> Date: Wed Feb 17 12:10:54 2010
> New Revision: 96484
>
> URL: http://llvm.org/viewvc/llvm-project?rev=96484&view=rev
> Log:
> Use proper lexcial context for newly added ivars.
>
>
> Modified:
>    cfe/trunk/lib/CodeGen/CGBlocks.cpp
>    cfe/trunk/lib/Sema/SemaDeclObjC.cpp
>
> Modified: cfe/trunk/lib/CodeGen/CGBlocks.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGBlocks.cpp?rev=96484&r1=96483&r2=96484&view=diff
>
> === 
> === 
> === 
> =====================================================================
> --- cfe/trunk/lib/CodeGen/CGBlocks.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CGBlocks.cpp Wed Feb 17 12:10:54 2010
> @@ -110,6 +110,7 @@
> /// 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 @@
>                        SelfDecl->getType(), SourceLocation(), false);
>     CGF->AllocateBlockDecl(BDRE);
>   }
> +#endif
>
>   // FIXME: Also always forward the this pointer in C++ as well.
>
>
> Modified: cfe/trunk/lib/Sema/SemaDeclObjC.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDeclObjC.cpp?rev=96484&r1=96483&r2=96484&view=diff
>
> === 
> === 
> === 
> =====================================================================
> --- cfe/trunk/lib/Sema/SemaDeclObjC.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaDeclObjC.cpp Wed Feb 17 12:10:54 2010
> @@ -825,8 +825,8 @@
>     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);

Also,

   ImpDecl->addDecl(ivars[i]);

So that this ivar is stored in the @implementation.


>     }
>
>     return;
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits



More information about the cfe-commits mailing list