https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120049

Jerry DeLisle <jvdelisle at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2025-05-01

--- Comment #1 from Jerry DeLisle <jvdelisle at gcc dot gnu.org> ---
Here is a reduced case. Adding the 'use, intrinsic :: iso_c_binding' eliminates
the ICE.

module tests
  use, intrinsic :: iso_c_binding ! Adding this line eliminates the ICE
  use gtk_sup
  use gtk, only: gtk_init
  use g, only: g_value_init, g_value_unset, g_value_set_int, g_value_get_int, &
             & g_value_get_pointer, g_value_set_pointer
  implicit none

contains

  integer function test_gvalue_routines() result(errors)
    type(gvalue), target :: val, val2   ! GValue (opaque) structures
    type(c_ptr) :: p_val, p_val2        ! C pointers toward GValue structures

    errors = 0

    call g_value_unset(p_val)
    p_val = g_value_init(p_val, G_TYPE_POINTER)

    call g_value_set_pointer(p_val, c_loc(val))
    p_val2 = g_value_get_pointer(p_val)
    ! FIXME: the following lines compiles with Intel ifx but causes an internal
    ! error with GFortran 14.2.0:
    if (.not.c_associated(p_val2, c_loc(val))) then
      print '(A)', "Problem!"
      errors = errors + 1
    end if

  end function test_gvalue_routines

end module tests


program tests_gtk_sup
  use tests

  implicit none
  integer :: errors = 0

  call gtk_init()
  print '(A)', "> test_gvalue_routines()"
  errors = errors + test_gvalue_routines()

  print *
  if (errors == 0) then
    print '(A)', "No error"
  else
    print *, errors, "errors"
    print '(A)', "See the 'tests_errors.txt' file"
  end if
end program tests_gtk_sup

Reply via email to