https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69302
Manuel López-Ibáñez <manu at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |diagnostic CC| |manu at gcc dot gnu.org Known to fail| |6.0 --- Comment #3 from Manuel López-Ibáñez <manu at gcc dot gnu.org> --- ./test.cc:4:124: error: address requested for ‘__x’, which is declared ‘register’ [-Werror=extra] return (__extension__ ({ register unsigned int __v, __x = (0x00000FFF); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("bswap %0"\ : "=r" (__v) : "0" (__x)); __v; })); ^~~~~~~~~~ ;; Function unsigned int foo() [with BLAH = int] (null) ;; enabled by -tree-original { <<cleanup_point return <retval> = { register unsigned int __v; register unsigned int __x = 4095; register unsigned int __v; <<cleanup_point register unsigned int __x = 4095;>>; if (0) { <<cleanup_point <<< Unknown tree: expr_stmt (void) (__v = ((*(unsigned int &) &__x >> 24 | *(unsigned int &) &__x >> 8 & 65280) | *(unsigned int &) &__x << 8 & 16711680) | *(unsigned int &) &__x << 24) >>>>>; } else { <<cleanup_point __asm__("bswap %0":"=r" __v:"0" __x)>>; } __v }>>; }