[clang] [clang][ssaf] Drop llvm-RTTI support because we don't need it right now (PR #181198)
via cfe-commits
cfe-commits at lists.llvm.org
Thu Feb 12 10:13:58 PST 2026
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
More information about the cfe-commits
mailing list