diff --git a/Telegram/SourceFiles/passport/passport_form_controller.cpp b/Telegram/SourceFiles/passport/passport_form_controller.cpp index 3c3b6b81e6..28fe296c77 100644 --- a/Telegram/SourceFiles/passport/passport_form_controller.cpp +++ b/Telegram/SourceFiles/passport/passport_form_controller.cpp @@ -995,12 +995,17 @@ void FormController::recoverPassword() { .hasRecovery = _password.hasRecovery, .pendingResetDate = _password.pendingResetDate, }; + + // MSVC x64 (non-LTO) Release build fails with a linker error: + // - unresolved external variant::variant(variant const &) + // It looks like a MSVC bug and this works like a workaround. + const auto force = fields.mtp.newSecureSecretAlgo; + const auto box = _view->show(Box( &_controller->session().mtp(), &_controller->session(), pattern, fields)); - box->newPasswordSet( ) | rpl::start_with_next([=](const QByteArray &password) { if (password.isEmpty()) { diff --git a/Telegram/SourceFiles/passport/passport_panel_controller.cpp b/Telegram/SourceFiles/passport/passport_panel_controller.cpp index f5f2586557..d4b96b3c6f 100644 --- a/Telegram/SourceFiles/passport/passport_panel_controller.cpp +++ b/Telegram/SourceFiles/passport/passport_panel_controller.cpp @@ -690,6 +690,12 @@ void PanelController::setupPassword() { .hasRecovery = settings.hasRecovery, .pendingResetDate = settings.pendingResetDate, }; + + // MSVC x64 (non-LTO) Release build fails with a linker error: + // - unresolved external variant::variant(variant const &) + // It looks like a MSVC bug and this works like a workaround. + const auto force = fields.mtp.newSecureSecretAlgo; + auto box = show(Box(&_form->window()->session(), fields)); box->newPasswordSet( ) | rpl::start_with_next([=](const QByteArray &password) {