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.

Jim

On Mar 6, 2014, at 8:41 AM, Colin Riley <[email protected]> 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
> [email protected]
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

_______________________________________________
lldb-dev mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

Reply via email to