------- Comment #1 from burnus at gcc dot gnu dot org  2010-06-16 12:21 -------
The following check is to simplistic, it does not work for structures but only
for simple object names. - with structures, it gets more complicated as also
comparing the name of the last part-ref won't work - but one needs to walk
through the whole structure references. 


Alternatively, one disables the check "if (stat->symtree->n.sym->ts.type !=
BT_INTEGER)" - that's maybe too simple, but it would fix this problem. (Maybe
that's _the_ solution for the 4.5 branch?)

[When using stat=foo%array(1), NAG, pgf95, and g95 do not print a
warning/error, but ifort, openf95, pathf95, sunf95, and Cray print an error.]


In resolve.c's resolve_allocate_deallocate:

      for (p = code->ext.alloc.list; p; p = p->next)
        if (p->expr->symtree->n.sym->name == stat->symtree->n.sym->name)
          gfc_error ("Stat-variable at %L shall not be %sd within "
                     "the same %s statement", &stat->where, fcn, fcn);


-- 

burnus at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |kargl at gcc dot gnu dot org
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   GCC host triplet|x86_64-linux-gnu            |
 GCC target triplet|x86_64-linux-gnu            |
           Keywords|                            |rejects-valid
      Known to fail|                            |4.5.1 4.6.0
      Known to work|                            |4.4.0
   Last reconfirmed|0000-00-00 00:00:00         |2010-06-16 12:21:06
               date|                            |
            Summary|incorrect error:  Stat-     |[4.5/4.6 Regression]
                   |variable at (1) shall not be|incorrect error:  Stat-
                   |DEALLOCATEd within the same |variable at (1) shall not be
                   |DEALLOCATE statement        |DEALLOCATEd within the same
                   |                            |DEALLOCATE statement
   Target Milestone|---                         |4.5.1


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

Reply via email to