diff options
author | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2012-01-30 15:16:50 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-02-05 19:03:18 +0100 |
commit | 9f54846d951838361f4188b423e7aa7c7b9a9540 (patch) | |
tree | 021271df2b4199c261c238b1e032e1ec96a927bb | |
parent | 60f24ec608fc784731a18b43fa59b82ad41f9478 (diff) |
qmake: Work around MSVC compiler bug.
Disable optimization for getProjectUUID() as it triggers
ASSERT: "&other != this" at qstring.h:720 with -O2.
Change-Id: I51b31d4318ba9be187c186623099171d8f48235b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
-rw-r--r-- | qmake/generators/win32/msvc_vcproj.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/qmake/generators/win32/msvc_vcproj.cpp b/qmake/generators/win32/msvc_vcproj.cpp index 439574fbb0..109b50fd94 100644 --- a/qmake/generators/win32/msvc_vcproj.cpp +++ b/qmake/generators/win32/msvc_vcproj.cpp @@ -305,6 +305,16 @@ struct VcsolutionDepend { QStringList dependencies; }; +/* Disable optimization in getProjectUUID() due to a compiler + * bug in MSVC 2010 that causes ASSERT: "&other != this" in the QString + * copy constructor for non-empty file names at: + * filename.isEmpty()?project->first("QMAKE_MAKEFILE"):filename */ + +#ifdef Q_CC_MSVC +# pragma optimize( "g", off ) +# pragma warning ( disable : 4748 ) +#endif + QUuid VcprojGenerator::getProjectUUID(const QString &filename) { bool validUUID = true; @@ -335,6 +345,10 @@ QUuid VcprojGenerator::getProjectUUID(const QString &filename) return uuid; } +#ifdef Q_CC_MSVC +# pragma optimize( "g", on ) +#endif + QUuid VcprojGenerator::increaseUUID(const QUuid &id) { QUuid result(id); |