NoQ added a comment.

Looks great!

I suspect you'll catch a few crashes/assertion failures if you run this on 
real-world code, due to various parts of the static analyzer being startled by 
the new thing, so I really recommend doing this.



================
Comment at: 
clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h:338
+
+  void dumpToStream(raw_ostream &os) const override;
+
----------------
`LLVM_DUMP_METHOD`?


================
Comment at: clang/lib/StaticAnalyzer/Core/SValBuilder.cpp:104
+                               QualType type) {
+  assert(operand);
+  assert(!Loc::isLocType(type));
----------------
steakhal wrote:
> I think we should assert that we expect only `UO_Minus` (-), `UO_Not` (~).
> The rest of the `UO_*` doesn't seem to be relevant anyway: PostInc, PostDec, 
> PreInc, PreDec, AddrOf, Deref, Plus, LNot, Real, Imag, Extension, Coawait.
Actually, let's put such assertion in the constructor. The earlier we catch the 
problem the better.


================
Comment at: clang/lib/StaticAnalyzer/Core/SymbolManager.cpp:493
+  case SymExpr::UnarySymExprKind:
+    KnownLive = isLive(cast<UnarySymExpr>(sym)->getOperand());
+    break;
----------------
Excellent!


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D125318

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

Reply via email to