mesa: Avoid MSVC C6334 warning in /analyze mode.
authorJose Fonseca <jfonseca@vmware.com>
Tue, 24 Mar 2015 19:01:46 +0000 (19:01 +0000)
committerJose Fonseca <jfonseca@vmware.com>
Wed, 25 Mar 2015 10:42:43 +0000 (10:42 +0000)
MSVC's implementation of signbit(x) uses sizeof(x) with expressions to
dispatch to an internal function based on the argument's type (float,
double, etc), but that raises a flag with MSVC's own static analyzer,
and because this is an inline function in a header it causes substantial
warning spam.

Reviewed-by: Brian Paul <brianp@vmware.com>
src/mesa/main/macros.h

index 2d7a6a107fd3224b6e103ba74c6b38015875ed7a..3344ec84169f438d8690646d859692e1d6f4c9d7 100644 (file)
@@ -789,7 +789,14 @@ NORMALIZE_3FV(GLfloat v[3])
 static inline GLboolean
 DIFFERENT_SIGNS(GLfloat x, GLfloat y)
 {
+#ifdef _MSC_VER
+#pragma warning( push )
+#pragma warning( disable : 6334 ) /* sizeof operator applied to an expression with an operator may yield unexpected results */
+#endif
    return signbit(x) != signbit(y);
+#ifdef _MSC_VER
+#pragma warning( pop )
+#endif
 }