view gcc/testsuite/gfortran.dg/pr32627.f03 @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
line wrap: on
line source

! { dg-do run }
! { dg-additional-sources pr32627_driver.c }
! Verify that c_f_pointer exists for string arguments.
program main
  use iso_c_binding
  implicit none
  interface
     function get_c_string() bind(c)
       use, intrinsic :: iso_c_binding, only: c_ptr
       type(c_ptr) :: get_c_string
     end function get_c_string
  end interface

  type, bind( c ) :: A
    integer( c_int ) :: xc, yc
    type( c_ptr )    :: str
  end type
  type( c_ptr )               :: x
  type( A ), pointer          :: fptr
  type( A ), target           :: my_a_type
  character( len=8 ), pointer :: strptr

  fptr => my_a_type

  fptr%str = get_c_string()

  call c_f_pointer( fptr%str, strptr )

  print *, 'strptr is: ', strptr
end program main