https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78279
Bug ID: 78279 Summary: ICE in identical_array_ref, at fortran/dependency.c:104 Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: gerhard.steinmetz.fort...@t-online.de Target Milestone: --- Using version 7 (--enable-checking=yes) on following invalid code in combination with option -Ofast or -ffast-math : $ cat z1.f90 program p integer :: i real :: z(2,4) z = 0.0 do i = 1, 3 if ( z(i) > z(1,i+1) ) print *, i end do end $ gfortran-7-20161106 -Ofast z1.f90 z1.f90:6:12: if ( z(i) > z(1,i+1) ) print *, i 1 Error: Rank mismatch in array reference at (1) (1/2) f951: internal compiler error: in identical_array_ref, at fortran/dependency.c:104 0x71c8ae identical_array_ref ../../gcc/fortran/dependency.c:104 0x71c8ae are_identical_variables ../../gcc/fortran/dependency.c:164 0x71c8ae gfc_dep_compare_expr(gfc_expr*, gfc_expr*) ../../gcc/fortran/dependency.c:479 0x7c0a69 optimize_comparison ../../gcc/fortran/frontend-passes.c:1649 0x7c11b7 optimize_op ../../gcc/fortran/frontend-passes.c:1484 0x7c11b7 optimize_expr ../../gcc/fortran/frontend-passes.c:263 0x7c2265 gfc_expr_walker(gfc_expr**, int (*)(gfc_expr**, int*, void*), void*) ../../gcc/fortran/frontend-passes.c:3313 0x7c3a78 gfc_code_walker(gfc_code**, int (*)(gfc_code**, int*, void*), int (*)(gfc_expr**, int*, void*), void*) ../../gcc/fortran/frontend-passes.c:3715 0x7c3a5c gfc_code_walker(gfc_code**, int (*)(gfc_code**, int*, void*), int (*)(gfc_expr**, int*, void*), void*) ../../gcc/fortran/frontend-passes.c:3717 0x7c49a4 optimize_namespace ../../gcc/fortran/frontend-passes.c:1022 0x7c4b60 gfc_run_passes(gfc_namespace*) ../../gcc/fortran/frontend-passes.c:132 0x6f76e7 gfc_resolve(gfc_namespace*) ../../gcc/fortran/resolve.c:16035 0x6e1bba resolve_all_program_units ../../gcc/fortran/parse.c:5883 0x6e1bba gfc_parse_file() ../../gcc/fortran/parse.c:6130 0x725822 gfc_be_parse_file ../../gcc/fortran/f95-lang.c:198