llvmbot wrote:

<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-clang-ssaf

Author: Aviral Goel (aviralg)

<details>
<summary>Changes</summary>

This reverts commit 5099f1641e49e5d5a084dcf2155dc8a72257c795 since it breaks 
buildbots.

---

Patch is 83.61 KiB, truncated to 20.00 KiB below, full version: 
https://github.com/llvm/llvm-project/pull/190909.diff


47 Files Affected:

- (modified) 
clang/include/clang/ScalableStaticAnalysisFramework/Core/Model/PrivateFieldNames.def
 (-2) 
- (modified) 
clang/include/clang/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat.h
 (-29) 
- (modified) 
clang/include/clang/ScalableStaticAnalysisFramework/Core/Serialization/SerializationFormat.h
 (-136) 
- (modified) 
clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/DerivedAnalysis.h
 (+2-2) 
- (modified) 
clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/WPASuite.h
 (-4) 
- (modified) clang/lib/ScalableStaticAnalysisFramework/CMakeLists.txt (-1) 
- (modified) clang/lib/ScalableStaticAnalysisFramework/Core/CMakeLists.txt (-1) 
- (modified) 
clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.cpp
 (-12) 
- (modified) 
clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.h
 (-8) 
- (removed) 
clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/WPASuite.cpp
 (-212) 
- (removed) clang/lib/ScalableStaticAnalysisFramework/Plugins/CMakeLists.txt 
(-12) 
- (removed) 
clang/lib/ScalableStaticAnalysisFramework/Plugins/ExamplePlugin/AnalysisResults.h
 (-39) 
- (removed) 
clang/lib/ScalableStaticAnalysisFramework/Plugins/ExamplePlugin/CMakeLists.txt 
(-18) 
- (removed) 
clang/lib/ScalableStaticAnalysisFramework/Plugins/ExamplePlugin/PairsAnalysis.cpp
 (-197) 
- (removed) 
clang/lib/ScalableStaticAnalysisFramework/Plugins/ExamplePlugin/TagsAnalysis.cpp
 (-160) 
- (removed) 
clang/lib/ScalableStaticAnalysisFramework/Plugins/ExamplePlugin/TagsPairsAnalysis.cpp
 (-136) 
- (removed) 
clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/duplicate-analysis-name.json
 (-17) 
- (removed) 
clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/missing-results.json 
(-3) 
- (removed) 
clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/pairs-result-bad-count.json
 (-57) 
- (removed) 
clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/pairs-result-bad-pair-counts.json
 (-17) 
- (removed) 
clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/pairs-result-entry-not-object.json
 (-33) 
- (removed) 
clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/pairs-result-missing-entity-id.json
 (-41) 
- (removed) 
clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/result-entry-analysis-name-not-string.json
 (-9) 
- (removed) 
clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/result-entry-deserializer-error.json
 (-26) 
- (removed) 
clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/result-entry-missing-analysis-name.json
 (-8) 
- (removed) 
clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/result-entry-missing-result-field.json
 (-16) 
- (removed) 
clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/result-entry-no-format-info.json
 (-9) 
- (removed) 
clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/result-entry-not-object.json
 (-6) 
- (removed) 
clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/result-entry-result-not-object.json
 (-26) 
- (removed) 
clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/results-not-array.json 
(-4) 
- (removed) 
clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/rt-all-results.json 
(-90) 
- (removed) 
clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/rt-empty.json (-4) 
- (removed) 
clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/rt-multiple-results.json
 (-40) 
- (removed) 
clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/tags-result-bad-element.json
 (-15) 
- (removed) 
clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/tags-result-missing-tags.json
 (-15) 
- (removed) 
clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/tagspairs-result-bad-field-type.json
 (-20) 
- (removed) 
clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/tagspairs-result-missing-field.json
 (-25) 
- (removed) clang/test/Analysis/Scalable/ssaf-format/WPASuite/with-plugin.test 
(-132) 
- (removed) 
clang/test/Analysis/Scalable/ssaf-format/WPASuite/without-plugin.test (-54) 
- (removed) clang/test/Analysis/Scalable/ssaf-format/lit.local.cfg (-4) 
- (modified) clang/test/CMakeLists.txt (-6) 
- (modified) clang/tools/clang-ssaf-format/CMakeLists.txt (-4) 
- (modified) clang/tools/clang-ssaf-format/SSAFFormat.cpp (+2-8) 
- (modified) 
clang/unittests/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendActionTest.cpp
 (-9) 
- (modified) 
clang/unittests/ScalableStaticAnalysisFramework/Registries/MockSerializationFormat.cpp
 (-10) 
- (modified) 
clang/unittests/ScalableStaticAnalysisFramework/Registries/MockSerializationFormat.h
 (-5) 
- (modified) clang/unittests/ScalableStaticAnalysisFramework/TestFixture.h (-3) 


``````````diff
diff --git 
a/clang/include/clang/ScalableStaticAnalysisFramework/Core/Model/PrivateFieldNames.def
 
b/clang/include/clang/ScalableStaticAnalysisFramework/Core/Model/PrivateFieldNames.def
index 1c75543062cbc..1ee2a809430f4 100644
--- 
a/clang/include/clang/ScalableStaticAnalysisFramework/Core/Model/PrivateFieldNames.def
+++ 
b/clang/include/clang/ScalableStaticAnalysisFramework/Core/Model/PrivateFieldNames.def
@@ -42,7 +42,5 @@ FIELD(TUSummaryEncoding, Data)
 FIELD(TUSummaryEncoding, IdTable)
 FIELD(TUSummaryEncoding, LinkageTable)
 FIELD(TUSummaryEncoding, TUNamespace)
-FIELD(WPASuite, Data)
-FIELD(WPASuite, IdTable)
 
 #undef FIELD
diff --git 
a/clang/include/clang/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat.h
 
b/clang/include/clang/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat.h
index 43ac353a31e75..47b46cbe42698 100644
--- 
a/clang/include/clang/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat.h
+++ 
b/clang/include/clang/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat.h
@@ -58,11 +58,6 @@ class JSONFormat final : public SerializationFormat {
   llvm::Error writeLUSummaryEncoding(const LUSummaryEncoding &SummaryEncoding,
                                      llvm::StringRef Path) override;
 
-  llvm::Expected<WPASuite> readWPASuite(llvm::StringRef Path) override;
-
-  llvm::Error writeWPASuite(const WPASuite &Suite,
-                            llvm::StringRef Path) override;
-
   void forEachRegisteredAnalysis(
       llvm::function_ref<void(llvm::StringRef Name, llvm::StringRef Desc)>
           Callback) const override;
@@ -79,16 +74,6 @@ class JSONFormat final : public SerializationFormat {
 
   using FormatInfo = FormatInfoEntry<SerializerFn, DeserializerFn>;
 
-  using AnalysisResultSerializerFn =
-      llvm::function_ref<Object(const AnalysisResult &, EntityIdToJSONFn)>;
-  using AnalysisResultDeserializerFn =
-      llvm::function_ref<llvm::Expected<std::unique_ptr<AnalysisResult>>(
-          const Object &, EntityIdFromJSONFn)>;
-
-  using AnalysisResultRegistry =
-      SerializationFormat::AnalysisResultRegistryGenerator<
-          JSONFormat, AnalysisResultSerializerFn, 
AnalysisResultDeserializerFn>;
-
 private:
   static std::map<SummaryName, FormatInfo> initFormatInfos();
   const std::map<SummaryName, FormatInfo> FormatInfos = initFormatInfos();
@@ -201,18 +186,6 @@ class JSONFormat final : public SerializationFormat {
       const std::map<SummaryName,
                      std::map<EntityId, 
std::unique_ptr<EntitySummaryEncoding>>>
           &EncodingSummaryDataMap) const;
-
-  llvm::Expected<std::pair<AnalysisName, std::unique_ptr<AnalysisResult>>>
-  analysisResultMapEntryFromJSON(const Object &Entry) const;
-  llvm::Expected<Object> analysisResultMapEntryToJSON(
-      const AnalysisName &Name,
-      const std::unique_ptr<AnalysisResult> &Result) const;
-
-  llvm::Expected<std::map<AnalysisName, std::unique_ptr<AnalysisResult>>>
-  analysisResultMapFromJSON(const Array &ResultsArray) const;
-  llvm::Expected<Array> analysisResultMapToJSON(
-      const std::map<AnalysisName, std::unique_ptr<AnalysisResult>> &Data)
-      const;
 };
 
 } // namespace clang::ssaf
@@ -220,8 +193,6 @@ class JSONFormat final : public SerializationFormat {
 namespace llvm {
 extern template class CLANG_TEMPLATE_ABI
     Registry<clang::ssaf::JSONFormat::FormatInfo>;
-extern template class CLANG_TEMPLATE_ABI
-    Registry<clang::ssaf::JSONFormat::AnalysisResultRegistry::Codec>;
 } // namespace llvm
 
 #endif // 
LLVM_CLANG_SCALABLESTATICANALYSISFRAMEWORK_CORE_SERIALIZATION_JSONFORMAT_H
diff --git 
a/clang/include/clang/ScalableStaticAnalysisFramework/Core/Serialization/SerializationFormat.h
 
b/clang/include/clang/ScalableStaticAnalysisFramework/Core/Serialization/SerializationFormat.h
index 7c98dd8bbe267..7aebf06a6368e 100644
--- 
a/clang/include/clang/ScalableStaticAnalysisFramework/Core/Serialization/SerializationFormat.h
+++ 
b/clang/include/clang/ScalableStaticAnalysisFramework/Core/Serialization/SerializationFormat.h
@@ -19,13 +19,10 @@
 #include 
"clang/ScalableStaticAnalysisFramework/Core/EntityLinker/TUSummaryEncoding.h"
 #include "clang/ScalableStaticAnalysisFramework/Core/Model/BuildNamespace.h"
 #include "clang/ScalableStaticAnalysisFramework/Core/Model/SummaryName.h"
-#include "clang/ScalableStaticAnalysisFramework/Core/Support/ErrorBuilder.h"
 #include "clang/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummary.h"
-#include 
"clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/WPASuite.h"
 #include "llvm/ADT/STLFunctionalExtras.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Support/Error.h"
-#include "llvm/Support/Registry.h"
 
 namespace clang::ssaf {
 
@@ -58,11 +55,6 @@ class SerializationFormat {
   writeLUSummaryEncoding(const LUSummaryEncoding &SummaryEncoding,
                          llvm::StringRef Path) = 0;
 
-  virtual llvm::Expected<WPASuite> readWPASuite(llvm::StringRef Path) = 0;
-
-  virtual llvm::Error writeWPASuite(const WPASuite &Suite,
-                                    llvm::StringRef Path) = 0;
-
   /// Invokes \p Callback once for each analysis that has registered
   /// serialization support for this format.
   virtual void forEachRegisteredAnalysis(
@@ -75,138 +67,10 @@ class SerializationFormat {
 
   static EntityId makeEntityId(const size_t Index) { return EntityId(Index); }
 
-  /// Constructs an empty WPASuite. Bypasses the private default constructor
-  /// so that deserialization code can build a WPASuite incrementally.
-  static WPASuite makeWPASuite() { return WPASuite(); }
-
 #define FIELD(CLASS, FIELD_NAME)                                               
\
   static const auto &get##FIELD_NAME(const CLASS &X) { return X.FIELD_NAME; }  
\
   static auto &get##FIELD_NAME(CLASS &X) { return X.FIELD_NAME; }
 #include 
"clang/ScalableStaticAnalysisFramework/Core/Model/PrivateFieldNames.def"
-
-  /// Per-format plugin registry for analysis result (de)serializers.
-  ///
-  /// Each concrete format (e.g. JSONFormat) instantiates this template once
-  /// via a public \c using alias. Analysis authors register support with:
-  ///
-  /// \code
-  ///   static MyFormat::AnalysisResultRegistry::Add<MyAnalysisResult>
-  ///       Reg(serializeFn, deserializeFn);
-  /// \endcode
-  ///
-  /// The serializer receives a \c const reference to \c MyAnalysisResult
-  /// directly and the \c Add wrapper handles the downcast from \c
-  /// AnalysisResult internally via virtual dispatch.
-  ///
-  /// \tparam FormatT Phantom type is needed to disambiguate \c llvm::Registry
-  ///   instantiations. \c llvm::Registry is keyed on the \c Entry type,
-  ///   so two formats sharing the same serializer/deserializer signatures
-  ///   would collide on the same registry without this parameter.
-  template <class FormatT, class SerializerFn, class DeserializerFn>
-  class AnalysisResultRegistryGenerator;
-
-  template <class FormatT, class SerRet, class... SerArgs, class DesRet,
-            class... DesArgs>
-  class AnalysisResultRegistryGenerator<
-      FormatT, llvm::function_ref<SerRet(const AnalysisResult &, SerArgs...)>,
-      llvm::function_ref<DesRet(DesArgs...)>> {
-
-    using DeserializerFn = llvm::function_ref<DesRet(DesArgs...)>;
-
-  public:
-    /// Abstract base type stored in \c llvm::Registry<Codec>.
-    /// Subclasses override \c serialize() and \c deserialize() to
-    /// dispatch to the plugin's concrete functions.
-    ///
-    /// There is one \c Codec type (and one \c llvm::Registry<Codec>) per
-    /// format. All analysis-specific \c ConcreteCodec<AnalysisResultT>
-    /// subclasses for a given format register into that single registry. The 
\c
-    /// FormatT phantom type parameter on the enclosing class ensures that
-    /// different formats produce distinct \c Codec types and thus separate
-    /// registries.
-    struct Codec {
-      virtual ~Codec() = default;
-      virtual SerRet serialize(const AnalysisResult &, SerArgs...) const = 0;
-      virtual DesRet deserialize(DesArgs...) const = 0;
-    };
-
-    /// Per-\c AnalysisResultT subclass of \c Codec. The \c serialize()
-    /// override performs the downcast from \c AnalysisResult to
-    /// \c AnalysisResultT.
-    template <class AnalysisResultT> struct ConcreteCodec final : Codec {
-      using TypedSerializerFn =
-          llvm::function_ref<SerRet(const AnalysisResultT &, SerArgs...)>;
-
-      /// The plugin's serializer and deserializer are stored as \c static
-      /// \c inline members because \c llvm::Registry instantiates entries
-      /// via a zero-argument constructor so there is no way to pass them
-      /// as constructor arguments. The \c Add constructor writes these
-      /// members before registration, and the virtual methods read them
-      /// on invocation. \c inline avoids the need for separate out-of-line
-      /// definitions that a bare \c static member in a class template
-      /// would require.
-      static inline TypedSerializerFn SavedSerialize;
-      static inline DeserializerFn SavedDeserialize;
-
-      SerRet serialize(const AnalysisResult &Base,
-                       SerArgs... args) const override {
-        return SavedSerialize(static_cast<const AnalysisResultT &>(Base),
-                              args...);
-      }
-
-      DesRet deserialize(DesArgs... args) const override {
-        return SavedDeserialize(args...);
-      }
-    };
-
-    template <class AnalysisResultT> struct Add {
-      /// Takes the plugin's typed serializer and the deserializer, and
-      /// inserts them into \c llvm::Registry<Codec>.
-      Add(typename ConcreteCodec<AnalysisResultT>::TypedSerializerFn
-              TypedSerialize,
-          DeserializerFn Deserialize) {
-        /// Per-\c AnalysisResultT guard: each template instantiation gets
-        /// its own \c static \c bool, so double-registration of the same
-        /// analysis is caught even across translation units.
-        static bool Registered = false;
-        if (Registered) {
-          ErrorBuilder::fatal("support is already registered for analysis: 
{0}",
-                              AnalysisResultT::analysisName());
-        }
-        Registered = true;
-
-        ConcreteCodec<AnalysisResultT>::SavedSerialize = TypedSerialize;
-        ConcreteCodec<AnalysisResultT>::SavedDeserialize = Deserialize;
-
-        /// \c llvm::Registry stores the name as a \c StringRef, so the
-        /// underlying string must be kept alive with a static declaration.
-        static std::string NameStr =
-            AnalysisResultT::analysisName().str().str();
-
-        /// This performs the actual registration. It appends a factory for \c
-        /// ConcreteCodec to the global \c llvm::Registry<Codec>. \c static
-        /// ensures the `Registry::Add` object lives for the entire program,
-        /// keeping its codec and node alive in the registry's linked list.
-        [[maybe_unused]] static typename llvm::Registry<Codec>::template Add<
-            ConcreteCodec<AnalysisResultT>> 
RegisterUsingCtorSideEffect(NameStr,
-                                                                        "");
-      }
-    };
-
-    /// Looks up the codec for \p Name by walking the registry list.
-    static llvm::Expected<std::unique_ptr<Codec>>
-    instantiate(const AnalysisName &Name) {
-      for (const auto &E : llvm::Registry<Codec>::entries()) {
-        if (E.getName() == Name.str()) {
-          return E.instantiate();
-        }
-      }
-      return ErrorBuilder::create(std::errc::invalid_argument,
-                                  "no support registered for analysis: {0}",
-                                  Name)
-          .build();
-    }
-  };
 };
 
 template <class SerializerFn, class DeserializerFn> struct FormatInfoEntry {
diff --git 
a/clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/DerivedAnalysis.h
 
b/clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/DerivedAnalysis.h
index 0e1eb8e9b8b87..4eb35262d4625 100644
--- 
a/clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/DerivedAnalysis.h
+++ 
b/clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/DerivedAnalysis.h
@@ -99,10 +99,10 @@ class DerivedAnalysis : public DerivedAnalysisBase {
 
   /// Performs one step. Returns true if another step is needed; false when
   /// converged. Single-step analyses always return false.
-  virtual llvm::Expected<bool> step() override = 0;
+  virtual llvm::Expected<bool> step() = 0;
 
   /// Called after the step() loop converges. Override for post-processing.
-  virtual llvm::Error finalize() override { return llvm::Error::success(); }
+  virtual llvm::Error finalize() { return llvm::Error::success(); }
 
 protected:
   /// Read-only access to the result being built.
diff --git 
a/clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/WPASuite.h
 
b/clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/WPASuite.h
index 52c6f9e46297d..5a0105fc1f4d9 100644
--- 
a/clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/WPASuite.h
+++ 
b/clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/WPASuite.h
@@ -26,8 +26,6 @@
 namespace clang::ssaf {
 
 class AnalysisDriver;
-class SerializationFormat;
-class TestFixture;
 
 /// Bundles the EntityIdTable (moved from the LUSummary) and the analysis
 /// results produced by one AnalysisDriver::run() call, keyed by AnalysisName.
@@ -36,8 +34,6 @@ class TestFixture;
 /// are self-contained in one object.
 class WPASuite {
   friend class AnalysisDriver;
-  friend class SerializationFormat;
-  friend class TestFixture;
 
   EntityIdTable IdTable;
   std::map<AnalysisName, std::unique_ptr<AnalysisResult>> Data;
diff --git a/clang/lib/ScalableStaticAnalysisFramework/CMakeLists.txt 
b/clang/lib/ScalableStaticAnalysisFramework/CMakeLists.txt
index e09c44b7cfd52..3da5c8899ddb6 100644
--- a/clang/lib/ScalableStaticAnalysisFramework/CMakeLists.txt
+++ b/clang/lib/ScalableStaticAnalysisFramework/CMakeLists.txt
@@ -1,5 +1,4 @@
 add_subdirectory(Analyses)
 add_subdirectory(Core)
 add_subdirectory(Frontend)
-add_subdirectory(Plugins)
 add_subdirectory(Tool)
diff --git a/clang/lib/ScalableStaticAnalysisFramework/Core/CMakeLists.txt 
b/clang/lib/ScalableStaticAnalysisFramework/Core/CMakeLists.txt
index 83772ceff58bf..8c306163df1a7 100644
--- a/clang/lib/ScalableStaticAnalysisFramework/Core/CMakeLists.txt
+++ b/clang/lib/ScalableStaticAnalysisFramework/Core/CMakeLists.txt
@@ -17,7 +17,6 @@ add_clang_library(clangScalableStaticAnalysisFrameworkCore
   Serialization/JSONFormat/LUSummaryEncoding.cpp
   Serialization/JSONFormat/TUSummary.cpp
   Serialization/JSONFormat/TUSummaryEncoding.cpp
-  Serialization/JSONFormat/WPASuite.cpp
   Serialization/SerializationFormatRegistry.cpp
   SummaryData/LUSummaryConsumer.cpp
   SummaryData/SummaryDataBuilderRegistry.cpp
diff --git 
a/clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.cpp
 
b/clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.cpp
index f1dcd752f864f..4072532d4972c 100644
--- 
a/clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.cpp
+++ 
b/clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.cpp
@@ -14,8 +14,6 @@
 // NOLINTNEXTLINE(misc-use-internal-linkage)
 volatile int SSAFJSONFormatAnchorSource = 0;
 LLVM_INSTANTIATE_REGISTRY(llvm::Registry<clang::ssaf::JSONFormat::FormatInfo>)
-LLVM_INSTANTIATE_REGISTRY(
-    llvm::Registry<clang::ssaf::JSONFormat::AnalysisResultRegistry::Codec>)
 
 static clang::ssaf::SerializationFormatRegistry::Add<clang::ssaf::JSONFormat>
     RegisterJSONFormat("json", "JSON serialization format");
@@ -143,16 +141,6 @@ SummaryName summaryNameFromJSON(llvm::StringRef 
SummaryNameStr) {
 
 llvm::StringRef summaryNameToJSON(const SummaryName &SN) { return SN.str(); }
 
-//----------------------------------------------------------------------------
-// AnalysisName
-//----------------------------------------------------------------------------
-
-AnalysisName analysisNameFromJSON(llvm::StringRef AnalysisNameStr) {
-  return AnalysisName(AnalysisNameStr.str());
-}
-
-llvm::StringRef analysisNameToJSON(const AnalysisName &AN) { return AN.str(); }
-
 //----------------------------------------------------------------------------
 // EntityId
 //----------------------------------------------------------------------------
diff --git 
a/clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.h
 
b/clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.h
index 31a605efe90a5..2ff1f2ae16192 100644
--- 
a/clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.h
+++ 
b/clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.h
@@ -21,7 +21,6 @@
 #include 
"clang/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat.h"
 #include "clang/ScalableStaticAnalysisFramework/Core/Support/ErrorBuilder.h"
 #include "clang/ScalableStaticAnalysisFramework/Core/Support/FormatProviders.h"
-#include 
"clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisName.h"
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/ADT/StringExtras.h"
 #include "llvm/Support/ErrorHandling.h"
@@ -140,13 +139,6 @@ llvm::Error writeJSON(Value &&V, llvm::StringRef Path);
 SummaryName summaryNameFromJSON(llvm::StringRef SummaryNameStr);
 llvm::StringRef summaryNameToJSON(const SummaryName &SN);
 
-//----------------------------------------------------------------------------
-// AnalysisName helpers
-//----------------------------------------------------------------------------
-
-AnalysisName analysisNameFromJSON(llvm::StringRef AnalysisNameStr);
-llvm::StringRef analysisNameToJSON(const AnalysisName &AN);
-
 //----------------------------------------------------------------------------
 // BuildNamespaceKind helpers
 //----------------------------------------------------------------------------
diff --git 
a/clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/WPASuite.cpp
 
b/clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/WPASuite.cpp
deleted file mode 100644
index 51a2add5a4eee..0000000000000
--- 
a/clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/WPASuite.cpp
+++ /dev/null
@@ -1,212 +0,0 @@
-//===- WPASuite.cpp 
-------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM 
Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include "JSONFormatImpl.h"
-
-#include 
"clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/WPASuite.h"
-
-namespace clang::ssaf {
-
-//----------------------------------------------------------------------------
-// AnalysisResultMapEntry
-//----------------------------------------------------------------------------
-
-llvm::Expected<std::pair<AnalysisName, std::unique_ptr<AnalysisResult>>>
-JSONFormat::analysisResultMapEntryFromJSON(const Object &Entry) const {
-  auto OptName = Entry.getString("analysis_name");
-  if (!OptName) {
-    return ErrorBuilder::create(std::errc::invalid_argument,
-                                ErrorMessages::FailedToReadObjectAtField,
-                                "AnalysisName", "analysis_name", "string")
-        .build();
-  }
-
-  AnalysisName Name = analysisNameFromJSON(*OptName);
-
-  auto ExpectedCodec = AnalysisResultRegistry::instantiate(Name);
-  if (!ExpectedCodec) {
-    return ExpectedCodec.takeError();
-  }
-
-  const Object *ResultObj = Entry.getObject("result");
-  if (!ResultObj) {
-    return ErrorBuilder::create(std::errc::invalid_argument,
-                                ErrorMessages::FailedToReadObjectAtField,
-                                "AnalysisResult", "result", "object")
-        .build();
-  }
-
-  auto ExpectedResult =
-      (*ExpectedCodec)->deserialize(*ResultObj, &entityIdFromJSONObject);
-  if (!ExpectedResult) {
-    return ExpectedResult.takeError();
-  }
-
-  return std::make_pair(std::mo...
[truncated]

``````````

</details>


https://github.com/llvm/llvm-project/pull/190909
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to