[lldb-dev] ObjC decl string checks in Expr Eval?

jingham at apple.com jingham at apple.com
Thu Mar 6 09:15:38 PST 2014

I am pretty sure this is the story, though Sean will correct me if I'm wrong...  The problem is that id and Class are treated oddly in clang.  There are type definitions for them in the ObjC header files (and consequently in debug information), but internally to the compiler those definitions are ignored and they are treated as builtins instead.  So you have to not find the type definitions for them and just let clang handle them its own way or it will get all mad at you.


On Mar 6, 2014, at 8:41 AM, Colin Riley <colin at codeplay.com> wrote:

> Hey folks,
> I'm interested in the following code in ClangASTSource.cpp - ClangASTSource::FindExternalVisibleDecls(), around line 605.
> ...
>    static ConstString id_name("id");
>    static ConstString Class_name("Class");
>    if (name == id_name || name == Class_name)
>        return;
> ...
> Is this a legacy bit of ObjC early exit magic? I've been wondering why expression evaluation was failing only ever on variables called 'id' ;) I don't have the ability to validate implications of removal of the code on ObjC. Any opinions on whether this is actually still needed?
> Colin
> -- 
> Colin Riley
> Codeplay Software Ltd
> 45 York Place, Edinburgh, EH1 3HP
> Phone: +44 131 466 0503
> Fax: +44 131 557 6600
> Website: http://www.codeplay.com
> _______________________________________________
> lldb-dev mailing list
> lldb-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

More information about the lldb-dev mailing list