diff options
author | fxcoudert <fxcoudert@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-10-29 17:05:37 +0000 |
---|---|---|
committer | fxcoudert <fxcoudert@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-10-29 17:05:37 +0000 |
commit | fe537a55c56e3ff3a238087604a89b1f4fa1f0f5 (patch) | |
tree | 599d5d0f82a07ea4686d007f7b116331c4a3e0c8 /gcc/fortran | |
parent | c717e399abf7ba6a8ad961b502f6d5160e673517 (diff) | |
download | gcc-fe537a55c56e3ff3a238087604a89b1f4fa1f0f5.tar.gz |
* 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
Diffstat (limited to 'gcc/fortran')
-rw-r--r-- | gcc/fortran/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fortran/trans-intrinsic.c | 8 |
2 files changed, 8 insertions, 5 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index e32f8414fa1..b015e78412c 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 7dbd60e8096..911782ba8de 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; } |