All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ben Dooks <ben.dooks@codethink.co.uk>
To: Dan Carpenter <dan.carpenter@linaro.org>
Cc: linux-sparse@vger.kernel.org
Subject: Re: issue with _Static_assert and __builtin()s
Date: Thu, 8 Jan 2026 09:38:25 +0000	[thread overview]
Message-ID: <13cb6e5b-94f0-487d-a8fb-9e5ab8a3e45c@codethink.co.uk> (raw)
In-Reply-To: <aV9DhtIM7Z5ZmJRz@stanley.mountain>

On 08/01/2026 05:41, Dan Carpenter wrote:
> On Wed, Jan 07, 2026 at 07:41:45PM +0000, Ben Dooks wrote:
>> So I am looking at why the Linux kernel's check for nul characters
>> in strings is causing errors out of sparse.
>>
>> EG:
>> drivers/md/dm.c:3813:1: error: bad constant expression
>> drivers/md/dm.c:3814:1: error: bad constant expression
>> drivers/md/dm.c:3816:1: error: bad constant expression
>> drivers/md/dm.c:3817:1: error: bad constant expression
>>
>> I've tracked it down to the sizeof(str) - 1 == __builtin_strlen(str)
>> failing to be a good constant expression...
>>
>> This is an example of the assert which isn't working:
>>
>> _Static_assert(sizeof("moo") - 1 == __builtin_strlen("moo"), "nul!");
>>
>> This does at least get past w/o warnings
>> _Static_assert(__builtin_types_compatible_p(int, int), "doh!");
>>
>> I've had a go at updating builtin.c to deal with __builtin_strlen()
>> for a string constant (attached) but that's just changing the
>> output to "error: bad integer constant expression" so not sure
>> what I've missed here.
>>
> 
> Al has a fix for that.
> https://git.kernel.org/pub/scm/linux/kernel/git/viro/sparse.git/commit/?id=2634e39bf02697a18fece057208150362c985992

Ah thanks, that'll save me a few hours of prodding my code to try
getting it working.

-- 
Ben Dooks				http://www.codethink.co.uk/
Senior Engineer				Codethink - Providing Genius

https://www.codethink.co.uk/privacy.html

  reply	other threads:[~2026-01-08  9:38 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-07 19:41 issue with _Static_assert and __builtin()s Ben Dooks
2026-01-08  5:41 ` Dan Carpenter
2026-01-08  9:38   ` Ben Dooks [this message]
2026-02-09 16:25   ` Jeff Johnson
2026-02-10 14:25     ` Ben Dooks
2026-02-10 14:40       ` Jeff Johnson

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=13cb6e5b-94f0-487d-a8fb-9e5ab8a3e45c@codethink.co.uk \
    --to=ben.dooks@codethink.co.uk \
    --cc=dan.carpenter@linaro.org \
    --cc=linux-sparse@vger.kernel.org \
    /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.