Nested constructor calls with pointer results

Nested constructor calls with pointer results

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


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

  function b_new(a_old)
    class(a), target :: a_old
    type(b), pointer :: 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.

3 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

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.

Retired 12/31/2016

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.

Retired 12/31/2016

Leave a Comment

Please sign in to add a comment. Not a member? Join today