[gfortran,committed] Fix last bits of EXIT intrinsic

FX Coudert fxcoudert@gmail.com
Mon Aug 6 22:29:00 GMT 2007


Committed as rev. 127256 to clear up PR30933.

FX



Index: ChangeLog
===================================================================
--- ChangeLog   (revision 127255)
+++ ChangeLog   (working copy)
@@ -1,3 +1,9 @@
+2007-08-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       PR fortran/30933
+       * iresolve.c (gfc_resolve_exit): Convert argument to default
+       integer kind.
+
2007-08-06  Daniel Franke  <franke.daniel@gmail.com>
         * resolve.c (derived_pointer): Removed, replaced callers by  
access
Index: iresolve.c
===================================================================
--- iresolve.c  (revision 127255)
+++ iresolve.c  (working copy)
@@ -2739,14 +2739,18 @@ void
gfc_resolve_exit (gfc_code *c)
{
    const char *name;
-  int kind;
+  gfc_typespec ts;
+  gfc_expr *n;
-  if (c->ext.actual->expr != NULL)
-    kind = c->ext.actual->expr->ts.kind;
-  else
-    kind = gfc_default_integer_kind;
+  /* The STATUS argument has to be of default kind.  If it is not,
+     we convert it.  */
+  ts.type = BT_INTEGER;
+  ts.kind = gfc_default_integer_kind;
+  n = c->ext.actual->expr;
+  if (n != NULL && n->ts.kind != ts.kind)
+    gfc_convert_type (n, &ts, 2);
-  name = gfc_get_string (PREFIX ("exit_i%d"), kind);
+  name = gfc_get_string (PREFIX ("exit_i%d"), ts.kind);
    c->resolved_sym = gfc_get_intrinsic_sub_symbol (name);
}



More information about the Fortran mailing list