[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20120803223634.GO15477@google.com>
Date: Fri, 3 Aug 2012 15:36:34 -0700
From: Tejun Heo <tj@...nel.org>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Sasha Levin <levinsasha928@...il.com>, akpm@...ux-foundation.org,
linux-kernel@...r.kernel.org, linux-mm@...ck.org,
paul.gortmaker@...driver.com, davem@...emloft.net,
rostedt@...dmis.org, mingo@...e.hu, ebiederm@...ssion.com,
aarcange@...hat.com, ericvh@...il.com, netdev@...r.kernel.org
Subject: Re: [RFC v2 1/7] hashtable: introduce a small and naive hashtable
On Fri, Aug 03, 2012 at 03:29:10PM -0700, Linus Torvalds wrote:
> On Fri, Aug 3, 2012 at 3:23 PM, Tejun Heo <tj@...nel.org> wrote:
> >
> > I actually meant an enclosing struct. When you're defining a struct
> > member, simply putting the storage after a struct with var array
> > should be good enough. If that doesn't work, quite a few things in
> > the kernel will break.
>
> The unsigned member of a struct has to be the last one, so your struct
> won't work.
I suppose you mean unsized. I remember this working. Maybe I'm
confusing it with zero-sized array. Hmm... gcc doesn't complain about
the following. --std=c99 seems happy too.
#include <stdio.h>
struct A {
int i;
long ar[];
};
struct B {
struct A a;
long ar_storage[32];
};
int main(void)
{
printf("sizeof(A)=%zd sizeof(B)=%zd\n", sizeof(struct A), sizeof(struct B));
return 0;
}
$ ./a.out
sizeof(A)=8 sizeof(B)=264
--
tejun
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists