diff options
Diffstat (limited to 'llvm/lib/Linker/LinkModules.cpp')
-rw-r--r-- | llvm/lib/Linker/LinkModules.cpp | 8 |
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); } |