https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97708
Alexander Monakov <amonakov at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |amonakov at gcc dot gnu.org --- Comment #24 from Alexander Monakov <amonakov at gcc dot gnu.org> --- Segher, did you really mean to mark the bug resolved/fixed? FWIW, I think Jakub is using an overly broad interpretation of the intended behavior. Stretching that logic, it's possible to argue that it's okay for GCC to put an operand in a different register than its asm specification says as long as the constraint matches. But that would lead to wrong code. Given that the only supported use of local register variables is passing operands to inline asm in specific registers, I really think that GCC shouldn't silently change the operand's location like that. The mismatching constraint could be a result of a typo (or something like a botched refactoring), and the compiler should help the user catch such errors.