aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/dependency.c
diff options
context:
space:
mode:
authorJanus Weil <janus@gcc.gnu.org>2011-08-07 22:59:16 +0200
committerJanus Weil <janus@gcc.gnu.org>2011-08-07 22:59:16 +0200
commit2240d1cfe860cc718e00b8a48c89316cdd1ceb88 (patch)
treedc68c0720cc893fefa9aad630b6a9958f8466d70 /gcc/fortran/dependency.c
parent588c8f488fd5294c83c6733c950d9902dcb9f15b (diff)
downloadgcc-2240d1cfe860cc718e00b8a48c89316cdd1ceb88.zip
gcc-2240d1cfe860cc718e00b8a48c89316cdd1ceb88.tar.gz
gcc-2240d1cfe860cc718e00b8a48c89316cdd1ceb88.tar.bz2
re PR fortran/49638 ([OOP] length parameter is ignored when overriding type bound character functions with constant length.)
2011-08-07 Janus Weil <janus@gcc.gnu.org> Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/49638 * dependency.c (are_identical_variables): For dummy arguments only check for equal names, not equal symbols. * interface.c (gfc_check_typebound_override): Add checking for rank and character length. 2011-08-07 Janus Weil <janus@gcc.gnu.org> PR fortran/49638 * gfortran.dg/typebound_override_1.f90: New. Co-Authored-By: Thomas Koenig <tkoenig@gcc.gnu.org> From-SVN: r177550
Diffstat (limited to 'gcc/fortran/dependency.c')
-rw-r--r--gcc/fortran/dependency.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/gcc/fortran/dependency.c b/gcc/fortran/dependency.c
index b49cf54..5238c86 100644
--- a/gcc/fortran/dependency.c
+++ b/gcc/fortran/dependency.c
@@ -123,8 +123,18 @@ are_identical_variables (gfc_expr *e1, gfc_expr *e2)
{
gfc_ref *r1, *r2;
- if (e1->symtree->n.sym != e2->symtree->n.sym)
- return false;
+ if (e1->symtree->n.sym->attr.dummy && e2->symtree->n.sym->attr.dummy)
+ {
+ /* Dummy arguments: Only check for equal names. */
+ if (e1->symtree->n.sym->name != e2->symtree->n.sym->name)
+ return false;
+ }
+ else
+ {
+ /* Check for equal symbols. */
+ if (e1->symtree->n.sym != e2->symtree->n.sym)
+ return false;
+ }
/* Volatile variables should never compare equal to themselves. */