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