[clang] Fix callee type generation (PR #186272)
Paul Kirth via cfe-commits
cfe-commits at lists.llvm.org
Thu Mar 12 16:56:37 PDT 2026
================
@@ -3267,8 +3267,10 @@ void CodeGenModule::createFunctionTypeMetadataForIcall(const FunctionDecl *FD,
void CodeGenModule::createCalleeTypeMetadataForIcall(const QualType &QT,
llvm::CallBase *CB) {
- // Only if needed for call graph section and only for indirect calls.
- if (!CodeGenOpts.CallGraphSection || !CB->isIndirectCall())
+ // Only if needed for call graph section and only for indirect calls that are
+ // visible externally.
+ if (!CodeGenOpts.CallGraphSection || !CB->isIndirectCall() ||
+ !isExternallyVisible(QT->getLinkage()))
----------------
ilovepi wrote:
Is this the right approach? I think we'd still want the metadata if its an internal symbol... The test case is one I'd expect to work correctly, and I'm surprised we've not hit this issue before.
https://github.com/llvm/llvm-project/pull/186272
More information about the cfe-commits
mailing list