The following program runs perfectly well up to (including) IF 2016. At the end of the program the array DEST contains 1 for indices 1 to 9 and 0 for all other indices. Now, with IF 2017 the program crashes (!) as it tries to assign all 80000 elements from SOURCE to DEST. I looked through the FORTRAN 95 standard but couldn't find a definite answer to that but IMHO either IF 2017 should reproduces the semantics of its predecessors or issue a compilation error but under no circumstances silently change the semantics and introduce a bug/runtime crash.
program Console2 implicit none integer*4 MAX_INDEX integer*4 DEST(80) integer*4 SOURCE(80000) MAX_INDEX = 9 SOURCE = 1 DEST = 0 DEST(1:MAX_INDEX)=SOURCE end program Console2
Sorry to say that, but the Intel-FORTRAN compilers keep introducing regressions in every new version (cf. e.g. https://software.intel.com/en-us/forums/intel-visual-fortran-compiler-fo...)
Thread Topic:
Bug Report