Index: lib/Transforms/NaCl/FlattenGlobals.cpp |
diff --git a/lib/Transforms/NaCl/FlattenGlobals.cpp b/lib/Transforms/NaCl/FlattenGlobals.cpp |
index 86a46b5d30ca6947b41996b01664a131da5fd9e3..77ce2b36b453e837029dc08fc61d2c4135615278 100644 |
--- a/lib/Transforms/NaCl/FlattenGlobals.cpp |
+++ b/lib/Transforms/NaCl/FlattenGlobals.cpp |
@@ -255,8 +255,8 @@ bool FlattenGlobals::runOnModule(Module &M) { |
continue; |
Modified = true; |
- uint64_t Size = DL.getTypeAllocSize( |
- Global->getType()->getPointerElementType()); |
+ Type *GlobalType = Global->getType()->getPointerElementType(); |
+ uint64_t Size = DL.getTypeAllocSize(GlobalType); |
Constant *NewInit; |
Type *NewType; |
if (Global->hasInitializer()) { |
@@ -281,6 +281,8 @@ bool FlattenGlobals::runOnModule(Module &M) { |
NewInit, "", Global, |
Global->getThreadLocalMode()); |
NewGlobal->copyAttributesFrom(Global); |
+ if (NewGlobal->getAlignment() == 0) |
+ NewGlobal->setAlignment(DL.getPrefTypeAlignment(GlobalType)); |
NewGlobal->setExternallyInitialized(Global->isExternallyInitialized()); |
NewGlobal->takeName(Global); |
Global->replaceAllUsesWith( |