$ 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.
If I run this with a debug version of LLVM, it doesn't ICE. I don't
have access to a Linux machine, but if someone does, could they run
valgrind on this to see if anything bad is happening?
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 …
Adding “–enable-assertions” to the llvm-gcc configure line causes the build to fail. Having just LLVM configured with --enable-assertions doesn’t reproduce the error. An assertion build (the Apple way) doesn’t assert.
Adding “–enable-assertions” to the llvm-gcc configure line causes the build to fail. Having just LLVM configured with --enable-assertions doesn’t reproduce the error.
This is all expected behavior. Right ?
An assertion build (the Apple way) doesn’t assert.
Does it enable assertions in llvm-gcc at configure time ?
Note, this assertion failure is in llvm-gcc and not in llvm.