From: Richard Sandiford Date: Wed, 22 Nov 2017 13:58:20 +0000 (+0000) Subject: Fix calculation of ptr_mode for MODE_PARTIAL_INT Pmode X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f95c5b8ec19ded003649fadb0d36491deb009000;p=gcc.git Fix calculation of ptr_mode for MODE_PARTIAL_INT Pmode This patch fixes a regression caused by r251469, where I'd incorrectly converted a call to mode_for_size that sometimes needs MODE_PARTIAL_INTs. 2017-11-22 Richard Sandiford gcc/ * emit-rtl.c (init_derived_machine_modes): Make sure ptr_mode has the same mode class as Pmode. From-SVN: r255057 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 24190a70d4e..ed0dc478547 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2017-11-22 Richard Sandiford + + * emit-rtl.c (init_derived_machine_modes): Make sure ptr_mode + has the same mode class as Pmode. + 2017-11-22 Thomas Preud'homme * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Get rid of diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index a0767116436..428e4743454 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -6003,7 +6003,8 @@ init_derived_machine_modes (void) byte_mode = opt_byte_mode.require (); word_mode = opt_word_mode.require (); - ptr_mode = int_mode_for_size (POINTER_SIZE, 0).require (); + ptr_mode = as_a + (mode_for_size (POINTER_SIZE, GET_MODE_CLASS (Pmode), 0).require ()); } /* Create some permanent unique rtl objects shared between all functions. */