Calling a constructor of the type containing a pointer to procedure causes an Internal compiler error

Calling a constructor of the type containing a pointer to procedure causes an Internal compiler error

ifort version:12.1.0 20110811I would like to call a constructor in the following example. Is there any way to do it, apart removing the pointer from the type definition, and not causing a compiler error?code:

module class_a type :: a procedure(f_interface), pointer :: f => null() end type a abstract interface subroutine f_interface( arg ) import :: a class(a) :: arg end subroutine f_interface end interface end module class_a program test use class_a type(a) :: aa aa = a() end program test

7 posts / 0 nouveau(x)
Dernière contribution
Reportez-vous à notre Notice d'optimisation pour plus d'informations sur les choix et l'optimisation des performances dans les produits logiciels Intel.

Calling a constructor with f nullified explicitely works just fine:

module class_a

  type :: a
     procedure(f_interface), pointer :: f => null()
     real :: a = 0.
  end type a

  abstract interface
     subroutine f_interface( arg )
       import :: a
       class(a) :: arg
     end subroutine f_interface
  end interface

end module class_a

program test

  use class_a

  type(a) :: aa
  aa = a( f = null() )

end program test

Anyway, the example in the previous post should work as well.

Thanks - I have reported this as issue DPD200174320. I found another variant that also gets the internal compiler error.

Steve - Intel Developer Support

Can I track the status of the issue somehow?

Subscribe to this thread. I will post updates when I get them. Is this blocking you?

Steve - Intel Developer Support

If weren't for the workaround I would complain more:-). Right now this issue is not critical to me.

This was fixed in the 13.1 compiler.

Steve - Intel Developer Support

Laisser un commentaire

Veuillez ouvrir une session pour ajouter un commentaire. Pas encore membre ? Rejoignez-nous dès aujourd’hui