re PR fortran/86281 (SEGV in fortran/resolve.c:resolve_function)
authorPaul Thomas <pault@gcc.gnu.org>
Fri, 22 Jun 2018 22:31:17 +0000 (22:31 +0000)
committerPaul Thomas <pault@gcc.gnu.org>
Fri, 22 Jun 2018 22:31:17 +0000 (22:31 +0000)
2018-06-22  Paul Thomas  <pault@gcc.gnu.org>
    Rainer Orth  <ro@gcc.gnu.org>

PR fortran/86281
* resolve.c (resolve_contained_fntype): Check for the charlen
before testing the length.

2018-06-22  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/86281
* gfortran.dg/assumed_charlen_function_7.f90: Add -std=legacy.

Co-Authored-By: Rainer Orth <ro@gcc.gnu.org>
From-SVN: r261975

gcc/fortran/ChangeLog
gcc/fortran/resolve.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/assumed_charlen_function_7.f90

index 2e665d95a0fe4bf1e5b4db6998f6fc6dda728e26..7e75319c6424542ad08064e4126fa70e66217139 100644 (file)
@@ -1,3 +1,10 @@
+2018-06-22  Paul Thomas  <pault@gcc.gnu.org>
+           Rainer Orth  <ro@gcc.gnu.org>
+
+       PR fortran/86281
+       * resolve.c (resolve_contained_fntype): Check for the charlen
+       before testing the length.
+
 2018-06-21  Paul Thomas  <pault@gcc.gnu.org>
 
        PR fortran/49630
index 41040544ce5225e87d4b4e1b8f8b777aebfe2c98..2f5eebad5b59b508decba178d32a0338ea33f27e 100644 (file)
@@ -3116,6 +3116,7 @@ resolve_function (gfc_expr *expr)
   /* If this is a deferred TBP with an abstract interface, its result
      cannot be an assumed length character (F2003: C418).  */
   if (sym && sym->attr.abstract && sym->attr.function
+      && sym->result->ts.u.cl
       && sym->result->ts.u.cl->length == NULL)
     {
       gfc_error ("ABSTRACT INTERFACE %qs at %L must not have an assumed "
index 018fdf05682e41068d939d5bf3465de0325c7252..1b14b01d8a80183e7bacf30f3fe28e469cbbab40 100644 (file)
@@ -1,3 +1,8 @@
+2018-06-22  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/86281
+       * gfortran.dg/assumed_charlen_function_7.f90: Add -std=legacy.
+
 2018-06-22  Kelvin Nilsen  <kelvin@gcc.gnu.org>
 
        * gcc.target/powerpc/builtins-3-p8.c (test_pack_float): Remove
index b36bb872e7b7ebfaade099a9e64c7f83164c2f97..1fb57a0b7ae79c95b6a392825500d32c042feaa6 100644 (file)
@@ -1,4 +1,5 @@
 ! { dg-do compile }
+! { dg-options "-std=legacy" }
 !
 ! Test the fix for PR49630, comment #11.
 !