Skip to content

Commit

Permalink
[clang][dataflow] Fix -Wdeprecated-declarations after D147302 (NFC)
Browse files Browse the repository at this point in the history
Replace:
 1. createAtomicBoolValue() --> create<AtomicBoolValue>()
 2. createTopBoolValue()    --> create<TopBoolValue>()

/Users/jiefu/llvm-project/clang/include/clang/Analysis/FlowSensitive/DataflowEnvironment.h:386:19: error: 'createAtomicBoolValue' is deprecated: use create<AtomicBoolValue> instead [-Werror,-Wdeprecated-declarations]
    return DACtx->createAtomicBoolValue();
                  ^~~~~~~~~~~~~~~~~~~~~
                  create<AtomicBoolValue>
/Users/jiefu/llvm-project/clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h:215:3: note: 'createAtomicBoolValue' has been explicitly marked deprecated here
  LLVM_DEPRECATED("use create<AtomicBoolValue> instead",
  ^
/Users/jiefu/llvm-project/llvm/include/llvm/Support/Compiler.h:143:50: note: expanded from macro 'LLVM_DEPRECATED'
                                                 ^
In file included from /Users/jiefu/llvm-project/clang/lib/Analysis/FlowSensitive/Transfer.cpp:14:
In file included from /Users/jiefu/llvm-project/clang/include/clang/Analysis/FlowSensitive/Transfer.h:19:
/Users/jiefu/llvm-project/clang/include/clang/Analysis/FlowSensitive/DataflowEnvironment.h:391:19: error: 'createTopBoolValue' is deprecated: use create<TopBoolValue> instead [-Werror,-Wdeprecated-declarations]
    return DACtx->createTopBoolValue();
                  ^~~~~~~~~~~~~~~~~~
                  create<TopBoolValue>
/Users/jiefu/llvm-project/clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h:227:3: note: 'createTopBoolValue' has been explicitly marked deprecated here
  LLVM_DEPRECATED("use create<TopBoolValue> instead", "create<TopBoolValue>")
  ^
/Users/jiefu/llvm-project/llvm/include/llvm/Support/Compiler.h:143:50: note: expanded from macro 'LLVM_DEPRECATED'
                                                 ^
2 errors generated.
  • Loading branch information
DamonFool committed Apr 4, 2023
1 parent 78b1fbc commit c107231
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 58 deletions.
Expand Up @@ -383,12 +383,12 @@ class Environment {

/// Returns an atomic boolean value.
BoolValue &makeAtomicBoolValue() const {
return DACtx->createAtomicBoolValue();
return DACtx->create<AtomicBoolValue>();
}

/// Returns a unique instance of boolean Top.
BoolValue &makeTopBoolValue() const {
return DACtx->createTopBoolValue();
return DACtx->create<TopBoolValue>();
}

/// Returns a boolean value that represents the conjunction of `LHS` and
Expand Down
6 changes: 3 additions & 3 deletions clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp
Expand Up @@ -157,7 +157,7 @@ BoolValue &DataflowAnalysisContext::getOrCreateIff(BoolValue &LHS,
}

AtomicBoolValue &DataflowAnalysisContext::makeFlowConditionToken() {
return createAtomicBoolValue();
return create<AtomicBoolValue>();
}

void DataflowAnalysisContext::addFlowConditionConstraint(
Expand Down Expand Up @@ -378,8 +378,8 @@ DataflowAnalysisContext::getControlFlowContext(const FunctionDecl *F) {

DataflowAnalysisContext::DataflowAnalysisContext(std::unique_ptr<Solver> S,
Options Opts)
: S(std::move(S)), TrueVal(createAtomicBoolValue()),
FalseVal(createAtomicBoolValue()), Opts(Opts) {
: S(std::move(S)), TrueVal(create<AtomicBoolValue>()),
FalseVal(create<AtomicBoolValue>()), Opts(Opts) {
assert(this->S != nullptr);
// If the -dataflow-log command-line flag was set, synthesize a logger.
// This is ugly but provides a uniform method for ad-hoc debugging dataflow-
Expand Down
106 changes: 53 additions & 53 deletions clang/unittests/Analysis/FlowSensitive/DataflowAnalysisContextTest.cpp
Expand Up @@ -27,143 +27,143 @@ class DataflowAnalysisContextTest : public ::testing::Test {

TEST_F(DataflowAnalysisContextTest,
CreateAtomicBoolValueReturnsDistinctValues) {
auto &X = Context.createAtomicBoolValue();
auto &Y = Context.createAtomicBoolValue();
auto &X = Context.create<AtomicBoolValue>();
auto &Y = Context.create<AtomicBoolValue>();
EXPECT_NE(&X, &Y);
}

TEST_F(DataflowAnalysisContextTest,
CreateTopBoolValueReturnsDistinctValues) {
auto &X = Context.createTopBoolValue();
auto &Y = Context.createTopBoolValue();
auto &X = Context.create<TopBoolValue>();
auto &Y = Context.create<TopBoolValue>();
EXPECT_NE(&X, &Y);
}

TEST_F(DataflowAnalysisContextTest, DistinctTopsNotEquivalent) {
auto &X = Context.createTopBoolValue();
auto &Y = Context.createTopBoolValue();
auto &X = Context.create<TopBoolValue>();
auto &Y = Context.create<TopBoolValue>();
EXPECT_FALSE(Context.equivalentBoolValues(X, Y));
}

TEST_F(DataflowAnalysisContextTest,
GetOrCreateConjunctionReturnsSameExprGivenSameArgs) {
auto &X = Context.createAtomicBoolValue();
auto &X = Context.create<AtomicBoolValue>();
auto &XAndX = Context.getOrCreateConjunction(X, X);
EXPECT_EQ(&XAndX, &X);
}

TEST_F(DataflowAnalysisContextTest,
GetOrCreateConjunctionReturnsSameExprOnSubsequentCalls) {
auto &X = Context.createAtomicBoolValue();
auto &Y = Context.createAtomicBoolValue();
auto &X = Context.create<AtomicBoolValue>();
auto &Y = Context.create<AtomicBoolValue>();
auto &XAndY1 = Context.getOrCreateConjunction(X, Y);
auto &XAndY2 = Context.getOrCreateConjunction(X, Y);
EXPECT_EQ(&XAndY1, &XAndY2);

auto &YAndX = Context.getOrCreateConjunction(Y, X);
EXPECT_EQ(&XAndY1, &YAndX);

auto &Z = Context.createAtomicBoolValue();
auto &Z = Context.create<AtomicBoolValue>();
auto &XAndZ = Context.getOrCreateConjunction(X, Z);
EXPECT_NE(&XAndY1, &XAndZ);
}

TEST_F(DataflowAnalysisContextTest,
GetOrCreateDisjunctionReturnsSameExprGivenSameArgs) {
auto &X = Context.createAtomicBoolValue();
auto &X = Context.create<AtomicBoolValue>();
auto &XOrX = Context.getOrCreateDisjunction(X, X);
EXPECT_EQ(&XOrX, &X);
}

TEST_F(DataflowAnalysisContextTest,
GetOrCreateDisjunctionReturnsSameExprOnSubsequentCalls) {
auto &X = Context.createAtomicBoolValue();
auto &Y = Context.createAtomicBoolValue();
auto &X = Context.create<AtomicBoolValue>();
auto &Y = Context.create<AtomicBoolValue>();
auto &XOrY1 = Context.getOrCreateDisjunction(X, Y);
auto &XOrY2 = Context.getOrCreateDisjunction(X, Y);
EXPECT_EQ(&XOrY1, &XOrY2);

auto &YOrX = Context.getOrCreateDisjunction(Y, X);
EXPECT_EQ(&XOrY1, &YOrX);

auto &Z = Context.createAtomicBoolValue();
auto &Z = Context.create<AtomicBoolValue>();
auto &XOrZ = Context.getOrCreateDisjunction(X, Z);
EXPECT_NE(&XOrY1, &XOrZ);
}

TEST_F(DataflowAnalysisContextTest,
GetOrCreateNegationReturnsSameExprOnSubsequentCalls) {
auto &X = Context.createAtomicBoolValue();
auto &X = Context.create<AtomicBoolValue>();
auto &NotX1 = Context.getOrCreateNegation(X);
auto &NotX2 = Context.getOrCreateNegation(X);
EXPECT_EQ(&NotX1, &NotX2);

auto &Y = Context.createAtomicBoolValue();
auto &Y = Context.create<AtomicBoolValue>();
auto &NotY = Context.getOrCreateNegation(Y);
EXPECT_NE(&NotX1, &NotY);
}

TEST_F(DataflowAnalysisContextTest,
GetOrCreateImplicationReturnsTrueGivenSameArgs) {
auto &X = Context.createAtomicBoolValue();
auto &X = Context.create<AtomicBoolValue>();
auto &XImpliesX = Context.getOrCreateImplication(X, X);
EXPECT_EQ(&XImpliesX, &Context.getBoolLiteralValue(true));
}

TEST_F(DataflowAnalysisContextTest,
GetOrCreateImplicationReturnsSameExprOnSubsequentCalls) {
auto &X = Context.createAtomicBoolValue();
auto &Y = Context.createAtomicBoolValue();
auto &X = Context.create<AtomicBoolValue>();
auto &Y = Context.create<AtomicBoolValue>();
auto &XImpliesY1 = Context.getOrCreateImplication(X, Y);
auto &XImpliesY2 = Context.getOrCreateImplication(X, Y);
EXPECT_EQ(&XImpliesY1, &XImpliesY2);

auto &YImpliesX = Context.getOrCreateImplication(Y, X);
EXPECT_NE(&XImpliesY1, &YImpliesX);

auto &Z = Context.createAtomicBoolValue();
auto &Z = Context.create<AtomicBoolValue>();
auto &XImpliesZ = Context.getOrCreateImplication(X, Z);
EXPECT_NE(&XImpliesY1, &XImpliesZ);
}

TEST_F(DataflowAnalysisContextTest, GetOrCreateIffReturnsTrueGivenSameArgs) {
auto &X = Context.createAtomicBoolValue();
auto &X = Context.create<AtomicBoolValue>();
auto &XIffX = Context.getOrCreateIff(X, X);
EXPECT_EQ(&XIffX, &Context.getBoolLiteralValue(true));
}

TEST_F(DataflowAnalysisContextTest,
GetOrCreateIffReturnsSameExprOnSubsequentCalls) {
auto &X = Context.createAtomicBoolValue();
auto &Y = Context.createAtomicBoolValue();
auto &X = Context.create<AtomicBoolValue>();
auto &Y = Context.create<AtomicBoolValue>();
auto &XIffY1 = Context.getOrCreateIff(X, Y);
auto &XIffY2 = Context.getOrCreateIff(X, Y);
EXPECT_EQ(&XIffY1, &XIffY2);

auto &YIffX = Context.getOrCreateIff(Y, X);
EXPECT_EQ(&XIffY1, &YIffX);

auto &Z = Context.createAtomicBoolValue();
auto &Z = Context.create<AtomicBoolValue>();
auto &XIffZ = Context.getOrCreateIff(X, Z);
EXPECT_NE(&XIffY1, &XIffZ);
}

TEST_F(DataflowAnalysisContextTest, EmptyFlowCondition) {
auto &FC = Context.makeFlowConditionToken();
auto &C = Context.createAtomicBoolValue();
auto &C = Context.create<AtomicBoolValue>();
EXPECT_FALSE(Context.flowConditionImplies(FC, C));
}

TEST_F(DataflowAnalysisContextTest, AddFlowConditionConstraint) {
auto &FC = Context.makeFlowConditionToken();
auto &C = Context.createAtomicBoolValue();
auto &C = Context.create<AtomicBoolValue>();
Context.addFlowConditionConstraint(FC, C);
EXPECT_TRUE(Context.flowConditionImplies(FC, C));
}

TEST_F(DataflowAnalysisContextTest, ForkFlowCondition) {
auto &FC1 = Context.makeFlowConditionToken();
auto &C1 = Context.createAtomicBoolValue();
auto &C1 = Context.create<AtomicBoolValue>();
Context.addFlowConditionConstraint(FC1, C1);

// Forked flow condition inherits the constraints of its parent flow
Expand All @@ -173,16 +173,16 @@ TEST_F(DataflowAnalysisContextTest, ForkFlowCondition) {

// Adding a new constraint to the forked flow condition does not affect its
// parent flow condition.
auto &C2 = Context.createAtomicBoolValue();
auto &C2 = Context.create<AtomicBoolValue>();
Context.addFlowConditionConstraint(FC2, C2);
EXPECT_TRUE(Context.flowConditionImplies(FC2, C2));
EXPECT_FALSE(Context.flowConditionImplies(FC1, C2));
}

TEST_F(DataflowAnalysisContextTest, JoinFlowConditions) {
auto &C1 = Context.createAtomicBoolValue();
auto &C2 = Context.createAtomicBoolValue();
auto &C3 = Context.createAtomicBoolValue();
auto &C1 = Context.create<AtomicBoolValue>();
auto &C2 = Context.create<AtomicBoolValue>();
auto &C3 = Context.create<AtomicBoolValue>();

auto &FC1 = Context.makeFlowConditionToken();
Context.addFlowConditionConstraint(FC1, C1);
Expand Down Expand Up @@ -214,7 +214,7 @@ TEST_F(DataflowAnalysisContextTest, FlowConditionTautologies) {
EXPECT_FALSE(Context.flowConditionIsTautology(FC3));

// We can't prove that an arbitrary bool A is always true...
auto &C1 = Context.createAtomicBoolValue();
auto &C1 = Context.create<AtomicBoolValue>();
auto &FC4 = Context.makeFlowConditionToken();
Context.addFlowConditionConstraint(FC4, C1);
EXPECT_FALSE(Context.flowConditionIsTautology(FC4));
Expand All @@ -227,9 +227,9 @@ TEST_F(DataflowAnalysisContextTest, FlowConditionTautologies) {
}

TEST_F(DataflowAnalysisContextTest, EquivBoolVals) {
auto &X = Context.createAtomicBoolValue();
auto &Y = Context.createAtomicBoolValue();
auto &Z = Context.createAtomicBoolValue();
auto &X = Context.create<AtomicBoolValue>();
auto &Y = Context.create<AtomicBoolValue>();
auto &Z = Context.create<AtomicBoolValue>();
auto &True = Context.getBoolLiteralValue(true);
auto &False = Context.getBoolLiteralValue(false);

Expand Down Expand Up @@ -292,7 +292,7 @@ TEST_F(DataflowAnalysisContextTest, EquivBoolVals) {
#if !defined(NDEBUG) && GTEST_HAS_DEATH_TEST
TEST_F(DataflowAnalysisContextTest, SubstituteFlowConditionsTrueUnchanged) {
auto &True = Context.getBoolLiteralValue(true);
auto &Other = Context.createAtomicBoolValue();
auto &Other = Context.create<AtomicBoolValue>();

// FC = True
auto &FC = Context.makeFlowConditionToken();
Expand All @@ -305,7 +305,7 @@ TEST_F(DataflowAnalysisContextTest, SubstituteFlowConditionsTrueUnchanged) {

TEST_F(DataflowAnalysisContextTest, SubstituteFlowConditionsFalseUnchanged) {
auto &False = Context.getBoolLiteralValue(false);
auto &Other = Context.createAtomicBoolValue();
auto &Other = Context.create<AtomicBoolValue>();

// FC = False
auto &FC = Context.makeFlowConditionToken();
Expand All @@ -318,7 +318,7 @@ TEST_F(DataflowAnalysisContextTest, SubstituteFlowConditionsFalseUnchanged) {
#endif

TEST_F(DataflowAnalysisContextTest, SubstituteFlowConditionContainingAtomic) {
auto &X = Context.createAtomicBoolValue();
auto &X = Context.create<AtomicBoolValue>();
auto &True = Context.getBoolLiteralValue(true);
auto &False = Context.getBoolLiteralValue(false);

Expand All @@ -338,7 +338,7 @@ TEST_F(DataflowAnalysisContextTest, SubstituteFlowConditionContainingAtomic) {
}

TEST_F(DataflowAnalysisContextTest, SubstituteFlowConditionContainingNegation) {
auto &X = Context.createAtomicBoolValue();
auto &X = Context.create<AtomicBoolValue>();
auto &True = Context.getBoolLiteralValue(true);
auto &False = Context.getBoolLiteralValue(false);

Expand All @@ -358,8 +358,8 @@ TEST_F(DataflowAnalysisContextTest, SubstituteFlowConditionContainingNegation) {
}

TEST_F(DataflowAnalysisContextTest, SubstituteFlowConditionContainingDisjunction) {
auto &X = Context.createAtomicBoolValue();
auto &Y = Context.createAtomicBoolValue();
auto &X = Context.create<AtomicBoolValue>();
auto &Y = Context.create<AtomicBoolValue>();
auto &True = Context.getBoolLiteralValue(true);
auto &False = Context.getBoolLiteralValue(false);

Expand All @@ -379,8 +379,8 @@ TEST_F(DataflowAnalysisContextTest, SubstituteFlowConditionContainingDisjunction
}

TEST_F(DataflowAnalysisContextTest, SubstituteFlowConditionContainingConjunction) {
auto &X = Context.createAtomicBoolValue();
auto &Y = Context.createAtomicBoolValue();
auto &X = Context.create<AtomicBoolValue>();
auto &Y = Context.create<AtomicBoolValue>();
auto &True = Context.getBoolLiteralValue(true);
auto &False = Context.getBoolLiteralValue(false);

Expand All @@ -400,8 +400,8 @@ TEST_F(DataflowAnalysisContextTest, SubstituteFlowConditionContainingConjunction
}

TEST_F(DataflowAnalysisContextTest, SubstituteFlowConditionContainingImplication) {
auto &X = Context.createAtomicBoolValue();
auto &Y = Context.createAtomicBoolValue();
auto &X = Context.create<AtomicBoolValue>();
auto &Y = Context.create<AtomicBoolValue>();
auto &True = Context.getBoolLiteralValue(true);
auto &False = Context.getBoolLiteralValue(false);

Expand Down Expand Up @@ -432,8 +432,8 @@ TEST_F(DataflowAnalysisContextTest, SubstituteFlowConditionContainingImplication
}

TEST_F(DataflowAnalysisContextTest, SubstituteFlowConditionContainingBiconditional) {
auto &X = Context.createAtomicBoolValue();
auto &Y = Context.createAtomicBoolValue();
auto &X = Context.create<AtomicBoolValue>();
auto &Y = Context.create<AtomicBoolValue>();
auto &True = Context.getBoolLiteralValue(true);
auto &False = Context.getBoolLiteralValue(false);

Expand Down Expand Up @@ -465,9 +465,9 @@ TEST_F(DataflowAnalysisContextTest, SubstituteFlowConditionContainingBicondition
}

TEST_F(DataflowAnalysisContextTest, SubstituteFlowConditionsForkedFC) {
auto &X = Context.createAtomicBoolValue();
auto &Y = Context.createAtomicBoolValue();
auto &Z = Context.createAtomicBoolValue();
auto &X = Context.create<AtomicBoolValue>();
auto &Y = Context.create<AtomicBoolValue>();
auto &Z = Context.create<AtomicBoolValue>();
auto &True = Context.getBoolLiteralValue(true);
auto &False = Context.getBoolLiteralValue(false);

Expand Down Expand Up @@ -501,9 +501,9 @@ TEST_F(DataflowAnalysisContextTest, SubstituteFlowConditionsForkedFC) {
}

TEST_F(DataflowAnalysisContextTest, SubstituteFlowConditionsJoinedFC) {
auto &X = Context.createAtomicBoolValue();
auto &Y = Context.createAtomicBoolValue();
auto &Z = Context.createAtomicBoolValue();
auto &X = Context.create<AtomicBoolValue>();
auto &Y = Context.create<AtomicBoolValue>();
auto &Z = Context.create<AtomicBoolValue>();
auto &True = Context.getBoolLiteralValue(true);
auto &False = Context.getBoolLiteralValue(false);

Expand Down

0 comments on commit c107231

Please sign in to comment.