diff options
Diffstat (limited to 'lib/Transforms/NaCl/ExpandTlsConstantExpr.cpp')
-rw-r--r-- | lib/Transforms/NaCl/ExpandTlsConstantExpr.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/Transforms/NaCl/ExpandTlsConstantExpr.cpp b/lib/Transforms/NaCl/ExpandTlsConstantExpr.cpp index 45612b2616..51b21cbf2a 100644 --- a/lib/Transforms/NaCl/ExpandTlsConstantExpr.cpp +++ b/lib/Transforms/NaCl/ExpandTlsConstantExpr.cpp @@ -95,6 +95,14 @@ static void expandConstExpr(Constant *Expr) { } bool ExpandTlsConstantExpr::runOnModule(Module &M) { + for (Module::alias_iterator Iter = M.alias_begin(); + Iter != M.alias_end(); ) { + GlobalAlias *GA = Iter++; + if (GA->isThreadDependent()) { + GA->replaceAllUsesWith(GA->getAliasee()); + GA->eraseFromParent(); + } + } for (Module::global_iterator Global = M.global_begin(); Global != M.global_end(); ++Global) { |