Mesa (master): st/mesa: avoid aliasing violation in st_cb_perfmon.c

Erik Faye-Lund kusma at kemper.freedesktop.org
Sat Apr 1 11:41:10 UTC 2017


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

Author: Erik Faye-Lund <kusmabite at gmail.com>
Date:   Mon Aug  8 10:11:31 2016 +0200

st/mesa: avoid aliasing violation in st_cb_perfmon.c

Signed-off-by: Erik Faye-Lund <kusmabite at gmail.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>

---

 src/mesa/state_tracker/st_cb_perfmon.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/mesa/state_tracker/st_cb_perfmon.c b/src/mesa/state_tracker/st_cb_perfmon.c
index cd7fdc0617..23d32dcad4 100644
--- a/src/mesa/state_tracker/st_cb_perfmon.c
+++ b/src/mesa/state_tracker/st_cb_perfmon.c
@@ -308,16 +308,16 @@ st_GetPerfMonitorResult(struct gl_context *ctx,
       data[offset++] = cid;
       switch (type) {
       case GL_UNSIGNED_INT64_AMD:
-         *(uint64_t *)&data[offset] = result.u64;
+         memcpy(&data[offset], &result.u64, sizeof(uint64_t));
          offset += sizeof(uint64_t) / sizeof(GLuint);
          break;
       case GL_UNSIGNED_INT:
-         *(uint32_t *)&data[offset] = result.u32;
+         memcpy(&data[offset], &result.u32, sizeof(uint32_t));
          offset += sizeof(uint32_t) / sizeof(GLuint);
          break;
       case GL_FLOAT:
       case GL_PERCENTAGE_AMD:
-         *(GLfloat *)&data[offset] = result.f;
+         memcpy(&data[offset], &result.f, sizeof(GLfloat));
          offset += sizeof(GLfloat) / sizeof(GLuint);
          break;
       }




More information about the mesa-commit mailing list