https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95304

            Bug ID: 95304
           Summary: Clean up some code for finalization
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: tkoenig at gcc dot gnu.org
  Target Milestone: ---

Just looked at the output of 

gfortran -fdump-fortran-original finalize_28.f90

which has

   symtree: 'idx2'        || symbol: 'idx2'         
      type spec : (INTEGER 8)
      attributes: (VARIABLE  ARTIFICIAL)
    symtree: 'ignore'      || symbol: 'ignore'       
      type spec : (INTEGER 4)
      attributes: (VARIABLE  ARTIFICIAL)
    symtree: 'is_contiguous'|| symbol: 'is_contiguous' 
      type spec : (LOGICAL 4)
      attributes: (VARIABLE  ARTIFICIAL)
    symtree: 'nelem'       || symbol: 'nelem'

[...]

    DO __final_coo_graphs_Coo_graph:idx=1_8
__convert_i4_i8[[((_F.rank[[((__final_coo_graphs_Coo_graph:array(FULL)))]]))]]
1_8
      ASSIGN
__final_coo_graphs_Coo_graph:strides(__final_coo_graphs_Coo_graph:idx)
_F.stride[[((__final_coo_graphs_Coo_graph:array(FULL))
(__final_coo_graphs_Coo_graph:idx))]]
      ASSIGN
__final_coo_graphs_Coo_graph:sizes(__final_coo_graphs_Coo_graph:idx) (*
__final_coo_graphs_Coo_graph:sizes((- __final_coo_graphs_Coo_graph:idx 1_8))
_F.size[[((__final_coo_graphs_Coo_graph:array(FULL))
(__final_coo_graphs_Coo_graph:idx) (8_8))]])
      IF (/=
__final_coo_graphs_Coo_graph:strides(__final_coo_graphs_Coo_graph:idx)
__final_coo_graphs_Coo_graph:sizes((- __final_coo_graphs_Coo_graph:idx 1_8)))
        ASSIGN __final_coo_graphs_Coo_graph:is_contiguous .false.
      ENDIF
    END DO

We should be able to use the is_contiguous intrinsic and also
use variable names which are prefixed with __ so we can not collide
with user variables under any circumstances.

Reply via email to