[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <BYAPR11MB3256C9711620932685C368F887E70@BYAPR11MB3256.namprd11.prod.outlook.com>
Date: Thu, 12 Nov 2020 15:13:18 +0000
From: "Moore, Robert" <robert.moore@...el.com>
To: Nick Desaulniers <ndesaulniers@...gle.com>
CC: "Kaneda, Erik" <erik.kaneda@...el.com>,
"Wysocki, Rafael J" <rafael.j.wysocki@...el.com>,
"Gustavo A . R . Silva" <gustavoars@...nel.org>,
"clang-built-linux@...glegroups.com"
<clang-built-linux@...glegroups.com>, Len Brown <lenb@...nel.org>,
"linux-acpi@...r.kernel.org" <linux-acpi@...r.kernel.org>,
"devel@...ica.org" <devel@...ica.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: RE: [PATCH] ACPICA: fix -Wfallthrough
-----Original Message-----
From: Nick Desaulniers <ndesaulniers@...gle.com>
Sent: Wednesday, November 11, 2020 10:48 AM
To: Moore, Robert <robert.moore@...el.com>
Cc: Kaneda, Erik <erik.kaneda@...el.com>; Wysocki, Rafael J <rafael.j.wysocki@...el.com>; Gustavo A . R . Silva <gustavoars@...nel.org>; clang-built-linux@...glegroups.com; Len Brown <lenb@...nel.org>; linux-acpi@...r.kernel.org; devel@...ica.org; linux-kernel@...r.kernel.org
Subject: Re: [PATCH] ACPICA: fix -Wfallthrough
On Wed, Nov 11, 2020 at 7:15 AM Moore, Robert <robert.moore@...el.com> wrote:
>
> Yes, but: isn't the "fallthrough" keyword compiler-specific? That is the problem for us.
It's not a keyword.
It's a preprocessor macro that expands to
__attribute__((__fallthrough__)) for compilers that support it. For compilers that do not, it expands to nothing. Both GCC 7+ and Clang support this attribute. Which other compilers that support -Wimplicit-fallthrough do you care to support?
We need to support MSVC 2017 -- which apparently does not support this.
> Bob
>
>
> -----Original Message-----
> From: ndesaulniers via sendgmr
> <ndesaulniers@...saulniers1.mtv.corp.google.com> On Behalf Of Nick
> Desaulniers
> Sent: Tuesday, November 10, 2020 6:12 PM
> To: Moore, Robert <robert.moore@...el.com>; Kaneda, Erik
> <erik.kaneda@...el.com>; Wysocki, Rafael J
> <rafael.j.wysocki@...el.com>; Gustavo A . R . Silva
> <gustavoars@...nel.org>
> Cc: clang-built-linux@...glegroups.com; Nick Desaulniers
> <ndesaulniers@...gle.com>; Len Brown <lenb@...nel.org>;
> linux-acpi@...r.kernel.org; devel@...ica.org;
> linux-kernel@...r.kernel.org
> Subject: [PATCH] ACPICA: fix -Wfallthrough
>
> The "fallthrough" pseudo-keyword was added as a portable way to denote intentional fallthrough. This code seemed to be using a mix of fallthrough comments that GCC recognizes, and some kind of lint marker.
> I'm guessing that linter hasn't been run in a while from the mixed use of the marker vs comments.
>
> Signed-off-by: Nick Desaulniers <ndesaulniers@...gle.com>
> ---
> drivers/acpi/acpica/dscontrol.c | 3 +--
> drivers/acpi/acpica/dswexec.c | 4 +---
> drivers/acpi/acpica/dswload.c | 3 +--
> drivers/acpi/acpica/dswload2.c | 3 +--
> drivers/acpi/acpica/exfldio.c | 3 +--
> drivers/acpi/acpica/exresop.c | 5 ++---
> drivers/acpi/acpica/exstore.c | 6 ++----
> drivers/acpi/acpica/hwgpe.c | 3 +--
> drivers/acpi/acpica/utdelete.c | 3 +--
> drivers/acpi/acpica/utprint.c | 2 +-
> 10 files changed, 12 insertions(+), 23 deletions(-)
>
> diff --git a/drivers/acpi/acpica/dscontrol.c
> b/drivers/acpi/acpica/dscontrol.c index 4b5b6e859f62..1e75e5fbfd19
> 100644
> --- a/drivers/acpi/acpica/dscontrol.c
> +++ b/drivers/acpi/acpica/dscontrol.c
> @@ -61,8 +61,7 @@ acpi_ds_exec_begin_control_op(struct acpi_walk_state *walk_state,
> break;
> }
> }
> -
> - /*lint -fallthrough */
> + fallthrough;
>
> case AML_IF_OP:
> /*
> diff --git a/drivers/acpi/acpica/dswexec.c
> b/drivers/acpi/acpica/dswexec.c index 1d4f8c81028c..e8c32d4fe55f
> 100644
> --- a/drivers/acpi/acpica/dswexec.c
> +++ b/drivers/acpi/acpica/dswexec.c
> @@ -597,9 +597,7 @@ acpi_status acpi_ds_exec_end_op(struct acpi_walk_state *walk_state)
> if (ACPI_FAILURE(status)) {
> break;
> }
> -
> - /* Fall through */
> - /*lint -fallthrough */
> + fallthrough;
>
> case AML_INT_EVAL_SUBTREE_OP:
>
> diff --git a/drivers/acpi/acpica/dswload.c
> b/drivers/acpi/acpica/dswload.c index 27069325b6de..afc663c3742d
> 100644
> --- a/drivers/acpi/acpica/dswload.c
> +++ b/drivers/acpi/acpica/dswload.c
> @@ -223,8 +223,7 @@ acpi_ds_load1_begin_op(struct acpi_walk_state *walk_state,
> parse_flags & ACPI_PARSE_MODULE_LEVEL)) {
> break;
> }
> -
> - /*lint -fallthrough */
> + fallthrough;
>
> default:
>
> diff --git a/drivers/acpi/acpica/dswload2.c
> b/drivers/acpi/acpica/dswload2.c index edadbe146506..1b794b6ba072
> 100644
> --- a/drivers/acpi/acpica/dswload2.c
> +++ b/drivers/acpi/acpica/dswload2.c
> @@ -213,8 +213,7 @@ acpi_ds_load2_begin_op(struct acpi_walk_state *walk_state,
> parse_flags & ACPI_PARSE_MODULE_LEVEL)) {
> break;
> }
> -
> - /*lint -fallthrough */
> + fallthrough;
>
> default:
>
> diff --git a/drivers/acpi/acpica/exfldio.c
> b/drivers/acpi/acpica/exfldio.c index ade35ff1c7ba..9d1cabe0fed9
> 100644
> --- a/drivers/acpi/acpica/exfldio.c
> +++ b/drivers/acpi/acpica/exfldio.c
> @@ -433,8 +433,7 @@ acpi_ex_field_datum_io(union acpi_operand_object *obj_desc,
> * Now that the Bank has been selected, fall through to the
> * region_field case and write the datum to the Operation Region
> */
> -
> - /*lint -fallthrough */
> + fallthrough;
>
> case ACPI_TYPE_LOCAL_REGION_FIELD:
> /*
> diff --git a/drivers/acpi/acpica/exresop.c
> b/drivers/acpi/acpica/exresop.c index 4d1b22971d58..df48faa9a551
> 100644
> --- a/drivers/acpi/acpica/exresop.c
> +++ b/drivers/acpi/acpica/exresop.c
> @@ -197,8 +197,7 @@ acpi_ex_resolve_operands(u16 opcode,
> case ACPI_REFCLASS_DEBUG:
>
> target_op = AML_DEBUG_OP;
> -
> - /*lint -fallthrough */
> + fallthrough;
>
> case ACPI_REFCLASS_ARG:
> case ACPI_REFCLASS_LOCAL:
> @@ -264,7 +263,7 @@ acpi_ex_resolve_operands(u16 opcode,
> * Else not a string - fall through to the normal Reference
> * case below
> */
> - /*lint -fallthrough */
> + fallthrough;
>
> case ARGI_REFERENCE: /* References: */
> case ARGI_INTEGER_REF:
> diff --git a/drivers/acpi/acpica/exstore.c
> b/drivers/acpi/acpica/exstore.c index 3adc0a29d890..2067baa7c120
> 100644
> --- a/drivers/acpi/acpica/exstore.c
> +++ b/drivers/acpi/acpica/exstore.c
> @@ -95,8 +95,7 @@ acpi_ex_store(union acpi_operand_object *source_desc,
> if (dest_desc->common.flags & AOPOBJ_AML_CONSTANT) {
> return_ACPI_STATUS(AE_OK);
> }
> -
> - /*lint -fallthrough */
> + fallthrough;
>
> default:
>
> @@ -421,8 +420,7 @@ acpi_ex_store_object_to_node(union acpi_operand_object *source_desc,
> }
> break;
> }
> -
> - /* Fallthrough */
> + fallthrough;
>
> case ACPI_TYPE_DEVICE:
> case ACPI_TYPE_EVENT:
> diff --git a/drivers/acpi/acpica/hwgpe.c b/drivers/acpi/acpica/hwgpe.c
> index b13a4ed5bc63..fbfad80c8a53 100644
> --- a/drivers/acpi/acpica/hwgpe.c
> +++ b/drivers/acpi/acpica/hwgpe.c
> @@ -166,8 +166,7 @@ acpi_hw_low_set_gpe(struct acpi_gpe_event_info *gpe_event_info, u32 action)
> if (!(register_bit & gpe_register_info->enable_mask)) {
> return (AE_BAD_PARAMETER);
> }
> -
> - /*lint -fallthrough */
> + fallthrough;
>
> case ACPI_GPE_ENABLE:
>
> diff --git a/drivers/acpi/acpica/utdelete.c
> b/drivers/acpi/acpica/utdelete.c index 4c0d4e434196..8076e7947585
> 100644
> --- a/drivers/acpi/acpica/utdelete.c
> +++ b/drivers/acpi/acpica/utdelete.c
> @@ -111,8 +111,7 @@ static void acpi_ut_delete_internal_obj(union acpi_operand_object *object)
> (void)acpi_ev_delete_gpe_block(object->device.
> gpe_block);
> }
> -
> - /*lint -fallthrough */
> + fallthrough;
>
> case ACPI_TYPE_PROCESSOR:
> case ACPI_TYPE_THERMAL:
> diff --git a/drivers/acpi/acpica/utprint.c
> b/drivers/acpi/acpica/utprint.c index 681c11f4af4e..f7e43baf5ff2
> 100644
> --- a/drivers/acpi/acpica/utprint.c
> +++ b/drivers/acpi/acpica/utprint.c
> @@ -475,7 +475,7 @@ int vsnprintf(char *string, acpi_size size, const char *format, va_list args)
> case 'X':
>
> type |= ACPI_FORMAT_UPPER;
> - /* FALLTHROUGH */
> + fallthrough;
>
> case 'x':
>
> --
> 2.29.2.222.g5d2a92d10f8-goog
>
--
Thanks,
~Nick Desaulniers
Powered by blists - more mailing lists