Commit 8987beac by Thomas Koenig

re PR fortran/83664 (Eoshift accepts missing boundary for non-default types)

2018-01-03  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/83664
	* check.c (gfc_check_eoshift): Error for missing boundary if array
	is not one of the standard types.

2018-01-03  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/83664
	* gfortran.dg/eoshift_7.f90: New test.

From-SVN: r256171
parent b853346e
2018-01-03 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/83664
* check.c (gfc_check_eoshift): Error for missing boundary if array
is not one of the standard types.
2018-01-03 Jakub Jelinek <jakub@redhat.com>
Update copyright years.
......
......@@ -2270,6 +2270,26 @@ gfc_check_eoshift (gfc_expr *array, gfc_expr *shift, gfc_expr *boundary,
return false;
}
}
else
{
switch (array->ts.type)
{
case BT_INTEGER:
case BT_LOGICAL:
case BT_REAL:
case BT_COMPLEX:
case BT_CHARACTER:
break;
default:
gfc_error ("Missing %qs argument to %qs intrinsic at %L for %qs "
"of type %qs", gfc_current_intrinsic_arg[2]->name,
gfc_current_intrinsic, &array->where,
gfc_current_intrinsic_arg[0]->name,
gfc_typename (&array->ts));
return false;
}
}
return true;
}
......
2018-01-03 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/83664
* gfortran.dg/eoshift_7.f90: New test.
2018-01-03 Jan Beulich <jbeulich@suse.com>
* gcc.target/i386/avx512vl-no-vmovdqu8.c,
......
! { dg-do compile }
program main
type t
integer :: x
end type t
type(t), dimension(2) :: a, b
a(1)%x = 1
a(2)%x = 2
b = eoshift(a,1) ! { dg-error "Missing 'boundary' argument to 'eoshift' intrinsic" }
print *,b%x
end program main
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment