https://github.com/steakhal created https://github.com/llvm/llvm-project/pull/181198
We discussed internally, and for now we will focus on an MVP and try to not complicate APIs unless that is strictly necessary. From 3c860cb5d6b4acdfb21f3e21abd278a3e4c006c8 Mon Sep 17 00:00:00 2001 From: Balazs Benics <[email protected]> Date: Thu, 12 Feb 2026 18:57:22 +0100 Subject: [PATCH] [clang][ssaf] Drop llvm-RTTI support because we don't need it right now We discussed internally, and for now we will focus on an MVP and try to not complicate APIs unless that is strictly necessary. --- .../Scalable/Serialization/SerializationFormat.h | 6 +----- .../Analysis/Scalable/TUSummary/EntitySummary.h | 5 +---- clang/lib/Analysis/Scalable/CMakeLists.txt | 2 -- .../Scalable/Serialization/SerializationFormat.cpp | 13 ------------- .../Analysis/Scalable/TUSummary/EntitySummary.cpp | 11 ----------- .../Scalable/Registries/FancyAnalysisData.cpp | 7 ++----- .../Scalable/Registries/MockSerializationFormat.cpp | 5 +---- .../Scalable/Registries/MockSerializationFormat.h | 4 +--- 8 files changed, 6 insertions(+), 47 deletions(-) delete mode 100644 clang/lib/Analysis/Scalable/Serialization/SerializationFormat.cpp delete mode 100644 clang/lib/Analysis/Scalable/TUSummary/EntitySummary.cpp 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(); _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
