User account creation filtered due to spam.

View | Details | Raw Unified | Return to bug 33162 | Differences between
and this patch

Collapse All | Expand All

(-)interface.c (-2 / +23 lines)
Lines 1679-1686 compare_actual_formal (gfc_actual_arglis Link Here
1679
	    return 0;
1679
	    return 0;
1680
1680
1681
	}
1681
	}
1682
      else if (!compare_parameter (f->sym, a->expr,
1682
      else if (a->expr->ts.type != BT_PROCEDURE 
1683
				   ranks_must_agree || rank_check, is_elemental))
1683
	       && !compare_parameter (f->sym, a->expr, ranks_must_agree
1684
				      || rank_check, is_elemental))
1684
	{
1685
	{
1685
	  if (where)
1686
	  if (where)
1686
	    gfc_error ("Type/rank mismatch in argument '%s' at %L",
1687
	    gfc_error ("Type/rank mismatch in argument '%s' at %L",
Lines 1688-1693 compare_actual_formal (gfc_actual_arglis Link Here
1688
	  return 0;
1689
	  return 0;
1689
	}
1690
	}
1690
1691
1692
      if (a->expr->symtree && a->expr->symtree->n.sym->attr.intrinsic)
1693
	{
1694
	  static gfc_intrinsic_sym *isym;
1695
1696
	  isym = gfc_find_function (a->expr->symtree->n.sym->name);
1697
	  if (isym)
1698
	    {
1699
	      /* This is a simple check.  At this point we can easily traverse
1700
		 the actual and formal arg lists and check for correct number
1701
		 and types.  */
1702
	      if (f->next == NULL && isym->formal)
1703
		{
1704
		  if (where)
1705
		    gfc_error ("Type/rank mismatch in argument '%s' at %L",
1706
			       f->sym->name, &a->expr->where);
1707
		  return 0;
1708
		}
1709
	    }
1710
	}
1711
1691
      if (a->expr->ts.type == BT_CHARACTER
1712
      if (a->expr->ts.type == BT_CHARACTER
1692
	   && a->expr->ts.cl && a->expr->ts.cl->length
1713
	   && a->expr->ts.cl && a->expr->ts.cl->length
1693
	   && a->expr->ts.cl->length->expr_type == EXPR_CONSTANT
1714
	   && a->expr->ts.cl->length->expr_type == EXPR_CONSTANT

Return to bug 33162