https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94440
David Binderman <dcb314 at hotmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dcb314 at hotmail dot com --- Comment #7 from David Binderman <dcb314 at hotmail dot com> --- Another test case. This C code: double a; b; long double c; e() { float d = (double)(long double)b; } __attribute__((optimize(""))) f() { a = c; } when compiled by recent gcc trunk and compiler flag -ffast-math, does this: uring RTL pass: reload bug634.c: In function âfâ: bug634.c:5:44: internal compiler error: in check_bool_attrs, at recog.c:2169 5 | __attribute__((optimize(""))) f() { a = c; } | ^ 0xc42e4c check_bool_attrs(rtx_insn*) ../../trunk.git/gcc/recog.c:2168 0xafb3fc lra_update_insn_recog_data(rtx_insn*) ../../trunk.git/gcc/lra.c:1260 0xb18199 eliminate_regs_in_insn(rtx_insn*, bool, bool, poly_int<1u, long>) ../../trunk.git/gcc/lra-eliminations.c:0 0xb18b87 process_insn_for_elimination(rtx_insn*, bool, bool) ../../trunk.git/gcc/lra-eliminations.c:1304 This has been going wrong since sometime before date 20200630.