mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-02 07:32:52 +00:00
Add a flag to Module::getGlobalVariable to allow it to return vars with
internal linkage. Patch provided by Evan Jones, thanks! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24604 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
aef8c64777
commit
30614675f4
@ -137,13 +137,14 @@ public:
|
||||
//
|
||||
|
||||
/// getGlobalVariable - Look up the specified global variable in the module
|
||||
/// symbol table. If it does not exist, return null. Note that this only
|
||||
/// returns a global variable if it does not have internal linkage. The type
|
||||
/// argument should be the underlying type of the global, i.e., it should not
|
||||
/// have the top-level PointerType, which represents the address of the
|
||||
/// global.
|
||||
/// symbol table. If it does not exist, return null. The type argument
|
||||
/// should be the underlying type of the global, i.e., it should not have
|
||||
/// the top-level PointerType, which represents the address of the global.
|
||||
/// If AllowInternal is set to true, this function will return types that
|
||||
/// have InternalLinkage. By default, these types are not returned.
|
||||
///
|
||||
GlobalVariable *getGlobalVariable(const std::string &Name, const Type *Ty);
|
||||
GlobalVariable *getGlobalVariable(const std::string &Name, const Type *Ty,
|
||||
bool AllowInternal = false);
|
||||
|
||||
|
||||
//===--------------------------------------------------------------------===//
|
||||
|
@ -206,17 +206,17 @@ Function *Module::getNamedFunction(const std::string &Name) {
|
||||
//
|
||||
|
||||
/// getGlobalVariable - Look up the specified global variable in the module
|
||||
/// symbol table. If it does not exist, return null. Note that this only
|
||||
/// returns a global variable if it does not have internal linkage. The type
|
||||
/// argument should be the underlying type of the global, ie, it should not
|
||||
/// have the top-level PointerType, which represents the address of the
|
||||
/// global.
|
||||
/// symbol table. If it does not exist, return null. The type argument
|
||||
/// should be the underlying type of the global, i.e., it should not have
|
||||
/// the top-level PointerType, which represents the address of the global.
|
||||
/// If AllowInternal is set to true, this function will return types that
|
||||
/// have InternalLinkage. By default, these types are not returned.
|
||||
///
|
||||
GlobalVariable *Module::getGlobalVariable(const std::string &Name,
|
||||
const Type *Ty) {
|
||||
const Type *Ty, bool AllowInternal) {
|
||||
if (Value *V = getSymbolTable().lookup(PointerType::get(Ty), Name)) {
|
||||
GlobalVariable *Result = cast<GlobalVariable>(V);
|
||||
if (!Result->hasInternalLinkage())
|
||||
if (AllowInternal || !Result->hasInternalLinkage())
|
||||
return Result;
|
||||
}
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user