aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMikael Morin <mikael@gcc.gnu.org>2013-01-09 20:18:44 +0000
committerMikael Morin <mikael@gcc.gnu.org>2013-01-09 20:18:44 +0000
commitba29dca90d1b948654eeb69c25cfc763c99b1971 (patch)
tree770cbf75028c945ef12e5f9224dc66ef0504f10a /gcc
parente1f2b72927b8dcad0c745a75d2ae23bce664d3d5 (diff)
downloadgcc-ba29dca90d1b948654eeb69c25cfc763c99b1971.zip
gcc-ba29dca90d1b948654eeb69c25cfc763c99b1971.tar.gz
gcc-ba29dca90d1b948654eeb69c25cfc763c99b1971.tar.bz2
re PR fortran/47203 (USE of module with same name as SUBROUTINE not reject, but also not working)
PR fortran/47203 * module.c (check_for_ambiguous): Get the current program unit using gfc_current_ns. PR fortran/47203 * gfortran.dg/use_28.f90: New test. From-SVN: r195065
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/module.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/use_28.f9018
4 files changed, 30 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index d8c5448..cfaae77 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2013-01-09 Mikael Morin <mikael@gcc.gnu.org>
+
+ PR fortran/47203
+ * module.c (check_for_ambiguous): Get the current program unit using
+ gfc_current_ns.
+
2013-01-09 Tobias Burnus <burnus@net-b.de>
PR fortran/55758
diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c
index f3b3caa..604acbb 100644
--- a/gcc/fortran/module.c
+++ b/gcc/fortran/module.c
@@ -4493,7 +4493,7 @@ check_for_ambiguous (gfc_symbol *st_sym, pointer_info *info)
module_locus locus;
symbol_attribute attr;
- if (st_sym->ns->proc_name && st_sym->name == st_sym->ns->proc_name->name)
+ if (st_sym->name == gfc_current_ns->proc_name->name)
{
gfc_error ("'%s' of module '%s', imported at %C, is also the name of the "
"current program unit", st_sym->name, module_name);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 1e66c77..238d752 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2013-01-09 Mikael Morin <mikael@gcc.gnu.org>
+
+ PR fortran/47203
+ * gfortran.dg/use_28.f90: New test.
+
2012-01-09 Uros Bizjak <ubizjak@gmail.com>
* gfortran.dg/intrinsic_size_3.f90: Make scan-tree-dump-times
diff --git a/gcc/testsuite/gfortran.dg/use_28.f90 b/gcc/testsuite/gfortran.dg/use_28.f90
new file mode 100644
index 0000000..4972bea
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/use_28.f90
@@ -0,0 +1,18 @@
+! { dg-do compile }
+!
+! PR fortran/47203
+! The USE statement of a module was not rejected in a procedure with the same
+! name if the procedure was contained.
+!
+! Contributed by Tobias Burnus <burnus@net-b.de>
+
+module m
+end module m
+
+call m
+contains
+ subroutine m()
+ use m ! { dg-error "is also the name of the current program unit" }
+ end subroutine m
+end
+