aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJanus Weil <jaydub66@gmail.com>2007-07-17 21:33:34 +0000
committerTobias Burnus <burnus@gcc.gnu.org>2007-07-17 23:33:34 +0200
commit4665abc46c9e1b0a6a7eace3ff9aff827ae7179f (patch)
tree7916ae5fcf8e54e378cb2b3aee500b5499ea6fe3 /gcc
parent0af0580f585860dd5216d84593b1d816953f7a10 (diff)
downloadgcc-4665abc46c9e1b0a6a7eace3ff9aff827ae7179f.zip
gcc-4665abc46c9e1b0a6a7eace3ff9aff827ae7179f.tar.gz
gcc-4665abc46c9e1b0a6a7eace3ff9aff827ae7179f.tar.bz2
re PR fortran/32535 (namelist with private items contained in sub-sub-procedure of a module rejected)
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. From-SVN: r126706
Diffstat (limited to 'gcc')
-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 726fd18..2b46228 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 aa3c809..d335f36 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 ec808de..e1a8f1f 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 0000000..43ea48e
--- /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" } }