https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97708
Segher Boessenkool <segher at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|INVALID |--- Status|RESOLVED |REOPENED --- Comment #5 from Segher Boessenkool <segher at gcc dot gnu.org> --- The only supported use for this feature is to specify registers for input and output operands when calling Extended @code{asm} (@pxref{Extended Asm}). This may be necessary if the constraints for a particular machine don't provide sufficient control to select the desired register. To force an operand into a register, create a local variable and specify the register name after the variable's declaration. Then use the local variable for the @code{asm} operand and specify any constraint letter that matches the register: Stop marking this as invalid. It is not. "r" *is* valid. And even if it was not, the compiler should just error, not silently do the wrong thing!