QNetworkRequest: export the static constexpr (inline) member variables
All that is required is that we write the declaration as if they weren't inline, like we used to for C++98 non-constexpr static members. Amends 090991123dd82796fe956e4153bc26ace22280ca. This is required with MinGW and happens with both GCC and Clang: when a static constexpr variable found in an exported class is used in a context that requires getting its address, the compiler emit a DLL- importing statement. For example: void f(const std::chrono::milliseconds &ms); void f() { f(QNetworkRequest::DefaultTransferTimeout); } Emits with GCC: _Z1fv: movq __imp__ZN15QNetworkRequest22DefaultTransferTimeoutE(%rip), %rcx jmp _Z1fRKNSt6chrono8durationIxSt5ratioILx1ELx1000EEEE And Clang: _Z1fv: # @_Z1fv # %bb.0: movq __imp__ZN15QNetworkRequest22DefaultTransferTimeoutE(%rip), %rcx jmp _Z1fRKNSt6chrono8durationIxSt5ratioILx1ELx1000EEEE # TAILCALL Fixes: QTBUG-121135 Change-Id: I76ffba14ece04f24b43efffd17aae1a98071c570 Reviewed-by: Juha Vuolle <juha.vuolle@qt.io> Reviewed-by: André Klitzing <aklitzing@gmail.com> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit c09219e946ed3d90349c3638afe304553bf38011) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
97dc63861e
commit
96d03949d2
@ -30,6 +30,8 @@ QT_BEGIN_NAMESPACE
|
||||
using namespace Qt::StringLiterals;
|
||||
using namespace std::chrono_literals;
|
||||
|
||||
constexpr std::chrono::milliseconds QNetworkRequest::DefaultTransferTimeout;
|
||||
|
||||
QT_IMPL_METATYPE_EXTERN(QNetworkRequest)
|
||||
QT_IMPL_METATYPE_EXTERN_TAGGED(QNetworkRequest::RedirectPolicy, QNetworkRequest__RedirectPolicy)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user