The following code compiles in PLATO but gets an access violation in Express.
module BUFFER_MOD
type,public :: buffer_type
private
character :: BUF_CHARS(3836)=Z'00'
end type buffer_type;
type(buffer_type),save :: The_Buffer
contains
subroutine load(inbytes,offset)
character(len=*),intent(in) :: inbytes
integer(kind=SELECTED_INT_KIND(9)),intent(in) :: offset
integer(kind=SELECTED_INT_KIND(9)) :: inlen
inlen = length(inbytes)-offset
The_Buffer%BUF_CHARS(1:inlen) = inbytes(offset+1:length(inbytes))
return
end subroutine load
SUBROUTINE pckout(outword,wordno)
integer(kind=SELECTED_INT_KIND(18)),intent(out) :: outword
integer(kind=SELECTED_INT_KIND(9)),intent(in) :: wordno
integer(kind=SELECTED_INT_KIND(9)) :: bdex,indx,itemp,imask=63
bdex = (wordno-1)*6 + 1
outword = 0
do indx = bdex,bdex+5
itemp = ichar(The_Buffer%BUF_CHARS(indx))
itemp = iand(itemp,imask)
outword = outword + itemp
outword = ishft(outword,6)
enddo
outword = ishft(outword,22)
return
end SUBROUTINE
end module BUFFER_MOD
0042b7aa broadcast_scalar(<ptr>structÄconstant_entity,<ptr>structÄtype_definition) [+0056]
0042bd32 make_new_variable(<ref>(<ptr>char),int,longÄlongÄint,int,<ptr>structÄtoken,enum [+49af]
0043126d add_variables(int,longÄlongÄint,int,<ptr>char,<ptr>structÄtoken,enumÄlogical) [+007a]
0040aa43 parse_declaration_statement(<ptr>char,int,int,<ref>int) [+39a4]
004124a7 handle_token(<ptr>char,int,int,int,int,<ref>int) [+0e0a]
00405193 ProcessEntireLine(void) [+068f]
004061db compile(<ptr>char) [+013e]
00