From a40278c3e39a5ef2a35a0f8c4e6ce359c9af9832 Mon Sep 17 00:00:00 2001
From: Jerry DeLisle <jvdelisle@gcc.gnu.org>
Date: Wed, 5 Oct 2016 16:32:24 +0000
Subject: [PATCH] re PR libfortran/77868 (Fail to NULL guard check for internal
 unit in inquire_via_unit)

2016-10-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/77868
	* io/inquire.c (inquire_via_unit): NULL guard the check for
	internal unit passed into child IO procedure.

	* gfortran.dg/dtio_15.f90: Fix spaces in dg-do.
	* gfortran.dg/class_array_20.f03: Likewise.
	* gfortran.dg/class_array_21.f03: Likewise.
	* gfortran.dg/finalize_29.f08: Likewise.
	* gfortran.dg/unlimited_polymorphic_23.f90: Likewise.

From-SVN: r240794
---
 gcc/testsuite/ChangeLog                                | 8 ++++++++
 gcc/testsuite/gfortran.dg/class_array_20.f03           | 2 +-
 gcc/testsuite/gfortran.dg/class_array_21.f03           | 2 +-
 gcc/testsuite/gfortran.dg/dtio_15.f90                  | 2 +-
 gcc/testsuite/gfortran.dg/finalize_29.f08              | 2 +-
 gcc/testsuite/gfortran.dg/unlimited_polymorphic_23.f90 | 2 +-
 libgfortran/ChangeLog                                  | 8 +++++++-
 libgfortran/io/inquire.c                               | 2 +-
 8 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index fa1f310d6947..947e84cbc6fb 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2016-10-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+	* gfortran.dg/dtio_15.f90: Fix spaces in dg-do.
+	* gfortran.dg/class_array_20.f03: Likewise.
+	* gfortran.dg/class_array_21.f03: Likewise.
+	* gfortran.dg/finalize_29.f08: Likewise.
+	* gfortran.dg/unlimited_polymorphic_23.f90: Likewise.
+
 2016-10-05  Richard Biener  <rguenther@suse.de>
 
 	PR middle-end/77826
diff --git a/gcc/testsuite/gfortran.dg/class_array_20.f03 b/gcc/testsuite/gfortran.dg/class_array_20.f03
index c49f7d2406fe..b4be04579666 100644
--- a/gcc/testsuite/gfortran.dg/class_array_20.f03
+++ b/gcc/testsuite/gfortran.dg/class_array_20.f03
@@ -1,4 +1,4 @@
-! {dg-do run}
+! { dg-do run }
 !
 ! Test contributed by Thomas L. Clune via pr60322
 !                  and Antony Lewis via pr64692
diff --git a/gcc/testsuite/gfortran.dg/class_array_21.f03 b/gcc/testsuite/gfortran.dg/class_array_21.f03
index 1e89d384385a..ed03ed8d3f4d 100644
--- a/gcc/testsuite/gfortran.dg/class_array_21.f03
+++ b/gcc/testsuite/gfortran.dg/class_array_21.f03
@@ -1,4 +1,4 @@
-! {dg-do run}
+! { dg-do run }
 !
 ! Contributed by Andre Vehreschild
 ! Check more elaborate class array addressing.
diff --git a/gcc/testsuite/gfortran.dg/dtio_15.f90 b/gcc/testsuite/gfortran.dg/dtio_15.f90
index 040bb3ebe1c2..776f442a4659 100644
--- a/gcc/testsuite/gfortran.dg/dtio_15.f90
+++ b/gcc/testsuite/gfortran.dg/dtio_15.f90
@@ -1,4 +1,4 @@
-! {dg-do run }
+! { dg-do run }
 ! Test that inquire of string internal unit in child process errors.
 module string_m
   implicit none
diff --git a/gcc/testsuite/gfortran.dg/finalize_29.f08 b/gcc/testsuite/gfortran.dg/finalize_29.f08
index 1f5f742403bf..9640f4f7f9cd 100644
--- a/gcc/testsuite/gfortran.dg/finalize_29.f08
+++ b/gcc/testsuite/gfortran.dg/finalize_29.f08
@@ -1,4 +1,4 @@
-! {dg-do run}
+! { dg-do run }
 !
 ! Testcase contributed by Andre Vehreschild  <vehre@gcc.gnu.org>
 
diff --git a/gcc/testsuite/gfortran.dg/unlimited_polymorphic_23.f90 b/gcc/testsuite/gfortran.dg/unlimited_polymorphic_23.f90
index 27eff3105327..99b5f6b69625 100644
--- a/gcc/testsuite/gfortran.dg/unlimited_polymorphic_23.f90
+++ b/gcc/testsuite/gfortran.dg/unlimited_polymorphic_23.f90
@@ -1,4 +1,4 @@
-! {dg-do run }
+! { dg-do run }
 !
 ! Test the fix for PR65024, in which the structure for the 'info'
 ! component of type 'T' was not being converted into TREE_SSA and
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index 0e5c4d2c0030..d38646ac8b7f 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,6 +1,12 @@
+2016-10-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+	PR fortran/77868
+	* io/inquire.c (inquire_via_unit): NULL guard the check for
+	internal unit passed into child IO procedure.
+
 2016-10-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
-	io/inquire.c (inquire_via_unit): Add check for internal unit
+	* io/inquire.c (inquire_via_unit): Add check for internal unit
 	passed into child IO procedure.
 
 2016-10-01  Andre Vehreschild  <vehre@gcc.gnu.org>
diff --git a/libgfortran/io/inquire.c b/libgfortran/io/inquire.c
index 7751b8df4db3..7e663130e566 100644
--- a/libgfortran/io/inquire.c
+++ b/libgfortran/io/inquire.c
@@ -43,7 +43,7 @@ inquire_via_unit (st_parameter_inquire *iqp, gfc_unit * u)
 
   if (iqp->common.unit == GFC_INTERNAL_UNIT ||
 	iqp->common.unit == GFC_INTERNAL_UNIT4 ||
-	u->internal_unit_kind != 0)
+	(u != NULL && u->internal_unit_kind != 0))
     generate_error (&iqp->common, LIBERROR_INQUIRE_INTERNAL_UNIT, NULL);
 
   if ((cf & IOPARM_INQUIRE_HAS_EXIST) != 0)
-- 
GitLab