Index: cfe/trunk/lib/StaticAnalyzer/Core/CallEvent.cpp =================================================================== --- cfe/trunk/lib/StaticAnalyzer/Core/CallEvent.cpp +++ cfe/trunk/lib/StaticAnalyzer/Core/CallEvent.cpp @@ -211,7 +211,9 @@ } bool CallEvent::isCalled(const CallDescription &CD) const { - assert(getKind() != CE_ObjCMessage && "Obj-C methods are not supported"); + // FIXME: Add ObjC Message support. + if (getKind() == CE_ObjCMessage) + return false; if (!CD.IsLookupDone) { CD.IsLookupDone = true; CD.II = &getState()->getStateManager().getContext().Idents.get(CD.FuncName); Index: cfe/trunk/test/Analysis/block-in-critical-section.m =================================================================== --- cfe/trunk/test/Analysis/block-in-critical-section.m +++ cfe/trunk/test/Analysis/block-in-critical-section.m @@ -0,0 +1,9 @@ +// RUN: %clang_analyze_cc1 -analyzer-checker=core,alpha.unix.BlockInCriticalSection -verify -Wno-objc-root-class %s + +@interface SomeClass +-(void)someMethod; +@end + +void shouldNotCrash(SomeClass *o) { + [o someMethod]; +}