+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
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;
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]
/* 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.");