Mesa (staging/21.3): zink: fix -Warray-bounds warning

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jan 5 21:19:11 UTC 2022


Module: Mesa
Branch: staging/21.3
Commit: ea08f3873b2773dbc525e23e36fe025e1b295f28
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ea08f3873b2773dbc525e23e36fe025e1b295f28

Author: Michel Zou <xantares09 at hotmail.com>
Date:   Sat Aug 28 13:45:40 2021 +0200

zink: fix -Warray-bounds warning

It would seems msvc and mingw dont pack across disparate types so zink_bind_rasterizer_state is too big for int32

string.h:202:10: warning: ‘__builtin___memcpy_chk’ forming offset [4, 7] is out of the bounds [0, 4] of object ‘rast_bits’ with type ‘uint32_t’ {aka ‘unsigned int’} [-Warray-bounds]
  202 |   return __builtin___memcpy_chk(__dst, __src, __n, __mingw_bos(__dst, 0));
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/gallium/drivers/zink/zink_state.c: In function ‘zink_bind_rasterizer_state’:
../src/gallium/drivers/zink/zink_state.c:586:16: note: ‘rast_bits’ declared here

Fixes: 9c5a2ab6
Acked-By: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12609>
(cherry picked from commit 4ff57e5aba0e2d89c86ac896206750aa98c21f11)

---

 .pick_status.json                     |  2 +-
 src/gallium/drivers/zink/zink_state.h | 12 ++++++------
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/.pick_status.json b/.pick_status.json
index ceea7253d0b..6ba5c4f9b1a 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -94,7 +94,7 @@
         "description": "zink: fix -Warray-bounds warning",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": "9c5a2ab6a9d8ffe61178a0f0850deacafb2ff155"
     },
diff --git a/src/gallium/drivers/zink/zink_state.h b/src/gallium/drivers/zink/zink_state.h
index 1254498377c..fef90d1c18a 100644
--- a/src/gallium/drivers/zink/zink_state.h
+++ b/src/gallium/drivers/zink/zink_state.h
@@ -63,12 +63,12 @@ struct zink_rasterizer_hw_state {
    unsigned polygon_mode : 2; //VkPolygonMode
    unsigned cull_mode : 2; //VkCullModeFlags
    unsigned line_mode : 2; //VkLineRasterizationModeEXT
-   bool depth_clamp:1;
-   bool rasterizer_discard:1;
-   bool pv_last:1;
-   bool line_stipple_enable:1;
-   bool force_persample_interp:1;
-   bool clip_halfz:1;
+   unsigned depth_clamp:1;
+   unsigned rasterizer_discard:1;
+   unsigned pv_last:1;
+   unsigned line_stipple_enable:1;
+   unsigned force_persample_interp:1;
+   unsigned clip_halfz:1;
 };
 #define ZINK_RAST_HW_STATE_SIZE 12
 



More information about the mesa-commit mailing list