Skip to content

lavapipe: fix trivial strict aliasing warning

Filip Gawin requested to merge gawin/mesa:lavapipe/aliasing into main
struct pipe_query_data_pipeline_statistics pipeline_statistics;

which has body:

struct pipe_query_data_pipeline_statistics
{
   uint64_t ia_vertices;    /**< Num vertices read by the vertex fetcher. */
   uint64_t ia_primitives;  /**< Num primitives read by the vertex fetcher. */
   uint64_t vs_invocations; /**< Num vertex shader invocations. */
   uint64_t gs_invocations; /**< Num geometry shader invocations. */
   uint64_t gs_primitives;  /**< Num primitives output by a geometry shader. */
   uint64_t c_invocations;  /**< Num primitives sent to the rasterizer. */
   uint64_t c_primitives;   /**< Num primitives that were rendered. */
   uint64_t ps_invocations; /**< Num pixel shader invocations. */
   uint64_t hs_invocations; /**< Num hull shader invocations. */
   uint64_t ds_invocations; /**< Num domain shader invocations. */
   uint64_t cs_invocations; /**< Num compute shader invocations. */
};

warning:

../gawin/src/gallium/frontends/lavapipe/lvp_query.c: In function ‘lvp_GetQueryPoolResults’:
../gawin/src/gallium/frontends/lavapipe/lvp_query.c:125:47: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
  125 |                uint64_t *pstats = (uint64_t *)&result.pipeline_statistics;
      |                                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../gawin/src/gallium/frontends/lavapipe/lvp_query.c:152:47: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
  152 |                uint64_t *pstats = (uint64_t *)&result.pipeline_statistics;
      |                                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~
[3/4] Linking static target src/gallium/frontends/lavapipe/liblavapipe_st.a

(If you want I can wrap it with union to be able easily access it as an array. )

Merge request reports