aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven G. Kargl <kargl@gcc.gnu.org>2018-12-19 22:31:25 +0000
committerSteven G. Kargl <kargl@gcc.gnu.org>2018-12-19 22:31:25 +0000
commit7d564142f580373ffd872de47a6a822d7b039252 (patch)
tree0dc3765904f796bf3fe1224a4930774371764558
parent5b0acc312d9f99c9cb9a62cbf1149b35cf238cd3 (diff)
downloadgcc-7d564142f580373ffd872de47a6a822d7b039252.zip
gcc-7d564142f580373ffd872de47a6a822d7b039252.tar.gz
gcc-7d564142f580373ffd872de47a6a822d7b039252.tar.bz2
re PR fortran/87992 (ICE in resolve_fl_variable, at fortran/resolve.c:12314)
2018-12-19 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/87992 * resolve.c (resolve_fl_variable): Avoid a NULL pointer. 2018-12-19 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/87992 * gfortran.dg/pr87992.f90: New test. From-SVN: r267288
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/resolve.c6
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/pr87992.f905
4 files changed, 20 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 88acec1..04eade5 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,8 @@
+2018-12-19 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ PR fortran/87992
+ * resolve.c (resolve_fl_variable): Avoid a NULL pointer.
+
2018-12-16 Steven G. Kargl <kargl@gcc.gnu.org>
* resolve.c (resolve_transfer): Remove dead code.
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index fedf60a..9ce01c7 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -12310,7 +12310,11 @@ resolve_fl_variable (gfc_symbol *sym, int mp_flag)
{
/* Make sure that character string variables with assumed length are
dummy arguments. */
- e = sym->ts.u.cl->length;
+ if (sym->ts.u.cl)
+ e = sym->ts.u.cl->length;
+ else
+ return false;
+
if (e == NULL && !sym->attr.dummy && !sym->attr.result
&& !sym->ts.deferred && !sym->attr.select_type_temporary
&& !sym->attr.omp_udr_artificial_var)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 6a3ed92..bc8f899 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2018-12-19 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ PR fortran/87992
+ * gfortran.dg/pr87992.f90: New test.
+
2018-12-19 Uros Bizjak <ubizjak@gmail.com>
* gcc.target/i386/avx512dq-pr82855.c: Update scan-assembler pattern.
diff --git a/gcc/testsuite/gfortran.dg/pr87992.f90 b/gcc/testsuite/gfortran.dg/pr87992.f90
new file mode 100644
index 0000000..cbde0d0
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr87992.f90
@@ -0,0 +1,5 @@
+! { dg-do compile }
+subroutine s(x)
+ class(*), allocatable :: x
+ x = ''
+end