Re: [RFC 1/4] hashtable: introduce a small and naive hashtable
From: Josh Triplett <josh@joshtriplett.org>
Date: 2012-08-03 17:59:26
Also in:
lkml
On Thu, Aug 02, 2012 at 11:47:01PM +0200, Sasha Levin wrote:
On 08/02/2012 10:41 PM, Josh Triplett wrote:quoted
On Thu, Aug 02, 2012 at 07:54:42PM +0200, Sasha Levin wrote:quoted
/* I've "preprocessed" the DEFINE macro below */ union { struct hash_table table; struct { size_t bits; struct hlist_head buckets[32]; } } my_hashtable;That expansion doesn't match the macros. Using the most recent definitions of DEFINE_HASHTABLE and DEFINE_STATIC_HASHTABLE from above, the definition would look something like this: static union { struct hash_table my_hashtable; struct { size_t bits; struct hlist_head buckets[1 << 5]; } __my_hashtable; } = { .my_hashtable.bits = 5 };It's different because I don't think you can do what you did above with global variables. You won't be defining any instances of that anonymous struct, so my_hashtable won't exist anywhere.
...how strange. The above syntax ought to work, and many other compilers document it as legal syntax (and I thought that C1x's anonymous structs and unions allowed it), but indeed GCC doesn't accept it. Fair enough; looks like consolidating the macro implementations won't actually work. - Josh Triplett -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>