aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSteven G. Kargl <kargl@gcc.gnu.org>2018-05-24 23:28:35 +0000
committerSteven G. Kargl <kargl@gcc.gnu.org>2018-05-24 23:28:35 +0000
commit67b8d50c647986eda5e72f8924ae24ca44d89720 (patch)
tree546cb6adf2d79c0275bec0fdbdd19b07bb4aae84 /gcc
parent1072bff8143c56ae3de8d08d122f4960f9bdcdd2 (diff)
downloadgcc-67b8d50c647986eda5e72f8924ae24ca44d89720.zip
gcc-67b8d50c647986eda5e72f8924ae24ca44d89720.tar.gz
gcc-67b8d50c647986eda5e72f8924ae24ca44d89720.tar.bz2
re PR fortran/85780 (ICE in resolve_fl_procedure, at fortran/resolve.c:12504)
2018-05-24 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/85780 * resolve.c (resolve_fl_procedure): Avoid NULL dereference. 2018-05-24 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/85780 * gfortran.dg/pr85780.f90: New test. From-SVN: r260698
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/resolve.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/pr85780.f905
4 files changed, 16 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 534b277..9410c52 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,5 +1,10 @@
2018-05-24 Steven G. Kargl <kargl@gcc.gnu.org>
+ PR fortran/85780
+ * resolve.c (resolve_fl_procedure): Avoid NULL dereference.
+
+2018-05-24 Steven G. Kargl <kargl@gcc.gnu.org>
+
PR fortran/85779
* decl.c (gfc_match_derived_decl): Fix NULL point dereference.
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index a53253ea..434c532 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -12503,7 +12503,7 @@ resolve_fl_procedure (gfc_symbol *sym, int mp_flag)
while (curr_arg != NULL)
{
/* Skip implicitly typed dummy args here. */
- if (curr_arg->sym->attr.implicit_type == 0)
+ if (curr_arg->sym && curr_arg->sym->attr.implicit_type == 0)
if (!gfc_verify_c_interop_param (curr_arg->sym))
/* If something is found to fail, record the fact so we
can mark the symbol for the procedure as not being
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 8273fca..fec1fca 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2018-05-24 Steven G. Kargl <kargl@gcc.gnu.org>
+ PR fortran/85780
+ * gfortran.dg/pr85780.f90: New test.
+
+2018-05-24 Steven G. Kargl <kargl@gcc.gnu.org>
+
PR fortran/85779
* gfortran.dg/pr85779_1.f90: New test.
* gfortran.dg/pr85779_2.f90: Ditto.
diff --git a/gcc/testsuite/gfortran.dg/pr85780.f90 b/gcc/testsuite/gfortran.dg/pr85780.f90
new file mode 100644
index 0000000..ad6b27f
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr85780.f90
@@ -0,0 +1,5 @@
+! { dg-do compile }
+! { dg-options "-std=legacy" }
+! PR fortran/85780
+subroutine s(*) bind(c)
+end