[llvm] [WIP][CFI][LTO] Avoid duplicate symbols on aliased weak function (PR #150072)
Vitaly Buka via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 22 10:35:27 PDT 2025
https://github.com/vitalybuka created https://github.com/llvm/llvm-project/pull/150072
Problem is that LowerTypeTests expects that only one
definition will be left by LTO for a symbol.
However, thanks to strong alias, weak non-prevaling
definition can be preserved.
So strong and weak function definition will be renamed to strong .cfi,
making them duplicate.
Fixes #150070.
>From 800b92b0620753905695509d21a8b50762e3c097 Mon Sep 17 00:00:00 2001
From: Vitaly Buka <vitalybuka at google.com>
Date: Tue, 22 Jul 2025 10:35:12 -0700
Subject: [PATCH] =?UTF-8?q?[=F0=9D=98=80=F0=9D=97=BD=F0=9D=97=BF]=20initia?=
=?UTF-8?q?l=20version?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Created using spr 1.3.6
---
llvm/lib/Transforms/IPO/LowerTypeTests.cpp | 1 -
1 file changed, 1 deletion(-)
diff --git a/llvm/lib/Transforms/IPO/LowerTypeTests.cpp b/llvm/lib/Transforms/IPO/LowerTypeTests.cpp
index 486205c8a3848..71f827dd87086 100644
--- a/llvm/lib/Transforms/IPO/LowerTypeTests.cpp
+++ b/llvm/lib/Transforms/IPO/LowerTypeTests.cpp
@@ -1135,7 +1135,6 @@ void LowerTypeTestsModule::importFunction(
} else {
F->setName(Name + ".cfi");
maybeReplaceComdat(F, Name);
- F->setLinkage(GlobalValue::ExternalLinkage);
FDecl = Function::Create(F->getFunctionType(), GlobalValue::ExternalLinkage,
F->getAddressSpace(), Name, &M);
FDecl->setVisibility(Visibility);
More information about the llvm-commits
mailing list