http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46459

Mikael Morin <mikael at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |patch
                 CC|                            |mikael at gcc dot gnu.org

--- Comment #1 from Mikael Morin <mikael at gcc dot gnu.org> 2011-02-18 
21:13:11 UTC ---
low hanging fruit:

diff --git a/interface.c b/interface.c
index 1e5df61..32c8b6e 100644
--- a/interface.c
+++ b/interface.c
@@ -2292,6 +2292,7 @@ compare_actual_formal (gfc_actual_arglist **ap,
gfc_formal
         shape array, if the dummy argument has the VOLATILE attribute.  */

       if (f->sym->attr.volatile_
+         && a->expr->expr_type == EXPR_VARIABLE
          && a->expr->symtree->n.sym->as
          && a->expr->symtree->n.sym->as->type == AS_ASSUMED_SHAPE
          && !(f->sym->as && f->sym->as->type == AS_ASSUMED_SHAPE))
@@ -2321,6 +2322,7 @@ compare_actual_formal (gfc_actual_arglist **ap,
gfc_formal
         dummy argument has the VOLATILE attribute.  */

       if (f->sym->attr.volatile_
+         && a->expr->expr_type == EXPR_VARIABLE
          && a->expr->symtree->n.sym->attr.pointer
          && a->expr->symtree->n.sym->as
          && !(f->sym->as

Reply via email to