I have following code
... pointer (p1,i1) ! i1 is only dummy variable p1=LOC(value) ! in p1 is address of value call sub(%VAL(p1)) ! and pass address to routine ... subroutine sub(i1) use ifwinty integer(LPVOID) i1 ! in i1 should be address of value ... end subroutine
It works correctly on win32 architecture but when I tried to compile code for Intel64 I obtained:
error #6633: The type of the actual argument differs from the type of the dummy argument. [%VAL]
So I expect that %VAL is passing only 32bit value instead 64bit value of pointer p1 because subroutine sub parameter i1 is defined as 64bit integer.
My question is how can I find what I am doing wrong.