]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR fortran/85780 (ICE in resolve_fl_procedure, at fortran/resolve.c:12504)
authorSteven G. Kargl <kargl@gcc.gnu.org>
Fri, 25 May 2018 19:05:52 +0000 (19:05 +0000)
committerSteven G. Kargl <kargl@gcc.gnu.org>
Fri, 25 May 2018 19:05:52 +0000 (19:05 +0000)
2018-05-25  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/85780
Backport from trunk
* resolve.c (resolve_fl_procedure): Avoid NULL dereference.

2018-05-25  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/85780
Backport from trunk
* gfortran.dg/pr85780.f90: New test.

From-SVN: r260771

gcc/fortran/ChangeLog
gcc/fortran/resolve.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/pr85780.f90 [new file with mode: 0644]

index 681f61823b5648411a64ceb1762f0f947337a958..104a96857e3045d575eb19b0a83041ee77536a41 100644 (file)
@@ -1,3 +1,9 @@
+2018-05-25  Steven G. Kargl  <kargl@gcc.gnu.org>
+
+       PR fortran/85780
+       Backport from trunk
+       * resolve.c (resolve_fl_procedure): Avoid NULL dereference.
+
 2018-05-25  Steven G. Kargl  <kargl@gcc.gnu.org>
 
        PR fortran/85895
index 4f1b5ce9b9dc4756026d9649b5de7e66927dd9ee..fa839ba98e614313212d8870f465501e4ef0ce7f 100644 (file)
@@ -12270,7 +12270,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
index 6622385a3b469aadb2fe3cecaff02906426dc3bd..661df286fb7815f06bfe0b5488f3a8835f3f7fb2 100644 (file)
@@ -1,3 +1,9 @@
+2018-05-25  Steven G. Kargl  <kargl@gcc.gnu.org>
+
+       PR fortran/85780
+       Backport from trunk
+       * gfortran.dg/pr85780.f90: New test.
+
 2018-05-25  Steven G. Kargl  <kargl@gcc.gnu.org>
 
        PR fortran/85895
diff --git a/gcc/testsuite/gfortran.dg/pr85780.f90 b/gcc/testsuite/gfortran.dg/pr85780.f90
new file mode 100644 (file)
index 0000000..ad6b27f
--- /dev/null
@@ -0,0 +1,5 @@
+! { dg-do compile }
+! { dg-options "-std=legacy" }
+! PR fortran/85780
+subroutine s(*) bind(c)
+end