From 4bbd839d10b14cd9028896800faa892e9d8ce3a3 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 9 Oct 2002 23:11:33 +0000 Subject: 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 --- include/llvm/Function.h | 2 +- include/llvm/GlobalValue.h | 11 ++++++++--- include/llvm/GlobalVariable.h | 2 +- 3 files changed, 10 insertions(+), 5 deletions(-) (limited to 'include/llvm') diff --git a/include/llvm/Function.h b/include/llvm/Function.h index 4c0e0ec..87e6bad 100644 --- a/include/llvm/Function.h +++ b/include/llvm/Function.h @@ -85,7 +85,7 @@ public: /// is empty if so) this is true for external functions, defined as forward /// "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 // methods should never be used directly, and are only used to implement the diff --git a/include/llvm/GlobalValue.h b/include/llvm/GlobalValue.h index 56e4a3e..af2ff23 100644 --- a/include/llvm/GlobalValue.h +++ b/include/llvm/GlobalValue.h @@ -26,17 +26,22 @@ protected: public: ~GlobalValue() {} - // getType - Global values are always pointers. + /// getType - Global values are always pointers. inline const PointerType *getType() const { 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 hasExternalLinkage() const { return !HasInternalLinkage; } 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 const Module *getParent() const { return Parent; } diff --git a/include/llvm/GlobalVariable.h b/include/llvm/GlobalVariable.h index 12862cc..372b7a2 100644 --- a/include/llvm/GlobalVariable.h +++ b/include/llvm/GlobalVariable.h @@ -46,7 +46,7 @@ public: /// global variable is defined in some other translation unit, and is thus /// 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 /// initializer. The initializer for the global variable/constant is held by -- cgit v1.1