mboehme created this revision.
Herald added subscribers: martong, xazax.hun.
Herald added a project: All.
mboehme requested review of this revision.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.

Now that the redundancy between these two classes has been eliminated, these
checks aren't needed any more.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D156229

Files:
  clang/unittests/Analysis/FlowSensitive/TransferTest.cpp

Index: clang/unittests/Analysis/FlowSensitive/TransferTest.cpp
===================================================================
--- clang/unittests/Analysis/FlowSensitive/TransferTest.cpp
+++ clang/unittests/Analysis/FlowSensitive/TransferTest.cpp
@@ -27,11 +27,6 @@
 #include <string>
 #include <utility>
 
-// FIXME: There are still remaining checks here that check for consistency
-// between `StructValue` and `AggregateStorageLocation`. Now that the redundancy
-// between these two classes has been eliminated, these checks aren't needed any
-// more, so remove them.
-
 namespace {
 
 using namespace clang;
@@ -268,13 +263,7 @@
 
         const auto *FooLoc =
             cast<AggregateStorageLocation>(Env.getStorageLocation(*FooDecl));
-        const auto *BarLoc =
-            cast<ScalarStorageLocation>(FooLoc->getChild(*BarDecl));
-
-        const auto *FooVal = cast<StructValue>(Env.getValue(*FooLoc));
-        const auto *BarVal =
-            cast<IntegerValue>(getFieldValue(FooVal, *BarDecl, Env));
-        EXPECT_EQ(Env.getValue(*BarLoc), BarVal);
+        EXPECT_TRUE(isa<IntegerValue>(getFieldValue(FooLoc, *BarDecl, Env)));
       });
 }
 
@@ -317,13 +306,7 @@
 
         const auto *FooLoc =
             cast<AggregateStorageLocation>(Env.getStorageLocation(*FooDecl));
-        const auto *BarLoc =
-            cast<ScalarStorageLocation>(FooLoc->getChild(*BarDecl));
-
-        const auto *FooVal = cast<StructValue>(Env.getValue(*FooLoc));
-        const auto *BarVal =
-            cast<IntegerValue>(getFieldValue(FooVal, *BarDecl, Env));
-        EXPECT_EQ(Env.getValue(*BarLoc), BarVal);
+        EXPECT_TRUE(isa<IntegerValue>(getFieldValue(FooLoc, *BarDecl, Env)));
       });
 }
 
@@ -365,13 +348,7 @@
 
         const auto *FooLoc =
             cast<AggregateStorageLocation>(Env.getStorageLocation(*FooDecl));
-        const auto *BarLoc =
-            cast<ScalarStorageLocation>(FooLoc->getChild(*BarDecl));
-
-        const auto *FooVal = cast<StructValue>(Env.getValue(*FooLoc));
-        const auto *BarVal =
-            cast<IntegerValue>(getFieldValue(FooVal, *BarDecl, Env));
-        EXPECT_EQ(Env.getValue(*BarLoc), BarVal);
+        EXPECT_TRUE(isa<IntegerValue>(getFieldValue(FooLoc, *BarDecl, Env)));
       });
 }
 
@@ -1046,13 +1023,7 @@
 
         const auto *FooLoc =
             cast<AggregateStorageLocation>(Env.getStorageLocation(*FooDecl));
-        const auto *BarLoc =
-            cast<ScalarStorageLocation>(FooLoc->getChild(*BarDecl));
-
-        const auto *FooVal = cast<StructValue>(Env.getValue(*FooLoc));
-        const auto *BarVal =
-            cast<IntegerValue>(getFieldValue(FooVal, *BarDecl, Env));
-        EXPECT_EQ(Env.getValue(*BarLoc), BarVal);
+        EXPECT_TRUE(isa<IntegerValue>(getFieldValue(FooLoc, *BarDecl, Env)));
       });
 }
 
@@ -1150,9 +1121,8 @@
 
         const auto *FooLoc =
             cast<AggregateStorageLocation>(Env.getStorageLocation(*FooDecl));
-        const auto *FooVal = cast<StructValue>(Env.getValue(*FooLoc));
         const auto *BarVal =
-            cast<IntegerValue>(getFieldValue(FooVal, *BarDecl, Env));
+            cast<IntegerValue>(getFieldValue(FooLoc, *BarDecl, Env));
 
         const ValueDecl *BazDecl = findValueDecl(ASTCtx, "Baz");
         ASSERT_THAT(BazDecl, NotNull());
@@ -1392,9 +1362,8 @@
 
         const auto *FooLoc =
             cast<AggregateStorageLocation>(Env.getStorageLocation(*FooDecl));
-        const auto *FooVal = cast<StructValue>(Env.getValue(*FooLoc));
         const auto *BarVal =
-            cast<IntegerValue>(getFieldValue(FooVal, *BarDecl, Env));
+            cast<IntegerValue>(getFieldValue(FooLoc, *BarDecl, Env));
 
         const ValueDecl *BazDecl = findValueDecl(ASTCtx, "Baz");
         ASSERT_THAT(BazDecl, NotNull());
@@ -1553,14 +1522,10 @@
 
         const auto *QuxLoc =
             cast<AggregateStorageLocation>(ThisLoc->getChild(*QuxDecl));
-        const auto *QuxVal = dyn_cast<StructValue>(Env.getValue(*QuxLoc));
-        ASSERT_THAT(QuxVal, NotNull());
+        EXPECT_THAT(dyn_cast<StructValue>(Env.getValue(*QuxLoc)), NotNull());
 
-        const auto *BazLoc =
-            cast<ScalarStorageLocation>(QuxLoc->getChild(*BazDecl));
         const auto *BazVal =
-            cast<IntegerValue>(getFieldValue(QuxVal, *BazDecl, Env));
-        EXPECT_EQ(Env.getValue(*BazLoc), BazVal);
+            cast<IntegerValue>(getFieldValue(QuxLoc, *BazDecl, Env));
 
         const ValueDecl *QuuxDecl = findValueDecl(ASTCtx, "Quux");
         ASSERT_THAT(QuuxDecl, NotNull());
@@ -1628,14 +1593,10 @@
 
         const auto *QuxLoc =
             cast<AggregateStorageLocation>(ThisLoc->getChild(*QuxDecl));
-        const auto *QuxVal = dyn_cast<StructValue>(Env.getValue(*QuxLoc));
-        ASSERT_THAT(QuxVal, NotNull());
+        EXPECT_THAT(dyn_cast<StructValue>(Env.getValue(*QuxLoc)), NotNull());
 
-        const auto *BazLoc =
-            cast<ScalarStorageLocation>(QuxLoc->getChild(*BazDecl));
         const auto *BazVal =
-            cast<IntegerValue>(getFieldValue(QuxVal, *BazDecl, Env));
-        EXPECT_EQ(Env.getValue(*BazLoc), BazVal);
+            cast<IntegerValue>(getFieldValue(QuxLoc, *BazDecl, Env));
 
         const ValueDecl *QuuxDecl = findValueDecl(ASTCtx, "Quux");
         ASSERT_THAT(QuuxDecl, NotNull());
@@ -1915,13 +1876,7 @@
 
         const auto *FooLoc =
             cast<AggregateStorageLocation>(Env.getStorageLocation(*FooDecl));
-        const auto *BarLoc =
-            cast<ScalarStorageLocation>(FooLoc->getChild(*BarDecl));
-
-        const auto *FooVal = cast<StructValue>(Env.getValue(*FooLoc));
-        const auto *BarVal =
-            cast<IntegerValue>(getFieldValue(FooVal, *BarDecl, Env));
-        EXPECT_EQ(Env.getValue(*BarLoc), BarVal);
+        EXPECT_TRUE(isa<IntegerValue>(getFieldValue(FooLoc, *BarDecl, Env)));
       });
 }
 
@@ -1954,13 +1909,7 @@
 
         const auto *FooLoc =
             cast<AggregateStorageLocation>(Env.getStorageLocation(*FooDecl));
-        const auto *BarLoc =
-            cast<ScalarStorageLocation>(FooLoc->getChild(*BarDecl));
-
-        const auto *FooVal = cast<StructValue>(Env.getValue(*FooLoc));
-        const auto *BarVal =
-            cast<IntegerValue>(getFieldValue(FooVal, *BarDecl, Env));
-        EXPECT_EQ(Env.getValue(*BarLoc), BarVal);
+        EXPECT_TRUE(isa<IntegerValue>(getFieldValue(FooLoc, *BarDecl, Env)));
       },
       LangStandard::lang_cxx14);
 }
@@ -2973,20 +2922,15 @@
         ASSERT_THAT(BazLoc, NotNull());
         ASSERT_THAT(Env.getValue(*BazLoc), NotNull());
 
-        const auto *BazVal = cast<StructValue>(Env.getValue(*BazLoc));
-        const auto *FooValFromBazVal =
-            cast<IntegerValue>(getFieldValue(BazVal, *FooDecl, Env));
-        const auto *FooValFromBazLoc =
+        const auto *FooVal =
             cast<IntegerValue>(getFieldValue(BazLoc, *FooDecl, Env));
-        EXPECT_EQ(FooValFromBazLoc, FooValFromBazVal);
 
         const ValueDecl *BarDecl = findValueDecl(ASTCtx, "Bar");
         ASSERT_THAT(BarDecl, NotNull());
         const auto *BarLoc = Env.getStorageLocation(*BarDecl);
         ASSERT_TRUE(isa_and_nonnull<ScalarStorageLocation>(BarLoc));
 
-        EXPECT_EQ(Env.getValue(*BarLoc), FooValFromBazVal);
-        EXPECT_EQ(Env.getValue(*BarLoc), FooValFromBazLoc);
+        EXPECT_EQ(Env.getValue(*BarLoc), FooVal);
       });
 }
 
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
  • [PATCH] D156229: [clang][dat... Martin Böhme via Phabricator via cfe-commits

Reply via email to