summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Schake <stschake@gmail.com>2017-10-20 16:16:44 +0200
committerEric Anholt <eric@anholt.net>2017-10-20 17:09:35 -0700
commite5fea0d621af2b14cf6c5e364eeaf293db460f2a (patch)
tree65f16db5dbe9ecf390f924dcef2f276478ac447d
parent035ec7a2bb2d5e413ac945b8f012185a0e187d5e (diff)
downloadmesa-e5fea0d621af2b14cf6c5e364eeaf293db460f2a.tar.gz
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.")
-rw-r--r--src/gallium/drivers/vc4/vc4_qir_lower_uniforms.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gallium/drivers/vc4/vc4_qir_lower_uniforms.c b/src/gallium/drivers/vc4/vc4_qir_lower_uniforms.c
index 9ecfe65211e..ad19f06d31b 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);
}