xazax.hun added inline comments.

================
Comment at: clang/include/clang/Analysis/FlowSensitive/Transfer.h:28
+
+  /// Returns the environment of the basic block that contains `S` or nullptr 
if
+  /// there isn't one.
----------------
Depending on how willing sensitive we are to memory vs runtime, if there is one 
environment per basic block, we could look up the basic block of the statement, 
and use the basic block's id, to look up the environment in a vector.


================
Comment at: clang/include/clang/Analysis/FlowSensitive/Value.h:39
+    // represent conjunctions, disjunctions, and negations.
+    AtomicBoolValue,
+    BoolConjunctionValue,
----------------
Do we need `Value` in the `Kind` if we are already in the class `Value`?
Also, do we need prefix `Conjunction` and `Disjunction` with `Bool`? Will there 
be a `Conjunction` with other types?


================
Comment at: clang/include/clang/Analysis/FlowSensitive/Value.h:79
+/// Models a boolean conjunction.
+class BoolConjunctionValue : public BoolValue {
+public:
----------------
Do we want to have a separate class for every binary/unary operator? 
Alternatively, we could follow what the AST is already doing. Having 
BinaryOperator and UnaryOperator classes with a kind. I guess the current 
approach is not too bad for booleans, but if we want to support all integer 
operators as well in the future I wonder if that would end up with too much 
boilerplate.


================
Comment at: clang/lib/Analysis/FlowSensitive/Transfer.cpp:98
+
+      // Create fresh values for unknown boolean expressions.
+      if (LHSVal == nullptr)
----------------
I wonder if this `GetOrCreateFresh` style operations will be common enough to 
have a helper for this purpose.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D119953

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

Reply via email to