diff options
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/tools/lto/LTOCodeGenerator.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/tools/lto/LTOCodeGenerator.cpp b/llvm/tools/lto/LTOCodeGenerator.cpp index b2554f87b59..adb7102b3c7 100644 --- a/llvm/tools/lto/LTOCodeGenerator.cpp +++ b/llvm/tools/lto/LTOCodeGenerator.cpp @@ -367,6 +367,14 @@ void LTOCodeGenerator::applyScopeRestrictions() { _mustPreserveSymbols.count(Buffer)) mustPreserveList.push_back(::strdup(v->getNameStr().c_str())); } + for (Module::alias_iterator a = mergedModule->alias_begin(), + e = mergedModule->alias_end(); a != e; ++a) { + Buffer.clear(); + mangler.getNameWithPrefix(Buffer, a, false); + if (!a->isDeclaration() && + _mustPreserveSymbols.count(Buffer)) + mustPreserveList.push_back(::strdup(a->getNameStr().c_str())); + } passes.add(createInternalizePass(mustPreserveList)); } |

