From: Robin Murphy <robin.murphy@arm.com> To: Victor Erminpour <victor.erminpour@oracle.com>, lorenzo.pieralisi@arm.com Cc: guohanjun@huawei.com, sudeep.holla@arm.com, rafael@kernel.org, lenb@kernel.org, linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, trivial@kernel.org Subject: Re: [PATCH] ACPI/IORT: Fix GCC 12 warning Date: Thu, 10 Feb 2022 18:06:24 +0000 [thread overview] Message-ID: <fcb52c7b-a222-126e-fb3c-d57011506cf8@arm.com> (raw) In-Reply-To: <1644453141-1181-1-git-send-email-victor.erminpour@oracle.com> On 2022-02-10 00:32, Victor Erminpour wrote: > 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/acpi/arm64/iort.c:1670:59: error: statement will never be executed [-Werror=switch-unreachable] > 1670 | struct acpi_iort_named_component *ncomp; > | ^~~~~ Notwithstanding the fact that that warning is nonsensical, this patch changes valid C code into invalid C code that doesn't even compile: drivers/acpi/arm64/iort.c: In function ‘acpi_iort_dma_get_max_cpu_address’: drivers/acpi/arm64/iort.c:1669:4: error: a label can only be part of a statement and a declaration is not a statement 1669 | struct acpi_iort_named_component *ncomp; | ^~~~~~ drivers/acpi/arm64/iort.c:1676:4: error: a label can only be part of a statement and a declaration is not a statement 1676 | struct acpi_iort_root_complex *rc; | ^~~~~~ Robin. > Signed-off-by: Victor Erminpour <victor.erminpour@oracle.com> > --- > drivers/acpi/arm64/iort.c | 8 +++----- > 1 file changed, 3 insertions(+), 5 deletions(-) > > diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c > index 3b23fb775ac4..5c5d2e56d756 100644 > --- a/drivers/acpi/arm64/iort.c > +++ b/drivers/acpi/arm64/iort.c > @@ -1645,7 +1645,7 @@ void __init acpi_iort_init(void) > */ > phys_addr_t __init acpi_iort_dma_get_max_cpu_address(void) > { > - phys_addr_t limit = PHYS_ADDR_MAX; > + phys_addr_t local_limit, limit = PHYS_ADDR_MAX; > struct acpi_iort_node *node, *end; > struct acpi_table_iort *iort; > acpi_status status; > @@ -1667,17 +1667,15 @@ phys_addr_t __init acpi_iort_dma_get_max_cpu_address(void) > break; > > switch (node->type) { > - struct acpi_iort_named_component *ncomp; > - struct acpi_iort_root_complex *rc; > - phys_addr_t local_limit; > - > case ACPI_IORT_NODE_NAMED_COMPONENT: > + struct acpi_iort_named_component *ncomp; > ncomp = (struct acpi_iort_named_component *)node->node_data; > local_limit = DMA_BIT_MASK(ncomp->memory_address_limit); > limit = min_not_zero(limit, local_limit); > break; > > case ACPI_IORT_NODE_PCI_ROOT_COMPLEX: > + struct acpi_iort_root_complex *rc; > if (node->revision < 1) > break; > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Robin Murphy <robin.murphy@arm.com> To: Victor Erminpour <victor.erminpour@oracle.com>, lorenzo.pieralisi@arm.com Cc: guohanjun@huawei.com, sudeep.holla@arm.com, rafael@kernel.org, lenb@kernel.org, linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, trivial@kernel.org Subject: Re: [PATCH] ACPI/IORT: Fix GCC 12 warning Date: Thu, 10 Feb 2022 18:06:24 +0000 [thread overview] Message-ID: <fcb52c7b-a222-126e-fb3c-d57011506cf8@arm.com> (raw) In-Reply-To: <1644453141-1181-1-git-send-email-victor.erminpour@oracle.com> On 2022-02-10 00:32, Victor Erminpour wrote: > 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/acpi/arm64/iort.c:1670:59: error: statement will never be executed [-Werror=switch-unreachable] > 1670 | struct acpi_iort_named_component *ncomp; > | ^~~~~ Notwithstanding the fact that that warning is nonsensical, this patch changes valid C code into invalid C code that doesn't even compile: drivers/acpi/arm64/iort.c: In function ‘acpi_iort_dma_get_max_cpu_address’: drivers/acpi/arm64/iort.c:1669:4: error: a label can only be part of a statement and a declaration is not a statement 1669 | struct acpi_iort_named_component *ncomp; | ^~~~~~ drivers/acpi/arm64/iort.c:1676:4: error: a label can only be part of a statement and a declaration is not a statement 1676 | struct acpi_iort_root_complex *rc; | ^~~~~~ Robin. > Signed-off-by: Victor Erminpour <victor.erminpour@oracle.com> > --- > drivers/acpi/arm64/iort.c | 8 +++----- > 1 file changed, 3 insertions(+), 5 deletions(-) > > diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c > index 3b23fb775ac4..5c5d2e56d756 100644 > --- a/drivers/acpi/arm64/iort.c > +++ b/drivers/acpi/arm64/iort.c > @@ -1645,7 +1645,7 @@ void __init acpi_iort_init(void) > */ > phys_addr_t __init acpi_iort_dma_get_max_cpu_address(void) > { > - phys_addr_t limit = PHYS_ADDR_MAX; > + phys_addr_t local_limit, limit = PHYS_ADDR_MAX; > struct acpi_iort_node *node, *end; > struct acpi_table_iort *iort; > acpi_status status; > @@ -1667,17 +1667,15 @@ phys_addr_t __init acpi_iort_dma_get_max_cpu_address(void) > break; > > switch (node->type) { > - struct acpi_iort_named_component *ncomp; > - struct acpi_iort_root_complex *rc; > - phys_addr_t local_limit; > - > case ACPI_IORT_NODE_NAMED_COMPONENT: > + struct acpi_iort_named_component *ncomp; > ncomp = (struct acpi_iort_named_component *)node->node_data; > local_limit = DMA_BIT_MASK(ncomp->memory_address_limit); > limit = min_not_zero(limit, local_limit); > break; > > case ACPI_IORT_NODE_PCI_ROOT_COMPLEX: > + struct acpi_iort_root_complex *rc; > if (node->revision < 1) > break; > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-02-10 18:06 UTC|newest] Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-02-10 0:32 [PATCH] ACPI/IORT: Fix GCC 12 warning Victor Erminpour 2022-02-10 0:32 ` Victor Erminpour 2022-02-10 9:11 ` Ard Biesheuvel 2022-02-10 9:11 ` Ard Biesheuvel 2022-02-10 17:36 ` Victor Erminpour 2022-02-10 17:36 ` Victor Erminpour 2022-02-10 19:29 ` Ard Biesheuvel 2022-02-10 19:29 ` Ard Biesheuvel 2022-02-10 19:39 ` Ard Biesheuvel 2022-02-10 19:39 ` Ard Biesheuvel 2022-02-10 18:06 ` Robin Murphy [this message] 2022-02-10 18:06 ` Robin Murphy 2022-02-10 18:27 ` Victor Erminpour 2022-02-10 18:27 ` Victor Erminpour 2022-02-10 18:35 ` Robin Murphy 2022-02-10 18:35 ` Robin Murphy
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=fcb52c7b-a222-126e-fb3c-d57011506cf8@arm.com \ --to=robin.murphy@arm.com \ --cc=guohanjun@huawei.com \ --cc=lenb@kernel.org \ --cc=linux-acpi@vger.kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=lorenzo.pieralisi@arm.com \ --cc=rafael@kernel.org \ --cc=sudeep.holla@arm.com \ --cc=trivial@kernel.org \ --cc=victor.erminpour@oracle.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.