- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Assertion failure: Compiler internal error - please submit problem report
GEM ASSERTION, Compiler internal error - please submit problem report
f90: Fatal: There has been an internal compiler error (E0000003).
Error executing df.exe.
The module code that is being compiledis shown below:
module MenuDrawLib
!**********************************************************************************
! Display Menu Items with Toolbat Bitmaps
!**********************************************************************************
use dfwin
implicit none
! Private structure: one for each owner draw menu
type MYITEMDATA
integer(LONG) :: magicNum = 0
character*255 :: text = ' '
integer(UINT) :: fType = 0
integer(4) :: iButton = 0
end type
type(MYITEMDATA),allocatable :: m_ItemData(:)
type(MYITEMDATA) :: m_Item0
integer :: nItems
contains
!
integer function mm_OnMenuChar(info)
!***********************************************************************************
! User typed a char into menu. Look for item with & preceeding the char typed.
!***********************************************************************************
implicit none
! Arguments
type(T_MENUITEMINFO) :: info
!
! Local Variables
character*255 :: mmtext
type(MYITEMDATA) :: pmd
! Initialise
mm_OnMenuChar = 0
!
if(btest(info%fType,MFT_OWNERDRAW)) then
mmtext = pmd%text
endif
! mmtext = pmd%text
return
end function
end module
Note: the problem only occurs for Debug configurationBUT it will compile OK in IVF Debug & Release.
If the line "mmtext = pmd%text" is moved outside the IF / ENDIF the compiler works fine also.
Same thing happens on XP or Vista.
Can anyone explain what I'm doing wrong (unfortunately I can't use IVF yet) or if there is any work round to avoid this issue?
Thanks
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- In your module function, the quantity pmd is local to the function, and is declared but not initialized, hence pmd%text is wholly undefined.
- Without SAVE there is no guarantee that the component values will be preserved over multiple invocations of the subroutine; this will be different for CVF (where SAVE was the default) vs IVF.
- The implicit initializations in the type(myitemdata) module definition should be replaced by an explicit constructor function which can be called whenever a new instance of that type is created.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- In your module function, the quantity pmd is local to the function, and is declared but not initialized, hence pmd%text is wholly undefined.
- Without SAVE there is no guarantee that the component values will be preserved over multiple invocations of the subroutine; this will be different for CVF (where SAVE was the default) vs IVF.
- The implicit initializations in the type(myitemdata) module definition should be replaced by an explicit constructor function which can be called whenever a new instance of that type is created.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
For what it's worth, ifort compiles this ok.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page