diff options
author | Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2007-08-06 22:29:24 +0000 |
---|---|---|
committer | François-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2007-08-06 22:29:24 +0000 |
commit | fe569d8fb18bfff6c39a0e38a5cb24b4ee8bc3fe (patch) | |
tree | 98d4f465366ad44d857ca6bf554c6e61a154c902 /gcc | |
parent | af34b82ff433908ebee037301d0f62e2f6e9d8cb (diff) | |
download | gcc-fe569d8fb18bfff6c39a0e38a5cb24b4ee8bc3fe.zip gcc-fe569d8fb18bfff6c39a0e38a5cb24b4ee8bc3fe.tar.gz gcc-fe569d8fb18bfff6c39a0e38a5cb24b4ee8bc3fe.tar.bz2 |
re PR fortran/30933 (intrinsic: EXIT)
PR fortran/30933
* iresolve.c (gfc_resolve_exit): Convert argument to default
integer kind.
From-SVN: r127256
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/iresolve.c | 16 |
2 files changed, 16 insertions, 6 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 9d7db42..ec3b5c6 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -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 diff --git a/gcc/fortran/iresolve.c b/gcc/fortran/iresolve.c index 5c49135..21ec605 100644 --- a/gcc/fortran/iresolve.c +++ b/gcc/fortran/iresolve.c @@ -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); } |