为了达到我所相信的目的,你可以通过
analyzer_noreturn
属性。
#ifndef CLANG_ANALYZER_RELEASED
#if __has_feature(attribute_analyzer_noreturn)
#define CLANG_ANALYZER_RELEASED __attribute__((analyzer_noreturn))
#else
#define CLANG_ANALYZER_RELEASED
#endif
#endif
// suppress the leak warning for `string`.
void takeString(char *) CLANG_ANALYZER_RELEASED;
要查看clang静态分析器检查程序的完整列表:
$ clang -cc1 -analyzer-checker-help
alpha.unix.MallocWithAnnotations
在最新版本的llvm中似乎不存在。
要启用/禁用checkers,并设置选项:(Xcode
Build Settings
>
Other C Flags
OTHER_CFLAGS = -D__clang_analyzer__ -Xclang -analyzer-output=plist-html -Xclang -analyzer-config -Xclang path-diagnostics-alternate=true -Xclang -analyzer-config -Xclang report-in-main-source-file=true -Xclang -analyzer-config -Xclang mode=shallow -Xclang -analyzer-config -Xclang osx.NumberObjectConversion:Pedantic=true -Xclang -analyzer-checker -Xclang security.insecureAPI.UncheckedReturn -Xclang -analyzer-checker -Xclang security.insecureAPI.getpw -Xclang -analyzer-checker -Xclang security.insecureAPI.gets -Xclang -analyzer-checker -Xclang security.insecureAPI.mkstemp -Xclang -analyzer-checker -Xclang security.insecureAPI.mktemp -Xclang -analyzer-disable-checker -Xclang security.insecureAPI.rand -Xclang -analyzer-disable-checker -Xclang security.insecureAPI.strcpy -Xclang -analyzer-checker -Xclang security.insecureAPI.vfork -Xclang -analyzer-checker -Xclang osx.cocoa.RetainCount -Xclang -analyzer-checker -Xclang osx.cocoa.Dealloc
Clang static analyzer checkers not present in Xcode 10