! { dg-do run }
! This test the fix of PR18283, where assignments of scalar,
! character pointer components of derived types caused an ICE.
! It also checks that the array counterparts remain operational.
! Contributed by Paul Thomas  pault@gcc.gnu.org
!
program char_pointer_comp_assign
  implicit none
  type :: dt
     character (len=4), pointer :: scalar
     character (len=4), pointer :: array(:)
  end type dt
  type (dt) :: a 
  character (len=4), target :: scalar_t ="abcd"
  character (len=4), target :: array_t(2) = (/"abcd","efgh"/)

! Do assignments first
  allocate (a%scalar, a%array(2))
  a%scalar = scalar_t
  if (a%scalar /= "abcd") call abort ()
  a%array = array_t
  if (any(a%array /= (/"abcd","efgh"/))) call abort ()
  deallocate (a%scalar, a%array)

! Now do pointer assignments.
  a%scalar => scalar_t
  if (a%scalar /= "abcd") call abort ()
  a%array => array_t
  if (any(a%array /= (/"abcd","efgh"/))) call abort ()

end program char_pointer_comp_assign
