]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
trans-intrinsic.c (gfc_conv_intrinsic_loc): Make LOC return a signed integer node.
authorFrancois-Xavier Coudert <coudert@clipper.ens.fr>
Sun, 29 Oct 2006 17:05:37 +0000 (18:05 +0100)
committerFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>
Sun, 29 Oct 2006 17:05:37 +0000 (17:05 +0000)
* trans-intrinsic.c (gfc_conv_intrinsic_loc): Make LOC return a
signed integer node.

From-SVN: r118151

gcc/fortran/ChangeLog
gcc/fortran/trans-intrinsic.c

index e32f8414fa19ba1ad69c3a9d2eac64f683f0c544..b015e78412cb7557b8978ded2ff438289d880021 100644 (file)
@@ -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
index 7dbd60e8096726aca2825a3a14dacb8e74683d80..911782ba8de2657c57dbbbf2f9a7bdb8fed3b270 100644 (file)
@@ -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;
 }