Actually, the best solution is to just modify gcc a bit to know more about
the __extension__ keyword, and then make that keyword work correctly with
-ansi -pedantic. We _can_ ask for those kinds of changes to gcc, and I
suspect gcc maintainers would even be willing to make them.
Gcc _already_ has a "__extension__" keyword that can be used to shut up
warnings for cases where we want to use gcc extensions. You can write
header-files like this, for example (try it with and without the
__extension__ to see what it does):
#define strange(x) (__extension__({ int y = x; if (y) y = 2; y; }))
So the gcc developers already _do_ support silent extensions like that,
it's just a pity the "__extension__" keyword doesn't work in
type definitions..
Anyway, I think we should be ok with a 12+20 bit dev_t, that sounds like
the best solution right now.
Linus