Question about genassym, locore.s and 0-sizedarrays(showstopperfor an icc compiled kernel)

Terry Lambert tlambert2 at mindspring.com
Fri Sep 5 02:09:27 PDT 2003


Alexander Leidinger wrote:
> On Fri, 05 Sep 2003 01:38:29 -0700
> Terry Lambert <tlambert2 at mindspring.com> wrote:
> > Dan Nelson wrote:
> > > I guess the correct question to be asking is "does the ELF format allow
> > > 0-length symbols?"
> >
> > It does, according to my reading of it.  They may have an issue with
> > dead code removal or element aliasing.  The way to find out would be
> > to see what they emit for "[]"... 0 lenth, or 1?
> 
> % <icc.c
> char array[];
> 
> % nm icc.o
> 00000001 C array

Now try:

	struct foo {
		char c;
		int i;
		long array[];
	};

	struct foo foo;m
	struct foo fee[1];
	struct foo fie[3];
	struct foo foe[0];
	struct foo fum[1];

on both compilers.  If they end up the same, then Intel needs to
change to using the 0.  If they end up different, then they are
broken relative to the C99 standard and zero length arrays a final
elements in structures.

-- Terry


More information about the freebsd-current mailing list