@@ -775,7 +775,12 @@ void MergeFunctions::writeAlias(Function *F, Function *G) {
775775 auto *GA = GlobalAlias::create (G->getValueType (), PtrType->getAddressSpace (),
776776 G->getLinkage (), " " , BitcastF, G->getParent ());
777777
778- F->setAlignment (MaybeAlign (std::max (F->getAlignment (), G->getAlignment ())));
778+ const MaybeAlign FAlign = F->getAlign ();
779+ const MaybeAlign GAlign = G->getAlign ();
780+ if (FAlign || GAlign)
781+ F->setAlignment (std::max (FAlign.valueOrOne (), GAlign.valueOrOne ()));
782+ else
783+ F->setAlignment (std::nullopt );
779784 GA->takeName (G);
780785 GA->setVisibility (G->getVisibility ());
781786 GA->setUnnamedAddr (GlobalValue::UnnamedAddr::Global);
@@ -822,12 +827,15 @@ void MergeFunctions::mergeTwoFunctions(Function *F, Function *G) {
822827 removeUsers (F);
823828 F->replaceAllUsesWith (NewF);
824829
825- MaybeAlign MaxAlignment (std::max (G->getAlignment (), NewF->getAlignment ()));
826-
827830 writeThunkOrAlias (F, G);
828831 writeThunkOrAlias (F, NewF);
829832
830- F->setAlignment (MaxAlignment);
833+ const MaybeAlign NewFAlign = NewF->getAlign ();
834+ const MaybeAlign GAlign = G->getAlign ();
835+ if (NewFAlign || GAlign)
836+ F->setAlignment (std::max (NewFAlign.valueOrOne (), GAlign.valueOrOne ()));
837+ else
838+ F->setAlignment (std::nullopt );
831839 F->setLinkage (GlobalValue::PrivateLinkage);
832840 ++NumDoubleWeak;
833841 ++NumFunctionsMerged;
0 commit comments