https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116498
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ebotcazou at gcc dot gnu.org --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- Confirmed on trunk, while (!targetm.valid_pointer_mode (p_mode)) p_mode = GET_MODE_WIDER_MODE (p_mode).require (); is broken, but I think the code expects it will find a valid_pointer_mode and this expectation is wrong in this case. It seems odd that neither Pmode nor ptr_mode is in the set of integer modes though. Eventually because /* 20-bit address */ PARTIAL_INT_MODE (SI, 20, PSI); INT_N (PSI, 20); it seems PSImode is not found via the above iteration.