1
0
mirror of https://github.com/c64scene-ar/llvm-6502.git synced 2025-01-30 19:35:54 +00:00

Implement "internal vs external linkage" which corresponds to the C notion of static

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1362 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2001-11-26 18:46:40 +00:00
parent c5d1d20e28
commit 6197b0fe54
3 changed files with 12 additions and 5 deletions

@ -42,7 +42,7 @@ private:
void setParent(Module *parent);
public:
Method(const MethodType *Ty, const string &Name = "");
Method(const MethodType *Ty, bool isInternal, const string &Name = "");
~Method();
// Specialize setName to handle symbol table majik...

@ -16,9 +16,11 @@ class PointerType;
class GlobalValue : public User {
GlobalValue(const GlobalValue &); // do not implement
protected:
GlobalValue(const Type *Ty, ValueTy vty, const string &name = "")
: User(Ty, vty, name) { Parent = 0; }
GlobalValue(const Type *Ty, ValueTy vty, bool hasInternalLinkage,
const string &name = "")
: User(Ty, vty, name), HasInternalLinkage(hasInternalLinkage), Parent(0) {}
bool HasInternalLinkage; // Is this value accessable externally?
Module *Parent;
public:
~GlobalValue() {}
@ -28,6 +30,11 @@ public:
return (const PointerType*)User::getType();
}
// 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...
inline Module *getParent() { return Parent; }
inline const Module *getParent() const { return Parent; }

@ -24,8 +24,8 @@ class GlobalVariable : public GlobalValue {
bool Constant; // Is this a global constant?
public:
GlobalVariable(const Type *Ty, bool isConstant, ConstPoolVal *Initializer = 0,
const string &Name = "");
GlobalVariable(const Type *Ty, bool isConstant, bool isInternal,
ConstPoolVal *Initializer = 0, const string &Name = "");
~GlobalVariable() {}
// Specialize setName to handle symbol table majik...