intel/compiler: Fix pointer arithmetic when reading shader assembly
authorDanylo Piliaiev <danylo.piliaiev@globallogic.com>
Wed, 2 Sep 2020 10:37:47 +0000 (13:37 +0300)
committerMarge Bot <eric+marge@anholt.net>
Wed, 2 Sep 2020 13:23:14 +0000 (13:23 +0000)
start_offset is a byte offset.

Fixes: 04a995158084acbd1917b4c7e0f8d381e1c9222d
Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6557>

src/intel/compiler/brw_eu.cpp

index 0a886b27ae2126bdfed1ecc9e11ab47595d49b25..51ae8cdc2210a9883baab279a838dc8595c872d3 100644 (file)
@@ -394,7 +394,7 @@ bool brw_try_override_assembly(struct brw_codegen *p, int start_offset,
    p->store = (brw_inst *)reralloc_size(p->mem_ctx, p->store, p->next_insn_offset);
    assert(p->store);
 
    p->store = (brw_inst *)reralloc_size(p->mem_ctx, p->store, p->next_insn_offset);
    assert(p->store);
 
-   ssize_t ret = read(fd, p->store + start_offset, sb.st_size);
+   ssize_t ret = read(fd, (char *)p->store + start_offset, sb.st_size);
    close(fd);
    if (ret != sb.st_size) {
       return false;
    close(fd);
    if (ret != sb.st_size) {
       return false;