https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68497
Bug ID: 68497 Summary: ICE: in output_387_binary_op, at config/i386/i386.c:17689 with -fno-checking Product: gcc Version: 6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: zsojka at seznam dot cz Target Milestone: --- Created attachment 36806 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36806&action=edit reduced testcase Compiler output: $ gcc -fno-checking testcase.c testcase.c: In function 'foo': testcase.c:5:1: internal compiler error: in output_387_binary_op, at config/i386/i386.c:17689 } ^ 0xecd4d6 output_387_binary_op(rtx_def*, rtx_def**) /repo/gcc-trunk/gcc/config/i386/i386.c:17689 0x85693b final_scan_insn(rtx_insn*, _IO_FILE*, int, int, int*) /repo/gcc-trunk/gcc/final.c:2947 0x8584c2 final(rtx_insn*, _IO_FILE*, int) /repo/gcc-trunk/gcc/final.c:2044 0x858e69 rest_of_handle_final /repo/gcc-trunk/gcc/final.c:4435 0x858e69 execute /repo/gcc-trunk/gcc/final.c:4510 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions. $ gcc -v Using built-in specs. COLLECT_GCC=/repo/gcc-trunk/binary-latest/bin/gcc COLLECT_LTO_WRAPPER=/repo/gcc-trunk/binary-trunk-230738-checking-yes-rtl-df-nographite/bin/../libexec/gcc/x86_64-pc-linux-gnu/6.0.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: /repo/gcc-trunk//configure --enable-languages=c,c++ --enable-checking=yes,rtl,df --without-cloog --without-ppl --without-isl --disable-libstdcxx-pch --prefix=/repo/gcc-trunk//binary-trunk-230738-checking-yes-rtl-df-nographite Thread model: posix gcc version 6.0.0 20151123 (experimental) (GCC) The failing assertion is: 17686: && (STACK_TOP_P (operands[1]) || STACK_TOP_P (operands[2]))) 17687: ; /* ok */ 17688: else 17689: gcc_checking_assert (is_sse); 17690: 17691: switch (GET_CODE (operands[3])) 17692: { The above if(flag_checking ... ) is false for -fno-checking, but gcc_checking_assert() doesn't care about -fno-checking. Tested revisions: r230738 - ICE