void setLinkage(LinkageTypes LT) { Linkage = LT; }
LinkageTypes getLinkage() const { return Linkage; }
- /// isWeakForLinker - Determines if symbol is weak for linker having weak or
- /// linkonce or common or extweak LLVM linkage.
- bool isWeakForLinker() const {
+ /// mayBeOverridden - Whether the definition of this global may be replaced
+ /// at link time. For example, if a function has weak linkage then the code
+ /// defining it may be replaced by different code.
+ bool mayBeOverridden() const {
return (Linkage == WeakLinkage ||
Linkage == LinkOnceLinkage ||
Linkage == CommonLinkage ||
/// value is outside of the current translation unit...
virtual bool isDeclaration() const = 0;
+ /// removeFromParent - This method unlinks 'this' from the containing module,
+ /// but does not delete it.
+ virtual void removeFromParent() = 0;
+
+ /// eraseFromParent - This method unlinks 'this' from the containing module
+ /// and deletes it.
+ virtual void eraseFromParent() = 0;
+
/// getParent - Get the module that this global value is contained inside
/// of...
inline Module *getParent() { return Parent; }