https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92469
--- Comment #2 from John X <anbu1024.me at gmail dot com> --- Yes, you are right. If we change "19" to "20", it still ICEs for older versions of GCC. $ cat test2.c void foo ( void ) { register int x asm ( "20" ) ; int y = x; } $ gcc-snapshot8 --version gcc (GCC) 8.3.1 20191108 Copyright (C) 2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ gcc-snapshot8 test2.c during RTL pass: final test2.c: In function ‘foo’: test2.c:7:1: internal compiler error: output_operand: invalid use of register 'frame' } ^ 0x7de0b3 output_operand_lossage(char const*, ...) ../../gcc-8-20191108/gcc/final.c:3628 0xd5c00c ix86_print_operand(_IO_FILE*, rtx_def*, int) ../../gcc-8-20191108/gcc/config/i386/i386.c:18608 0x7de3e1 output_operand(rtx_def*, int) ../../gcc-8-20191108/gcc/final.c:4070 0x7dee79 output_asm_insn(char const*, rtx_def**) ../../gcc-8-20191108/gcc/final.c:3982 0x7e044c final_scan_insn_1 ../../gcc-8-20191108/gcc/final.c:3178 0x7e076b final_scan_insn(rtx_insn*, _IO_FILE*, int, int, int*) ../../gcc-8-20191108/gcc/final.c:3224 0x7e0a2c final_1 ../../gcc-8-20191108/gcc/final.c:2091 0x7e1444 rest_of_handle_final ../../gcc-8-20191108/gcc/final.c:4677 0x7e1444 execute ../../gcc-8-20191108/gcc/final.c:4755 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. $ gcc-snapshot7 --version gcc (GCC) 7.4.1 20191107 Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ gcc-snapshot7 test2.c test2.c: In function ‘foo’: test2.c:7:1: internal compiler error: in print_reg, at config/i386/i386.c:18041 } ^ 0xca56e3 print_reg(rtx_def*, int, _IO_FILE*) ../../gcc-7-20191107/gcc/config/i386/i386.c:18038 0xcc7ddc ix86_print_operand(_IO_FILE*, rtx_def*, int) ../../gcc-7-20191107/gcc/config/i386/i386.c:18778 0x7a5701 output_operand(rtx_def*, int) ../../gcc-7-20191107/gcc/final.c:3894 0x7a616b output_asm_insn(char const*, rtx_def**) ../../gcc-7-20191107/gcc/final.c:3810 0x7a6ab9 final_scan_insn(rtx_insn*, _IO_FILE*, int, int, int*) ../../gcc-7-20191107/gcc/final.c:3061 0x7a7c7c final(rtx_insn*, _IO_FILE*, int) ../../gcc-7-20191107/gcc/final.c:2051 0x7a85d9 rest_of_handle_final ../../gcc-7-20191107/gcc/final.c:4492 0x7a85d9 execute ../../gcc-7-20191107/gcc/final.c:4569 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions.