From f95c5b8ec19ded003649fadb0d36491deb009000 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Wed, 22 Nov 2017 13:58:20 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/emit-rtl.c | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) 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. */