This was triggered by some code in picolibc. The minimal version looks like this:
double infinity(void) { return 5; } extern long double infinityl() __attribute__((__alias__("infinity")));
These two declarations have a different type (not because of the 'long double', which is also 'double' in IR, but because infinityl has no (void) and is therefore a variadic function). This led to a crash in the bitcast which assumed address space 0.