https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64951
Guillaume Delugré <gdelu...@security-labs.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Version|4.9.2 |5.2.0 --- Comment #1 from Guillaume Delugré <gdelu...@security-labs.org> --- The same problem is present when using C++14 auto arguments instead of templates: inline void SetRdx(auto value) { register auto __foo asm ("rdx") = value; asm volatile ( "" :: "r" (__foo) ); } This code will also store the value parameter inside register rax instead of rdx on GCC 5.2.0.