! RUN: %S/test_errors.sh %s %t %flang_fc1
! Test that associations constructs can be correctly combined. The intrinsic
! functions are not what is tested here, they are only use to reveal the types
! of local variables.

  implicit none
  real res
  complex zres
  integer ires
  class(*), allocatable :: a, b
  select type(a)
    type is (integer)
      select type(b)
        type is (integer)
          ires = selected_int_kind(b)
          ires = selected_int_kind(a)
      end select
    type is (real)
     res = acos(a)
     !ERROR: Actual argument for 'x=' has bad type 'CLASS(*)'
     res = acos(b)
  end select

  select type(c => a)
    type is (real)
     res = acos(c)
    class default
     !ERROR: Actual argument for 'x=' has bad type 'CLASS(*)'
     res = acos(c)
  end select
  select type(a)
    type is (integer)
     !ERROR: Actual argument for 'x=' has bad type 'INTEGER(4)'
     res = acos(a)
  end select

  select type(b)
    type is (integer)
      associate(y=>1.0, x=>1, z=>(1.0,2.3))
        ires = selected_int_kind(x)
        select type(a)
          type is (real)
            res = acos(a)
            res = acos(y)
            !ERROR: Actual argument for 'x=' has bad type 'INTEGER(4)'
            res = acos(b)
          type is (integer)
            ires = selected_int_kind(b)
            zres = acos(z)
           !ERROR: Actual argument for 'x=' has bad type 'INTEGER(4)'
           res = acos(a)
        end select
      end associate
      ires = selected_int_kind(b)
      !ERROR: No explicit type declared for 'c'
      ires = selected_int_kind(c)
      !ERROR: Actual argument for 'x=' has bad type 'CLASS(*)'
      res = acos(a)
    class default
      !ERROR: Actual argument for 'r=' has bad type 'CLASS(*)'
      ires = selected_int_kind(b)
  end select
  !ERROR: Actual argument for 'r=' has bad type 'CLASS(*)'
  ires = selected_int_kind(a)
  !ERROR: Actual argument for 'x=' has bad type 'CLASS(*)'
  res = acos(b)
end
