am 54edf543: Add cube gather tests that avoid corners; remove D32F from mustpass
authorPyry Haulos <phaulos@google.com>
Wed, 19 Nov 2014 20:05:59 +0000 (20:05 +0000)
committerAndroid Git Automerger <android-git-automerger@android.com>
Wed, 19 Nov 2014 20:05:59 +0000 (20:05 +0000)
* commit '54edf5431a35b399c5f6d3141be07a33d73c3b8b':
  Add cube gather tests that avoid corners; remove D32F from mustpass

modules/glshared/glsVertexArrayTests.cpp

index 4c9c19b..43aeb83 100644 (file)
@@ -460,7 +460,19 @@ inline GLValue::Double abs (GLValue::Double val)
 }
 
 template<class T>
-inline static void alignmentSafeAssignment (char* dst, T val)
+static
+#if (DE_COMPILER == DE_COMPILER_GCC) && (DE_CPU == DE_CPU_X86) && \
+       (__GNUC__ == 4) && (__GNUC_MINOR__ == 8) && (__GNUC_PATCHLEVEL__ == 0)
+       // GCC 4.8.0 generates internal compiler error (assign_by_spills) in
+       // RandomArrayGenerator::createQuads() when compiled with -march=prescott.
+       // As a workaround for the error, disable inlining of
+       // alignmentSafeAssignment() when compiling for x86 using the affected GCC
+       // version.
+       __attribute__ ((noinline))
+#else
+       inline
+#endif
+void alignmentSafeAssignment (char* dst, T val)
 {
        std::memcpy(dst, &val, sizeof(T));
 }