This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Fix calculation of ptr_mode for MODE_PARTIAL_INT Pmode
- From: Richard Sandiford <richard dot sandiford at linaro dot org>
- To: gcc-patches at gcc dot gnu dot org
- Date: Wed, 22 Nov 2017 09:26:48 +0000
- Subject: Fix calculation of ptr_mode for MODE_PARTIAL_INT Pmode
- Authentication-results: sourceware.org; auth=none
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.
Tested on aarch64-linux-gnu, x86_64-linux-gnu and powerpc64le-linux-gnu.
Also spot-checked on msp430-elf. OK to install?
Richard
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.
Index: gcc/emit-rtl.c
===================================================================
--- gcc/emit-rtl.c 2017-11-22 09:21:12.560954668 +0000
+++ gcc/emit-rtl.c 2017-11-22 09:25:24.200002574 +0000
@@ -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. */