Skip to content

Commit 6875d8a

Browse files
committed
Mark frontend generated strings with attribute unnamed_addr.
This is part of a fix for issue #133.
1 parent 80a65e3 commit 6875d8a

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

gen/toir.cpp

+4-2
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,8 @@ DValue* StringExp::toElem(IRState* p)
378378
llvm::GlobalValue::LinkageTypes _linkage = llvm::GlobalValue::InternalLinkage;
379379
if (Logger::enabled())
380380
Logger::cout() << "type: " << *at << "\ninit: " << *_init << '\n';
381-
llvm::GlobalVariable* gvar = new llvm::GlobalVariable(*gIR->module,at,true,_linkage,_init,".str");
381+
llvm::GlobalVariable* gvar = new llvm::GlobalVariable(*gIR->module, at, true, _linkage, _init, ".str");
382+
gvar->setUnnamedAddr(true);
382383

383384
llvm::ConstantInt* zero = LLConstantInt::get(LLType::getInt32Ty(gIR->context()), 0, false);
384385
LLConstant* idxs[2] = { zero, zero };
@@ -438,7 +439,8 @@ LLConstant* StringExp::toConstElem(IRState* p)
438439
}
439440

440441
llvm::GlobalValue::LinkageTypes _linkage = llvm::GlobalValue::InternalLinkage;
441-
llvm::GlobalVariable* gvar = new llvm::GlobalVariable(*gIR->module,_init->getType(),true,_linkage,_init,".str");
442+
llvm::GlobalVariable* gvar = new llvm::GlobalVariable(*gIR->module, _init->getType(), true, _linkage, _init, ".str");
443+
gvar->setUnnamedAddr(true);
442444

443445
llvm::ConstantInt* zero = LLConstantInt::get(LLType::getInt32Ty(gIR->context()), 0, false);
444446
LLConstant* idxs[2] = { zero, zero };

0 commit comments

Comments
 (0)