[cfe-users] UB Sanitizer false positive

James Walker via cfe-users cfe-users at lists.llvm.org
Fri Nov 2 17:39:00 PDT 2018


Writing for Mac Cocoa in Objective-C, I have a subclass of NSApplication 
that overrides sendAction:to:from:.  The override often ends up calling

[super sendAction: anAction to: aTarget from: sender]

and when aTarget is nil, UB Sanitizer says "Null pointer passed as 
argument 1, which is declared to never be null".  Yet the declaration in 
the NSApplication header (and in my subclass) is

- (BOOL)sendAction:(SEL)action to:(nullable id)target from:(nullable 
id)sender;

so it should be fine for the target argument to be nil, assuming that's 
the one it means when it says "argument 1".  I thought maybe the 
compiler wasn't sure about the type of "super", so I tried casting it to 
NSApplication*, but that's not allowed.  Am I missing anything?



More information about the cfe-users mailing list