[PATCH] D24411: [Analyzer] Suppress false positives on the clang static analyzer
Nikhil Gupta via cfe-commits
cfe-commits at lists.llvm.org
Mon Sep 19 13:35:05 PDT 2016
nikhgupt added a comment.
In https://reviews.llvm.org/D24411#545381, @zaks.anna wrote:
> It is not clear to me that we've reached a consensus on cfe-dev list that suppressing with comments and printing the checker name is the way to go.
I'm new to the LLVM upstreaming process and have not been a part of the previous threads discussing this. It is my understanding that false positive suppression is of importance to the community. What is the common consensus on implementing Analyzer suppressions?
While suppressing with the use of comments is debatable, my findings indicate that a blind suppression statement for a line of code (ie: without the use of a checker name) can lead to some confusion with developers. For instance, the (simplified) code example below emits two analyzer warnings on the last line: A dead-code warning for 'y' as well as a division-by-zero warning for the arithmetic operation. A blind suppression by a developer who assumes that this would only emit a false positive deadcode warning, will unintentionally suppress the crucial division by zero warning.
volatile int c = a/b;
By annotating the warnings they intend on suppressing we can ensure that developers are aware of any other bugs that can emerge from that line.
volatile int c = a/b; //clang_sa_ignore[deadcode,core.DivideZero]
In order to do so, we will have to make the specific warning checker name visible to the user.
More information about the cfe-commits