glsl: simplify the M_PI*f macros, fixes build on OpenBSD
authorJonathan Gray <jsg@jsg.id.au>
Wed, 14 May 2014 05:13:55 +0000 (15:13 +1000)
committerMatt Turner <mattst88@gmail.com>
Wed, 14 May 2014 05:30:22 +0000 (22:30 -0700)
The M_PI*f macros used a preprocessor paste to append 'f'
to M_PI defines, which works if the values are only numbers
but breaks on OpenBSD where M_PI definitions have casts
and brackets to meet requirements of a future version of POSIX,

http://austingroupbugs.net/view.php?id=801
http://austingroupbugs.net/view.php?id=828

Simplify the M_PI*f macros by using casts directly in the defines
as suggested by Kenneth Graunke.

Cc: "10.2" <mesa-stable@lists.freedesktop.org>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=78665
Reviewed-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Jonathan Gray <jsg@jsg.id.au>
src/glsl/builtin_functions.cpp

index 3991f9d8d8c9961fa3abeeb0ad5c2325a9138982..f9f06862e4427ed81ff03d377ea1ac4b563a21b3 100644 (file)
 #include "program/prog_instruction.h"
 #include <limits>
 
-#define f(x) join(x)
-#define join(x) x ## f
-#define M_PIf f(M_PI)
-#define M_PI_2f f(M_PI_2)
-#define M_PI_4f f(M_PI_4)
+#define M_PIf   ((float) M_PI)
+#define M_PI_2f ((float) M_PI_2)
+#define M_PI_4f ((float) M_PI_4)
 
 using namespace ir_builder;