https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115131
--- Comment #4 from Sam James <sjames at gcc dot gnu.org> ---
Reduced:
```
struct recv_frame_hdr {
int *adapter
};
union recv_frame {
struct recv_frame_hdr u
};
char *_rtw_init_recv_priv_precvpriv_0;
int _rtw_init_recv_priv_padapter, _rtw_init_recv_priv_i;
void _rtw_init_recv_priv() {
union recv_frame *precvframe;
_rtw_init_recv_priv_precvpriv_0 = (char *)(0 / 0 << 8);
precvframe = (union recv_frame *)_rtw_init_recv_priv_precvpriv_0;
_rtw_init_recv_priv_i = 0;
for (; _rtw_init_recv_priv_i < 6; _rtw_init_recv_priv_i++) {
precvframe->u.adapter = &_rtw_init_recv_priv_padapter;
precvframe++;
}
}
```
But it has UB with the division by zero.