================
@@ -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:
Then, I guess leave a TODO about trying to eliminate skipping internal symbols.
I'm almost certain that will break how any of this was designed to work in the
first place, and I'm still rather unconvinced by the analysis and reasoning
about precicly what's wrong.
https://github.com/llvm/llvm-project/pull/186272
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits