-
Notifications
You must be signed in to change notification settings - Fork 10.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[clang][dataflow] Remove deprecated ValueModel::merge()
function.
#82602
[clang][dataflow] Remove deprecated ValueModel::merge()
function.
#82602
Conversation
I'm not aware of any remaining overrides of this function. While I'm here, change an outdated comment in DataflowAnalysis.h that still referred to `merge()`. I've made the comment more general, referring simply to `ValueModel`, as we shouldn't really be repeating the documentation of that class here anyway.
@llvm/pr-subscribers-clang @llvm/pr-subscribers-clang-analysis Author: None (martinboehme) ChangesI'm not aware of any remaining overrides of this function. While I'm here, change an outdated comment in DataflowAnalysis.h that still Full diff: https://github.com/llvm/llvm-project/pull/82602.diff 2 Files Affected:
diff --git a/clang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h b/clang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h
index b95095d2184c0e..3c84704d0d6ceb 100644
--- a/clang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h
+++ b/clang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h
@@ -54,10 +54,9 @@ namespace dataflow {
/// Environment &Env)` - applies the analysis transfer
/// function for a given edge from a CFG block of a conditional statement.
///
-/// `Derived` can optionally override the following members:
-/// * `bool merge(QualType, const Value &, const Value &, Value &,
-/// Environment &)` - joins distinct values. This could be a strict
-/// lattice join or a more general widening operation.
+/// `Derived` can optionally override the virtual functions in the
+/// `Environment::ValueModel` interface (which is an indirect base class of
+/// this class).
///
/// `LatticeT` is a bounded join-semilattice that is used by `Derived` and must
/// provide the following public members:
diff --git a/clang/include/clang/Analysis/FlowSensitive/DataflowEnvironment.h b/clang/include/clang/Analysis/FlowSensitive/DataflowEnvironment.h
index b3dc940705f870..62e7af7ac219bc 100644
--- a/clang/include/clang/Analysis/FlowSensitive/DataflowEnvironment.h
+++ b/clang/include/clang/Analysis/FlowSensitive/DataflowEnvironment.h
@@ -79,32 +79,6 @@ class Environment {
return ComparisonResult::Unknown;
}
- /// DEPRECATED. Override `join` and/or `widen`, instead.
- ///
- /// Modifies `MergedVal` to approximate both `Val1` and `Val2`. This could
- /// be a strict lattice join or a more general widening operation.
- ///
- /// If this function returns true, `MergedVal` will be assigned to a storage
- /// location of type `Type` in `MergedEnv`.
- ///
- /// `Env1` and `Env2` can be used to query child values and path condition
- /// implications of `Val1` and `Val2` respectively.
- ///
- /// Requirements:
- ///
- /// `Val1` and `Val2` must be distinct.
- ///
- /// `Val1`, `Val2`, and `MergedVal` must model values of type `Type`.
- ///
- /// `Val1` and `Val2` must be assigned to the same storage location in
- /// `Env1` and `Env2` respectively.
- virtual bool merge(QualType Type, const Value &Val1,
- const Environment &Env1, const Value &Val2,
- const Environment &Env2, Value &MergedVal,
- Environment &MergedEnv) {
- return true;
- }
-
/// Modifies `JoinedVal` to approximate both `Val1` and `Val2`. This should
/// obey the properties of a lattice join.
///
@@ -121,11 +95,7 @@ class Environment {
/// `Env1` and `Env2` respectively.
virtual void join(QualType Type, const Value &Val1, const Environment &Env1,
const Value &Val2, const Environment &Env2,
- Value &JoinedVal, Environment &JoinedEnv) {
- [[maybe_unused]] bool ShouldKeep =
- merge(Type, Val1, Env1, Val2, Env2, JoinedVal, JoinedEnv);
- assert(ShouldKeep && "dropping merged value is unsupported");
- }
+ Value &JoinedVal, Environment &JoinedEnv) {}
/// This function may widen the current value -- replace it with an
/// approximation that can reach a fixed point more quickly than iterated
|
Failing CI is for trailing whitespace in a file not touched by this PR. |
I'm not aware of any remaining overrides of this function.
While I'm here, change an outdated comment in DataflowAnalysis.h that still
referred to
merge()
. I've made the comment more general, referring simply toValueModel
, as we shouldn't really be repeating the documentation of thatclass here anyway.