+2018-01-31 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/84088
+ * trans-expr.c (gfc_conv_procedure_call): If the parm expr is
+ an address expression passed to an assumed rank dummy, convert
+ to an indirect reference.
+
2018-01-31 Thomas Koenig <tkoenig@gcc.gnu.org>
* dump-parse-tree.c (write_proc): Use sym_name (which may
&& fsym->ts.type != BT_CLASS && e->expr_type != EXPR_NULL)
{
tmp = parmse.expr;
- if (TREE_CODE (tmp) == ADDR_EXPR
- && (POINTER_TYPE_P (TREE_TYPE (TREE_OPERAND (tmp, 0)))
- || e->expr_type == EXPR_CONSTANT))
- tmp = TREE_OPERAND (tmp, 0);
+ if (TREE_CODE (tmp) == ADDR_EXPR)
+ tmp = build_fold_indirect_ref_loc (input_location, tmp);
parmse.expr = gfc_conv_scalar_to_descriptor (&parmse, tmp,
fsym->attr);
parmse.expr = gfc_build_addr_expr (NULL_TREE,
+2018-01-31 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/84088
+ * gfortran.dg/pr84088.f90 : New test.
+
2018-01-31 Vladimir Makarov <vmakarov@redhat.com>
PR target/82444
--- /dev/null
+! { dg-do run }
+!
+! Test of fix for case in comment #7 of PR84088.
+!
+! Contributed by Tom de Vries <vries@gcc.gnu.org>
+!
+implicit none
+ integer(kind=4) z
+
+ call foo (z)
+
+contains
+ subroutine foo (a)
+ type (*), dimension (..), contiguous :: a
+ integer(kind = 4) :: i
+ if(sizeof (a) .ne. sizeof (i)) call abort
+ end subroutine foo
+
+end program