aboutsummaryrefslogtreecommitdiff
path: root/gcc/f
diff options
context:
space:
mode:
authorCraig Burley <craig@jcb-sc.com>1999-04-24 09:24:13 +0000
committerCraig Burley <burley@gcc.gnu.org>1999-04-24 05:24:13 -0400
commit81c5baa0b36f7ded676caef89aec55edc0774d14 (patch)
treea8d1c67a2eca37a7dfe92b7966d190cc7b4e3b7a /gcc/f
parent29df97144a17fd2f13598851a1431e260aef6a8f (diff)
downloadgcc-81c5baa0b36f7ded676caef89aec55edc0774d14.zip
gcc-81c5baa0b36f7ded676caef89aec55edc0774d14.tar.gz
gcc-81c5baa0b36f7ded676caef89aec55edc0774d14.tar.bz2
fix INTEGER*2 in DATA implied-DO
From-SVN: r26613
Diffstat (limited to 'gcc/f')
-rw-r--r--gcc/f/ChangeLog9
-rw-r--r--gcc/f/expr.c30
-rw-r--r--gcc/f/version.c2
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";