llvm::GlobalValue::LinkageTypes DtoExternalLinkage(Dsymbol* sym, bool checkInline) { if (DtoIsTemplateInstance(sym)) return templateLinkage; else if (checkInline && isAvailableExternally(sym)) return llvm::GlobalValue::AvailableExternallyLinkage; else return llvm::GlobalValue::ExternalLinkage; }
llvm::GlobalValue::LinkageTypes DtoExternalLinkage(Dsymbol* sym) { if (needsTemplateLinkage(sym)) return templateLinkage; else if (isAvailableExternally(sym) && mustDefineSymbol(sym)) return llvm::GlobalValue::AvailableExternallyLinkage; else return llvm::GlobalValue::ExternalLinkage; }
llvm::GlobalValue::LinkageTypes DtoInternalLinkage(Dsymbol* sym) { if (DtoIsTemplateInstance(sym)) { if (isAvailableExternally(sym)) return llvm::GlobalValue::AvailableExternallyLinkage; return templateLinkage; } else return llvm::GlobalValue::InternalLinkage; }