-Wflex-array-member-not-at-end was introduced in GCC-14, and we are getting ready to enable it, globally.
Move the conflicting declarations to the end of the corresponding structures (and in a union). Notice that `struct ssp_command_iu` is a flexible structure, this is a structure that contains a flexible-array member. With these changes fix the following warnings: drivers/scsi/hisi_sas/hisi_sas.h:639:38: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end] drivers/scsi/hisi_sas/hisi_sas.h:616:47: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end] Signed-off-by: Gustavo A. R. Silva <[email protected]> --- drivers/scsi/hisi_sas/hisi_sas.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/scsi/hisi_sas/hisi_sas.h b/drivers/scsi/hisi_sas/hisi_sas.h index 1323ed8aa717..55c638dd58b1 100644 --- a/drivers/scsi/hisi_sas/hisi_sas.h +++ b/drivers/scsi/hisi_sas/hisi_sas.h @@ -613,8 +613,8 @@ struct hisi_sas_command_table_ssp { struct ssp_frame_hdr hdr; union { struct { - struct ssp_command_iu task; u32 prot[PROT_BUF_SIZE]; + struct ssp_command_iu task; }; struct ssp_tmf_iu ssp_task; struct xfer_rdy_iu xfer_rdy; @@ -636,13 +636,17 @@ struct hisi_sas_status_buffer { struct hisi_sas_slot_buf_table { struct hisi_sas_status_buffer status_buffer; - union hisi_sas_command_table command_header; struct hisi_sas_sge_page sge_page; + + /* Must be last --ends in a flexible-array member. */ + union hisi_sas_command_table command_header; }; struct hisi_sas_slot_dif_buf_table { - struct hisi_sas_slot_buf_table slot_buf; struct hisi_sas_sge_dif_page sge_dif_page; + + /* Must be last --ends in a flexible-array member. */ + struct hisi_sas_slot_buf_table slot_buf; }; extern struct scsi_transport_template *hisi_sas_stt; -- 2.43.0
