https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86673
--- Comment #6 from Thomas Preud'homme <thopre01 at gcc dot gnu.org> --- The following simpler testcase also shows the problem: void fn1() { register const int h asm("r2") = 1; __asm__(".ifnc %0,r2; .err; .endif\n\t" "bl __put_user_4" :: "r"(h)); }