From be90d26fc60e02c0f8525740b1256ebed37086a0 Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Fri, 22 Mar 2013 16:42:49 +0100 Subject: [PATCH] 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 Reviewed-by: Thiago Macieira --- src/gui/painting/qdrawhelper.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp index 0f77ae6d865..61a6f2a5f9d 100644 --- a/src/gui/painting/qdrawhelper.cpp +++ b/src/gui/painting/qdrawhelper.cpp @@ -40,12 +40,17 @@ ****************************************************************************/ #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 -# pragma GCC optimize "O3" -# if defined(__i386__) && defined(__SSE2__) && !defined(__SSE2_MATH__) -# pragma GCC target "fpmath=sse" -# endif + +# if (__GNUC__ * 100 + __GNUC_MINOR__ * 10 + __GNUC_PATCHLEVEL__ < 473) +// From GCC 4.7.3 onwards, GCC optimize can result in gcc bailing out with OOM +# pragma GCC optimize "O3" +# endif + +# if defined(__i386__) && defined(__SSE2__) && !defined(__SSE2_MATH__) +# pragma GCC target "fpmath=sse" +# endif #endif #include