llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang-ssaf Author: Balázs Benics (steakhal) <details> <summary>Changes</summary> We discussed internally, and for now we will focus on an MVP and try to not complicate APIs unless that is strictly necessary. --- Full diff: https://github.com/llvm/llvm-project/pull/181198.diff 8 Files Affected: - (modified) clang/include/clang/Analysis/Scalable/Serialization/SerializationFormat.h (+1-5) - (modified) clang/include/clang/Analysis/Scalable/TUSummary/EntitySummary.h (+1-4) - (modified) clang/lib/Analysis/Scalable/CMakeLists.txt (-2) - (removed) clang/lib/Analysis/Scalable/Serialization/SerializationFormat.cpp (-13) - (removed) clang/lib/Analysis/Scalable/TUSummary/EntitySummary.cpp (-11) - (modified) clang/unittests/Analysis/Scalable/Registries/FancyAnalysisData.cpp (+2-5) - (modified) clang/unittests/Analysis/Scalable/Registries/MockSerializationFormat.cpp (+1-4) - (modified) clang/unittests/Analysis/Scalable/Registries/MockSerializationFormat.h (+1-3) ``````````diff diff --git a/clang/include/clang/Analysis/Scalable/Serialization/SerializationFormat.h b/clang/include/clang/Analysis/Scalable/Serialization/SerializationFormat.h index ee220b6be18a6..78e4df0eb88fe 100644 --- a/clang/include/clang/Analysis/Scalable/Serialization/SerializationFormat.h +++ b/clang/include/clang/Analysis/Scalable/Serialization/SerializationFormat.h @@ -18,7 +18,6 @@ #include "clang/Analysis/Scalable/Model/SummaryName.h" #include "clang/Analysis/Scalable/TUSummary/TUSummary.h" #include "llvm/ADT/StringRef.h" -#include "llvm/Support/ExtensibleRTTI.h" namespace clang::ssaf { @@ -28,8 +27,7 @@ class EntityName; class EntitySummary; /// Abstract base class for serialization formats. -class SerializationFormat - : public llvm::RTTIExtends<SerializationFormat, llvm::RTTIRoot> { +class SerializationFormat { public: virtual ~SerializationFormat() = default; @@ -38,8 +36,6 @@ class SerializationFormat virtual void writeTUSummary(const TUSummary &Summary, llvm::StringRef OutputDir) = 0; - static char ID; // For RTTIExtends. - protected: // Helpers providing access to implementation details of basic data structures // for efficient serialization/deserialization. diff --git a/clang/include/clang/Analysis/Scalable/TUSummary/EntitySummary.h b/clang/include/clang/Analysis/Scalable/TUSummary/EntitySummary.h index b5b2fe128d0c4..4bdb385d49a01 100644 --- a/clang/include/clang/Analysis/Scalable/TUSummary/EntitySummary.h +++ b/clang/include/clang/Analysis/Scalable/TUSummary/EntitySummary.h @@ -10,17 +10,14 @@ #define LLVM_CLANG_ANALYSIS_SCALABLE_TUSUMMARY_ENTITYSUMMARY_H #include "clang/Analysis/Scalable/Model/SummaryName.h" -#include "llvm/Support/ExtensibleRTTI.h" namespace clang::ssaf { /// Base class for analysis-specific summary data. -class EntitySummary : public llvm::RTTIExtends<EntitySummary, llvm::RTTIRoot> { +class EntitySummary { public: virtual ~EntitySummary() = default; virtual SummaryName getSummaryName() const = 0; - - static char ID; // For RTTIExtends. }; } // namespace clang::ssaf diff --git a/clang/lib/Analysis/Scalable/CMakeLists.txt b/clang/lib/Analysis/Scalable/CMakeLists.txt index 47fe87074d728..4145e7a521ba4 100644 --- a/clang/lib/Analysis/Scalable/CMakeLists.txt +++ b/clang/lib/Analysis/Scalable/CMakeLists.txt @@ -7,9 +7,7 @@ add_clang_library(clangAnalysisScalable Model/BuildNamespace.cpp Model/EntityIdTable.cpp Model/EntityName.cpp - Serialization/SerializationFormat.cpp Serialization/SerializationFormatRegistry.cpp - TUSummary/EntitySummary.cpp TUSummary/ExtractorRegistry.cpp LINK_LIBS diff --git a/clang/lib/Analysis/Scalable/Serialization/SerializationFormat.cpp b/clang/lib/Analysis/Scalable/Serialization/SerializationFormat.cpp deleted file mode 100644 index 07ed1157f87f0..0000000000000 --- a/clang/lib/Analysis/Scalable/Serialization/SerializationFormat.cpp +++ /dev/null @@ -1,13 +0,0 @@ -//===- SerializationFormat.cpp ----------------------------------*- C++ -*-===// -// -// 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 "clang/Analysis/Scalable/Serialization/SerializationFormat.h" - -using namespace clang::ssaf; - -char SerializationFormat::ID = 0; diff --git a/clang/lib/Analysis/Scalable/TUSummary/EntitySummary.cpp b/clang/lib/Analysis/Scalable/TUSummary/EntitySummary.cpp deleted file mode 100644 index 96ef3372b7762..0000000000000 --- a/clang/lib/Analysis/Scalable/TUSummary/EntitySummary.cpp +++ /dev/null @@ -1,11 +0,0 @@ -//===- EntitySummary.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 "clang/Analysis/Scalable/TUSummary/EntitySummary.h" - -char clang::ssaf::EntitySummary::ID = 0; diff --git a/clang/unittests/Analysis/Scalable/Registries/FancyAnalysisData.cpp b/clang/unittests/Analysis/Scalable/Registries/FancyAnalysisData.cpp index ac4e625aaf671..3f1e98199f56a 100644 --- a/clang/unittests/Analysis/Scalable/Registries/FancyAnalysisData.cpp +++ b/clang/unittests/Analysis/Scalable/Registries/FancyAnalysisData.cpp @@ -18,22 +18,19 @@ using SpecialFileRepresentation = MockSerializationFormat::SpecialFileRepresentation; namespace { -struct FancyAnalysisData final - : llvm::RTTIExtends<FancyAnalysisData, EntitySummary> { +struct FancyAnalysisData final : EntitySummary { SummaryName getSummaryName() const override { return SummaryName("FancyAnalysis"); } std::string Text; - static char ID; }; -char FancyAnalysisData::ID = 0; } // namespace static SpecialFileRepresentation serializeFancyAnalysis(const EntitySummary &Data, MockSerializationFormat &Format) { - const auto &FancyAnalysis = llvm::cast<FancyAnalysisData>(Data); + const auto &FancyAnalysis = static_cast<const FancyAnalysisData &>(Data); return SpecialFileRepresentation{/*MockRepresentation=*/FancyAnalysis.Text}; } diff --git a/clang/unittests/Analysis/Scalable/Registries/MockSerializationFormat.cpp b/clang/unittests/Analysis/Scalable/Registries/MockSerializationFormat.cpp index 719db61486df5..a6d4b51178c94 100644 --- a/clang/unittests/Analysis/Scalable/Registries/MockSerializationFormat.cpp +++ b/clang/unittests/Analysis/Scalable/Registries/MockSerializationFormat.cpp @@ -27,10 +27,7 @@ using namespace clang; using namespace ssaf; -char MockSerializationFormat::ID = 0; - -MockSerializationFormat::MockSerializationFormat() - : llvm::RTTIExtends<MockSerializationFormat, SerializationFormat>() { +MockSerializationFormat::MockSerializationFormat() { for (const auto &FormatInfoEntry : llvm::Registry<FormatInfo>::entries()) { std::unique_ptr<FormatInfo> Info = FormatInfoEntry.instantiate(); bool Inserted = FormatInfos.try_emplace(Info->ForSummary, *Info).second; diff --git a/clang/unittests/Analysis/Scalable/Registries/MockSerializationFormat.h b/clang/unittests/Analysis/Scalable/Registries/MockSerializationFormat.h index 8c287c2143621..1bc37840201ea 100644 --- a/clang/unittests/Analysis/Scalable/Registries/MockSerializationFormat.h +++ b/clang/unittests/Analysis/Scalable/Registries/MockSerializationFormat.h @@ -12,13 +12,11 @@ #include "clang/Analysis/Scalable/Model/SummaryName.h" #include "clang/Analysis/Scalable/Serialization/SerializationFormat.h" #include "llvm/ADT/STLFunctionalExtras.h" -#include "llvm/Support/ExtensibleRTTI.h" #include <string> namespace clang::ssaf { -class MockSerializationFormat final - : public llvm::RTTIExtends<MockSerializationFormat, SerializationFormat> { +class MockSerializationFormat final : public SerializationFormat { public: MockSerializationFormat(); `````````` </details> https://github.com/llvm/llvm-project/pull/181198 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
