https://github.com/steakhal updated 
https://github.com/llvm/llvm-project/pull/185631

From 1a997f6dee0b625fd57b15cb026916caa3e3527c Mon Sep 17 00:00:00 2001
From: Balazs Benics <[email protected]>
Date: Tue, 10 Mar 2026 12:08:11 +0000
Subject: [PATCH 1/2] [clang][ssaf] Rename ssaf-linker tool to
 clang-ssaf-linker

Addresses:
https://github.com/llvm/llvm-project/pull/184713#issuecomment-4030747461
---
 .../Analysis/Scalable/ssaf-linker/cli.test    | 20 +++++++-------
 .../Analysis/Scalable/ssaf-linker/help.test   |  6 ++---
 .../Analysis/Scalable/ssaf-linker/io.test     | 14 +++++-----
 .../Scalable/ssaf-linker/linking-errors.test  | 16 ++++++------
 .../Scalable/ssaf-linker/linking.test         | 16 ++++++------
 .../Analysis/Scalable/ssaf-linker/time.test   |  4 +--
 .../validation-errors-permissions.test        | 10 +++----
 .../ssaf-linker/validation-errors.test        | 26 +++++++++----------
 .../Scalable/ssaf-linker/verbose.test         |  4 +--
 .../Scalable/ssaf-linker/version.test         |  6 ++---
 clang/test/CMakeLists.txt                     |  2 +-
 clang/test/lit.cfg.py                         |  2 +-
 clang/tools/ssaf-linker/CMakeLists.txt        |  4 +--
 13 files changed, 65 insertions(+), 65 deletions(-)

diff --git a/clang/test/Analysis/Scalable/ssaf-linker/cli.test 
b/clang/test/Analysis/Scalable/ssaf-linker/cli.test
index 3a4bb7d6e1faf..5a74394dba4a0 100644
--- a/clang/test/Analysis/Scalable/ssaf-linker/cli.test
+++ b/clang/test/Analysis/Scalable/ssaf-linker/cli.test
@@ -1,17 +1,17 @@
-// Tests for ssaf-linker command-line option validation.
+// Tests for clang-ssaf-linker command-line option validation.
 
-// RUN: not ssaf-linker 2>&1 \
+// RUN: not clang-ssaf-linker 2>&1 \
 // RUN:   | FileCheck %s --match-full-lines --check-prefix=NO-ARGS
-// NO-ARGS:      ssaf-linker{{(\.exe)?}}: Not enough positional command line 
arguments specified!
-// NO-ARGS-NEXT: Must specify at least 1 positional argument: See: 
{{.*}}ssaf-linker{{(\.exe)?}} --help
-// NO-ARGS-NEXT: ssaf-linker{{(\.exe)?}}: for the -o option: must be specified 
at least once!
+// NO-ARGS:      clang-ssaf-linker{{(\.exe)?}}: Not enough positional command 
line arguments specified!
+// NO-ARGS-NEXT: Must specify at least 1 positional argument: See: 
{{.*}}clang-ssaf-linker{{(\.exe)?}} --help
+// NO-ARGS-NEXT: clang-ssaf-linker{{(\.exe)?}}: for the -o option: must be 
specified at least once!
 
-// RUN: not ssaf-linker %S/Inputs/tu-empty.json 2>&1 \
+// RUN: not clang-ssaf-linker %S/Inputs/tu-empty.json 2>&1 \
 // RUN:   | FileCheck %s --match-full-lines --check-prefix=NO-OUTPUT
-// NO-OUTPUT: ssaf-linker{{(\.exe)?}}: for the -o option: must be specified at 
least once!
+// NO-OUTPUT: clang-ssaf-linker{{(\.exe)?}}: for the -o option: must be 
specified at least once!
 
-// RUN: not ssaf-linker -o %t/output.json 2>&1 \
+// RUN: not clang-ssaf-linker -o %t/output.json 2>&1 \
 // RUN:   | FileCheck %s --match-full-lines --check-prefix=NO-INPUT
-// NO-INPUT:      ssaf-linker{{(\.exe)?}}: Not enough positional command line 
arguments specified!
-// NO-INPUT-NEXT: Must specify at least 1 positional argument: See: 
{{.*}}ssaf-linker{{(\.exe)?}} --help
+// NO-INPUT:      clang-ssaf-linker{{(\.exe)?}}: Not enough positional command 
line arguments specified!
+// NO-INPUT-NEXT: Must specify at least 1 positional argument: See: 
{{.*}}clang-ssaf-linker{{(\.exe)?}} --help
 
diff --git a/clang/test/Analysis/Scalable/ssaf-linker/help.test 
b/clang/test/Analysis/Scalable/ssaf-linker/help.test
index 71445a8bd91bb..37be5e47ec222 100644
--- a/clang/test/Analysis/Scalable/ssaf-linker/help.test
+++ b/clang/test/Analysis/Scalable/ssaf-linker/help.test
@@ -1,11 +1,11 @@
-// Test ssaf-linker help option
+// Test clang-ssaf-linker help option
 
-// RUN: ssaf-linker --help-list-hidden \
+// RUN: clang-ssaf-linker --help-list-hidden \
 // RUN:           | FileCheck %s --match-full-lines
 
 // CHECK:      OVERVIEW: SSAF Linker
 // CHECK-EMPTY:
-// CHECK-NEXT: USAGE: ssaf-linker{{(\.exe)?}} [options] <input files>
+// CHECK-NEXT: USAGE: clang-ssaf-linker{{(\.exe)?}} [options] <input files>
 // CHECK-EMPTY:
 // CHECK-NEXT: OPTIONS:
 // CHECK-NEXT:   -h                  - Alias for --help
diff --git a/clang/test/Analysis/Scalable/ssaf-linker/io.test 
b/clang/test/Analysis/Scalable/ssaf-linker/io.test
index 213cf3c23c511..13991577aa854 100644
--- a/clang/test/Analysis/Scalable/ssaf-linker/io.test
+++ b/clang/test/Analysis/Scalable/ssaf-linker/io.test
@@ -1,23 +1,23 @@
-// Tests for ssaf-linker file I/O error handling.
+// Tests for clang-ssaf-linker file I/O error handling.
 
 // RUN: rm -rf %t
 // RUN: mkdir -p %t
 
 // Malformed JSON input.
-// RUN: not ssaf-linker %S/Inputs/tu-malformed.json -o %t/out.json 2>&1 \
+// RUN: not clang-ssaf-linker %S/Inputs/tu-malformed.json -o %t/out.json 2>&1 \
 // RUN:   | FileCheck %s --match-full-lines --check-prefix=BAD-JSON
-// BAD-JSON:      ssaf-linker: error: reading TUSummary from file 
'{{.*}}tu-malformed.json'
+// BAD-JSON:      clang-ssaf-linker: error: reading TUSummary from file 
'{{.*}}tu-malformed.json'
 // BAD-JSON-NEXT: {{.*}}: Invalid JSON value{{.*}}
 
 // Missing required fields in otherwise valid JSON.
-// RUN: not ssaf-linker %S/Inputs/tu-missing-fields.json -o %t/out.json 2>&1 \
+// RUN: not clang-ssaf-linker %S/Inputs/tu-missing-fields.json -o %t/out.json 
2>&1 \
 // RUN:        | FileCheck %s --match-full-lines --check-prefix=MISSING-FIELDS
-// MISSING-FIELDS:      ssaf-linker: error: reading TUSummary from file 
'{{.*}}tu-missing-fields.json'
+// MISSING-FIELDS:      clang-ssaf-linker: error: reading TUSummary from file 
'{{.*}}tu-missing-fields.json'
 // MISSING-FIELDS-NEXT: failed to read IdTable from field 'id_table': expected 
JSON array
 
 // Output file already exists.
 // RUN: touch %t/out.json
-// RUN: not ssaf-linker %S/Inputs/tu-empty.json -o %t/out.json 2>&1 \
+// RUN: not clang-ssaf-linker %S/Inputs/tu-empty.json -o %t/out.json 2>&1 \
 // RUN:   | FileCheck %s --match-full-lines --check-prefix=OUTPUT-EXISTS
-// OUTPUT-EXISTS:      ssaf-linker: error: writing LUSummary to file 
'{{.*}}out.json'
+// OUTPUT-EXISTS:      clang-ssaf-linker: error: writing LUSummary to file 
'{{.*}}out.json'
 // OUTPUT-EXISTS-NEXT: failed to write file '{{.*}}out.json': file already 
exists
diff --git a/clang/test/Analysis/Scalable/ssaf-linker/linking-errors.test 
b/clang/test/Analysis/Scalable/ssaf-linker/linking-errors.test
index 87f1f08a6b2ef..5bda8128ac0e1 100644
--- a/clang/test/Analysis/Scalable/ssaf-linker/linking-errors.test
+++ b/clang/test/Analysis/Scalable/ssaf-linker/linking-errors.test
@@ -4,25 +4,25 @@
 // RUN: mkdir -p %t
 
 // Linking the same TU namespace twice produces an error.
-// RUN: not ssaf-linker %S/Inputs/tu-empty.json %S/Inputs/tu-empty.json -o 
%t/lu.json 2>&1 \
+// RUN: not clang-ssaf-linker %S/Inputs/tu-empty.json %S/Inputs/tu-empty.json 
-o %t/lu.json 2>&1 \
 // RUN:   | FileCheck %s --match-full-lines --check-prefix=DUP-NS
-// DUP-NS:      ssaf-linker: error: Linking summary '{{.*}}tu-empty.json'
+// DUP-NS:      clang-ssaf-linker: error: Linking summary '{{.*}}tu-empty.json'
 // DUP-NS-NEXT: failed to link TU summary: duplicate 
BuildNamespace(CompilationUnit, empty.cpp)
 
 // Entity ID object in summary data blob with '@' key alongside extra keys is 
a fatal error.
-// RUN: not ssaf-linker %S/Inputs/tu-invalid-entity-id-multikey.json -o 
%t/lu.json 2>&1 \
+// RUN: not clang-ssaf-linker %S/Inputs/tu-invalid-entity-id-multikey.json -o 
%t/lu.json 2>&1 \
 // RUN:   | FileCheck %s --match-full-lines --check-prefix=INVALID-ID-MULTIKEY
-// INVALID-ID-MULTIKEY:      ssaf-linker: error: Linking summary 
'{{.*}}tu-invalid-entity-id-multikey.json'
+// INVALID-ID-MULTIKEY:      clang-ssaf-linker: error: Linking summary 
'{{.*}}tu-invalid-entity-id-multikey.json'
 // INVALID-ID-MULTIKEY-NEXT: failed to read EntityId: expected JSON object 
with a single '@' key mapped to a number (unsigned 64-bit integer)
 
 // Entity ID object in summary data blob with a non-uint64 '@' value is a 
fatal error.
-// RUN: not ssaf-linker %S/Inputs/tu-invalid-entity-id-value.json -o 
%t/lu.json 2>&1 \
+// RUN: not clang-ssaf-linker %S/Inputs/tu-invalid-entity-id-value.json -o 
%t/lu.json 2>&1 \
 // RUN:   | FileCheck %s --match-full-lines --check-prefix=INVALID-ID-VALUE
-// INVALID-ID-VALUE:      ssaf-linker: error: Linking summary 
'{{.*}}tu-invalid-entity-id-value.json'
+// INVALID-ID-VALUE:      clang-ssaf-linker: error: Linking summary 
'{{.*}}tu-invalid-entity-id-value.json'
 // INVALID-ID-VALUE-NEXT: failed to read EntityId: expected JSON object with a 
single '@' key mapped to a number (unsigned 64-bit integer)
 
 // Entity ID reference in summary data blob pointing to an ID absent from the 
resolution table
-// RUN: not ssaf-linker %S/Inputs/tu-invalid-entity-id-ref.json -o %t/lu.json 
2>&1 \
+// RUN: not clang-ssaf-linker %S/Inputs/tu-invalid-entity-id-ref.json -o 
%t/lu.json 2>&1 \
 // RUN:   | FileCheck %s --match-full-lines --check-prefix=INVALID-ID-REF
-// INVALID-ID-REF:      ssaf-linker: error: Linking summary 
'{{.*}}tu-invalid-entity-id-ref.json'
+// INVALID-ID-REF:      clang-ssaf-linker: error: Linking summary 
'{{.*}}tu-invalid-entity-id-ref.json'
 // INVALID-ID-REF-NEXT: failed to patch EntityId: 'EntityId(99)' not found in 
entity resolution table
diff --git a/clang/test/Analysis/Scalable/ssaf-linker/linking.test 
b/clang/test/Analysis/Scalable/ssaf-linker/linking.test
index 2ed6d37b558ac..a6bd0c8df22c8 100644
--- a/clang/test/Analysis/Scalable/ssaf-linker/linking.test
+++ b/clang/test/Analysis/Scalable/ssaf-linker/linking.test
@@ -1,42 +1,42 @@
-// Tests for successful ssaf-linker linking behaviour.
+// Tests for successful clang-ssaf-linker linking behaviour.
 // See linking-errors.test for error cases.
 
 // RUN: rm -rf %t
 // RUN: mkdir -p %t
 
 // Single empty TU produces valid output.
-// RUN: ssaf-linker %S/Inputs/tu-empty.json -o %t/lu-empty.json
+// RUN: clang-ssaf-linker %S/Inputs/tu-empty.json -o %t/lu-empty.json
 // RUN: diff %S/Outputs/lu-empty.json %t/lu-empty.json
 // RUN: rm %t/lu-empty.json
 
 // Single non-empty TU produces valid output.
-// RUN: ssaf-linker %S/Inputs/tu-1.json -o %t/lu-1.json
+// RUN: clang-ssaf-linker %S/Inputs/tu-1.json -o %t/lu-1.json
 // RUN: diff %S/Outputs/lu-1.json %t/lu-1.json
 // RUN: rm %t/lu-1.json
 
 // Linking empty and non-empty TU is equivalent to just linking non-empty TU
-// RUN: ssaf-linker %S/Inputs/tu-empty.json %S/Inputs/tu-1.json -o %t/lu-1.json
+// RUN: clang-ssaf-linker %S/Inputs/tu-empty.json %S/Inputs/tu-1.json -o 
%t/lu-1.json
 // RUN: diff %S/Outputs/lu-1.json %t/lu-1.json
 // RUN: rm %t/lu-1.json
 
 // Linking non-empty and empty TU is equivalent to just linking non-empty TU
-// RUN: ssaf-linker %S/Inputs/tu-2.json %S/Inputs/tu-empty.json -o %t/lu-2.json
+// RUN: clang-ssaf-linker %S/Inputs/tu-2.json %S/Inputs/tu-empty.json -o 
%t/lu-2.json
 // RUN: diff %S/Outputs/lu-2.json %t/lu-2.json
 // RUN: rm %t/lu-2.json
 
 // Linking two TUs correctly resolves and patches data.
-// RUN: ssaf-linker %S/Inputs/tu-1.json %S/Inputs/tu-2.json -o %t/lu-1+2.json
+// RUN: clang-ssaf-linker %S/Inputs/tu-1.json %S/Inputs/tu-2.json -o 
%t/lu-1+2.json
 // RUN: diff %S/Outputs/lu-1+2.json %t/lu-1+2.json
 // RUN: rm %t/lu-1+2.json
 
 // Relative input path: cd to the test source directory so that
 // Inputs/tu-1.json is a valid relative path.
-// RUN: cd %S && ssaf-linker Inputs/tu-1.json -o %t/lu-1.json
+// RUN: cd %S && clang-ssaf-linker Inputs/tu-1.json -o %t/lu-1.json
 // RUN: diff %S/Outputs/lu-1.json %t/lu-1.json
 // RUN: rm %t/lu-1.json
 
 // Relative output path: cd to the temp directory so that lu-1.json
 // (no directory component) resolves relative to the current directory.
-// RUN: cd %t && ssaf-linker %S/Inputs/tu-1.json -o lu-1.json
+// RUN: cd %t && clang-ssaf-linker %S/Inputs/tu-1.json -o lu-1.json
 // RUN: diff %S/Outputs/lu-1.json %t/lu-1.json
 // RUN: rm %t/lu-1.json
diff --git a/clang/test/Analysis/Scalable/ssaf-linker/time.test 
b/clang/test/Analysis/Scalable/ssaf-linker/time.test
index 1c59a19fe35f0..3e5809692f049 100644
--- a/clang/test/Analysis/Scalable/ssaf-linker/time.test
+++ b/clang/test/Analysis/Scalable/ssaf-linker/time.test
@@ -1,9 +1,9 @@
-// Test the --time/-t flag of ssaf-linker.
+// Test the --time/-t flag of clang-ssaf-linker.
 
 // RUN: rm -rf %t
 // RUN: mkdir -p %t
 
-// RUN: ssaf-linker --time %S/Inputs/tu-1.json %S/Inputs/tu-2.json -o 
%t/lu-1+2.json 2>&1 \
+// RUN: clang-ssaf-linker --time %S/Inputs/tu-1.json %S/Inputs/tu-2.json -o 
%t/lu-1+2.json 2>&1 \
 // RUN:           | FileCheck %s --match-full-lines
 // CHECK:      
===-------------------------------------------------------------------------===
 // CHECK-NEXT: {{[ ]+}}SSAF Linker
diff --git 
a/clang/test/Analysis/Scalable/ssaf-linker/validation-errors-permissions.test 
b/clang/test/Analysis/Scalable/ssaf-linker/validation-errors-permissions.test
index adf15243180e6..ad1e2708cf96c 100644
--- 
a/clang/test/Analysis/Scalable/ssaf-linker/validation-errors-permissions.test
+++ 
b/clang/test/Analysis/Scalable/ssaf-linker/validation-errors-permissions.test
@@ -1,4 +1,4 @@
-// Tests for ssaf-linker input validation requiring file permission support.
+// Tests for clang-ssaf-linker input validation requiring file permission 
support.
 // UNSUPPORTED: system-windows
 
 // RUN: rm -rf %t
@@ -7,13 +7,13 @@
 // Output parent directory exists but is not writable.
 // RUN: mkdir -p %t/output-dir
 // RUN: chmod -w %t/output-dir
-// RUN: not ssaf-linker %S/Inputs/tu-empty.json -o %t/output-dir/output.json 
2>&1 \
+// RUN: not clang-ssaf-linker %S/Inputs/tu-empty.json -o 
%t/output-dir/output.json 2>&1 \
 // RUN:   | FileCheck %s --match-full-lines --check-prefix=NO-WRITE-PERM
 // RUN: chmod +w %t/output-dir
-// NO-WRITE-PERM: ssaf-linker: error: failed to validate summary 
'{{.*}}output.json': Parent directory is not writable
+// NO-WRITE-PERM: clang-ssaf-linker: error: failed to validate summary 
'{{.*}}output.json': Parent directory is not writable
 
 // Input summary is a broken symlink.
 // RUN: ln -sf %t/tu-nonexistent %t/tu-dangling.json
-// RUN: not ssaf-linker %t/tu-dangling.json -o %t/lu.json 2>&1 \
+// RUN: not clang-ssaf-linker %t/tu-dangling.json -o %t/lu.json 2>&1 \
 // RUN:   | FileCheck %s --match-full-lines --check-prefix=BROKEN-SYMLINK
-// BROKEN-SYMLINK: ssaf-linker: error: failed to validate summary 
'{{.*}}tu-dangling.json': {{[Nn]}}o such file or directory
+// BROKEN-SYMLINK: clang-ssaf-linker: error: failed to validate summary 
'{{.*}}tu-dangling.json': {{[Nn]}}o such file or directory
diff --git a/clang/test/Analysis/Scalable/ssaf-linker/validation-errors.test 
b/clang/test/Analysis/Scalable/ssaf-linker/validation-errors.test
index 336d4f45925a5..b28fb9fcd56c7 100644
--- a/clang/test/Analysis/Scalable/ssaf-linker/validation-errors.test
+++ b/clang/test/Analysis/Scalable/ssaf-linker/validation-errors.test
@@ -1,35 +1,35 @@
-// Tests for ssaf-linker input validation.
+// Tests for clang-ssaf-linker input validation.
 
 // RUN: rm -rf %t
 // RUN: mkdir -p %t
 
 // No extension on output.
-// RUN: not ssaf-linker %S/Inputs/tu-empty.json -o lu 2>&1 \
+// RUN: not clang-ssaf-linker %S/Inputs/tu-empty.json -o lu 2>&1 \
 // RUN:   | FileCheck %s --match-full-lines --check-prefix=NO-EXT-OUTPUT
-// NO-EXT-OUTPUT: ssaf-linker: error: failed to validate summary 'lu': 
Extension not supplied
+// NO-EXT-OUTPUT: clang-ssaf-linker: error: failed to validate summary 'lu': 
Extension not supplied
 
 // No extension on input.
-// RUN: not ssaf-linker %S/Inputs/tu-noext -o %t/lu.json 2>&1 \
+// RUN: not clang-ssaf-linker %S/Inputs/tu-noext -o %t/lu.json 2>&1 \
 // RUN:   | FileCheck %s --match-full-lines --check-prefix=NO-EXT-INPUT
-// NO-EXT-INPUT: ssaf-linker: error: failed to validate summary 
'{{.*}}tu-noext': Extension not supplied
+// NO-EXT-INPUT: clang-ssaf-linker: error: failed to validate summary 
'{{.*}}tu-noext': Extension not supplied
 
 // Invalid extension on output.
-// RUN: not ssaf-linker %S/Inputs/tu-empty.json -o lu.txt 2>&1 \
+// RUN: not clang-ssaf-linker %S/Inputs/tu-empty.json -o lu.txt 2>&1 \
 // RUN:   | FileCheck %s --match-full-lines --check-prefix=BAD-EXT-OUTPUT
-// BAD-EXT-OUTPUT: ssaf-linker: error: failed to validate summary 'lu.txt': 
Format not registered for extension 'txt'
+// BAD-EXT-OUTPUT: clang-ssaf-linker: error: failed to validate summary 
'lu.txt': Format not registered for extension 'txt'
 
 // Invalid extension on input.
-// RUN: not ssaf-linker %S/Inputs/tu-badext.txt -o %t/lu.json 2>&1 \
+// RUN: not clang-ssaf-linker %S/Inputs/tu-badext.txt -o %t/lu.json 2>&1 \
 // RUN:   | FileCheck %s --match-full-lines --check-prefix=BAD-EXT-INPUT
-// BAD-EXT-INPUT: ssaf-linker: error: failed to validate summary 
'{{.*}}tu-badext.txt': Format not registered for extension 'txt'
+// BAD-EXT-INPUT: clang-ssaf-linker: error: failed to validate summary 
'{{.*}}tu-badext.txt': Format not registered for extension 'txt'
 
 // Output directory does not exist.
-// RUN: not ssaf-linker %S/Inputs/tu-empty.json -o 
%S/Outputs/NonExistentDirectory/lu.json 2>&1 \
+// RUN: not clang-ssaf-linker %S/Inputs/tu-empty.json -o 
%S/Outputs/NonExistentDirectory/lu.json 2>&1 \
 // RUN:   | FileCheck %s --match-full-lines 
--check-prefix=OUTPUT-PARENT-DIR-MISSING
-// OUTPUT-PARENT-DIR-MISSING: ssaf-linker: error: failed to validate summary 
'{{.*}}lu.json': Parent directory does not exist
+// OUTPUT-PARENT-DIR-MISSING: clang-ssaf-linker: error: failed to validate 
summary '{{.*}}lu.json': Parent directory does not exist
 
 // Input summary does not exist.
-// RUN: not ssaf-linker %S/Inputs/tu-nonexistent.json -o %t/lu.json 2>&1 \
+// RUN: not clang-ssaf-linker %S/Inputs/tu-nonexistent.json -o %t/lu.json 2>&1 
\
 // RUN:   | FileCheck %s --match-full-lines --check-prefix=NO-INPUT-FILE
-// NO-INPUT-FILE: ssaf-linker: error: failed to validate summary 
'{{.*}}tu-nonexistent.json': {{[Nn]}}o such file or directory
+// NO-INPUT-FILE: clang-ssaf-linker: error: failed to validate summary 
'{{.*}}tu-nonexistent.json': {{[Nn]}}o such file or directory
 
diff --git a/clang/test/Analysis/Scalable/ssaf-linker/verbose.test 
b/clang/test/Analysis/Scalable/ssaf-linker/verbose.test
index 8e246efd71f2a..d731748ad7547 100644
--- a/clang/test/Analysis/Scalable/ssaf-linker/verbose.test
+++ b/clang/test/Analysis/Scalable/ssaf-linker/verbose.test
@@ -1,9 +1,9 @@
-// Test the --verbose/-v flag of ssaf-linker.
+// Test the --verbose/-v flag of clang-ssaf-linker.
 
 // RUN: rm -rf %t
 // RUN: mkdir -p %t
 
-// RUN: ssaf-linker --verbose %S/Inputs/tu-1.json %S/Inputs/tu-2.json -o 
%t/lu-1+2.json 2>&1 \
+// RUN: clang-ssaf-linker --verbose %S/Inputs/tu-1.json %S/Inputs/tu-2.json -o 
%t/lu-1+2.json 2>&1 \
 // RUN:           | FileCheck %s --match-full-lines
 // CHECK:      note: - Linking started.
 // CHECK-NEXT: note:   - Validating input.
diff --git a/clang/test/Analysis/Scalable/ssaf-linker/version.test 
b/clang/test/Analysis/Scalable/ssaf-linker/version.test
index e6e9e41663199..d777a9f9952a8 100644
--- a/clang/test/Analysis/Scalable/ssaf-linker/version.test
+++ b/clang/test/Analysis/Scalable/ssaf-linker/version.test
@@ -1,5 +1,5 @@
-// Test ssaf-linker version
+// Test clang-ssaf-linker version
 
-// RUN: ssaf-linker --version | FileCheck %s
+// RUN: clang-ssaf-linker --version | FileCheck %s
 
-// CHECK: ssaf-linker
+// CHECK: clang-ssaf-linker
diff --git a/clang/test/CMakeLists.txt b/clang/test/CMakeLists.txt
index 24136256883f3..71bef7b2bab43 100644
--- a/clang/test/CMakeLists.txt
+++ b/clang/test/CMakeLists.txt
@@ -103,10 +103,10 @@ list(APPEND CLANG_TEST_DEPS
   clang-linker-wrapper
   clang-nvlink-wrapper
   clang-offload-bundler
+  clang-ssaf-linker
   clang-sycl-linker
   diagtool
   hmaptool
-  ssaf-linker
   )
 
 if(CLANG_ENABLE_CIR)
diff --git a/clang/test/lit.cfg.py b/clang/test/lit.cfg.py
index bff9480509231..cbbd4627935e1 100644
--- a/clang/test/lit.cfg.py
+++ b/clang/test/lit.cfg.py
@@ -142,7 +142,7 @@
         command=FindTool("clang-extdef-mapping"),
         unresolved="ignore",
     ),
-    "ssaf-linker",
+    "clang-ssaf-linker",
 ]
 
 if config.clang_examples:
diff --git a/clang/tools/ssaf-linker/CMakeLists.txt 
b/clang/tools/ssaf-linker/CMakeLists.txt
index db5750fb1f758..89a1fcb6d272c 100644
--- a/clang/tools/ssaf-linker/CMakeLists.txt
+++ b/clang/tools/ssaf-linker/CMakeLists.txt
@@ -3,11 +3,11 @@ set(LLVM_LINK_COMPONENTS
   Support
   )
 
-add_clang_tool(ssaf-linker
+add_clang_tool(clang-ssaf-linker
   SSAFLinker.cpp
   )
 
-clang_target_link_libraries(ssaf-linker
+clang_target_link_libraries(clang-ssaf-linker
   PRIVATE
   clangAnalysisScalable
   clangBasic

From 47d46325676be5e5104e5d8397c768e5e40af5a5 Mon Sep 17 00:00:00 2001
From: Balazs Benics <[email protected]>
Date: Wed, 11 Mar 2026 18:38:49 +0000
Subject: [PATCH 2/2] Port leftover spellings

---
 clang/tools/ssaf-linker/SSAFLinker.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/clang/tools/ssaf-linker/SSAFLinker.cpp 
b/clang/tools/ssaf-linker/SSAFLinker.cpp
index 66cf8b368487c..2482aaca15782 100644
--- a/clang/tools/ssaf-linker/SSAFLinker.cpp
+++ b/clang/tools/ssaf-linker/SSAFLinker.cpp
@@ -44,7 +44,7 @@ namespace {
 // Command-Line Options
 
//===----------------------------------------------------------------------===//
 
-cl::OptionCategory SsafLinkerCategory("ssaf-linker options");
+cl::OptionCategory SsafLinkerCategory("clang-ssaf-linker options");
 
 cl::list<std::string> InputPaths(cl::Positional, cl::desc("<input files>"),
                                  cl::OneOrMore, cl::cat(SsafLinkerCategory));
@@ -297,7 +297,7 @@ int main(int argc, const char **argv) {
   // path::stem strips the .exe extension on Windows so ToolName is consistent.
   ToolName = llvm::sys::path::stem(argv[0]);
 
-  // Hide options unrelated to ssaf-linker from --help output.
+  // Hide options unrelated to clang-ssaf-linker from --help output.
   cl::HideUnrelatedOptions(SsafLinkerCategory);
   // Register a custom version printer for the --version flag.
   cl::SetVersionPrinter(printVersion);
@@ -306,7 +306,7 @@ int main(int argc, const char **argv) {
 
   initializeJSONFormat();
 
-  llvm::TimerGroup LinkerTimers("ssaf-linker", "SSAF Linker");
+  llvm::TimerGroup LinkerTimers(ToolName, "SSAF Linker");
   LinkerInput LI;
 
   {

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

Reply via email to