@dalias @pinskia the really sad thing is that if clang had nested functions, that's what that macro would contain, i.e. a tiny wrapper that does the cast.
The entire thing, if you use ({ }) is GCC/clang only already, anyway. But narrowing it further to GCC-only is a constraint I *can't* apply.