hubert.reinterpretcast added inline comments.
================ Comment at: llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp:2144 report_fatal_error( - "Unhandled linkage when mapping linkage to StorageClass."); + "AvailableExternallyLinkage is for its first instance of linkage"); } ---------------- It seems my editing instruction got confused for the text. This is what I meant: ``` "Unhandled AvailableExternallyLinkage when mapping linkage to StorageClass" ``` ================ Comment at: llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp:1641 - // External global variables are already handled. - if (GV->isDeclaration()) + if (GV->isDeclaration()) { + emitLinkage(GV, Csect->getQualNameSymbol()); ---------------- DiggerLin wrote: > hubert.reinterpretcast wrote: > > This should probably be `isDeclarationForLinker`. It seems we need a larger > > followup for `AvailableExternallyLinkage` that would involve checking our > > calls to `isDeclaration`: > > > > ``` > > define void @_Z1gv() { > > entry: > > call void @_Z1fIiEvv() > > ret void > > } > > > > ; Function Attrs: inlinehint nounwind > > define available_externally void @_Z1fIiEvv() #0 { > > entry: > > ret void > > } > > > > attributes #0 = { inlinehint nounwind } > > ``` > > bool isDeclarationForLinker() const { > if (hasAvailableExternallyLinkage()) > return true; > > return isDeclaration(); > } > > since we do not deal with AvailableExternallyLinkage in > AsmPrinter::emitLinkage() > > if change to isDeclarationForLinker here , it will hit a report_fatal_error. What happens for the case above? We need to generate `MCSA_Extern` for the reference. The definition should not appear in the output. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D76932/new/ https://reviews.llvm.org/D76932 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits