Mesa (master): i965: Use a union to bitcast a float

Matt Turner mattst88 at kemper.freedesktop.org
Thu Oct 19 05:17:02 UTC 2017


Module: Mesa
Branch: master
Commit: e9796ebca7d2977700ff51ade9193e33368bd4af
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e9796ebca7d2977700ff51ade9193e33368bd4af

Author: Matt Turner <mattst88 at gmail.com>
Date:   Wed Oct 18 22:16:05 2017 -0700

i965: Use a union to bitcast a float

... which does not break C's aliasing rules.

---

 src/mesa/drivers/dri/i965/gen6_constant_state.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/mesa/drivers/dri/i965/gen6_constant_state.c b/src/mesa/drivers/dri/i965/gen6_constant_state.c
index 62ad6b0497..121ba67257 100644
--- a/src/mesa/drivers/dri/i965/gen6_constant_state.c
+++ b/src/mesa/drivers/dri/i965/gen6_constant_state.c
@@ -32,7 +32,8 @@
 static uint32_t
 f_as_u32(float f)
 {
-   return *(uint32_t *)&f;
+   union fi fi = { .f = f };
+   return fi.ui;
 }
 
 static uint32_t




More information about the mesa-commit mailing list