diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2011-02-12 18:03:13 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2011-02-12 18:03:13 +0000 |
commit | 8cc5910dbc242976211e2ad81d94255e3ee6af7d (patch) | |
tree | e6a1088165fb2851bf5a783bc0fab90b300ed6c0 /llvm/tools/lto/LTOCodeGenerator.cpp | |
parent | 69affe6a944d6d703dbdca530471a0b2480c1385 (diff) | |
download | bcm5719-llvm-8cc5910dbc242976211e2ad81d94255e3ee6af7d.tar.gz bcm5719-llvm-8cc5910dbc242976211e2ad81d94255e3ee6af7d.zip |
Preserve aliases if needed.
llvm-svn: 125439
Diffstat (limited to 'llvm/tools/lto/LTOCodeGenerator.cpp')
-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)); } |