! RUN: %python %S/test_errors.py %s %flang_fc1 ! %VAL en %REF legacy extension semantic tests. subroutine val_errors(array, string, polymorphic, derived) type t integer :: t end type integer :: array(10) character(*) :: string type(t) :: derived type(*) :: polymorphic !ERROR: %VAL argument must be a scalar numerical or logical expression call foo1(%val(array)) !ERROR: %VAL argument must be a scalar numerical or logical expression call foo2(%val(string)) !ERROR: %VAL argument must be a scalar numerical or logical expression call foo3(%val(derived)) !ERROR: %VAL argument must be a scalar numerical or logical expression !ERROR: Assumed type actual argument requires an explicit interface call foo4(%val(polymorphic)) end subroutine subroutine val_ok() integer :: array(10) real :: x logical :: l complex :: c call ok1(%val(array(1))) call ok2(%val(x)) call ok3(%val(l)) call ok4(%val(c)) call ok5(%val(42)) call ok6(%val(x+x)) end subroutine subroutine ref_ok(array, string, derived) type t integer :: t end type integer :: array(10) character(*) :: string type(t) :: derived call rok1(%ref(array)) call rok2(%ref(string)) call rok3(%ref(derived)) end subroutine