On Tue, Nov 17, 2020 at 11:13:52AM -0800, Linus Torvalds wrote: > > +#define __unqual_typeof(type) typeof( (typeof(type))type )
> that's certainly a much nicer version than the existing pre-processor > expansion from hell. It would need to be typeof( (typeof(type)) (type) ) to not be that constrained on what kind of expressions it accepts as arguments. Anyway, it won't work with array types at least, int a[10]; typeof ((typeof (a)) (a)) b; is an error (in both gcc and clang), while typeof (a) b; will work (but not drop the qualifiers). Don't know if the kernel cares or not. Jakub