aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Linker/LinkModules.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Linker/LinkModules.cpp')
-rw-r--r--llvm/lib/Linker/LinkModules.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/llvm/lib/Linker/LinkModules.cpp b/llvm/lib/Linker/LinkModules.cpp
index 17c3f09..2f5fac4 100644
--- a/llvm/lib/Linker/LinkModules.cpp
+++ b/llvm/lib/Linker/LinkModules.cpp
@@ -352,8 +352,12 @@ bool ModuleLinker::linkIfNeeded(GlobalValue &GV,
SGVar->setConstant(false);
}
if (DGVar->hasCommonLinkage() && SGVar->hasCommonLinkage()) {
- MaybeAlign Align(
- std::max(DGVar->getAlignment(), SGVar->getAlignment()));
+ MaybeAlign DAlign = DGVar->getAlign();
+ MaybeAlign SAlign = SGVar->getAlign();
+ MaybeAlign Align = std::nullopt;
+ if (DAlign || SAlign)
+ Align = std::max(DAlign.valueOrOne(), SAlign.valueOrOne());
+
SGVar->setAlignment(Align);
DGVar->setAlignment(Align);
}