Fix build now that Environment is not copyable
PiperOrigin-RevId: 543671562
diff --git a/nullability/inference/safety_constraint_generator_test.cc b/nullability/inference/safety_constraint_generator_test.cc
index ca0fe44..94db425 100644
--- a/nullability/inference/safety_constraint_generator_test.cc
+++ b/nullability/inference/safety_constraint_generator_test.cc
@@ -101,9 +101,8 @@
void Target() {}
)cc";
EXPECT_THAT(Src, ProducesSafetyConstraints(
- [](auto Environment, auto ParamPointerValues) {
- return IsEmpty();
- }));
+ [](const dataflow::Environment& Environment,
+ auto ParamPointerValues) { return IsEmpty(); }));
}
TEST(SafetyConstraintGenerator, GeneratesNoConstraintsForUnusedParam) {
@@ -111,20 +110,21 @@
void Target(int* p) {}
)cc";
EXPECT_THAT(Src, ProducesSafetyConstraints(
- [](auto Environment, auto ParamPointerValues) {
- return IsEmpty();
- }));
+ [](const dataflow::Environment& Environment,
+ auto ParamPointerValues) { return IsEmpty(); }));
}
TEST(SafetyConstraintGenerator, GeneratesNotIsNullConstraintForDeref) {
static constexpr llvm::StringRef Src = R"cc(
void Target(int* p) { *p; }
)cc";
- EXPECT_THAT(Src, ProducesSafetyConstraints([](auto Environment,
- auto ParamPointerValues) {
- return UnorderedElementsAre(&Environment.makeNot(
- getPointerNullState(*ParamPointerValues[0]).second));
- }));
+ EXPECT_THAT(
+ Src,
+ ProducesSafetyConstraints([](const dataflow::Environment& Environment,
+ auto ParamPointerValues) {
+ return UnorderedElementsAre(&Environment.makeNot(
+ getPointerNullState(*ParamPointerValues[0]).second));
+ }));
}
TEST(SafetyConstraintGenerator,
@@ -134,11 +134,13 @@
if (p == nullptr) *p;
}
)cc";
- EXPECT_THAT(Src, ProducesSafetyConstraints([](auto Environment,
- auto ParamPointerValues) {
- return UnorderedElementsAre(&Environment.makeNot(
- getPointerNullState(*ParamPointerValues[0]).second));
- }));
+ EXPECT_THAT(
+ Src,
+ ProducesSafetyConstraints([](const dataflow::Environment& Environment,
+ auto ParamPointerValues) {
+ return UnorderedElementsAre(&Environment.makeNot(
+ getPointerNullState(*ParamPointerValues[0]).second));
+ }));
}
TEST(SafetyConstraintGenerator, GeneratesConstraintsForAllParams) {
@@ -149,7 +151,8 @@
*r;
}
)cc";
- EXPECT_THAT(Src, ProducesSafetyConstraints([](auto Environment,
+ EXPECT_THAT(Src, ProducesSafetyConstraints([](const dataflow::Environment&
+ Environment,
auto ParamPointerValues) {
return UnorderedElementsAre(
&Environment.makeNot(
@@ -169,9 +172,8 @@
}
)cc";
EXPECT_THAT(Src, ProducesSafetyConstraints(
- [](auto Environment, auto ParamPointerValues) {
- return IsEmpty();
- }));
+ [](const dataflow::Environment& Environment,
+ auto ParamPointerValues) { return IsEmpty(); }));
}
TEST(SafetyConstraintGenerator,
@@ -184,11 +186,13 @@
p = getPtr();
}
)cc";
- EXPECT_THAT(Src, ProducesSafetyConstraints([](auto Environment,
- auto ParamPointerValues) {
- return UnorderedElementsAre(&Environment.makeNot(
- getPointerNullState(*ParamPointerValues[0]).second));
- }));
+ EXPECT_THAT(
+ Src,
+ ProducesSafetyConstraints([](const dataflow::Environment& Environment,
+ auto ParamPointerValues) {
+ return UnorderedElementsAre(&Environment.makeNot(
+ getPointerNullState(*ParamPointerValues[0]).second));
+ }));
}
TEST(SafetyConstraintGenerator,
@@ -203,7 +207,8 @@
)cc";
EXPECT_THAT(
Src,
- ProducesSafetyConstraints([](auto Environment, auto ParamPointerValues) {
+ ProducesSafetyConstraints([](const dataflow::Environment& Environment,
+ auto ParamPointerValues) {
return AllOf(SizeIs(1),
// TODO(b/268440048) Figure out how to access and assert
// equality for the constraint that this is.
diff --git a/nullability/pointer_nullability_analysis_test.cc b/nullability/pointer_nullability_analysis_test.cc
index 8c4d8aa..f3467a9 100644
--- a/nullability/pointer_nullability_analysis_test.cc
+++ b/nullability/pointer_nullability_analysis_test.cc
@@ -6,9 +6,9 @@
#include <memory>
#include <optional>
+#include <utility>
#include "nullability/pointer_nullability.h"
-#include "nullability/pointer_nullability_lattice.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclBase.h"
#include "clang/Analysis/CFG.h"
@@ -16,7 +16,6 @@
#include "clang/Analysis/FlowSensitive/DataflowAnalysis.h"
#include "clang/Analysis/FlowSensitive/DataflowAnalysisContext.h"
#include "clang/Analysis/FlowSensitive/DataflowEnvironment.h"
-#include "clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h"
#include "clang/Analysis/FlowSensitive/Value.h"
#include "clang/Analysis/FlowSensitive/WatchedLiteralsSolver.h"
#include "clang/Basic/LLVM.h"
@@ -64,10 +63,10 @@
auto CFCtx = dataflow::ControlFlowContext::build(*Target);
PointerNullabilityAnalysis Analysis(AST.context());
auto [PNonnull, PNullable] = Analysis.assignNullabilityVariable(P, A);
- auto ExitState =
+ auto ExitState = std::move(
*cantFail(dataflow::runDataflowAnalysis(
*CFCtx, Analysis, dataflow::Environment(DACtx, *Target)))
- .front();
+ .front());
// Get the nullability model of the return value.
auto *Ret =
dyn_cast_or_null<dataflow::PointerValue>(ExitState.Env.getReturnValue());