ASoC: SOF: control.h: Replace zero-length array with DECLARE_FLEX_ARRAY() helper
authorGustavo A. R. Silva <gustavoars@kernel.org>
Mon, 26 Sep 2022 21:40:55 +0000 (16:40 -0500)
committerMark Brown <broonie@kernel.org>
Tue, 27 Sep 2022 11:08:00 +0000 (12:08 +0100)
Zero-length arrays are deprecated and we are moving towards adopting
C99 flexible-array members, instead. So, replace zero-length arrays
declarations in anonymous union with the new DECLARE_FLEX_ARRAY()
helper macro.

This helper allows for flexible-array members in unions.

Link: https://github.com/KSPP/linux/issues/193
Link: https://github.com/KSPP/linux/issues/211
Link: https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Reviewed-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/YzIcZ11k8RiQtS2T@work
Signed-off-by: Mark Brown <broonie@kernel.org>
include/sound/sof/control.h

index 7379a33..983d374 100644 (file)
@@ -117,11 +117,11 @@ struct sof_ipc_ctrl_data {
        /* control data - add new types if needed */
        union {
                /* channel values can be used by volume type controls */
-               struct sof_ipc_ctrl_value_chan chanv[0];
+               DECLARE_FLEX_ARRAY(struct sof_ipc_ctrl_value_chan, chanv);
                /* component values used by routing controls like mux, mixer */
-               struct sof_ipc_ctrl_value_comp compv[0];
+               DECLARE_FLEX_ARRAY(struct sof_ipc_ctrl_value_comp, compv);
                /* data can be used by binary controls */
-               struct sof_abi_hdr data[0];
+               DECLARE_FLEX_ARRAY(struct sof_abi_hdr, data);
        };
 } __packed;