From 22a60093505c0c899e50b347d0e6c86a28c16571 Mon Sep 17 00:00:00 2001
From: Jerry DeLisle <jvdelisle@gcc.gnu.org>
Date: Thu, 9 Oct 2008 04:02:35 +0000
Subject: [PATCH] re PR libfortran/37707 (Namelist read of array of derived
 type incorrect)

2008-10-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org

	PR libfortran/37707
	* io/list_read.c (nml_get_obj_data): If the first namelist object rank
	is greater than zero, call nml_object_read with the first object rather
	than the sub-object.

From-SVN: r140995
---
 libgfortran/ChangeLog      | 7 +++++++
 libgfortran/io/list_read.c | 3 +++
 2 files changed, 10 insertions(+)

diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index 1130bdf602ce..4e115957144f 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,10 @@
+2008-10-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org
+
+	PR libfortran/37707
+	* io/list_read.c (nml_get_obj_data): If the first namelist object rank is
+	greater than zero, call nml_object_read with the first object rather
+	than the sub-object.
+
 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
             Steve Ellcey  <sje@cup.hp.com>
 
diff --git a/libgfortran/io/list_read.c b/libgfortran/io/list_read.c
index bcde3e1d49b4..76634a3ee25c 100644
--- a/libgfortran/io/list_read.c
+++ b/libgfortran/io/list_read.c
@@ -2839,6 +2839,9 @@ get_name:
       goto nml_err_ret;
     }
 
+  if (first_nl != NULL && first_nl->var_rank > 0)
+    nl = first_nl;
+  
   if (nml_read_obj (dtp, nl, 0, pprev_nl, nml_err_msg, nml_err_msg_size,
 		    clow, chigh) == FAILURE)
     goto nml_err_ret;
-- 
GitLab