Comments
Patch
===================================================================
@@ -1,3 +1,9 @@
+2011-12-10 Tobias Burnus <burnus@net-b.de>
+ Kai Tietz <ktietz@redhat.com>
+
+ * trans-decl.c (add_argument_checking): Check ts.deferred earlier.
+ * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Use %ld with long.
+
2011-12-08 Tobias Burnus <burnus@net-b.de>
PR fortran/50815
===================================================================
@@ -4672,7 +4672,8 @@ add_argument_checking (stmtblock_t *block, gfc_sym
gfc_formal_arglist *formal;
for (formal = sym->formal; formal; formal = formal->next)
- if (formal->sym && formal->sym->ts.type == BT_CHARACTER)
+ if (formal->sym && formal->sym->ts.type == BT_CHARACTER
+ && !fsym->ts.deferred)
{
enum tree_code comparison;
tree cond;
@@ -4695,10 +4696,8 @@ add_argument_checking (stmtblock_t *block, gfc_sym
if the actual argument is (part of) an array, but only if the
dummy argument is an array. (See "Sequence association" in
Section 12.4.1.4 for F95 and 12.4.1.5 for F2003.) */
- if (fsym->ts.deferred)
- continue;
- else if (fsym->attr.pointer || fsym->attr.allocatable
- || (fsym->as && fsym->as->type == AS_ASSUMED_SHAPE))
+ if (fsym->attr.pointer || fsym->attr.allocatable
+ || (fsym->as && fsym->as->type == AS_ASSUMED_SHAPE))
{
comparison = NE_EXPR;
message = _("Actual string length does not match the declared one"
===================================================================
@@ -6015,7 +6015,7 @@ gfc_conv_intrinsic_repeat (gfc_se * se, gfc_expr *
build_int_cst (ncopies_type, 0));
gfc_trans_runtime_check (true, false, cond, &se->pre, &expr->where,
"Argument NCOPIES of REPEAT intrinsic is negative "
- "(its value is %lld)",
+ "(its value is %ld)",
fold_convert (long_integer_type_node, ncopies));
/* If the source length is zero, any non negative value of NCOPIES