Messages in this thread | | | Date | Thu, 5 Jul 2007 17:43:34 +0100 | From | Al Viro <> | Subject | Re: [RFC] bloody mess with __attribute__() syntax |
| |
On Thu, Jul 05, 2007 at 08:36:35AM -0700, Josh Triplett wrote: > Wow. Insane. So these all declare the same type: > __attribute__((foo)) T *v; > T __attribute__((foo)) *v; > T *__attribute__((foo)) v; > ? Specifically, they point to a foo-T, for convenient shooting?
They all give you foo-pointer-to-T. T (__attribute__((foo)) *v); would give pointer-to-foo-T.
> context also represents a qualifier; the position of the qualifier should > determine things like whether you want to enforce the context when you access > a pointer or dereference a pointer.
Since __context__ is (sparse-only) keyword, we are not constrained by anything anyway.
> > Frankly, I would rather add a new primitive (__qualifier__) mirroring the > > __attribute__, but acting like real qualifiers do. And switched the > > noderef et.al. to it. > > Something like that sounds vaguely reasonable. It should allow the same set > of attributes, and just change what they apply to. To use your example, > T __qualifier__((foo)) *v; > and > T (__attribute__((foo)) *v); > would mean the same thing.
Yup, except that it would not accept storage-class-like attributes (e.g. always_inline). And yes, __qualifier__((context(...))) probably might be a replacement for __context__, to reduce the number of primitives. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |