Re: [PATCH v4] sparse: add support for _Static_assert

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, May 4, 2017 at 5:46 PM, Lance Richardson <lrichard@xxxxxxxxxx> wrote:
>> From: "Luc Van Oostenryck" <luc.vanoostenryck@xxxxxxxxx>
>> To: "Lance Richardson" <lrichard@xxxxxxxxxx>
>> Cc: "Linux-Sparse" <linux-sparse@xxxxxxxxxxxxxxx>
>> Sent: Thursday, 4 May, 2017 10:58:35 AM
>> Subject: Re: [PATCH v4] sparse: add support for _Static_assert
>>
>> On Thu, May 04, 2017 at 09:53:50AM -0400, Lance Richardson wrote:
>> > Thanks for the quick feedback, will incorporate in v5.
>>
>> I also saw a small issue, possibly related to the problem with
>> the mixup between 'declaration-list' and 'struct-declarator-list'
>> that you noticed. In the following code, the static assert is not
>> recognized:
>>       void foo(void)
>>       {
>>               int i = 0;
>>               for (_Static_assert(1, "ok"); 1; )
>>                       ;
>>               for (_Static_assert(0, "ko"); 1; )
>>                       ;
>>       }
>>
>> It should because (since C99) the first part of the for-statement
>> is just a 'declaration', which include the static assert.
>> Not that it's very important, though.
>>
>> Probably, it's best to leave it as is for the moment and just
>> add a new test case, annotated with 'check-known-to-fail'.
>>
>> -- Luc
>>
>
> Hi Luc,
>
> I'm not sure it should be accepted; the standard doc says:
>
>     "The declaration part of a for statement shall only declare
>      identifiers for objects having storage class auto or register."
>
> But _Static_assert() doesn't declare an identifier.

Indeed.

> gcc accepts this syntax, although clang does not.  I did find this discussion:
>
>     https://reviews.llvm.org/D9113
>
> Which points to a working group discussion that made it sound as
> though _Static_assert() should not be accepted in for-loop declarations:

It makes a lot of sense to not accept it.

>     www.open-std.org/JTC1/SC22/WG14/13677
>
> As you say, probably best to leave this for now.

Yes, even more so now.
Thanks for the info.

-- Luc
--
To unsubscribe from this list: send the line "unsubscribe linux-sparse" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Newbies FAQ]     [LKML]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Trinity Fuzzer Tool]

  Powered by Linux