diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2024-01-16 08:45:27 -0800 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2024-01-17 21:50:27 +0000 |
commit | c09219e946ed3d90349c3638afe304553bf38011 (patch) | |
tree | b67776761d288b8436bfeb29a2822b6e95dcb6e7 /src/network/access/qnetworkrequest.cpp | |
parent | f3305ae07c42e4f7a37ee421a8171b5852630320 (diff) |
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
Pick-to: 6.7
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>
Diffstat (limited to 'src/network/access/qnetworkrequest.cpp')
-rw-r--r-- | src/network/access/qnetworkrequest.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/network/access/qnetworkrequest.cpp b/src/network/access/qnetworkrequest.cpp index 3dc8dc069f..cbfd1739ab 100644 --- a/src/network/access/qnetworkrequest.cpp +++ b/src/network/access/qnetworkrequest.cpp @@ -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) |