I am using a piece of code that uses CLOG (Complex Natural Logarithm) and it crashes inside CLOG. The message is
Unhandled exception at 0x77c5df76 in IX1Dv3.exe: 0xC0000005: Access violation writing location 0x00230ff0.
According to the pointer in the disassembly, it is trying to push a variable onto the stack when the error occurs.
The argument is an array element, I tried to circumvent the problem by declaring a complex (*8) variable in the subroutine and setting it equal to the array element in question and this does not help.
I am pretty sure that this code ran under the last version of Compaq Visual Fortran when I was using that (probably before 2010).
I am using Intel(R) Visual Fortran Composer XE 2011 Integration for Microsoft Visual Studio* 2010, 12.0.3470.2010, according to Help/About.
I am looking for suggestions. Any ideas?
Thanks in advance,
I'm wondering if there is memory corruption somewhere else in the program. I can't imagine what would require CLOG to be storing into a non-stack memory location.
The first thing I would do is stop at the call to CLOG, switch to assembly view, and instruction-step-into. I still am skeptical that the error is actually in the CLOG intrinsic itself.
Another technique I would use is to comment out code after the CLOG call and see if the error still happens. I'd then start selectively commenting out code before it to see if that made any difference (understanding that the results would be wrong, but that's not important at this step.)
If the error persisted I would start disabling other code earlier in the program. This usually helped me identify what was going wrong. In my experience, the cause of errors like this were far removed from where the error became visible.
I wrote a small test that calls CLOG and stepped through it - I did not see any general memory writes.
If you can't solve this on your own, pack up a complete reproducing test case, including all sources, build files, data and instructions for running, and submit a ticket to Intel support.