Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
28446 Discussions

Nested constructor calls with pointer results

pwl_b
Beginner
232 Views

The following program does not compile with ifort 13.0.1 20121010 due to internal compiler error:

module nest_cons

  type :: a
  end type a

  type :: b
  end type b

  interface a
     module procedure :: a_new
  end interface a

  interface b
     module procedure :: b_new
  end interface b

contains

  function a_new()
    type(a), pointer :: a_new
    allocate(a_new)
    print *, "a_new()"
  end function a_new

  function b_new(a_old)
    class(a), target :: a_old
    type(b), pointer :: b_new
    allocate(b_new)
    print *, "b_new()"
  end function b_new

end module nest_cons


program nest_cons_prog

  use nest_cons

  class(b), pointer :: bb

  bb => b(a())

end program nest_cons_prog

Best regards,
Paweł Biernat.

0 Kudos
2 Replies
Steven_L_Intel1
Employee
232 Views
Thanks for the interesting example. I can reproduce the problem and have escalated this as issue DPD200238281. I will update this thread with any news.
0 Kudos
Steven_L_Intel1
Employee
232 Views
It turns out that this problem (in a different guise) was previously reported and has already been fixed. The issue ID is DPD200236395 and the fix should appear in update 2.
0 Kudos
Reply