The following input ``` void function(int) a; void function(int) b; void main() { const c = *a == *b; // assert(*a); // rejected during sema } ``` crashes dmd in the backend: > TYD func > > Program received signal SIGILL, Illegal instruction. > 0x00005555559d1756 in dmd.backend.cod3.jmpopcode(dmd.backend.el.elem*) () I think however that the program is semantically invalid and should be rejected during exp-semantics, just like the commented assertion is.
Seems to happen only with `is`, comparisons, and relationals operators.
LDC2 crashes too since v1.35. Previously it generated bad code for `c` (see https://godbolt.org/z/cEM1MEevE), i.e `true` whatever the functions were pointing to.