summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>2007-07-17 21:33:34 +0000
committerburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>2007-07-17 21:33:34 +0000
commit04b54899c2cad3b1f6fc44134690a2729c679e9d (patch)
tree7916ae5fcf8e54e378cb2b3aee500b5499ea6fe3
parentafb9ca771908720c4a5d0a5600d29f51e9fa7805 (diff)
downloadppe42-gcc-04b54899c2cad3b1f6fc44134690a2729c679e9d.tar.gz
ppe42-gcc-04b54899c2cad3b1f6fc44134690a2729c679e9d.zip
2007-07-17 Janus Weil <jaydub66@gmail.com>
PR fortran/32535 * resolve.c (resolve_fl_namelist): Check for namelist private components in contained subprograms. 2007-07-17 Janus Weil <jaydub66@gmail.com> PR fortran/32535 * gfortran.dg/pr32535.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126706 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/resolve.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/pr32535.f9026
4 files changed, 39 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 726fd181eda..2b46228d221 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2007-07-17 Janus Weil <jaydub66@gmail.com>
+
+ PR fortran/32535
+ * resolve.c (resolve_fl_namelist): Check for namelist private
+ components in contained subprograms.
+
2007-07-17 Paul Thomas <pault@gcc.gnu.org>
PR fortran/31320
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index aa3c80986fd..d335f36d955 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -6969,6 +6969,8 @@ resolve_fl_namelist (gfc_symbol *sym)
{
if (!nl->sym->attr.use_assoc
&& !(sym->ns->parent == nl->sym->ns)
+ && !(sym->ns->parent
+ && sym->ns->parent->parent == nl->sym->ns)
&& !gfc_check_access(nl->sym->attr.access,
nl->sym->ns->default_access))
{
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index ec808dea0f0..e1a8f1ff828 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-07-17 Janus Weil <jaydub66@gmail.com>
+
+ PR fortran/32535
+ * gfortran.dg/pr32535.f90: New test.
+
2007-07-17 Paul Thomas <pault@gcc.gnu.org>
PR fortran/31320
diff --git a/gcc/testsuite/gfortran.dg/pr32535.f90 b/gcc/testsuite/gfortran.dg/pr32535.f90
new file mode 100644
index 00000000000..43ea48e04cb
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr32535.f90
@@ -0,0 +1,26 @@
+! { dg-do compile }
+!
+! PR32535: namelist with private items contained in sub-sub-procedure of a module rejected
+!
+! Contributed by Janus Weil <jaydub66@gmail.com>
+
+module mo
+implicit none
+real, private:: a,b,c
+
+contains
+
+ subroutine sub
+ implicit none
+ namelist /nl1/ a,b,c
+
+ contains
+
+ subroutine subsub
+ implicit none
+ namelist /nl2/ a,b,c
+ end subroutine subsub
+ end subroutine sub
+end module mo
+
+! { dg-final { cleanup-modules "mo" } }
OpenPOWER on IntegriCloud