From 2837f5452aae4f856790bf111b8279e8d5451d5e Mon Sep 17 00:00:00 2001 From: Tom Harrison Date: Sat, 6 Oct 2018 14:28:17 +1000 Subject: [PATCH] [gh-198] Internalise variables when using LTO. --- src/dale/Generator/Generator.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/dale/Generator/Generator.cpp b/src/dale/Generator/Generator.cpp index a92e3e18..301eabc3 100644 --- a/src/dale/Generator/Generator.cpp +++ b/src/dale/Generator/Generator.cpp @@ -362,6 +362,14 @@ int Generator::run(std::vector *file_paths, b->setLinkage(ctx->toLLVMLinkage(Linkage::Intern)); } } + for (llvm::Module::global_iterator b = mod->global_begin(), + e = mod->global_end(); + b != e; + ++b) { + if (b->hasInitializer()) { + b->setLinkage(ctx->toLLVMLinkage(Linkage::Intern)); + } + } llvm::Function *main = mod->getFunction("main"); main->setLinkage(ctx->toLLVMLinkage(Linkage::Extern_C)); }