Make isExtern() be a virtual function inherited from GlobalValue

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4101 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2002-10-09 23:11:33 +00:00
parent e3dcf2ea70
commit 4bbd839d10
3 changed files with 10 additions and 5 deletions

View File

@ -85,7 +85,7 @@ public:
/// is empty if so) this is true for external functions, defined as forward /// is empty if so) this is true for external functions, defined as forward
/// "declare"ations /// "declare"ations
/// ///
bool isExternal() const { return BasicBlocks.empty(); } virtual bool isExternal() const { return BasicBlocks.empty(); }
// getNext/Prev - Return the next or previous function in the list. These // getNext/Prev - Return the next or previous function in the list. These
// methods should never be used directly, and are only used to implement the // methods should never be used directly, and are only used to implement the

View File

@ -26,17 +26,22 @@ protected:
public: public:
~GlobalValue() {} ~GlobalValue() {}
// getType - Global values are always pointers. /// getType - Global values are always pointers.
inline const PointerType *getType() const { inline const PointerType *getType() const {
return (const PointerType*)User::getType(); return (const PointerType*)User::getType();
} }
// Internal Linkage - True if the global value is inaccessible to /// Internal Linkage - True if the global value is inaccessible to
bool hasInternalLinkage() const { return HasInternalLinkage; } bool hasInternalLinkage() const { return HasInternalLinkage; }
bool hasExternalLinkage() const { return !HasInternalLinkage; } bool hasExternalLinkage() const { return !HasInternalLinkage; }
void setInternalLinkage(bool HIL) { HasInternalLinkage = HIL; } void setInternalLinkage(bool HIL) { HasInternalLinkage = HIL; }
// Get the module that this global value is contained inside of... /// isExternal - Return true if the primary definition of this global value is
/// outside of the current translation unit...
virtual bool isExternal() const = 0;
/// getParent - Get the module that this global value is contained inside
/// of...
inline Module *getParent() { return Parent; } inline Module *getParent() { return Parent; }
inline const Module *getParent() const { return Parent; } inline const Module *getParent() const { return Parent; }

View File

@ -46,7 +46,7 @@ public:
/// global variable is defined in some other translation unit, and is thus /// global variable is defined in some other translation unit, and is thus
/// externally defined here. /// externally defined here.
/// ///
bool isExternal() const { return Operands.empty(); } virtual bool isExternal() const { return Operands.empty(); }
/// hasInitializer - Unless a global variable isExternal(), it has an /// hasInitializer - Unless a global variable isExternal(), it has an
/// initializer. The initializer for the global variable/constant is held by /// initializer. The initializer for the global variable/constant is held by