mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-09 20:12:21 +02:00
Fixed duplicate global variables when used as default args
This commit is contained in:
parent
503590cea5
commit
fb0bace727
4 changed files with 73 additions and 60 deletions
|
@ -810,13 +810,17 @@ void BfIRCodeGen::Read(llvm::Value*& llvmValue, BfIRCodeGenEntry** codeGenEntry,
|
|||
llvm::GlobalVariable* globalVariable = mLLVMModule->getGlobalVariable(name.c_str(), true);
|
||||
if (globalVariable == NULL)
|
||||
{
|
||||
globalVariable = new llvm::GlobalVariable(
|
||||
*mLLVMModule,
|
||||
varType,
|
||||
isConstant,
|
||||
LLVMMapLinkageType(linkageType),
|
||||
initializer,
|
||||
name.c_str(), NULL, isTLS ? llvm::GlobalValue::GeneralDynamicTLSModel : llvm::GlobalValue::NotThreadLocal);
|
||||
globalVariable = mLLVMModule->getGlobalVariable(name.c_str());
|
||||
if (globalVariable == NULL)
|
||||
{
|
||||
globalVariable = new llvm::GlobalVariable(
|
||||
*mLLVMModule,
|
||||
varType,
|
||||
isConstant,
|
||||
LLVMMapLinkageType(linkageType),
|
||||
initializer,
|
||||
name.c_str(), NULL, isTLS ? llvm::GlobalValue::GeneralDynamicTLSModel : llvm::GlobalValue::NotThreadLocal);
|
||||
}
|
||||
}
|
||||
llvmValue = globalVariable;
|
||||
|
||||
|
@ -2390,13 +2394,17 @@ void BfIRCodeGen::HandleNextCmd()
|
|||
CMD_PARAM(bool, isTLS);
|
||||
CMD_PARAM(llvm::Constant*, initializer);
|
||||
|
||||
auto globalVariable = new llvm::GlobalVariable(
|
||||
*mLLVMModule,
|
||||
varType,
|
||||
isConstant,
|
||||
LLVMMapLinkageType(linkageType),
|
||||
initializer,
|
||||
name.c_str(), NULL, isTLS ? llvm::GlobalValue::GeneralDynamicTLSModel : llvm::GlobalValue::NotThreadLocal);
|
||||
auto globalVariable = mLLVMModule->getGlobalVariable(name.c_str());
|
||||
if (globalVariable == NULL)
|
||||
{
|
||||
globalVariable = new llvm::GlobalVariable(
|
||||
*mLLVMModule,
|
||||
varType,
|
||||
isConstant,
|
||||
LLVMMapLinkageType(linkageType),
|
||||
initializer,
|
||||
name.c_str(), NULL, isTLS ? llvm::GlobalValue::GeneralDynamicTLSModel : llvm::GlobalValue::NotThreadLocal);
|
||||
}
|
||||
SetResult(curId, globalVariable);
|
||||
}
|
||||
break;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue