[clang] [dataflow] Add global condition to DataflowAnalysisContext (PR #65949)

Sam McCall via cfe-commits cfe-commits at lists.llvm.org
Wed Sep 13 02:46:45 PDT 2023


================
@@ -108,6 +108,16 @@ class DataflowAnalysisContext {
   /// A null `PointeeType` can be used for the pointee of `std::nullptr_t`.
   PointerValue &getOrCreateNullPointerValue(QualType PointeeType);
 
+  /// Adds `Constraint` to current and future flow conditions in this context.
+  ///
+  /// The global condition must contain only flow-insensitive information, i.e.
----------------
sam-mccall wrote:

This is a much more accurate descriptor, but IME "flow insensitive" is not good as an actual name. We used "non-flow-sensitive" extensively in nullability and gradually phasing it out in favor of the "type" metaphor, as after many months reading it still requires "deciphering". Mostly it's too long, it's a negative definition, and too technical I think.
The parallel between `addFlowConditionConstraint` and `addFlowInsensitiveInvariant` is also IMO not clear enough. (I'd be in favor of dropping "Constraint" from both, but that's a different change)

I've tried `Common` instead of `Global` which might more clearly emphasize the sharing that happens here - WDYT?
If you feel strongly about `FlowInsensitive` I can use that, it might be more consistent with the framework's style.

https://github.com/llvm/llvm-project/pull/65949


More information about the cfe-commits mailing list