mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
Add static methods to handle Linkage Types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97871 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
eea3f7e4ee
commit
44f1680cdf
@ -110,36 +110,51 @@ public:
|
|||||||
return ODR ? WeakODRLinkage : WeakAnyLinkage;
|
return ODR ? WeakODRLinkage : WeakAnyLinkage;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool hasExternalLinkage() const { return Linkage == ExternalLinkage; }
|
static bool isExternalLinkage(LinkageTypes Linkage) {
|
||||||
bool hasAvailableExternallyLinkage() const {
|
return Linkage == ExternalLinkage;
|
||||||
|
}
|
||||||
|
static bool isAvailableExternallyLinkage(LinkageTypes Linkage) {
|
||||||
return Linkage == AvailableExternallyLinkage;
|
return Linkage == AvailableExternallyLinkage;
|
||||||
}
|
}
|
||||||
bool hasLinkOnceLinkage() const {
|
static bool isLinkOnceLinkage(LinkageTypes Linkage) {
|
||||||
return Linkage == LinkOnceAnyLinkage || Linkage == LinkOnceODRLinkage;
|
return Linkage == LinkOnceAnyLinkage || Linkage == LinkOnceODRLinkage;
|
||||||
}
|
}
|
||||||
bool hasWeakLinkage() const {
|
static bool isWeakLinkage(LinkageTypes Linkage) {
|
||||||
return Linkage == WeakAnyLinkage || Linkage == WeakODRLinkage;
|
return Linkage == WeakAnyLinkage || Linkage == WeakODRLinkage;
|
||||||
}
|
}
|
||||||
bool hasAppendingLinkage() const { return Linkage == AppendingLinkage; }
|
static bool isAppendingLinkage(LinkageTypes Linkage) {
|
||||||
bool hasInternalLinkage() const { return Linkage == InternalLinkage; }
|
return Linkage == AppendingLinkage;
|
||||||
bool hasPrivateLinkage() const { return Linkage == PrivateLinkage; }
|
}
|
||||||
bool hasLinkerPrivateLinkage() const { return Linkage==LinkerPrivateLinkage; }
|
static bool isInternalLinkage(LinkageTypes Linkage) {
|
||||||
bool hasLocalLinkage() const {
|
return Linkage == InternalLinkage;
|
||||||
return hasInternalLinkage() || hasPrivateLinkage() ||
|
}
|
||||||
hasLinkerPrivateLinkage();
|
static bool isPrivateLinkage(LinkageTypes Linkage) {
|
||||||
|
return Linkage == PrivateLinkage;
|
||||||
|
}
|
||||||
|
static bool isLinkerPrivateLinkage(LinkageTypes Linkage) {
|
||||||
|
return Linkage==LinkerPrivateLinkage;
|
||||||
|
}
|
||||||
|
static bool isLocalLinkage(LinkageTypes Linkage) {
|
||||||
|
return isInternalLinkage(Linkage) || isPrivateLinkage(Linkage) ||
|
||||||
|
isLinkerPrivateLinkage(Linkage);
|
||||||
|
}
|
||||||
|
static bool isDLLImportLinkage(LinkageTypes Linkage) {
|
||||||
|
return Linkage == DLLImportLinkage;
|
||||||
|
}
|
||||||
|
static bool isDLLExportLinkage(LinkageTypes Linkage) {
|
||||||
|
return Linkage == DLLExportLinkage;
|
||||||
|
}
|
||||||
|
static bool isExternalWeakLinkage(LinkageTypes Linkage) {
|
||||||
|
return Linkage == ExternalWeakLinkage;
|
||||||
|
}
|
||||||
|
static bool isCommonLinkage(LinkageTypes Linkage) {
|
||||||
|
return Linkage == CommonLinkage;
|
||||||
}
|
}
|
||||||
bool hasDLLImportLinkage() const { return Linkage == DLLImportLinkage; }
|
|
||||||
bool hasDLLExportLinkage() const { return Linkage == DLLExportLinkage; }
|
|
||||||
bool hasExternalWeakLinkage() const { return Linkage == ExternalWeakLinkage; }
|
|
||||||
bool hasCommonLinkage() const { return Linkage == CommonLinkage; }
|
|
||||||
|
|
||||||
void setLinkage(LinkageTypes LT) { Linkage = LT; }
|
|
||||||
LinkageTypes getLinkage() const { return Linkage; }
|
|
||||||
|
|
||||||
/// mayBeOverridden - Whether the definition of this global may be replaced
|
/// mayBeOverridden - Whether the definition of this global may be replaced
|
||||||
/// by something non-equivalent at link time. For example, if a function has
|
/// by something non-equivalent at link time. For example, if a function has
|
||||||
/// weak linkage then the code defining it may be replaced by different code.
|
/// weak linkage then the code defining it may be replaced by different code.
|
||||||
bool mayBeOverridden() const {
|
static bool mayBeOverridden(LinkageTypes Linkage) {
|
||||||
return (Linkage == WeakAnyLinkage ||
|
return (Linkage == WeakAnyLinkage ||
|
||||||
Linkage == LinkOnceAnyLinkage ||
|
Linkage == LinkOnceAnyLinkage ||
|
||||||
Linkage == CommonLinkage ||
|
Linkage == CommonLinkage ||
|
||||||
@ -148,7 +163,7 @@ public:
|
|||||||
|
|
||||||
/// isWeakForLinker - Whether the definition of this global may be replaced at
|
/// isWeakForLinker - Whether the definition of this global may be replaced at
|
||||||
/// link time.
|
/// link time.
|
||||||
bool isWeakForLinker() const {
|
static bool isWeakForLinker(LinkageTypes Linkage) {
|
||||||
return (Linkage == AvailableExternallyLinkage ||
|
return (Linkage == AvailableExternallyLinkage ||
|
||||||
Linkage == WeakAnyLinkage ||
|
Linkage == WeakAnyLinkage ||
|
||||||
Linkage == WeakODRLinkage ||
|
Linkage == WeakODRLinkage ||
|
||||||
@ -158,6 +173,33 @@ public:
|
|||||||
Linkage == ExternalWeakLinkage);
|
Linkage == ExternalWeakLinkage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool hasExternalLinkage() const { return isExternalLinkage(Linkage); }
|
||||||
|
bool hasAvailableExternallyLinkage() const {
|
||||||
|
return isAvailableExternallyLinkage(Linkage);
|
||||||
|
}
|
||||||
|
bool hasLinkOnceLinkage() const {
|
||||||
|
return isLinkOnceLinkage(Linkage);
|
||||||
|
}
|
||||||
|
bool hasWeakLinkage() const {
|
||||||
|
return isWeakLinkage(Linkage);
|
||||||
|
}
|
||||||
|
bool hasAppendingLinkage() const { return isAppendingLinkage(Linkage); }
|
||||||
|
bool hasInternalLinkage() const { return isInternalLinkage(Linkage); }
|
||||||
|
bool hasPrivateLinkage() const { return isPrivateLinkage(Linkage); }
|
||||||
|
bool hasLinkerPrivateLinkage() const { return isLinkerPrivateLinkage(Linkage); }
|
||||||
|
bool hasLocalLinkage() const { return isLocalLinkage(Linkage); }
|
||||||
|
bool hasDLLImportLinkage() const { return isDLLImportLinkage(Linkage); }
|
||||||
|
bool hasDLLExportLinkage() const { return isDLLExportLinkage(Linkage); }
|
||||||
|
bool hasExternalWeakLinkage() const { return isExternalWeakLinkage(Linkage); }
|
||||||
|
bool hasCommonLinkage() const { return isCommonLinkage(Linkage); }
|
||||||
|
|
||||||
|
void setLinkage(LinkageTypes LT) { Linkage = LT; }
|
||||||
|
LinkageTypes getLinkage() const { return Linkage; }
|
||||||
|
|
||||||
|
bool mayBeOverridden() const { return mayBeOverridden(Linkage); }
|
||||||
|
|
||||||
|
bool isWeakForLinker() const { return isWeakForLinker(Linkage); }
|
||||||
|
|
||||||
/// copyAttributesFrom - copy all additional attributes (those not needed to
|
/// copyAttributesFrom - copy all additional attributes (those not needed to
|
||||||
/// create a GlobalValue) from the GlobalValue Src to this one.
|
/// create a GlobalValue) from the GlobalValue Src to this one.
|
||||||
virtual void copyAttributesFrom(const GlobalValue *Src);
|
virtual void copyAttributesFrom(const GlobalValue *Src);
|
||||||
|
Loading…
Reference in New Issue
Block a user