aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2019-12-10 19:57:30 +0100
committerMartin Liska <marxin@gcc.gnu.org>2019-12-10 18:57:30 +0000
commit42aed35797ad46c1c98fcddf6a29ecb45b45ea9d (patch)
tree36be575e0e8075402a639b96c5fe1c0b5d1e34ce
parentf812dfe8e09a2fed68c74d36e3c9b9f1d8d59c68 (diff)
downloadgcc-42aed35797ad46c1c98fcddf6a29ecb45b45ea9d.zip
gcc-42aed35797ad46c1c98fcddf6a29ecb45b45ea9d.tar.gz
gcc-42aed35797ad46c1c98fcddf6a29ecb45b45ea9d.tar.bz2
Bail out in gfc_dep_compare_expr for a NULL argument.
2019-12-10 Martin Liska <mliska@suse.cz> PR fortran/92874 * dependency.c (gfc_dep_compare_expr): Bail out when one of the arguments is null. 2019-12-10 Martin Liska <mliska@suse.cz> PR fortran/92874 * gfortran.dg/pr92874.f90: New test. From-SVN: r279181
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/dependency.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/pr92874.f9011
4 files changed, 24 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index b34a684..bcc8218 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2019-12-10 Martin Liska <mliska@suse.cz>
+
+ PR fortran/92874
+ * dependency.c (gfc_dep_compare_expr): Bail out
+ when one of the arguments is null.
+
2019-12-10 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/92863
diff --git a/gcc/fortran/dependency.c b/gcc/fortran/dependency.c
index 394d85b..eb74113 100644
--- a/gcc/fortran/dependency.c
+++ b/gcc/fortran/dependency.c
@@ -319,6 +319,8 @@ gfc_dep_compare_expr (gfc_expr *e1, gfc_expr *e2)
if (e1 == NULL && e2 == NULL)
return 0;
+ else if (e1 == NULL || e2 == NULL)
+ return -2;
e1 = gfc_discard_nops (e1);
e2 = gfc_discard_nops (e2);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 39e5366..06ffc52 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-12-10 Martin Liska <mliska@suse.cz>
+
+ PR fortran/92874
+ * gfortran.dg/pr92874.f90: New test.
+
2019-12-10 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/92863
diff --git a/gcc/testsuite/gfortran.dg/pr92874.f90 b/gcc/testsuite/gfortran.dg/pr92874.f90
new file mode 100644
index 0000000..a1fca3d
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr92874.f90
@@ -0,0 +1,11 @@
+! { dg-do compile }
+! { dg-options "-O2" }
+! PR fortran/92874
+program p
+ call s('a')
+ call s('abc')
+end
+subroutine s(x)
+ character(*) :: x
+ print *, (x(1:1) == x(1:))
+end