fix INTEGER*2 in DATA implied-DO
authorCraig Burley <craig@jcb-sc.com>
Sat, 24 Apr 1999 09:24:13 +0000 (09:24 +0000)
committerCraig Burley <burley@gcc.gnu.org>
Sat, 24 Apr 1999 09:24:13 +0000 (05:24 -0400)
From-SVN: r26613

gcc/f/ChangeLog
gcc/f/expr.c
gcc/f/version.c

index c174d0778f7154da46e548d2dc3cd5001f818474..689ce387add69e7157557d75d3cd5979d9c24a7e 100644 (file)
@@ -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-
index 72a6264dbf4b223b4629bd642f22dae6424680b7..83838c7dda0a2849517de9e00571cdff58e547ea 100644 (file)
@@ -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:
index 82ab0146a9289318e33f948ea05b92249302fd13..e431055c2010a18a15a8ca1f61fa75feaf81f920 100644 (file)
@@ -1 +1 @@
-const char *ffe_version_string = "0.5.24-19990423";
+const char *ffe_version_string = "0.5.24-19990424";