NoQ added inline comments.

================
Comment at: include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h:390
 
-  // FIXME: Remove when we migrate over to just using ValueManager.
   SymbolManager &getSymbolManager() { return SymMgr; }
----------------
baloghadamsoftware wrote:
> Is this comment intentionally deleted?
Yeah, i don't think anybody remembers what was that about and there doesn't 
seem to be an immediate need in something like that.

Hmm, why did i delete it as part of that revision? I guess because i was moving 
these helper methods around. Let me bring them back because this place is 
actually better, now that i think about it.

Also i wonder if anybody ever uses this const getter two lines below (or even 
passes `ExprEngine` by const reference anywhere). Hmm, seems to compile without 
it.


================
Comment at: test/Analysis/symbol-reaper.cpp:1
+// RUN: %clang_analyze_cc1 -analyzer-checker=debug.ExprInspection -verify %s
+
----------------
Szelethus wrote:
> Core intentionally left out?
Thx ^.^ No, just still have this habit since before it was decided to make it 
mandatory >.<


================
Comment at: test/Analysis/symbol-reaper.cpp:13
+  void foo() {
+    // Ugh, maybe just let clang_analyzer_eval() work within callees already?
+    // The glob variable shouldn't keep our symbol alive because
----------------
a_sidorin wrote:
> //FIXME?
Yeah, i guess it's a more polite way of expressing it :)


================
Comment at: test/Analysis/symbol-reaper.cpp:31
+  clang_analyzer_eval(glob); // expected-warning{{TRUE}}
+                             // expected-warning@-1{{SYMBOL DEAD}}
+}
----------------
Szelethus wrote:
> N00b question: What does `SYMBOL DEAD` mean here exactly?
It's a warning produced by `clang_analyzer_warnOnDeadSymbol(a.x)` when the 
value that was in `a.x` (that was there when that function was called) dies. 
This is an `ExprInspection` utility that was created in order to test 
`SymbolReaper` more directly. See `symbol-reaper.c` for more such tests.


================
Comment at: unittests/StaticAnalyzer/SymbolReaperTest.cpp:52
+    assert(Matches.size() == 1 && "Ambiguous name!");
+    for (BoundNodes &M : Matches)
+      return M.getNodeAs<T>("d");
----------------
a_sidorin wrote:
> It looks like `selectFirst` helper is what you need here.
Wow, this one's handy.


================
Comment at: unittests/StaticAnalyzer/SymbolReaperTest.cpp:97
+  bool HandleTopLevelDecl(DeclGroupRef DG) override {
+    for (auto D: DG)
+      performTest(D);
----------------
a_sidorin wrote:
> Nit: `const auto *D : DG`
Fxd^^


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

https://reviews.llvm.org/D56632



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

Reply via email to