I've recently started testing Intel(R) Composer XE 2013 Update 2 (package 149) and now my code generates an access violation when running in the debugger. (The error is listed as a segmentation fault outside the debugger.) My code executed ok when compiled with Intel(R) Composer XE 2011 Update 4 (package 196).
I'm looking for any input as to what may have changed between these two compiler releases and suggestions for what to do next. The error is very strange to me. Here are some code fragments. It's hard to make a sample program that reproduces the problem since deleting seemingly unrelated code makes things change.
character :: line*132 outer: do write(*,*)'line',line continue write(*,*)'trimline',trim(line) continue ! Deleted code here for example purposes. do kk = 1, num_locs cloc = citem(line) !cycle outer select case(trim(cloc)) case('*') continue exit ! Additional deleted code
On the second pass through the above subroutine code, an access violation is generated at the first write statement. The exit statement at the end of the code snippet is effectively cycling the outer loop -- "enddo outer" is right after the case statement. How can this be? Why should one way of cycling the loop work and another, seemingly equivalent way not? Why would deleting unrelated code matter?