From dc716f2dc2df06c40b3709ded81a5b7588f53e7a Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Fri, 18 Sep 2015 18:01:50 -0700 Subject: ICC on Windows: Disable ref-qualified member functions in MSVC <= 2013 Like MSVC, ICC on Windows in debug mode always makes calls to dllexported functions instead of inlining them. Since MSVC 2013 doesn't know about ref-qualification of member functions, this creates an incompatibility between DLL creation and DLL use. Task-number: QTBUG-48349 Change-Id: I42e7ef1a481840699a8dffff14053b594810fb42 Reviewed-by: Olivier Goffart (Woboq GmbH) Reviewed-by: Lars Knoll --- src/corelib/global/qcompilerdetection.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/corelib/global') diff --git a/src/corelib/global/qcompilerdetection.h b/src/corelib/global/qcompilerdetection.h index 4828d8596a..9f79b3e70c 100644 --- a/src/corelib/global/qcompilerdetection.h +++ b/src/corelib/global/qcompilerdetection.h @@ -572,6 +572,9 @@ # if _MSC_VER < 1900 // ICC disables unicode string support when compatibility mode with MSVC 2013 or lower is active # undef Q_COMPILER_UNICODE_STRINGS +// Even though ICC knows about ref-qualified members, MSVC 2013 or lower doesn't, so +// certain member functions (like QString::toUpper) may be missing from the DLLs. +# undef Q_COMPILER_REF_QUALIFIERS // Disable constexpr unless the MS headers have constexpr in all the right places too // (like std::numeric_limits::max()) # undef Q_COMPILER_CONSTEXPR -- cgit v1.2.3