<div dir="ltr">Will do, thanks.</div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Feb 2, 2018 at 2:52 PM, Artem Dergachev <span dir="ltr"><<a href="mailto:noqnoqneo@gmail.com" target="_blank">noqnoqneo@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hmm, indeed. Yeah, it seems that we're using the same default CheckName for all nullability checks, even though we retrieve the correct names in NullabilityChecker.cpp's REGISTER_CHECKER - that's missing boilerplate for having the same checker object in C++ code pretend to be multiple user-facing checkers. And we never noticed only because nobody was using this field.<br>
<br>
Would you be willing to file a bugzilla bug in <a href="http://bugs.llvm.org" rel="noreferrer" target="_blank">bugs.llvm.org</a> or an Apple bug, whatever sounds more comfortable to you?<div><div class="h5"><br>
<br>
On 02/02/2018 11:08 AM, Michael Eisel via cfe-dev wrote:<br>
</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">
Hi,<br>
<br>
I'm working with the version of clang shipped with Xcode 9.0.1 (Apple LLVM version 9.0.0 (clang-900.0.38)) and I seem to have found a bug where the check_name parameter of the clang static analysis plist file is incorrect. Since I use this check_name as an identifier for automatic linting in CI, it's important to get it right (e.g., to track the change in violations across commits). When I enable the lint nullability.NullPassedToNonnul<wbr>l, that check name is returned for a violation that is actually nullability.NullReturnedFromNo<wbr>nnull. When I disable nullability.NullPassedToNonnul<wbr>l, the check_name is correctly reported.<br>
<br>
Command where check_name is correct (nullability.NullReturnedFromN<wbr>onnull):<br>
<br>
/Applications/Xcode.app/Conten<wbr>ts/Developer/Toolchains/XcodeD<wbr>efault.xctoolchain/usr/bin/<wbr>clang -isysroot /Applications/Xcode.app/Conten<wbr>ts/Developer/Platforms/iPhoneS<wbr>imulator.platform/Developer/<wbr>SDKs/iPhoneSimulator.sdk -arch x86_64 -mios-simulator-version-min\=1<wbr>0.0 -std\=gnu99 -c a.m -o out -Wno-error -Xclang -analyzer-config -Xclang mode\=deep -Xclang -analyzer-config -Xclang path-diagnostics-alternate\=tr<wbr>ue -Xclang -analyzer-checker -Xclang nullability.NullReturnedFromNo<wbr>nnull -Xclang -analyzer-disable-checker -Xclang nullability.NullPassedToNonnul<wbr>l -Xclang -analyzer-output\=plist -Xclang -analyzer-opt-analyze-nested-b<wbr>locks -D__clang_analyzer__ --analyze && cat out<br>
<br>
<br>
Command where check_name is NullPassedToNonnull:<br>
<br>
/Applications/Xcode.app/Conten<wbr>ts/Developer/Toolchains/XcodeD<wbr>efault.xctoolchain/usr/bin/<wbr>clang -isysroot /Applications/Xcode.app/Conten<wbr>ts/Developer/Platforms/iPhoneS<wbr>imulator.platform/Developer/<wbr>SDKs/iPhoneSimulator.sdk -arch x86_64 -mios-simulator-version-min\=1<wbr>0.0 -std\=gnu99 -c a.m -o out -Wno-error -Xclang -analyzer-config -Xclang mode\=deep -Xclang -analyzer-config -Xclang path-diagnostics-alternate\=tr<wbr>ue -Xclang -analyzer-checker -Xclang nullability.NullReturnedFromNo<wbr>nnull -Xclang -analyzer-checker -Xclang nullability.NullPassedToNonnul<wbr>l -Xclang -analyzer-output\=plist -Xclang -analyzer-opt-analyze-nested-b<wbr>locks -D__clang_analyzer__ --analyze && cat out<br>
<br>
<br>
a.m:<br>
#import <Foundation/Foundation.h><br>
<br>
NS_ASSUME_NONNULL_BEGIN<br>
<br>
@interface MyObject : NSObject<br>
<br>
- (id)foo;<br>
<br>
@end<br>
<br>
NS_ASSUME_NONNULL_END<br>
<br>
@implementation MyObject<br>
<br>
- (id)foo<br>
{<br>
  return nil;<br>
}<br>
<br>
@end<br>
<br>
Thanks,<br>
Michael<br>
<br>
<br></div></div>
______________________________<wbr>_________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-dev</a><br>
</blockquote>
<br>
</blockquote></div><br></div>