2019-08-17 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/91471
* primary.c (gfc_variable_attr): Remove a gfc_internal_error(),
which cannot be reached by conforming Fortran code, but seems to
be reachable from nonconforming Fortran code. Treat the AR_UNKNOWN
case as a no-op.
2019-08-17 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/91471
* gfortran.dg/pr91471.f90: New test.
From-SVN: r274603
+2019-08-17 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ PR fortran/91471
+ * primary.c (gfc_variable_attr): Remove a gfc_internal_error(),
+ which cannot be reached by conforming Fortran code, but seems to
+ be reachable from nonconforming Fortran code. Treat the AR_UNKNOWN
+ case as a no-op.
+
2019-08-17 Janne Blomqvist <jb@gcc.gnu.org>
PR fortran/68401
break;
case AR_UNKNOWN:
- /* If any of start, end or stride is not integer, there will
- already have been an error issued. */
- int errors;
- gfc_get_errors (NULL, &errors);
- if (errors == 0)
- gfc_internal_error ("gfc_variable_attr(): Bad array reference");
+ /* For standard conforming code, AR_UNKNOWN should not happen.
+ For nonconforming code, gfortran can end up here. Treat it
+ as a no-op. */
+ break;
}
break;
+2019-08-17 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ PR fortran/91471
+ * gfortran.dg/pr91471.f90: New test.
+
2019-08-16 Marek Polacek <polacek@redhat.com>
PR c++/85827
--- /dev/null
+! { dg-do compile }
+! PR fortran/91471
+! Code contributed by Sameeran Joshi <SameeranJayant dot Joshi at amd dot com>
+!
+! This invalid code (x(1) is referenced, but never set) caused an ICE due
+! to hitting a gfc_internal_error() in primary.c (gfc_variable_attr). The
+! fix is to remove that gfc_internal_error().
+!
+program dynamic
+ implicit none
+ integer, dimension(:), allocatable :: x
+ allocate(x(1))
+ stop x(1)
+end program dynamic