NoQ added inline comments.

================
Comment at: clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp:406
 
+const ExplodedNode *StreamChecker::getAcquisitionSite(const ExplodedNode *N,
+                                                      SymbolRef StreamSym,
----------------
NoQ wrote:
> Ok, so this is a tiny auxiliary visitor.
> 
> I wish we could set uniqueing location post-factum from within the note tag. 
> Unfortunately we can't because notes are generated after uniqueing :(
> 
> I'd like you to experiment with tracking this information as part of the 
> state instead so that you didn't need to perform an additional scan. I'd be 
> happy if it helps you avoid performing this additional pass.
> 
> I.e., when you're opening the file, add all the information you need for 
> building your uniqueing location into the stream state (not the node though, 
> just the program point or something like that). Then retrieve it in O(1) when 
> you're emitting the report.
Another thing we could try is to implement such post-processing pass globally 
for all checkers. I.e., instead of an optional uniqueing location accept an 
optional lambda that looks at a node and answers whether this node should be 
used as a uniqueing location. Then before report deduplication scan each report 
that supplies such lambda and update its uniqueing location. That'll probably 
require some work on BugReporter but that sounds like a nice way to avoid all 
the boilerplate.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D81407/new/

https://reviews.llvm.org/D81407



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

Reply via email to