http://llvm.org/bugs/show_bug.cgi?id=9994

David Chisnall <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED

--- Comment #8 from David Chisnall <[email protected]> 2011-05-23 17:35:08 CDT 
---
(In reply to comment #7)
> David: is the GNU runtime still your domain?

Yup.  The problem seems to be that this module declares the property get
function as having a BOOL as the final argument.  BOOL is a typedef for
unsigned char, which becomes i8 in LLVM.  CGObjCGNU tries to construct the
function as having BoolTy (from) ASTContext as the final argument.  This is i1,
so it gets a bitcast, and then fails when trying to cast the constant bitcast
to a Function.

I've 'fixed' this (r131930) by turning a load of Functions into Constants, but
this is hiding the real problem: that we are using BoolTy (i1) in a lot of
places to represent BOOL, and hoping that something lower down will fix it. 
This may well break on some platforms, depending on what LLVM does.

We should probably just use unsigned char / i8 instead of BoolTy for ObjC
BOOLs.  This will break VxWorks with the GCC runtime, but I don't think anyone
cares.

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs

Reply via email to