Mesa (master): broadcom/vc4: Fix aliasing issue

Eric Anholt anholt at kemper.freedesktop.org
Sat Oct 21 00:18:04 UTC 2017


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

Author: Stefan Schake <stschake at gmail.com>
Date:   Fri Oct 20 16:16:44 2017 +0200

broadcom/vc4: Fix aliasing issue

This was causing Android clang version 3.8.256229 to miscompile,
presumably due to strict aliasing.

Fixes: 14dc281c1332 ("vc4: Enforce one-uniform-per-instruction after optimization.")

---

 src/gallium/drivers/vc4/vc4_qir_lower_uniforms.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gallium/drivers/vc4/vc4_qir_lower_uniforms.c b/src/gallium/drivers/vc4/vc4_qir_lower_uniforms.c
index 9ecfe65211..ad19f06d31 100644
--- a/src/gallium/drivers/vc4/vc4_qir_lower_uniforms.c
+++ b/src/gallium/drivers/vc4/vc4_qir_lower_uniforms.c
@@ -66,7 +66,7 @@ remove_uniform(struct hash_table *ht, struct qreg reg)
 
         entry = _mesa_hash_table_search(ht, key);
         assert(entry);
-        entry->data--;
+        entry->data = (void *)(((uintptr_t) entry->data) - 1);
         if (entry->data == NULL)
                 _mesa_hash_table_remove(ht, entry);
 }




More information about the mesa-commit mailing list