[LLVMdev] Valgrind Help Needed

Devang Patel dpatel at apple.com
Wed Sep 19 17:41:11 PDT 2007


On Sep 19, 2007, at 4:48 PM, Bill Wendling wrote:

> Hi all,
>
> This program:
>
> @protocol CPTransferThreadObserving;
>
> @interface CPMode {}
> @end
>
> @implementation CPMode
> -(void) copyInBackgroundAndNotifyUsingPorts {
>  id client;
>  [client setProtocolForProxy:
>            @protocol(CPTransferThreadObserving)];
> }
> @end
>
> produces this internal compiler error:
>
> $ llvm-gcc -x objective-c -arch ppc64 -std=c99 -c testcase.mi
> testcase.mi:12: internal compiler error: Bus error
> Please submit a full bug report,
> with preprocessed source if appropriate.
> See <URL:http://llvm.org/bugs> for instructions.

In llvm-backend.cpp  :

1086	        if (GV->getName() != Name) {
1087	          Function *F = TheModule->getFunction(Name);
1088	          assert(F && F->isDeclaration() && "A function turned  
into a global?");
1089	
1090	          // Replace any uses of "F" with uses of GV.
1091	          Value *FInNewType = ConstantExpr::getBitCast(GV, F- 
 >getType());


(gdb) p Name
$3 = 0x41819430 "\001L_OBJC_PROTOCOL_$_CPTransferThreadObserving"

However  TheModule->getFunction(Name) returns NULL and you get ICE at  
F->getType() #1091. I'll let you investigate this further ...   :)


-
Devang

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20070919/cc41a28a/attachment.html>


More information about the llvm-dev mailing list