OSDN Git Service

2012-09-17 Tobias Burnus <burnus@net-b.de>
authorburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 17 Sep 2012 10:13:12 +0000 (10:13 +0000)
committerburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 17 Sep 2012 10:13:12 +0000 (10:13 +0000)
        * error.c (error_print): Move increment out of the assert.
        * interface.c (gfc_compare_derived_types): Add assert.
        (get_expr_storage_size): Remove always-true logical condition.
        * resolve.c (resolve_allocate_expr): Fix looping logic.
        * target-memory.c (gfc_target_expr_size): Add assert.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191381 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/fortran/ChangeLog
gcc/fortran/error.c
gcc/fortran/interface.c
gcc/fortran/resolve.c
gcc/fortran/target-memory.c

index cc97cac..b2950f7 100644 (file)
@@ -1,3 +1,11 @@
+2012-09-17  Tobias Burnus  <burnus@net-b.de>
+
+       * error.c (error_print): Move increment out of the assert.
+       * interface.c (gfc_compare_derived_types): Add assert.
+       (get_expr_storage_size): Remove always-true logical condition.
+       * resolve.c (resolve_allocate_expr): Fix looping logic.
+       * target-memory.c (gfc_target_expr_size): Add assert.
+
 2012-09-16  Janus Weil  <janus@gcc.gnu.org>
 
        PR fortran/54594
index 64b9357..4b06156 100644 (file)
@@ -544,7 +544,8 @@ error_print (const char *type, const char *format0, va_list argp)
          gcc_assert (pos >= 0);
          while (ISDIGIT(*format))
            format++;
-         gcc_assert (*format++ == '$');
+         gcc_assert (*format == '$');
+         format++;
        }
       else
        pos++;
index b348856..88689aa 100644 (file)
@@ -396,11 +396,12 @@ gfc_compare_derived_types (gfc_symbol *derived1, gfc_symbol *derived2)
   if (derived1 == derived2)
     return 1;
 
+  gcc_assert (derived1 && derived2);
+
   /* Special case for comparing derived types across namespaces.  If the
      true names and module names are the same and the module name is
      nonnull, then they are equal.  */
-  if (derived1 != NULL && derived2 != NULL
-      && strcmp (derived1->name, derived2->name) == 0
+  if (strcmp (derived1->name, derived2->name) == 0
       && derived1->module != NULL && derived2->module != NULL
       && strcmp (derived1->module, derived2->module) == 0)
     return 1;
@@ -2267,8 +2268,7 @@ get_expr_storage_size (gfc_expr *e)
 
            elements *= (end - start)/stride + 1L;
          }
-      else if (ref->type == REF_ARRAY && ref->u.ar.type == AR_FULL
-              && ref->u.ar.as->lower && ref->u.ar.as->upper)
+      else if (ref->type == REF_ARRAY && ref->u.ar.type == AR_FULL)
        for (i = 0; i < ref->u.ar.as->rank; i++)
          {
            if (ref->u.ar.as->lower[i] && ref->u.ar.as->upper[i]
index 6a7b6c9..f67c07f 100644 (file)
@@ -7427,7 +7427,7 @@ check_symbols:
                         "statement at %L", &e->where);
              goto failure;
            }
-         break;
+         continue;
        }
 
       if (ar->dimen_type[i] == DIMEN_STAR && i == (ar->dimen + ar->codimen - 1)
index bedc668..7a55dcd 100644 (file)
@@ -125,9 +125,12 @@ gfc_target_expr_size (gfc_expr *e)
        /* Determine type size without clobbering the typespec for ISO C
           binding types.  */
        gfc_typespec ts;
+       HOST_WIDE_INT size;
        ts = e->ts;
        type = gfc_typenode_for_spec (&ts);
-       return int_size_in_bytes (type);
+       size = int_size_in_bytes (type);
+       gcc_assert (size >= 0);
+       return size;
       }
     default:
       gfc_internal_error ("Invalid expression in gfc_target_expr_size.");