NoQ added a comment.

I'd like to clarify that in case of path-sensitive analysis there are actually 
three warning classes to consider.

1. Warnings that reside completely in system headers and indicate bugs in 
system headers, most likely falsely.
2. Warnings that originate from the main file and indicate misuse of system 
header APIs, likely correctly.
3. Warnings that originate from the main file, but still indicate bugs in 
system headers, because the part of the path that stays in the main file is 
irrelevant to the warning.

This change suppresses 3, and as a side effect we suppress 1, because 
discriminating between 1 and 3 is hard* . We never needed to suppress 2, 
because they're never created to begin with: AnalysisConsumer doesn't consider 
header-only functions for top-level analysis.
__
// * I think that actually such discrimination is curious and probably worth 
investigating. We could try to see which symbols (originating from where) 
participate in the equation that expresses the invariant violation of which 
causes the warning. We could potentially improve our suppressions greatly 
(maybe even make them non-hackish) and probably avoid the common problems with 
inlining this way. Just brainstorming.


Repository:
  rL LLVM

https://reviews.llvm.org/D30798



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to