https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102043
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |9.5 Summary|Wrong array types used for |[9/10/11/12 Regression] |negative stride accesses |Wrong array types used for | |negative stride accesses, | |gfortran.dg/vector_subscrip | |t_1.f90 FAILs --- Comment #33 from Richard Biener <rguenth at gcc dot gnu.org> --- Btw, for GCC 12 this issue is now visible through IPA modref and results in FAIL: gfortran.dg/vector_subscript_1.f90 -O1 execution test FAIL: gfortran.dg/vector_subscript_1.f90 -O2 execution test FAIL: gfortran.dg/vector_subscript_1.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test FAIL: gfortran.dg/vector_subscript_1.f90 -O3 -g execution test FAIL: gfortran.dg/vector_subscript_1.f90 -Os execution test on at least x86_64-unknown-linux-gnu. The testcase in comment#1 still shows the issue is older. Since gfortran 4.3 works this is still a regression (I guess it became appearant with the alias oracle introduction). I'll note the OpenACC folks were working on making gfortran preserve multi-dimensional array accesses, not sure how they address this issue. With a single dimension there's not much value in using ARRAY_REF over pointer arithmetic and dereference.