All of lore.kernel.org
 help / color / mirror / Atom feed
From: Justin Stitt <justinstitt@google.com>
To: Pavel Machek <pavel@ucw.cz>, Lee Jones <lee@kernel.org>,
	Nathan Chancellor <nathan@kernel.org>,
	 Nick Desaulniers <ndesaulniers@google.com>,
	Tom Rix <trix@redhat.com>
Cc: linux-leds@vger.kernel.org, linux-kernel@vger.kernel.org,
	 llvm@lists.linux.dev, Justin Stitt <justinstitt@google.com>
Subject: [PATCH] leds: pca955x: fix -Wvoid-pointer-to-enum-cast warning
Date: Wed, 16 Aug 2023 19:37:52 +0000	[thread overview]
Message-ID: <20230816-void-drivers-leds-leds-pca955x-v1-1-2967e4c1bdcc@google.com> (raw)

When building with clang 18 I see the following warning:
|      drivers/leds/leds-pca955x.c:487:15: warning: cast to smaller integer
|      type 'enum pca955x_type' from 'const void *' [-Wvoid-pointer-to-enum-cast]
|        487 |                 chip_type = (enum pca955x_type)md;

This is due to the fact that `md` is a void* while `enum pca995x_type` has the
size of an int.

Add uintptr_t cast to silence clang warning while also keeping enum cast
for readability and consistency with other `chip_type` assignment just a
few lines below:
|	chip_type = (enum pca955x_type)id->driver_data;

Link: https://github.com/ClangBuiltLinux/linux/issues/1910
Reported-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Justin Stitt <justinstitt@google.com>
---


leds: pca955x: fix -Wvoid-pointer-to-enum-cast warning
---
Note: I've opted to keep the initial `enum pca955x_type` cast and just
place the uintptr_t cast first to silence the warning. It seemed weird
to me to see the same variable being assigned to two different casted
values within just a few lines.
---
 drivers/leds/leds-pca955x.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/leds/leds-pca955x.c b/drivers/leds/leds-pca955x.c
index b10e1ef38db0..1d7fa0cd97bf 100644
--- a/drivers/leds/leds-pca955x.c
+++ b/drivers/leds/leds-pca955x.c
@@ -484,7 +484,7 @@ static int pca955x_probe(struct i2c_client *client)
 	const void *md = device_get_match_data(&client->dev);
 
 	if (md) {
-		chip_type = (enum pca955x_type)md;
+		chip_type = (enum pca955x_type)(uintptr_t)md;
 	} else {
 		const struct i2c_device_id *id = i2c_match_id(pca955x_id,
 							      client);

---
base-commit: 2ccdd1b13c591d306f0401d98dedc4bdcd02b421
change-id: 20230816-void-drivers-leds-leds-pca955x-7002cc67a291

Best regards,
--
Justin Stitt <justinstitt@google.com>


             reply	other threads:[~2023-08-16 19:37 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-16 19:37 Justin Stitt [this message]
2023-08-18 16:01 ` [PATCH] leds: pca955x: fix -Wvoid-pointer-to-enum-cast warning Lee Jones
2023-08-18 16:06   ` Nathan Chancellor
2023-08-18 17:39     ` Lee Jones
2023-09-19 14:55 ` (subset) " Lee Jones

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=20230816-void-drivers-leds-leds-pca955x-v1-1-2967e4c1bdcc@google.com \
    --to=justinstitt@google.com \
    --cc=lee@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-leds@vger.kernel.org \
    --cc=llvm@lists.linux.dev \
    --cc=nathan@kernel.org \
    --cc=ndesaulniers@google.com \
    --cc=pavel@ucw.cz \
    --cc=trix@redhat.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: link
Be 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.