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.