This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Fortran FE getting frisky with types


On Thu, May 26, 2005 at 05:48:30PM -0400, Andrew Pinski wrote:
> On May 26, 2005, at 5:32 PM, Steve Kargl wrote:
> >I don't see a construct like this if I do
> >
> >gfortran -o z -fdump-tree-all direct_io_1.f90
> 
> I see it in .orginal.
> 
> The problem is in trans-array.c around 4003:
>       tmp = gfc_conv_descriptor_data (descriptor);
>       tmp = build2 (NE_EXPR, boolean_type_node, tmp, integer_zero_node);
>       tmp = build3_v (COND_EXPR, tmp, deallocate, build_empty_stmt ());
>       gfc_add_expr_to_block (&block, tmp);
> 

Okay.  I see I missed the

  if (p.data != 0)
    {
      {
        real4[0:] * * ptr.1;
        ptr.1 = &p.data;
        _gfortran_deallocate (ptr.1, 0);
      }

because I was looking for a D.xyz variable.  I don't know the 
tree stuff very well.  Is it sufficient to use 

     tmp = build2 (NE_EXPR, boolean_type_node, tmp, 
          convert (TREE_TYPE (tmp), integer_zero_node));

-- 
Steve


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]