[cfe-dev] A problem from XCode 4 - help sought tracking it down

Matt Lamari matt.lamari at gmail.com
Thu Apr 21 07:18:35 PDT 2011


Sorry if this isn't the right place; but I'm facing an XCode 4 (LLVM 2.0
to Apple, I heard it's LLVM 2.9 under the hood) issue that may involve
LLVM/Clang, and maybe some people on this list could help me short-circuit the
source.

I have a code pattern that, when used in XCode 4 in Objective C++ files,
causes the whole IDE to go crash.  It is a stripped sample to highlight
the issue.

In the call stack, I see libclang.dylib, calling through
clang_visitChildren, up through various CursorVisitor::Visit... and
CursorVisitor::VisitChildren... calls.  I have LLVM compiling, and
imagine I could replace XCode's libclang.dylib in order to add debugging
aids/logging.

Am I on the right track?  Should I look near the point of failure, or
should I inspect the integrity of the data sent to clang_visitChildren
first?

If I'm not on the right track, I appreciate any help in getting me moving.


If anyone happens to be able to test-rig XCode 4 (in iPhone mode with
LLVM2 as compiler) vs the code below, it reproduces the problem:

template <typename I0,typename I1>
void (^ cc(void (^f)(I0,I1), I0 i0))(I1)
{
    ^ void (I1 i1) { };
}


int main(int argc, char *argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
   
       cc(^ void (NSString * a, id b) { NSLog(a, b); }, @"%@");
   
    [pool drain];
}


Thanks,
Matt




More information about the cfe-dev mailing list