[PATCH] D34102: [analyzer] Add portability package for the checkers.
Artem Dergachev via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Jun 12 06:23:31 PDT 2017
NoQ created this revision.
Checkers that find implementation-defined behavior seem to better be off by default - or, at least, there should be a way to turn them off - because we're not sure if our users are developing cross-platform code or target a specific platform. If the behavior is well-defined on any particular target platform, then the user may say "this code works correctly, the behavior is documented, i personally don't care about portability, so the analyzer shouldn't warn".
I'm introducing an `optin.portability` package with this patch. The UNIX zero-size-malloc check is moved here, because the behavior is implementation-defined according even to the C standard, and man pages of various platforms clearly document which behavior is implemented. Of course, that behavior is different on linux vs. bsd/mac though, which is the whole point of the checker.
Suggestions/complains are very welcome. I'm thinking of enabling portability checks by default when we're cross-compiling, or maybe on per-platform basis, eg. linux/bsd developers care about portability much more often (and in this case we shouldn't probably add the `optin` prefix to the package).
https://reviews.llvm.org/D34102
Files:
include/clang/StaticAnalyzer/Checkers/Checkers.td
lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp
test/Analysis/malloc-overflow2.c
test/Analysis/unix-fns.c
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D34102.102176.patch
Type: text/x-patch
Size: 6823 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20170612/5f3d60e8/attachment.bin>
More information about the cfe-commits
mailing list