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.

Reply via email to