]> gcc.gnu.org Git - gcc.git/commitdiff
trans-types.c (gfc_array_range_type): New variable.
authorZdenek Dvorak <dvorakz@suse.cz>
Tue, 17 May 2005 20:05:07 +0000 (22:05 +0200)
committerZdenek Dvorak <rakdver@gcc.gnu.org>
Tue, 17 May 2005 20:05:07 +0000 (20:05 +0000)
* trans-types.c (gfc_array_range_type): New variable.
(gfc_init_types): Initialize gfc_array_range_type.
(gfc_get_array_type_bounds): Use gfc_array_range_type.

From-SVN: r99854

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

index c83763a505f1cbf6d966744afc15e592ea47a681..6e0a73b5d5954b7048b17550e93ebb501cdebbdc 100644 (file)
@@ -1,3 +1,9 @@
+2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       * trans-types.c (gfc_array_range_type): New variable.
+       (gfc_init_types): Initialize gfc_array_range_type.
+       (gfc_get_array_type_bounds): Use gfc_array_range_type.
+
 2005-05-17  Jakub Jelinek  <jakub@redhat.com>
 
        PR fortran/15080
index 44f19f486ccf229e0dbae673a90291c20504d515..a70784cbf3c4fc6cf30563ac683b993be9464fd3 100644 (file)
@@ -50,6 +50,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 static tree gfc_get_derived_type (gfc_symbol * derived);
 
 tree gfc_array_index_type;
+tree gfc_array_range_type;
 tree pvoid_type_node;
 tree ppvoid_type_node;
 tree pchar_type_node;
@@ -528,6 +529,12 @@ gfc_init_types (void)
   pchar_type_node = build_pointer_type (gfc_character1_type_node);
 
   gfc_array_index_type = gfc_get_int_type (gfc_index_integer_kind);
+  /* We cannot use gfc_index_zero_node in definition of gfc_array_range_type,
+     since this function is called before gfc_init_constants.  */
+  gfc_array_range_type
+         = build_range_type (gfc_array_index_type,
+                             build_int_cst (gfc_array_index_type, 0),
+                             NULL_TREE);
 
   /* The maximum array element size that can be handled is determined
      by the number of bits available to store this field in the array
@@ -1182,9 +1189,7 @@ gfc_get_array_type_bounds (tree etype, int dimen, tree * lbound,
   /* We define data as an unknown size array. Much better than doing
      pointer arithmetic.  */
   arraytype =
-    build_array_type (etype,
-                     build_range_type (gfc_array_index_type,
-                                       gfc_index_zero_node, NULL_TREE));
+    build_array_type (etype, gfc_array_range_type);
   arraytype = build_pointer_type (arraytype);
   GFC_TYPE_ARRAY_DATAPTR_TYPE (fat_type) = arraytype;
 
This page took 0.076243 seconds and 5 git commands to generate.