[clang] Revert "[clang][ssaf] Add `clang-ssaf-analyzer` (#188881)" (PR #195993)
via cfe-commits
cfe-commits at lists.llvm.org
Tue May 5 20:54:58 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang
Author: Aviral Goel (aviralg)
<details>
<summary>Changes</summary>
This reverts commit 51d2a66d52a95beeb31de81dd819c603062a5770 introduced by PR https://github.com/llvm/llvm-project/pull/188881
---
Patch is 34.96 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/195993.diff
21 Files Affected:
- (removed) clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu-badext.txt (-1)
- (removed) clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu-corrupt.json (-1)
- (removed) clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu-noext (-1)
- (removed) clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu-tags-only.json (-44)
- (removed) clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu-wrong-type.json (-1)
- (removed) clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu.json (-126)
- (removed) clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/all.json (-90)
- (removed) clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/both.json (-81)
- (removed) clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/pairs.json (-70)
- (removed) clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/tags.json (-56)
- (removed) clang/test/Analysis/Scalable/ssaf-analyzer/analyzer.test (-141)
- (removed) clang/test/Analysis/Scalable/ssaf-analyzer/cli-errors.test (-53)
- (removed) clang/test/Analysis/Scalable/ssaf-analyzer/help.test (-23)
- (removed) clang/test/Analysis/Scalable/ssaf-analyzer/lit.local.cfg (-4)
- (removed) clang/test/Analysis/Scalable/ssaf-analyzer/validation-errors-permissions.test (-28)
- (removed) clang/test/Analysis/Scalable/ssaf-analyzer/validation-errors.test (-45)
- (removed) clang/test/Analysis/Scalable/ssaf-analyzer/version.test (-5)
- (modified) clang/test/CMakeLists.txt (-1)
- (modified) clang/tools/CMakeLists.txt (-1)
- (removed) clang/tools/clang-ssaf-analyzer/CMakeLists.txt (-25)
- (removed) clang/tools/clang-ssaf-analyzer/SSAFAnalyzer.cpp (-134)
``````````diff
diff --git a/clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu-badext.txt b/clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu-badext.txt
deleted file mode 100644
index 0967ef424bce6..0000000000000
--- a/clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu-badext.txt
+++ /dev/null
@@ -1 +0,0 @@
-{}
diff --git a/clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu-corrupt.json b/clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu-corrupt.json
deleted file mode 100644
index b22e81a41ba54..0000000000000
--- a/clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu-corrupt.json
+++ /dev/null
@@ -1 +0,0 @@
-{ this is not valid json }
diff --git a/clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu-noext b/clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu-noext
deleted file mode 100644
index 0967ef424bce6..0000000000000
--- a/clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu-noext
+++ /dev/null
@@ -1 +0,0 @@
-{}
diff --git a/clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu-tags-only.json b/clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu-tags-only.json
deleted file mode 100644
index c562a25f3c55d..0000000000000
--- a/clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu-tags-only.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "data": [
- {
- "summary_name": "TagsEntitySummary",
- "summary_data": [
- {
- "entity_id": 0,
- "entity_summary": {
- "tags": ["important", "public"]
- }
- }
- ]
- }
- ],
- "id_table": [
- {
- "id": 0,
- "name": {
- "namespace": [
- {
- "kind": "LinkUnit",
- "name": "test.exe"
- }
- ],
- "suffix": "",
- "usr": "c:@F at foo#"
- }
- }
- ],
- "linkage_table": [
- {
- "id": 0,
- "linkage": {
- "type": "External"
- }
- }
- ],
- "lu_namespace": [
- {
- "kind": "LinkUnit",
- "name": "test.exe"
- }
- ]
-}
diff --git a/clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu-wrong-type.json b/clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu-wrong-type.json
deleted file mode 100644
index b5d8bb58d9bc3..0000000000000
--- a/clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu-wrong-type.json
+++ /dev/null
@@ -1 +0,0 @@
-[1, 2, 3]
diff --git a/clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu.json b/clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu.json
deleted file mode 100644
index 9c30fefc55dd5..0000000000000
--- a/clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu.json
+++ /dev/null
@@ -1,126 +0,0 @@
-{
- "data": [
- {
- "summary_name": "TagsEntitySummary",
- "summary_data": [
- {
- "entity_id": 0,
- "entity_summary": {
- "tags": ["important", "public"]
- }
- },
- {
- "entity_id": 1,
- "entity_summary": {
- "tags": ["internal", "deprecated", "important"]
- }
- },
- {
- "entity_id": 2,
- "entity_summary": {
- "tags": ["public"]
- }
- }
- ]
- },
- {
- "summary_name": "PairsEntitySummary",
- "summary_data": [
- {
- "entity_id": 0,
- "entity_summary": {
- "pairs": [
- {"first": {"@": 1}, "second": {"@": 2}}
- ]
- }
- },
- {
- "entity_id": 1,
- "entity_summary": {
- "pairs": [
- {"first": {"@": 0}, "second": {"@": 2}},
- {"first": {"@": 2}, "second": {"@": 0}}
- ]
- }
- },
- {
- "entity_id": 2,
- "entity_summary": {
- "pairs": [
- {"first": {"@": 0}, "second": {"@": 1}},
- {"first": {"@": 1}, "second": {"@": 0}},
- {"first": {"@": 0}, "second": {"@": 0}}
- ]
- }
- }
- ]
- }
- ],
- "id_table": [
- {
- "id": 0,
- "name": {
- "namespace": [
- {
- "kind": "LinkUnit",
- "name": "test.exe"
- }
- ],
- "suffix": "",
- "usr": "c:@F at foo#"
- }
- },
- {
- "id": 1,
- "name": {
- "namespace": [
- {
- "kind": "LinkUnit",
- "name": "test.exe"
- }
- ],
- "suffix": "",
- "usr": "c:@F at bar#"
- }
- },
- {
- "id": 2,
- "name": {
- "namespace": [
- {
- "kind": "LinkUnit",
- "name": "test.exe"
- }
- ],
- "suffix": "",
- "usr": "c:@F at baz#"
- }
- }
- ],
- "linkage_table": [
- {
- "id": 0,
- "linkage": {
- "type": "External"
- }
- },
- {
- "id": 1,
- "linkage": {
- "type": "External"
- }
- },
- {
- "id": 2,
- "linkage": {
- "type": "External"
- }
- }
- ],
- "lu_namespace": [
- {
- "kind": "LinkUnit",
- "name": "test.exe"
- }
- ]
-}
diff --git a/clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/all.json b/clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/all.json
deleted file mode 100644
index d408b64d05af3..0000000000000
--- a/clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/all.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{
- "id_table": [
- {
- "id": 1,
- "name": {
- "namespace": [
- {
- "kind": "LinkUnit",
- "name": "test.exe"
- }
- ],
- "suffix": "",
- "usr": "c:@F at bar#"
- }
- },
- {
- "id": 2,
- "name": {
- "namespace": [
- {
- "kind": "LinkUnit",
- "name": "test.exe"
- }
- ],
- "suffix": "",
- "usr": "c:@F at baz#"
- }
- },
- {
- "id": 0,
- "name": {
- "namespace": [
- {
- "kind": "LinkUnit",
- "name": "test.exe"
- }
- ],
- "suffix": "",
- "usr": "c:@F at foo#"
- }
- }
- ],
- "results": [
- {
- "analysis_name": "PairsAnalysisResult",
- "result": {
- "pair_counts": [
- {
- "count": 1,
- "entity_id": {
- "@": 0
- }
- },
- {
- "count": 2,
- "entity_id": {
- "@": 1
- }
- },
- {
- "count": 3,
- "entity_id": {
- "@": 2
- }
- }
- ]
- }
- },
- {
- "analysis_name": "TagsAnalysisResult",
- "result": {
- "tags": [
- "deprecated",
- "important",
- "internal",
- "public"
- ]
- }
- },
- {
- "analysis_name": "TagsPairsAnalysisResult",
- "result": {
- "entity_count": 3,
- "max_pairs_per_entity": 3,
- "total_pair_count": 6,
- "unique_tag_count": 4
- }
- }
- ]
-}
diff --git a/clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/both.json b/clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/both.json
deleted file mode 100644
index e5f7170814295..0000000000000
--- a/clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/both.json
+++ /dev/null
@@ -1,81 +0,0 @@
-{
- "id_table": [
- {
- "id": 1,
- "name": {
- "namespace": [
- {
- "kind": "LinkUnit",
- "name": "test.exe"
- }
- ],
- "suffix": "",
- "usr": "c:@F at bar#"
- }
- },
- {
- "id": 2,
- "name": {
- "namespace": [
- {
- "kind": "LinkUnit",
- "name": "test.exe"
- }
- ],
- "suffix": "",
- "usr": "c:@F at baz#"
- }
- },
- {
- "id": 0,
- "name": {
- "namespace": [
- {
- "kind": "LinkUnit",
- "name": "test.exe"
- }
- ],
- "suffix": "",
- "usr": "c:@F at foo#"
- }
- }
- ],
- "results": [
- {
- "analysis_name": "PairsAnalysisResult",
- "result": {
- "pair_counts": [
- {
- "count": 1,
- "entity_id": {
- "@": 0
- }
- },
- {
- "count": 2,
- "entity_id": {
- "@": 1
- }
- },
- {
- "count": 3,
- "entity_id": {
- "@": 2
- }
- }
- ]
- }
- },
- {
- "analysis_name": "TagsAnalysisResult",
- "result": {
- "tags": [
- "deprecated",
- "important",
- "internal",
- "public"
- ]
- }
- }
- ]
-}
diff --git a/clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/pairs.json b/clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/pairs.json
deleted file mode 100644
index 3f52b0acfd900..0000000000000
--- a/clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/pairs.json
+++ /dev/null
@@ -1,70 +0,0 @@
-{
- "id_table": [
- {
- "id": 1,
- "name": {
- "namespace": [
- {
- "kind": "LinkUnit",
- "name": "test.exe"
- }
- ],
- "suffix": "",
- "usr": "c:@F at bar#"
- }
- },
- {
- "id": 2,
- "name": {
- "namespace": [
- {
- "kind": "LinkUnit",
- "name": "test.exe"
- }
- ],
- "suffix": "",
- "usr": "c:@F at baz#"
- }
- },
- {
- "id": 0,
- "name": {
- "namespace": [
- {
- "kind": "LinkUnit",
- "name": "test.exe"
- }
- ],
- "suffix": "",
- "usr": "c:@F at foo#"
- }
- }
- ],
- "results": [
- {
- "analysis_name": "PairsAnalysisResult",
- "result": {
- "pair_counts": [
- {
- "count": 1,
- "entity_id": {
- "@": 0
- }
- },
- {
- "count": 2,
- "entity_id": {
- "@": 1
- }
- },
- {
- "count": 3,
- "entity_id": {
- "@": 2
- }
- }
- ]
- }
- }
- ]
-}
diff --git a/clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/tags.json b/clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/tags.json
deleted file mode 100644
index aa41194746ea9..0000000000000
--- a/clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/tags.json
+++ /dev/null
@@ -1,56 +0,0 @@
-{
- "id_table": [
- {
- "id": 1,
- "name": {
- "namespace": [
- {
- "kind": "LinkUnit",
- "name": "test.exe"
- }
- ],
- "suffix": "",
- "usr": "c:@F at bar#"
- }
- },
- {
- "id": 2,
- "name": {
- "namespace": [
- {
- "kind": "LinkUnit",
- "name": "test.exe"
- }
- ],
- "suffix": "",
- "usr": "c:@F at baz#"
- }
- },
- {
- "id": 0,
- "name": {
- "namespace": [
- {
- "kind": "LinkUnit",
- "name": "test.exe"
- }
- ],
- "suffix": "",
- "usr": "c:@F at foo#"
- }
- }
- ],
- "results": [
- {
- "analysis_name": "TagsAnalysisResult",
- "result": {
- "tags": [
- "deprecated",
- "important",
- "internal",
- "public"
- ]
- }
- }
- ]
-}
diff --git a/clang/test/Analysis/Scalable/ssaf-analyzer/analyzer.test b/clang/test/Analysis/Scalable/ssaf-analyzer/analyzer.test
deleted file mode 100644
index 0abdcef15a449..0000000000000
--- a/clang/test/Analysis/Scalable/ssaf-analyzer/analyzer.test
+++ /dev/null
@@ -1,141 +0,0 @@
-// Tests for clang-ssaf-analyzer that require plugin support.
-
-// REQUIRES: plugins
-
-// RUN: rm -rf %t
-// RUN: mkdir -p %t
-
-// ============================================================================
-// Error: unknown analysis name
-// ============================================================================
-
-// RUN: not %clang-ssaf-analyzer-with-plugin %S/Inputs/lu.json \
-// RUN: -o %t/unknown.json -a NoSuchAnalysis 2>&1 \
-// RUN: | FileCheck %s --check-prefix=UNKNOWN
-// UNKNOWN: no analysis registered for 'AnalysisName(NoSuchAnalysis)'
-
-// ============================================================================
-// Error: valid analysis name but LUSummary lacks entity data for it
-// ============================================================================
-
-// RUN: not %clang-ssaf-analyzer-with-plugin %S/Inputs/lu-tags-only.json \
-// RUN: -o %t/missing-data.json -a PairsAnalysisResult 2>&1 \
-// RUN: | FileCheck %s --check-prefix=MISSING-DATA
-// MISSING-DATA: no data for analysis 'AnalysisName(PairsAnalysisResult)' in LUSummary
-
-// ============================================================================
-// Success: run TagsAnalysisResult only (single analysis)
-// ============================================================================
-
-// RUN: %clang-ssaf-analyzer-with-plugin %S/Inputs/lu.json \
-// RUN: -o %t/tags.json -a TagsAnalysisResult
-// RUN: diff %S/Outputs/tags.json %t/tags.json
-
-// ============================================================================
-// Success: run PairsAnalysisResult only (single analysis)
-// ============================================================================
-
-// RUN: %clang-ssaf-analyzer-with-plugin %S/Inputs/lu.json \
-// RUN: -o %t/pairs.json -a PairsAnalysisResult
-// RUN: diff %S/Outputs/pairs.json %t/pairs.json
-
-// ============================================================================
-// Success: run two summary analyses
-// ============================================================================
-
-// RUN: %clang-ssaf-analyzer-with-plugin %S/Inputs/lu.json \
-// RUN: -o %t/both.json -a TagsAnalysisResult -a PairsAnalysisResult
-// RUN: diff %S/Outputs/both.json %t/both.json
-
-// ============================================================================
-// Success: reversed order produces the same result (order-independent)
-// ============================================================================
-
-// RUN: %clang-ssaf-analyzer-with-plugin %S/Inputs/lu.json \
-// RUN: -o %t/both-rev.json -a PairsAnalysisResult -a TagsAnalysisResult
-// RUN: diff %S/Outputs/both.json %t/both-rev.json
-
-// ============================================================================
-// Success: duplicate analysis name is deduplicated
-// ============================================================================
-
-// RUN: %clang-ssaf-analyzer-with-plugin %S/Inputs/lu.json \
-// RUN: -o %t/tags-dup.json -a TagsAnalysisResult -a TagsAnalysisResult
-// RUN: diff %S/Outputs/tags.json %t/tags-dup.json
-
-// ============================================================================
-// Success: derived analysis pulls dependencies automatically
-// ============================================================================
-
-// RUN: %clang-ssaf-analyzer-with-plugin %S/Inputs/lu.json \
-// RUN: -o %t/all.json -a TagsPairsAnalysisResult
-// RUN: diff %S/Outputs/all.json %t/all.json
-
-// ============================================================================
-// Success: derived + one explicit dep (redundant dep is deduplicated)
-// ============================================================================
-
-// RUN: %clang-ssaf-analyzer-with-plugin %S/Inputs/lu.json \
-// RUN: -o %t/all-partial-dup.json -a TagsPairsAnalysisResult -a TagsAnalysisResult
-// RUN: diff %S/Outputs/all.json %t/all-partial-dup.json
-
-// ============================================================================
-// Success: derived + both explicit deps (all redundant, deduplicated)
-// ============================================================================
-
-// RUN: %clang-ssaf-analyzer-with-plugin %S/Inputs/lu.json \
-// RUN: -o %t/all-full-dup.json \
-// RUN: -a TagsPairsAnalysisResult -a TagsAnalysisResult -a PairsAnalysisResult
-// RUN: diff %S/Outputs/all.json %t/all-full-dup.json
-
-// ============================================================================
-// Success: run all example-plugin analyses explicitly
-// ============================================================================
-
-// RUN: %clang-ssaf-analyzer-with-plugin %S/Inputs/lu.json \
-// RUN: -o %t/all-default.json \
-// RUN: -a TagsAnalysisResult -a PairsAnalysisResult -a TagsPairsAnalysisResult
-// RUN: diff %S/Outputs/all.json %t/all-default.json
-
-// ============================================================================
-// Success: --analysis alias for -a
-// ============================================================================
-
-// RUN: %clang-ssaf-analyzer-with-plugin %S/Inputs/lu.json \
-// RUN: -o %t/analysis-alias.json --analysis TagsAnalysisResult
-// RUN: diff %S/Outputs/tags.json %t/analysis-alias.json
-
-// ============================================================================
-// Success: -l alias for --load
-// ============================================================================
-
-// RUN: clang-ssaf-analyzer -l %llvmshlibdir/SSAFExamplePlugin%pluginext \
-// RUN: %S/Inputs/lu.json -o %t/load-alias.json -a PairsAnalysisResult
-// RUN: diff %S/Outputs/pairs.json %t/load-alias.json
-
-// ============================================================================
-// Error: mix of valid and invalid analysis names (partial failure)
-// ============================================================================
-
-// RUN: not %clang-ssaf-analyzer-with-plugin %S/Inputs/lu.json \
-// RUN: -o %t/mixed.json -a TagsAnalysisResult -a NoSuchAnalysis -a PairsAnalysisResult 2>&1 \
-// RUN: | FileCheck %s --check-prefix=MIXED
-// MIXED: no analysis registered for 'AnalysisName(NoSuchAnalysis)'
-
-// ============================================================================
-// Success: -o specified twice (last value wins)
-// ============================================================================
-
-// RUN: %clang-ssaf-analyzer-with-plugin %S/Inputs/lu.json \
-// RUN: -o %t/ignored.json -o %t/last-wins.json -a TagsAnalysisResult
-// RUN: diff %S/Outputs/tags.json %t/last-wins.json
-
-// ============================================================================
-// Round-trip: analyze then read back with ssaf-format
-// ============================================================================
-
-// RUN: %clang-ssaf-analyzer-with-plugin %S/Inputs/lu.json \
-// RUN: -o %t/roundtrip.json -a TagsPairsAnalysisResult
-// RUN: clang-ssaf-format --type wpa --load %llvmshlibdir/SSAFExamplePlugin%pluginext \
-// RUN: %t/roundtrip.json -o %t/roundtrip-copy.json
-// RUN: diff %S/Outputs/all.json %t/roundtrip-copy.json
diff --git a/clang/test/Analysis/Scalable/ssaf-analyzer/cli-errors.test b/clang/test/Analysis/Scalable/ssaf-analyzer/cli-errors.test
deleted file mode 100644
index 3f3abeef63643..0000000000000
--- a/clang/test/Analysis/Scalable/ssaf-analyzer/cli-errors.test
+++ /dev/null
@@ -1,53 +0,0 @@
-// Tests for clang-ssaf-analyzer CLI errors that do not require plugins.
-
-// RUN: rm -rf %t
-// RUN: mkdir -p %t
-
-// ============================================================================
-// CLI error: no arguments
-// ============================================================================
-
-// RUN: not clang-ssaf-analyzer 2>&1 \
-// RUN: | FileCheck %s --check-prefix=NO-ARGS
-// NO-ARGS: clang-ssaf-analyzer{{(\.exe)?}}: Not enough positional command line arguments specified!
-
-// ============================================================================
-// CLI error: missing -o
-// ============================================================================
-
-// RUN: not clang-ssaf-analyzer %S/Inputs/lu.json -a Foo 2>&1 \
-// RUN: | FileCheck %s --check-prefix=NO-OUTPUT
-// NO-OUTPUT: clang-ssaf-analyzer{{(\.exe)?}}: for the -o option: must be specified at least once!
-
-// ============================================================================
-// Error: nonexistent plugin path
-// ============================================================================
-
-// RUN: not clang-ssaf-analyzer --load /nonexistent/path/plugin.so \
-// RUN: %S/Inputs/lu.json -o %t/plugin-err.json 2>&1 \
-// RUN: | FileCheck %s --chec...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/195993
More information about the cfe-commits
mailing list