On Wed, Nov 18, 2020 at 1:30 PM Luc Van Oostenryck <luc.vanoostenryck@xxxxxxxxx> wrote: > > If I read the standard correctly (big 'if'), in: > volatile int x; > typeof(++x) y; > 'y' should have the type 'volatile int' and GCC interpret it so. That sounds extremely odd to me. I think it should have the same type as "x += 1" or "x = x+1", no? And what gcc does is clearly not indicative of anything, since gcc gets the comma expression wrong, so.. clang seems to have a better track record, and clang drops qualifiers on "typeof(++x)". Stupid test-case: int *fn(volatile int p) { extern typeof(++p) x; return &x; } results in no warnings with clang (but warns about dropped volatile with gcc). Linus