http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60955
Harald van Dijk <harald at gigawatt dot nl> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |harald at gigawatt dot nl --- Comment #2 from Harald van Dijk <harald at gigawatt dot nl> --- This is caused by the implementation of C++1y decltype(auto), where seemingly redundant parentheses around an identifier must not simply be removed, because they may be significant. int a; decltype(auto) b = a; // means int b = a; decltype(auto) c = (a); // means int &c = a; GCC implements this by transforming (a) into static_cast<int &>(a) (force_paren_expr in gcc/cp/semantics.c), which would normally be a no-op, but causes the warning when a is declared using the "register" keyword.