diff options
-rw-r--r-- | gcc/f/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/f/expr.c | 30 | ||||
-rw-r--r-- | gcc/f/version.c | 2 |
3 files changed, 27 insertions, 14 deletions
diff --git a/gcc/f/ChangeLog b/gcc/f/ChangeLog index c174d07..689ce38 100644 --- a/gcc/f/ChangeLog +++ b/gcc/f/ChangeLog @@ -1,3 +1,12 @@ +Sat Apr 24 12:19:53 1999 Craig Burley <craig@jcb-sc.com> + + * expr.c (ffeexpr_finished_): Convert DATA implied-do + start/end/incr expressions to default INTEGER. + Fix some broken conditionals. + Clean up some code in the region. + + * version.c: Bump version. + Fri Apr 23 02:08:32 1999 Craig Burley <craig@jcb-sc.com> * g77.texi (Compiler Prototypes): Replace "missing" subscript- diff --git a/gcc/f/expr.c b/gcc/f/expr.c index 72a6264..83838c7 100644 --- a/gcc/f/expr.c +++ b/gcc/f/expr.c @@ -12680,11 +12680,12 @@ again: /* :::::::::::::::::::: */ switch (ffeinfo_basictype (info)) { case FFEINFO_basictypeLOGICAL: - error = error && !ffe_is_ugly_logint (); - if (!ffeexpr_stack_->is_rhs) - break; /* Don't convert lhs variable. */ + if (! ffe_is_ugly_logint ()) + error = TRUE; + if (! ffeexpr_stack_->is_rhs) + break; expr = ffeexpr_convert (expr, ft, ft, FFEINFO_basictypeINTEGER, - ffeinfo_kindtype (ffebld_info (expr)), 0, + ffeinfo_kindtype (info), 0, FFETARGET_charactersizeNONE, FFEEXPR_contextLET); break; @@ -12728,18 +12729,21 @@ again: /* :::::::::::::::::::: */ switch (ffeinfo_basictype (info)) { case FFEINFO_basictypeLOGICAL: - error = error - && (ffeinfo_kindtype (info) != FFEINFO_kindtypeLOGICALDEFAULT); - if (!ffeexpr_stack_->is_rhs) - break; /* Don't convert lhs variable. */ + if (! ffeexpr_stack_->is_rhs) + break; expr = ffeexpr_convert (expr, ft, ft, FFEINFO_basictypeINTEGER, - FFEINFO_kindtypeINTEGERDEFAULT, 0, FFETARGET_charactersizeNONE, + ffeinfo_kindtype (info), 0, + FFETARGET_charactersizeNONE, FFEEXPR_contextLET); - break; - + /* Fall through. */ case FFEINFO_basictypeINTEGER: - error = error && - (ffeinfo_kindtype (info) != FFEINFO_kindtypeINTEGERDEFAULT); + if (ffeexpr_stack_->is_rhs + && (ffeinfo_kindtype (ffebld_info (expr)) + != FFEINFO_kindtypeINTEGERDEFAULT)) + expr = ffeexpr_convert (expr, ft, ft, FFEINFO_basictypeINTEGER, + FFEINFO_kindtypeINTEGERDEFAULT, 0, + FFETARGET_charactersizeNONE, + FFEEXPR_contextLET); break; case FFEINFO_basictypeHOLLERITH: diff --git a/gcc/f/version.c b/gcc/f/version.c index 82ab014..e431055 100644 --- a/gcc/f/version.c +++ b/gcc/f/version.c @@ -1 +1 @@ -const char *ffe_version_string = "0.5.24-19990423"; +const char *ffe_version_string = "0.5.24-19990424"; |