https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84961
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Doesn't ICE with C, where it is rejected with: pr84961.c: In function ‘foo’: pr84961.c:3:15: error: lvalue required in asm statement void foo () { asm("" : "=a"(b = a)); } ^~~ pr84961.c:3:15: error: invalid lvalue in asm output 0 But in C++ b = a seems to be considered as lvalue. Let me have a look...