re PR fortran/48298 ([F03] User-Defined Derived-Type IO (DTIO))
authorPaul Thomas <pault@gcc.gnu.org>
Mon, 26 Sep 2016 11:15:23 +0000 (11:15 +0000)
committerPaul Thomas <pault@gcc.gnu.org>
Mon, 26 Sep 2016 11:15:23 +0000 (11:15 +0000)
2016-09-26  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/48298
* interface.c (gfc_find_specific_dtio_proc) : Return NULL if
the derived type is broken, as indicated by a flavor other than
FL_DERIVED.

From-SVN: r240493

gcc/fortran/ChangeLog
gcc/fortran/interface.c

index dee19ded2411765a8fb987696bb42aad18292ead..d721bdf9746771770a7e451def49523e42464a92 100644 (file)
@@ -1,3 +1,10 @@
+2016-09-26  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/48298
+       * interface.c (gfc_find_specific_dtio_proc) : Return NULL if
+       the derived type is broken, as indicated by a flavor other than
+       FL_DERIVED.
+
 2016-09-26  Marek Polacek  <polacek@redhat.com>
 
        PR c/7652
@@ -12,7 +19,7 @@
 
 2016-09-25  Steven G. Kargl  <kargl@gcc.gnu.org>
 
-       PR fortran/77429 
+       PR fortran/77429
        * dependency.c (gfc_check_dependency):  Convert gcc_assert() to
        a conditional and possible call to  gfc_internal_error().
 
index 9a19fa731b0c309eab7c686a1eaa7bc15c3f4ce0..9a0ccf811851c6b696bce44be257230b18cebc7c 100644 (file)
@@ -4793,6 +4793,9 @@ gfc_find_specific_dtio_proc (gfc_symbol *derived, bool write, bool formatted)
   gfc_typebound_proc *tb_io_proc, *specific_proc;
   bool t = false;
 
+  if (!derived || derived->attr.flavor != FL_DERIVED)
+    return NULL;
+
   /* Try to find a typebound DTIO binding.  */
   if (formatted == true)
     {