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 ---------------------------------------------------------------------------- CC| |jason at redhat dot com Summary|Using bswap in template |parentheses cause address |function with |of register variable to be |-ftrack-macro-expansion=0 |requested |results in a false compiler | |error | --- Comment #4 from Manuel López-Ibáñez <manu at gcc dot gnu.org> --- template <typename BLAH> unsigned int foo() { register unsigned int __x = 0x00000FFF; return (__x) & 0xff000000 ; } The parentheses are significant!