Fix gcc OOM error when compiling in release mode

O3 leads to gcc bailing out with OOM on e.g. MinGW with gcc
4.7.3 onwards.

Task-number: QTBUG-29099
Change-Id: I3ce49794fa4857e756d2994454d4144cfb44ce58
Reviewed-by: Jonathan Liu <net147@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
Kai Koehne 2013-03-22 16:42:49 +01:00 committed by The Qt Project
parent c9f697a1d0
commit be90d26fc6

View File

@ -40,12 +40,17 @@
****************************************************************************/ ****************************************************************************/
#if defined(__OPTIMIZE__) && !defined(__INTEL_COMPILER) && defined(__GNUC__) \ #if defined(__OPTIMIZE__) && !defined(__INTEL_COMPILER) && defined(__GNUC__) \
&& (__GNUC__ * 100 + __GNUC_MINOR__ >= 404) && (__GNUC__ * 100 + __GNUC_MINOR__ * 10 + __GNUC_PATCHLEVEL__ >= 440)
// GCC 4.4 supports #pragma GCC optimize and #pragma GCC target // GCC 4.4 supports #pragma GCC optimize and #pragma GCC target
# pragma GCC optimize "O3"
# if defined(__i386__) && defined(__SSE2__) && !defined(__SSE2_MATH__) # if (__GNUC__ * 100 + __GNUC_MINOR__ * 10 + __GNUC_PATCHLEVEL__ < 473)
# pragma GCC target "fpmath=sse" // From GCC 4.7.3 onwards, GCC optimize can result in gcc bailing out with OOM
# endif # pragma GCC optimize "O3"
# endif
# if defined(__i386__) && defined(__SSE2__) && !defined(__SSE2_MATH__)
# pragma GCC target "fpmath=sse"
# endif
#endif #endif
#include <qstylehints.h> #include <qstylehints.h>