aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2012-08-09 14:06:31 +0200
committerTobias Burnus <burnus@gcc.gnu.org>2012-08-09 14:06:31 +0200
commit62d6a5bbc851e99b69cf6899e02ac46e66a3b50c (patch)
treef8d2ff420c061a708cc57c0f14f82d8eae203777 /gcc
parent6738604187ed4202c2e042ec2cbf625bfa3e5f2b (diff)
downloadgcc-62d6a5bbc851e99b69cf6899e02ac46e66a3b50c.zip
gcc-62d6a5bbc851e99b69cf6899e02ac46e66a3b50c.tar.gz
gcc-62d6a5bbc851e99b69cf6899e02ac46e66a3b50c.tar.bz2
re PR fortran/54199 (Superfluous diagnostic "is also the name of an intrinsic" for internal procedures)
2012-08-09 Tobias Burnus <burnus@net-b.de> PR fortran/54199 * intrinsic.c (gfc_warn_intrinsic_shadow): Better warning for internal procedures. 2012-08-09 Tobias Burnus <burnus@net-b.de> PR fortran/54199 * gfortran.dg/intrinsic_shadow_4.f90: New. From-SVN: r190251
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/intrinsic.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/intrinsic_shadow_4.f9012
4 files changed, 24 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 278f55a..bcdb679 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2012-08-09 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/54199
+ * intrinsic.c (gfc_warn_intrinsic_shadow): Better warning
+ for internal procedures.
+
2012-08-06 Janus Weil <janus@gcc.gnu.org>
PR fortran/35831
diff --git a/gcc/fortran/intrinsic.c b/gcc/fortran/intrinsic.c
index 60c68fe..6da131d 100644
--- a/gcc/fortran/intrinsic.c
+++ b/gcc/fortran/intrinsic.c
@@ -4503,7 +4503,7 @@ gfc_warn_intrinsic_shadow (const gfc_symbol* sym, bool in_module, bool func)
return;
/* Emit the warning. */
- if (in_module)
+ if (in_module || sym->ns->proc_name)
gfc_warning ("'%s' declared at %L may shadow the intrinsic of the same"
" name. In order to call the intrinsic, explicit INTRINSIC"
" declarations may be required.",
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 73f242a..47066a3 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2012-08-09 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/54199
+ * gfortran.dg/intrinsic_shadow_4.f90: New.
+
2012-08-08 H.J. Lu <hongjiu.lu@intel.com>
* gcc.dg/tree-ssa/slsr-30.c: Require non-ilp32. Remove
diff --git a/gcc/testsuite/gfortran.dg/intrinsic_shadow_4.f90 b/gcc/testsuite/gfortran.dg/intrinsic_shadow_4.f90
new file mode 100644
index 0000000..df614bb
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/intrinsic_shadow_4.f90
@@ -0,0 +1,12 @@
+! { dg-do compile }
+! { dg-options "-Wall" }
+!
+! PR fortran/54199
+!
+subroutine test()
+contains
+ real function fraction(x) ! { dg-warning "'fraction' declared at .1. may shadow the intrinsic of the same name. In order to call the intrinsic, explicit INTRINSIC declarations may be required." }
+ real :: x
+ fraction = x
+ end function fraction
+end subroutine test