nikhgupt added a comment.

In, @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.

  void dummyFunc(){
    int a=5;
    int b=0;
    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.


  void dummyFunc(){
    int a=5;
    int b=0;
    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.

cfe-commits mailing list

Reply via email to