diff options
author | Janus Weil <janus@gcc.gnu.org> | 2011-08-07 20:59:16 +0000 |
---|---|---|
committer | Janus Weil <janus@gcc.gnu.org> | 2011-08-07 20:59:16 +0000 |
commit | e42a97807ec668962cc7b1d48beb51b93262304a (patch) | |
tree | dc68c0720cc893fefa9aad630b6a9958f8466d70 /gcc/fortran/dependency.c | |
parent | 6079cb0f8aae4951be0d38412f19e1dbd641b95a (diff) |
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.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@177550 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/dependency.c')
-rw-r--r-- | gcc/fortran/dependency.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/gcc/fortran/dependency.c b/gcc/fortran/dependency.c index b49cf5424ca..5238c861381 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. */ |