NoQ added inline comments.

================
Comment at: 
clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h:228-229
   /// a bug, you can add notes as you add your transitions.
-  const NoteTag *getNoteTag(NoteTag::Callback &&Cb) {
-    return Eng.getNoteTags().makeNoteTag(std::move(Cb));
+  const NoteTag *getNoteTag(NoteTag::Callback &&Cb, bool IsPrunable = false) {
+    return Eng.getNoteTags().makeNoteTag(std::move(Cb), IsPrunable);
   }
----------------
Szelethus wrote:
> Hmm, we use interestingness (`markInteresting()`) already to determine 
> whether we should prune events or not, maybe we could (in the long term) try 
> to make these mechanisms work in harmony.
> 
> In any case, could you please add comments about the new parameter to the 
> class doc? :)
> Hmm, we use interestingness (`markInteresting()`) already to determine 
> whether we should prune events or not, maybe we could (in the long term) try 
> to make these mechanisms work in harmony.

These are two fairly different mechanisms to prevent pruning, but both seem 
useful. The location context is prunable as long as it's not interesting and 
there are no non-prunable notes emitted within it.

All basic nodes are prunable; all checker notes are non-prunable; some 
`trackExpressionValue` notes are non-prunable. This way the really important 
notes (such as checker notes) never get lost. And it's kinda nice and easy to 
understand.


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

https://reviews.llvm.org/D63915



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

Reply via email to