2
0
mirror of git://gcc.gnu.org/git/gcc.git synced 2025-04-10 03:50:26 +08:00

trans-decl.c (add_argument_checking): Check ts.deferred earlier.

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.


Co-Authored-By: Kai Tietz <ktietz@redhat.com>

From-SVN: r182190
This commit is contained in:
Tobias Burnus 2011-12-10 21:13:59 +01:00 committed by Tobias Burnus
parent 7897a1c029
commit be94c03412
3 changed files with 11 additions and 6 deletions

@ -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_symbol *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_symbol *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 * 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