<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic The post 6 error is fixed for in Intel® Fortran Compiler</title>
    <link>https://community.intel.com/t5/Intel-Fortran-Compiler/WriteFile-integer-size-64-crash-on-Win32/m-p/1106213#M128029</link>
    <description>&lt;P&gt;The post 6 error is fixed for a major version later this year.&lt;/P&gt;</description>
    <pubDate>Tue, 23 Feb 2016 18:09:54 GMT</pubDate>
    <dc:creator>Steven_L_Intel1</dc:creator>
    <dc:date>2016-02-23T18:09:54Z</dc:date>
    <item>
      <title>WriteFile /integer_size:64 crash on Win32</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/WriteFile-integer-size-64-crash-on-Win32/m-p/1106204#M128020</link>
      <description>&lt;P&gt;Using a program like this:&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; program main&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; call crash()&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; end program&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; subroutine crash()&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; use kernel32&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; integer(HANDLE) hFile&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; integer(DWORD) iSize&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; integer(DWORD) iSizeRW&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; integer iTotalSize,iTotalSizeRW&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; integer(BOOL) iResult&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; iTotalSize=78439242&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; hFile=0&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; iSize = sizeof(iTotalSize)&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; iResult = 1&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; iSizeRW = iSize&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; iResult=WriteFile(hFile,loc(iTotalSize),iSize,loc(iSizeRW),NULL)&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; end subroutine&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;With&amp;nbsp;/integer_size:64 (and only on the Win32 platform), and using ifort 2015 Update 4, at the end of subroutine crash(), I get&amp;nbsp;ebp-esp = 4, and the error message:&lt;/P&gt;

&lt;P&gt;Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. &amp;nbsp;This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;So ... what did I mess up now?&lt;/P&gt;</description>
      <pubDate>Wed, 27 Jan 2016 23:05:04 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/WriteFile-integer-size-64-crash-on-Win32/m-p/1106204#M128020</guid>
      <dc:creator>Nick2</dc:creator>
      <dc:date>2016-01-27T23:05:04Z</dc:date>
    </item>
    <item>
      <title>When I tried your code with</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/WriteFile-integer-size-64-crash-on-Win32/m-p/1106205#M128021</link>
      <description>&lt;P&gt;When I tried your code with version 16.0.0.110 32 bits and /integer_size:64, it ran to completion with iResult = 0 and GetLastError() = 6 because hFile = 0 was an invalid handle.&amp;nbsp;Maybe the version you are using messed up one of the KINDs of the arguments so that it pushed the wrong number of argument bytes onto the stack?&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 28 Jan 2016 01:19:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/WriteFile-integer-size-64-crash-on-Win32/m-p/1106205#M128021</guid>
      <dc:creator>JVanB</dc:creator>
      <dc:date>2016-01-28T01:19:29Z</dc:date>
    </item>
    <item>
      <title>It looks like that's what it</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/WriteFile-integer-size-64-crash-on-Win32/m-p/1106206#M128022</link>
      <description>&lt;P&gt;It looks like that's what it is. &amp;nbsp;I looked at the disassembly with 8-byte ints vs 4-byte ints;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;00F81046 &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; eax,dword ptr [HFILE] &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;00F81049 &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dword ptr [esp],eax &amp;nbsp;&lt;BR /&gt;
	00F8104C &amp;nbsp;lea &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; eax,[ITOTALSIZE] &amp;nbsp;&lt;BR /&gt;
	00F8104F &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dword ptr [esp+4],eax &amp;nbsp;&lt;BR /&gt;
	00F81053 &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; eax,dword ptr [ISIZE] &amp;nbsp;&lt;BR /&gt;
	00F81056 &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dword ptr [esp+8],eax &amp;nbsp;&lt;BR /&gt;
	00F8105A &amp;nbsp;lea &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; eax,[ISIZERW] &amp;nbsp;&lt;BR /&gt;
	00F8105D &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dword ptr [esp+0Ch],eax &amp;nbsp;&lt;BR /&gt;
	00F81061 &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dword ptr [esp+10h],0 &amp;nbsp;&lt;BR /&gt;
	&lt;STRONG&gt;00F81069 &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dword ptr [esp+14h],0 &amp;nbsp;&lt;/STRONG&gt;&lt;BR /&gt;
	00F81071 &amp;nbsp;call &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_WriteFile@20 (0F826B0h) &amp;nbsp;&lt;BR /&gt;
	00F81076 &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dword ptr [ebp-4],eax &amp;nbsp;&lt;BR /&gt;
	00F81079 &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; eax,dword ptr [ebp-4] &amp;nbsp;&lt;BR /&gt;
	00F8107C &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dword ptr [IRESULT],eax &amp;nbsp;&lt;/P&gt;

&lt;P&gt;0032103F &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; eax,dword ptr [HFILE] &amp;nbsp;&lt;BR /&gt;
	00321042 &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dword ptr [esp],eax &amp;nbsp;&lt;BR /&gt;
	00321045 &amp;nbsp;lea &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; eax,[ITOTALSIZE] &amp;nbsp;&lt;BR /&gt;
	00321048 &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dword ptr [esp+4],eax &amp;nbsp;&lt;BR /&gt;
	0032104C &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; eax,dword ptr [ISIZE] &amp;nbsp;&lt;BR /&gt;
	0032104F &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dword ptr [esp+8],eax &amp;nbsp;&lt;BR /&gt;
	00321053 &amp;nbsp;lea &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; eax,[ISIZERW] &amp;nbsp;&lt;BR /&gt;
	00321056 &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dword ptr [esp+0Ch],eax &amp;nbsp;&lt;BR /&gt;
	0032105A &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dword ptr [esp+10h],0 &amp;nbsp;&lt;BR /&gt;
	00321062 &amp;nbsp;call &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_WriteFile@20 (0322670h) &amp;nbsp;&lt;BR /&gt;
	00321067 &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dword ptr [ebp-4],eax &amp;nbsp;&lt;BR /&gt;
	0032106A &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; eax,dword ptr [ebp-4] &amp;nbsp;&lt;BR /&gt;
	0032106D &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dword ptr [IRESULT],eax &amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;I'm really curious if there's a workaround. &amp;nbsp;I tried: &amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; iResult = WriteFile(hFile, loc(iTotalSize), iSize, loc(iSizeRW),&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;amp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;null_overlapped)&lt;/P&gt;

&lt;P&gt;But, because my debug build has /check:pointer, I get this error:&lt;/P&gt;

&lt;P&gt;forrtl: severe (408): fort: (7): Attempt to use pointer NULL_OVERLAPPED when it is not associated with a target&lt;/P&gt;</description>
      <pubDate>Thu, 28 Jan 2016 01:45:52 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/WriteFile-integer-size-64-crash-on-Win32/m-p/1106206#M128022</guid>
      <dc:creator>Nick2</dc:creator>
      <dc:date>2016-01-28T01:45:52Z</dc:date>
    </item>
    <item>
      <title>Kewl! Looks like it may be a</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/WriteFile-integer-size-64-crash-on-Win32/m-p/1106207#M128023</link>
      <description>&lt;P&gt;Kewl! Looks like it may be a bug with /integer_size:64, ALLOW_NULL, and NULL as actual argument. Here is the short form:&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;module M
&amp;nbsp;&amp;nbsp; use IFWIN
&amp;nbsp;&amp;nbsp; use ISO_C_BINDING
&amp;nbsp;&amp;nbsp; implicit none
&amp;nbsp;&amp;nbsp; interface
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; function f(x)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; import
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; implicit none
!DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS: 'f' :: f
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer(BOOL) f
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: x
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; type(T_OVERLAPPED) x
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end function f
&amp;nbsp;&amp;nbsp; end interface
end module M

subroutine S(i)
&amp;nbsp;&amp;nbsp; use M
&amp;nbsp;&amp;nbsp; implicit none
&amp;nbsp;&amp;nbsp; integer i
&amp;nbsp;&amp;nbsp; i = f(NULL)
end subroutine S

subroutine T(i)
&amp;nbsp;&amp;nbsp; use M
&amp;nbsp;&amp;nbsp; implicit none
&amp;nbsp;&amp;nbsp; integer i
&amp;nbsp;&amp;nbsp; type(T_OVERLAPPED), pointer :: x
&amp;nbsp;&amp;nbsp; call C_F_POINTER(C_NULL_PTR,x)
&amp;nbsp;&amp;nbsp; i = f(x)
end subroutine T
&lt;/PRE&gt;

&lt;P&gt;After compiling with ifort /c /FA /integer_size:64 test.f90 we can see the results in test.asm:&lt;/P&gt;

&lt;PRE class="brush:plain;"&gt;_S&amp;nbsp;PROC NEAR 
; parameter 1: 4 + esp
.B2.1:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Preds .B2.0
L2::
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;17.12
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sub&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; esp, 8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;17.12
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pxor&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmm0, xmm0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;21.8
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; movq&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QWORD PTR [esp], xmm0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;21.8
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _f@4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;21.8
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; LOE eax ebx ebp esi edi
.B2.2:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Preds .B2.1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cdq&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;21.4
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ecx, DWORD PTR [4+esp]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;17.12
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; movd&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmm1, eax&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;21.4
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; movd&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmm0, edx&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;21.4
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; punpckldq xmm1, xmm0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;21.4
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; movq&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QWORD PTR [ecx], xmm1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;21.4
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;22.1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ALIGN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 16
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; LOE
; mark_end;
_S ENDP
&lt;/PRE&gt;

&lt;PRE class="brush:plain;"&gt;_T&amp;nbsp;PROC NEAR 
; parameter 1: 4 + esp
.B3.1:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Preds .B3.0
L3::
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;24.12
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; push&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OFFSET FLAT: _T$X.0.3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;29.9
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; push&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OFFSET FLAT: _ISO_C_BINDING_mp_C_NULL_PTR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;29.9
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c_f_pointer_set_scalar&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;29.9
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; LOE ebx ebp esi edi
.B3.6:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Preds .B3.1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; add&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; esp, 8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;29.9
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; LOE ebx ebp esi edi
.B3.2:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Preds .B3.6
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; push&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DWORD PTR [_T$X.0.3]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;30.8
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _f@4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;30.8
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; LOE eax ebx ebp esi edi
.B3.3:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Preds .B3.2
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cdq&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;30.4
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ecx, DWORD PTR [4+esp]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;24.12
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; movd&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmm1, eax&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;30.4
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; movd&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmm0, edx&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;30.4
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; punpckldq xmm1, xmm0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;30.4
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; movq&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QWORD PTR [ecx], xmm1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;30.4
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;31.1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ALIGN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 16
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; LOE
; mark_end;
_T ENDP
&lt;/PRE&gt;

&lt;P&gt;So we can see that when the actual argument was NULL as in subroutine S, the compiler made space for 8 bytes on the stack and filled it with zeros from xmm0.&lt;/P&gt;

&lt;P&gt;When the actual argument was a Fortran pointer to TYPE(T_OVERLAPPED) with address of target set to C_NULL_PTR as in subroutine T, it pushed the DWORD address stored in the pointer descriptor (which may be all there is for a pointer to scalar).&lt;/P&gt;

&lt;P&gt;So there's your bug reduced to a brief subroutine and a workaround.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 28 Jan 2016 04:05:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/WriteFile-integer-size-64-crash-on-Win32/m-p/1106207#M128023</guid>
      <dc:creator>JVanB</dc:creator>
      <dc:date>2016-01-28T04:05:00Z</dc:date>
    </item>
    <item>
      <title>RO, thanks for the diagnosis</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/WriteFile-integer-size-64-crash-on-Win32/m-p/1106208#M128024</link>
      <description>&lt;P&gt;RO, thanks for the diagnosis and test case! I'll take it from here.&lt;/P&gt;</description>
      <pubDate>Thu, 28 Jan 2016 13:22:50 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/WriteFile-integer-size-64-crash-on-Win32/m-p/1106208#M128024</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2016-01-28T13:22:50Z</dc:date>
    </item>
    <item>
      <title>I was concerned that my</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/WriteFile-integer-size-64-crash-on-Win32/m-p/1106209#M128025</link>
      <description>&lt;P&gt;I was concerned that my workaround might not work if a pointer to a scalar doesn't contain any information beyond its address. If that's the case, the O.P. may have to provide his own interface body for WriteFile(). So to check, I came up with a test to measure the size of a pointer:&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;program P
&amp;nbsp;&amp;nbsp; use IFWIN
&amp;nbsp;&amp;nbsp; implicit none
&amp;nbsp;&amp;nbsp; type T
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; type(T_OVERLAPPED), pointer :: x
&amp;nbsp;&amp;nbsp; end type T
!&amp;nbsp;&amp;nbsp; type T_OVERLAPPED
!&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer x,y,z
!&amp;nbsp;&amp;nbsp; end type T_OVERLAPPED
&amp;nbsp;&amp;nbsp; type(T) y
&amp;nbsp;&amp;nbsp; write(*,*) sizeof(y)
end program P
&lt;/PRE&gt;

&lt;P&gt;This got me the error (which I believe to be incorrect):&lt;/P&gt;

&lt;PRE class="brush:plain;"&gt;test1.f90(5): error #6457: This derived type name has not been declared.&amp;nbsp;&amp;nbsp; [T_OV
ERLAPPED]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; type(T_OVERLAPPED), pointer :: x
-----------^&lt;/PRE&gt;

&lt;P&gt;Now if I uncomment the T_OVERLAPPED derived type definition, I get errors as one might expect, but the error messages are a little funky:&lt;/P&gt;

&lt;PRE class="brush:plain;"&gt;test1.f90(9): error #6401: The attributes of this name conflict with those made
accessible by a USE statement.&amp;nbsp;&amp;nbsp; [T_OVERLAPPED]
&amp;nbsp;&amp;nbsp; end type T_OVERLAPPED
------------^
test1.f90(9): error #6148: The name on this END TYPE statement is different from
&amp;nbsp;the name on the corresponding derived type statement.&amp;nbsp;&amp;nbsp; [T_OVERLAPPED]
&amp;nbsp;&amp;nbsp; end type T_OVERLAPPED
------------^&lt;/PRE&gt;

&lt;P&gt;Note that the first error message points at the END TYPE statement instead of the TYPE statement and the second message is just wrong.&lt;/P&gt;

&lt;P&gt;Commenting out the USE IFWIN statement at this point allows the compilation to go through as expected, with output 4, indicating that the O.P. may indeed have to rework the interface body. If the lpOverlapped argument is OPTIONAL rather than ALLOW_NULL, will a non-present actual argument pass C_NULL_PTR by value in ifort's implementation?&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 28 Jan 2016 15:29:30 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/WriteFile-integer-size-64-crash-on-Win32/m-p/1106209#M128025</guid>
      <dc:creator>JVanB</dc:creator>
      <dc:date>2016-01-28T15:29:30Z</dc:date>
    </item>
    <item>
      <title>I have escalated the original</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/WriteFile-integer-size-64-crash-on-Win32/m-p/1106210#M128026</link>
      <description>&lt;P&gt;I have escalated the original issue as&amp;nbsp;DPD200381259. I was a bit surprised to find that if I passed 0_4 that the error was still there.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;I think the simple workaround is:&lt;/P&gt;

&lt;P&gt;type(T_OVERLAPPED), pointer :: NULL_OVERLAPPED =&amp;gt; NULL()&lt;/P&gt;

&lt;P&gt;and pass NULL_OVERLAPPED.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Now to look at the issues in post 6.&lt;/P&gt;</description>
      <pubDate>Thu, 28 Jan 2016 15:33:57 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/WriteFile-integer-size-64-crash-on-Win32/m-p/1106210#M128026</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2016-01-28T15:33:57Z</dc:date>
    </item>
    <item>
      <title>Post 6 issues escalated as</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/WriteFile-integer-size-64-crash-on-Win32/m-p/1106211#M128027</link>
      <description>&lt;P&gt;Post 6 issues escalated as&amp;nbsp;DPD200381265. If the component isn't a pointer, or if the type is declared as a TYPE rather than a STRUCTURE, it's ok. (T_OVERLAPPED has to be a STRUCTURE because it has a UNION.)&lt;/P&gt;

&lt;P&gt;I also reproduced the odd second error, though this may be just a fallout of the first one. I did ask the developers to look at that too.&lt;/P&gt;</description>
      <pubDate>Thu, 28 Jan 2016 15:57:10 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/WriteFile-integer-size-64-crash-on-Win32/m-p/1106211#M128027</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2016-01-28T15:57:10Z</dc:date>
    </item>
    <item>
      <title>I ended up declaring my own</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/WriteFile-integer-size-64-crash-on-Win32/m-p/1106212#M128028</link>
      <description>&lt;P&gt;I ended up declaring my own interface - seems like the simple solution of not having to worry about type definitions for something I'd like to be 0. &amp;nbsp;I changed use kernel32 to use ifwinty, and:&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; INTERFACE&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;FUNCTION WriteFile(&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;amp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;hFile,&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;amp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lpBuffer,&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;amp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;nNumberOfBytesToWrite,&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;amp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lpNumberOfBytesWritten,&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;amp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lpOverlapped)&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;import&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; integer(BOOL) :: WriteFile ! BOOL&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE :: WriteFile&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; !DEC$ ATTRIBUTES ALIAS:'WriteFile' :: WriteFile&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; integer(HANDLE) hFile ! HANDLE hFile&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; integer(LPCVOID) lpBuffer ! LPCVOID lpBuffer&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; integer(DWORD) nNumberOfBytesToWrite ! DWORD nNumberOfBytesToWrite&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; integer(LPDWORD) lpNumberOfBytesWritten !LPDWORD lpNumberOfBytesWritten&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; integer(INT_PTR_KIND()) lpOverlapped ! LPOVERLAPPED lpOverlapped&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END FUNCTION&lt;BR /&gt;
	C&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; FUNCTION ReadFile(&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;amp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;hFile,&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;amp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lpBuffer,&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;amp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;nNumberOfBytesToRead,&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;amp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lpNumberOfBytesRead,&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;amp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lpOverlapped)&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;import&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; integer(BOOL) :: ReadFile ! BOOL&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE :: ReadFile&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; !DEC$ ATTRIBUTES ALIAS:'ReadFile' :: ReadFile&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; integer(HANDLE) hFile ! HANDLE hFile&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; integer(LPVOID) lpBuffer ! LPVOID lpBuffer&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; integer(DWORD) nNumberOfBytesToRead ! DWORD nNumberOfBytesToRead&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; integer(LPDWORD) lpNumberOfBytesRead ! LPDWORD lpNumberOfBytesRead&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; integer(INT_PTR_KIND()) lpOverlapped ! LPOVERLAPPED lpOverlapped&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END FUNCTION&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; END INTERFACE&lt;/P&gt;</description>
      <pubDate>Thu, 28 Jan 2016 20:44:47 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/WriteFile-integer-size-64-crash-on-Win32/m-p/1106212#M128028</guid>
      <dc:creator>Nick2</dc:creator>
      <dc:date>2016-01-28T20:44:47Z</dc:date>
    </item>
    <item>
      <title>The post 6 error is fixed for</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/WriteFile-integer-size-64-crash-on-Win32/m-p/1106213#M128029</link>
      <description>&lt;P&gt;The post 6 error is fixed for a major version later this year.&lt;/P&gt;</description>
      <pubDate>Tue, 23 Feb 2016 18:09:54 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/WriteFile-integer-size-64-crash-on-Win32/m-p/1106213#M128029</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2016-02-23T18:09:54Z</dc:date>
    </item>
  </channel>
</rss>

