Re: [PATCH v2] sparse: add support for static assert

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

 



On Thu, Jan 28, 2016 at 09:53:29AM -0500, Lance Richardson wrote:
> ----- Original Message -----
> > On Mon, Jan 11, 2016 at 05:31:22PM -0500, Lance Richardson wrote:
> > 
> > 
> > Hi,
> > 
> > I don't understand why tha parsing part have changed so much since v1.
> 
> I discovered as I was adding additional test cases that the NS_TYPEDEF
> approach was causing sizeof to report a zero size for structures with
> embedded _Static_assert(); as part of processing NS_TYPEDEF within
> a structure for _Static_assert(), a unnamed field with unknown size
> was being attached to the structure definition.
> 
> So I decided to take a different approach, one that hopefully makes
> more sense than handling _Static_assert() via NS_TYPEDEF. 
> 
> Apologies for not providing these details in the v2 commit log. 

OK, I understand.
Yes, it's certainly worth to add that in the patch description.

> > > +struct s2 {
> > > +	char c;
> > > +	_Static_assert(sizeof(struct s2) == 1, "struct sizeof");
> > > +};
> > 
> > This succeed but
> > 	struct s2 {
> > 		char c;
> > 		_Static_assert(sizeof(struct s2) == 1, "struct sizeof");
> > 		char d;
> > 		_Static_assert(sizeof(struct s2) == 2, "struct sizeof");
> > 	};
> > succeed also wich seems certainly very odd.
> > 
> 
> Yes, I believe they should both fail with something like "invalid use of
> sizeof on incomplete type".

> 
> I think it's a bug.
> 

Absolutely.
 
> 
> OK, I'll post a v3 with the invalid test case removed. Thanks for looking
> at this.
> 
>    Lance

Good.
Please also add the explanation about the parsing in the patch description.

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