> Subject: [PATCH] RDMA/irdma: Fix GCC 12 warning > > When building with automatic stack variable initialization, GCC 12 complains about > variables defined outside of switch case statements. > Move the variable into the case that uses it, which silences the warning: > > ./drivers/infiniband/hw/irdma/hw.c:270:47: error: statement will never be executed [- > Werror=switch-unreachable] > 270 | struct irdma_cm_node *cm_node; > | > > ./drivers/infiniband/hw/irdma/utils.c:1215:50: error: statement will never be executed > [-Werror=switch-unreachable] > 1215 | struct irdma_gen_ae_info ae_info; > | > > Signed-off-by: Victor Erminpour <victor.erminpour@xxxxxxxxxx> > --- > drivers/infiniband/hw/irdma/hw.c | 2 +- > drivers/infiniband/hw/irdma/utils.c | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/infiniband/hw/irdma/hw.c b/drivers/infiniband/hw/irdma/hw.c > index 89234d04cc65..a41a3b128d0d 100644 > --- a/drivers/infiniband/hw/irdma/hw.c > +++ b/drivers/infiniband/hw/irdma/hw.c > @@ -267,8 +267,8 @@ static void irdma_process_aeq(struct irdma_pci_f *rf) > } > > switch (info->ae_id) { > - struct irdma_cm_node *cm_node; > case IRDMA_AE_LLP_CONNECTION_ESTABLISHED: > + struct irdma_cm_node *cm_node; > cm_node = iwqp->cm_node; > if (cm_node->accept_pend) { > atomic_dec(&cm_node->listener- This doesn't compile. drivers/infiniband/hw/irdma/hw.c: In function \u2018irdma_process_aeq\u2019: drivers/infiniband/hw/irdma/hw.c:271:4: error: a label can only be part of a statement and a declaration is not a statement 271 | struct irdma_cm_node *cm_node; Seems like we are accommodating for gcc12 bug since this C code is legit? Shiraz