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  <richard.sandiford@linaro.org>

gcc/
	* emit-rtl.c (init_derived_machine_modes): Make sure ptr_mode
	has the same mode class as Pmode.

From-SVN: r255057
This commit is contained in:
Richard Sandiford 2017-11-22 13:58:20 +00:00 committed by Richard Sandiford
parent 902c4e8f95
commit f95c5b8ec1
2 changed files with 7 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2017-11-22 Richard Sandiford <richard.sandiford@linaro.org>
* emit-rtl.c (init_derived_machine_modes): Make sure ptr_mode
has the same mode class as Pmode.
2017-11-22 Thomas Preud'homme <thomas.preudhomme@arm.com>
* config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Get rid of

View File

@ -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 <scalar_int_mode>
(mode_for_size (POINTER_SIZE, GET_MODE_CLASS (Pmode), 0).require ());
}
/* Create some permanent unique rtl objects shared between all functions. */