| ! { dg-do run } |
| ! |
| ! PR fortran/35983 |
| ! C_LOC expanded to a NULL_PTR expr if called from a structure constructor |
| ! |
| ! Contributed by Franรงois-Xavier Coudert |
| |
| program main |
| use ISO_C_BINDING |
| implicit none |
| type, bind(C) :: descr |
| type(C_PTR) :: address |
| end type descr |
| type(descr) :: DD |
| double precision, target :: buf(1) |
| integer (C_INTPTR_T) :: i, j |
| |
| buf = (/ 0 /) |
| DD = descr(c_loc(buf)) |
| i = transfer (DD%address, 0_c_intptr_t) |
| j = transfer (c_loc(buf), 0_c_intptr_t) |
| if (any((/ i,j /) == 0_c_intptr_t)) STOP 1 |
| if (i /= j) STOP 2 |
| end program main |