From fe537a55c56e3ff3a238087604a89b1f4fa1f0f5 Mon Sep 17 00:00:00 2001 From: fxcoudert <fxcoudert@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Sun, 29 Oct 2006 17:05:37 +0000 Subject: [PATCH] * trans-intrinsic.c (gfc_conv_intrinsic_loc): Make LOC return a signed integer node. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118151 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/fortran/ChangeLog | 5 +++++ gcc/fortran/trans-intrinsic.c | 8 +++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index e32f8414fa19..b015e78412cb 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2006-10-29 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + * trans-intrinsic.c (gfc_conv_intrinsic_loc): Make LOC return a + signed integer node. + 2006-10-29 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/17741 diff --git a/gcc/fortran/trans-intrinsic.c b/gcc/fortran/trans-intrinsic.c index 7dbd60e80967..911782ba8de2 100644 --- a/gcc/fortran/trans-intrinsic.c +++ b/gcc/fortran/trans-intrinsic.c @@ -3301,7 +3301,7 @@ gfc_conv_intrinsic_iargc (gfc_se * se, gfc_expr * expr) gfc_index_integer_kind integer. */ static void -gfc_conv_intrinsic_loc(gfc_se * se, gfc_expr * expr) +gfc_conv_intrinsic_loc (gfc_se * se, gfc_expr * expr) { tree temp_var; gfc_expr *arg_expr; @@ -3315,13 +3315,11 @@ gfc_conv_intrinsic_loc(gfc_se * se, gfc_expr * expr) gfc_conv_expr_reference (se, arg_expr); else gfc_conv_array_parameter (se, arg_expr, ss, 1); - se->expr= convert (gfc_unsigned_type (long_integer_type_node), - se->expr); + se->expr= convert (gfc_get_int_type (gfc_index_integer_kind), se->expr); /* Create a temporary variable for loc return value. Without this, we get an error an ICE in gcc/expr.c(expand_expr_addr_expr_1). */ - temp_var = gfc_create_var (gfc_unsigned_type (long_integer_type_node), - NULL); + temp_var = gfc_create_var (gfc_get_int_type (gfc_index_integer_kind), NULL); gfc_add_modify_expr (&se->pre, temp_var, se->expr); se->expr = temp_var; } -- GitLab