- /// Internal Linkage - True if the global value is inaccessible to
- bool hasInternalLinkage() const { return HasInternalLinkage; }
- bool hasExternalLinkage() const { return !HasInternalLinkage; }
- void setInternalLinkage(bool HIL) { HasInternalLinkage = HIL; }
+ bool hasExternalLinkage() const { return Linkage == ExternalLinkage; }
+ bool hasLinkOnceLinkage() const { return Linkage == LinkOnceLinkage; }
+ bool hasWeakLinkage() const { return Linkage == WeakLinkage; }
+ bool hasAppendingLinkage() const { return Linkage == AppendingLinkage; }
+ bool hasInternalLinkage() const { return Linkage == InternalLinkage; }
+ void setLinkage(LinkageTypes LT) { Linkage = LT; }
+ LinkageTypes getLinkage() const { return Linkage; }
+
+ /// hasNotBeenReadFromBytecode - If a module provider is being used to lazily
+ /// stream in functions from disk, this method can be used to check to see if
+ /// the function has been read in yet or not. Unless you are working on the
+ /// JIT or something else that streams stuff in lazily, you don't need to
+ /// worry about this.
+ bool hasNotBeenReadFromBytecode() const { return Linkage == GhostLinkage; }
+
+ /// Override from Constant class. No GlobalValue's are null values so this
+ /// always returns false.
+ virtual bool isNullValue() const { return false; }
+
+ /// Override from Constant class.
+ virtual void destroyConstant();