- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am getting the message
fortcom: Fatal: There has been an internal compiler error (C0000005).
when I compile some code containing procedure pointers to functions returning class() pointers. I am using IVF Compiler XE 12.0.1.127, IA-32. Here is a code snippet that produces the behaviour:
[fortran]module polytest type base integer(4)::d end type base interface pure function ptr_func() import base class(base),pointer::ptr_func end function end interface procedure(ptr_func),pointer::p contains pure function get_ptr() class(base),pointer::get_ptr allocate(get_ptr) end function get_ptr subroutine test() p => get_ptr end subroutine test end module polytest[/fortran]
If I comment out the line p=>get_ptr, it compiles fine. I can fix the problem by using type() pointers instead of class() pointers, but I need polymorphism. Any advice on how to proceed?
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks - I can reproduce the problem and will forward it to development. Issue ID is DPD200171895. If I can find a workaround I will let you know.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This has been fixed for a future release - sorry, no workaround at this time.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks. I'm happy with tweaking the compilation of the single relevant source file to get it to work. It does not affect the rest of the program.
![](/skins/images/45C6C2D737ED71F4C51F0145C8CB1E9C/responsive_peak/images/icon_anonymous_message.png)
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page