File tree Expand file tree Collapse file tree 1 file changed +7
-2
lines changed Expand file tree Collapse file tree 1 file changed +7
-2
lines changed Original file line number Diff line number Diff line change @@ -360,8 +360,13 @@ GlobalVariable *createPGOFuncNameVar(Module &M,
360
360
else if (Linkage == GlobalValue::AvailableExternallyLinkage)
361
361
Linkage = GlobalValue::LinkOnceODRLinkage;
362
362
else if (Linkage == GlobalValue::InternalLinkage ||
363
- Linkage == GlobalValue::ExternalLinkage)
364
- Linkage = GlobalValue::PrivateLinkage;
363
+ Linkage == GlobalValue::ExternalLinkage) {
364
+ // LDC: use internal instead of private linkage for COFF (still local, but
365
+ // allows for COMDATs on Windows)
366
+ Linkage = Triple (M.getTargetTriple ()).isOSBinFormatCOFF ()
367
+ ? GlobalValue::InternalLinkage
368
+ : GlobalValue::PrivateLinkage;
369
+ }
365
370
366
371
auto *Value =
367
372
ConstantDataArray::getString (M.getContext (), PGOFuncName, false );
You can’t perform that action at this time.
0 commit comments