From dc716f2dc2df06c40b3709ded81a5b7588f53e7a Mon Sep 17 00:00:00 2001
From: Thiago Macieira <thiago.macieira@intel.com>
Date: Fri, 18 Sep 2015 18:01:50 -0700
Subject: [PATCH] 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) <ogoffart@woboq.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
---
 src/corelib/global/qcompilerdetection.h | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/corelib/global/qcompilerdetection.h b/src/corelib/global/qcompilerdetection.h
index 4828d8596a2..9f79b3e70c4 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<T>::max())
 #        undef Q_COMPILER_CONSTEXPR
-- 
GitLab