*/
 struct wil_fw_record_data { /* type == wil_fw_type_data */
        __le32 addr;
-       __le32 data[0]; /* [data_size], see above */
+       __le32 data[]; /* [data_size], see above */
 } __packed;
 
 /* fill with constant @value, @size bytes starting from @addr */
        /* identifies capabilities record */
        struct wil_fw_record_comment_hdr hdr;
        /* capabilities (variable size), see enum wmi_fw_capability */
-       u8 capabilities[0];
+       u8 capabilities[];
 } __packed;
 
 /* FW VIF concurrency encoded inside a comment record
        u8 n_diff_channels; /* total number of different channels allowed */
        u8 same_bi; /* for APs, 1 if all APs must have same BI */
        /* keep last - concurrency limits, variable size by n_limits */
-       struct wil_fw_concurrency_limit limits[0];
+       struct wil_fw_concurrency_limit limits[];
 } __packed;
 
 struct wil_fw_record_concurrency { /* type == wil_fw_type_comment */
        /* number of concurrency combinations that follow */
        __le16 n_combos;
        /* keep last - combinations, variable size by n_combos */
-       struct wil_fw_concurrency_combo combos[0];
+       struct wil_fw_concurrency_combo combos[];
 } __packed;
 
 /* brd file info encoded inside a comment record */
        /* identifies brd file record */
        struct wil_fw_record_comment_hdr hdr;
        __le32 version;
-       struct brd_info brd_info[0];
+       struct brd_info brd_info[];
 } __packed;
 
 /* perform action
  */
 struct wil_fw_record_action { /* type == wil_fw_type_action */
        __le32 action; /* action to perform: reset, wait for fw ready etc. */
-       __le32 data[0]; /* action specific, [data_size], see above */
+       __le32 data[]; /* action specific, [data_size], see above */
 } __packed;
 
 /* data block for struct wil_fw_record_direct_write */
 #define WIL_FW_GW_CTL_BUSY     BIT(29) /* gateway busy performing operation */
 #define WIL_FW_GW_CTL_RUN      BIT(30) /* start gateway operation */
        __le32 command;
-       struct wil_fw_data_gw data[0]; /* total size [data_size], see above */
+       struct wil_fw_data_gw data[]; /* total size [data_size], see above */
 } __packed;
 
 /* 4-dword gateway */
        __le32 gateway_cmd_addr;
        __le32 gateway_ctrl_address; /* same logic as for 1-dword gw */
        __le32 command;
-       struct wil_fw_data_gw4 data[0]; /* total size [data_size], see above */
+       struct wil_fw_data_gw4 data[]; /* total size [data_size], see above */
 } __packed;
 
 #endif /* __WIL_FW_H__ */
 
        /* Length of the FT IEs */
        __le16 ie_len;
        u8 reserved[2];
-       u8 ie_info[0];
+       u8 ie_info[];
 } __packed;
 
 /* WMI_SET_PROBED_SSID_CMDID */
        u8 reserved;
        /* Length of the IE to be added to MGMT frame */
        __le16 ie_len;
-       u8 ie_info[0];
+       u8 ie_info[];
 } __packed;
 
 /* WMI_PXMT_RANGE_CFG_CMDID */
 struct wmi_sw_tx_req_cmd {
        u8 dst_mac[WMI_MAC_LEN];
        __le16 len;
-       u8 payload[0];
+       u8 payload[];
 } __packed;
 
 /* WMI_SW_TX_REQ_EXT_CMDID */
        /* Channel to use, 0xFF for currently active channel */
        u8 channel;
        u8 reserved[5];
-       u8 payload[0];
+       u8 payload[];
 } __packed;
 
 /* WMI_VRING_SWITCH_TIMING_CONFIG_CMDID */
        u8 verify;
        u8 reserved1[3];
        /* actual size=num_bytes */
-       u8 data_bytes[0];
+       u8 data_bytes[];
 } __packed;
 
 /* Possible modes for temperature measurement */
        u8 aoa_type;
        __le16 num_of_dest;
        u8 reserved[4];
-       struct wmi_ftm_dest_info ftm_dest_info[0];
+       struct wmi_ftm_dest_info ftm_dest_info[];
 } __packed;
 
 /* WMI_TOF_CFG_RESPONDER_CMDID */
        /* payload max size is WMI_MAX_IOCTL_PAYLOAD_SIZE
         * Must be the last member of the struct
         */
-       __le32 payload[0];
+       __le32 payload[];
 } __packed;
 
 /* WMI_INTERNAL_FW_IOCTL_EVENTID */
        /* payload max size is WMI_MAX_IOCTL_REPLY_PAYLOAD_SIZE
         * Must be the last member of the struct
         */
-       __le32 payload[0];
+       __le32 payload[];
 } __packed;
 
 /* WMI_INTERNAL_FW_EVENT_EVENTID */
        /* payload max size is WMI_MAX_INTERNAL_EVENT_PAYLOAD_SIZE
         * Must be the last member of the struct
         */
-       __le32 payload[0];
+       __le32 payload[];
 } __packed;
 
 /* WMI_SET_VRING_PRIORITY_WEIGHT_CMDID */
         */
        u8 num_of_vrings;
        u8 reserved[3];
-       struct wmi_vring_priority vring_priority[0];
+       struct wmi_vring_priority vring_priority[];
 } __packed;
 
 /* WMI_BF_CONTROL_CMDID - deprecated */
        u8 each_mcs_cfg_size;
        u8 reserved1;
        /* Configuration for each MCS */
-       struct wmi_bf_control_ex_mcs each_mcs_cfg[0];
+       struct wmi_bf_control_ex_mcs each_mcs_cfg[];
 } __packed;
 
 /* WMI_LINK_STATS_CMD */
        /* FW capabilities info
         * Must be the last member of the struct
         */
-       __le32 fw_capabilities[0];
+       __le32 fw_capabilities[];
 } __packed;
 
 /* WMI_GET_RF_STATUS_EVENTID */
 struct wmi_eapol_rx_event {
        u8 src_mac[WMI_MAC_LEN];
        __le16 eapol_len;
-       u8 eapol[0];
+       u8 eapol[];
 } __packed;
 
 /* WMI_READY_EVENTID */
        u8 aid;
        u8 reserved2[2];
        /* not in use */
-       u8 assoc_info[0];
+       u8 assoc_info[];
 } __packed;
 
 /* disconnect_reason */
        /* last assoc req may passed to host - not in used */
        u8 assoc_resp_len;
        /* last assoc req may passed to host - not in used */
-       u8 assoc_info[0];
+       u8 assoc_info[];
 } __packed;
 
 /* WMI_SCAN_COMPLETE_EVENTID */
        u8 reserved[3];
        u8 mac_addr[WMI_MAC_LEN];
        __le16 ie_len;
-       u8 ie_info[0];
+       u8 ie_info[];
 } __packed;
 
 /* WMI_FT_REASSOC_STATUS_EVENTID */
        __le16 reassoc_req_ie_len;
        __le16 reassoc_resp_ie_len;
        u8 reserved[4];
-       u8 ie_info[0];
+       u8 ie_info[];
 } __packed;
 
 /* wmi_rx_mgmt_info */
 
 struct wmi_sched_scan_result_event {
        struct wmi_rx_mgmt_info info;
-       u8 payload[0];
+       u8 payload[];
 } __packed;
 
 /* WMI_ACS_PASSIVE_SCAN_COMPLETE_EVENT */
        __le16 filled;
        u8 num_scanned_channels;
        u8 reserved;
-       struct scan_acs_info scan_info_list[0];
+       struct scan_acs_info scan_info_list[];
 } __packed;
 
 /* WMI_BA_STATUS_EVENTID */
        u8 status;
        u8 reserved[3];
        /* requested num_bytes of data */
-       u8 data_bytes[0];
+       u8 data_bytes[];
 } __packed;
 
 /* EVENT: WMI_RF_XPM_WRITE_RESULT_EVENTID */
 /* WMI_RX_MGMT_PACKET_EVENTID */
 struct wmi_rx_mgmt_packet_event {
        struct wmi_rx_mgmt_info info;
-       u8 payload[0];
+       u8 payload[];
 } __packed;
 
 /* WMI_ECHO_RSP_EVENTID */
        u8 each_mcs_cfg_size;
        u8 reserved[3];
        /* Configuration for each MCS */
-       struct wmi_rs_cfg_ex_mcs each_mcs_cfg[0];
+       struct wmi_rs_cfg_ex_mcs each_mcs_cfg[];
 } __packed;
 
 /* WMI_RS_CFG_EX_EVENTID */
        u8 each_mcs_results_size;
        u8 reserved1[3];
        /* Results for each MCS */
-       struct wmi_rs_results_ex_mcs each_mcs_results[0];
+       struct wmi_rs_results_ex_mcs each_mcs_results[];
 } __packed;
 
 /* BRP antenna limit mode */
        u8 rssi_hyst;
        u8 reserved[12];
        u8 rssi_thresholds_list_size;
-       s8 rssi_thresholds_list[0];
+       s8 rssi_thresholds_list[];
 } __packed;
 
 /* wmi_link_monitor_event_type */
        /* Measurments are from RFs, defined by the mask */
        __le32 meas_rf_mask;
        u8 reserved0[3];
-       struct wmi_responder_ftm_res responder_ftm_res[0];
+       struct wmi_responder_ftm_res responder_ftm_res[];
 } __packed;
 
 /* WMI_TOF_CFG_RESPONDER_EVENTID */
        /* data report length */
        u8 len;
        /* data report payload */
-       u8 report[0];
+       u8 report[];
 } __packed;
 
 /* WMI_TOF_SET_TX_RX_OFFSET_EVENTID */
        u8 has_next;
        u8 reserved[5];
        /* a stream of wmi_link_stats_record_s */
-       u8 payload[0];
+       u8 payload[];
 } __packed;
 
 /* WMI_LINK_STATS_EVENT */
        u8 record_type_id;
        u8 reserved;
        __le16 record_size;
-       u8 record[0];
+       u8 record[];
 } __packed;
 
 /* WMI_LINK_STATS_TYPE_BASIC */