http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51267
--- Comment #2 from Mathieu <priv123 at hotmail dot fr> 2011-11-22 20:22:15 UTC --- Sure, and we are especially fans of -fbound-checks but we can not use it on half of the code because of this usage. For the story : { I reproduced here with this small code a part of the 1.e6 lines of our code (see www.code-aster.org for more interest). It's 20 years old but it's always evolving every week. This usage (with an array allocated elsewhere and used in read/write using an offset computed by LOC) allowed to simulate dynamic allocations and out-of-core memory management in f77. So if we are working to use current allocation management it requires to change a lot of lines of code and the refactoring will be done part by part... } And just try this, it works : c do 12 i=1,3*n c ius(iad+i) = -1 c 12 continue but not the unrolled loop. That's why I think that the optimizer fails on that loop (and probably only when the array of dimension(1)). Do you know what does change between 4.5 and 4.6 that can explain the difference of behavior ? Any option to tune the behavior ? Thx