! { 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