regressions with recent subref_array_pointer changes

Steve Kargl sgk@troutmask.apl.washington.edu
Wed Sep 19 22:32:00 GMT 2007


On Wed, Sep 19, 2007 at 03:19:42PM -0700, Steve Kargl wrote:
> On Wed, Sep 19, 2007 at 03:01:48PM -0700, Steve Kargl wrote:
> > Something is not correct with 
> > 
> > 2007-09-16  Paul Thomas  <pault@gcc.gnu.org>
> > 
> >         PR fortran/29396
> >         PR fortran/29606
> >         PR fortran/30625
> >         PR fortran/30871
> >         <details deleted>
> > 
> > 
> 
> We're clearly not walking the expr2 correctly
> in line 3469 because it gives
> 
> (gdb) print *rss
> $5 = {type = 1515870810, expr = 0x5a5a5a5a5a5a5a5a, shape = 0x5a5a5a5a5a5a5a5a, 
>   string_length = 0x5a5a5a5a5a5a5a5a, data = {scalar = {expr = 0x5a5a5a5a5a5a5a5a}, 
>     temp = {dimen = 1515870810, type = 0x5a5a5a5a5a5a5a5a}, info = {dimen = 1515870810, 
>       ref = 0x5a5a5a5a5a5a5a5a, descriptor = 0x5a5a5a5a5a5a5a5a, 
>       data = 0x5a5a5a5a5a5a5a5a, offset = 0x5a5a5a5a5a5a5a5a, 
>       saved_offset = 0x5a5a5a5a5a5a5a5a, stride0 = 0x5a5a5a5a5a5a5a5a, subscript = {
>         0x5a5a5a5a5a5a5a5a, 0x5a5a5a5a5a5a5a5a, 0x5a5a5a5a5a5a5a5a, 0x5a5a5a5a5a5a5a5a, 
>         0x5a5a5a5a5a5a5a5a, 0x5a5a5a5a5a5a5a5a, 0x5a5a5a5a5a5a5a5a}, start = {
>         0x5a5a5a5a5a5a5a5a, 0x5a5a5a5a5a5a5a5a, 0x5a5a5a5a5a5a5a5a, 0x5a5a5a5a5a5a5a5a, 
>         0x5a5a5a5a5a5a5a5a, 0x5a5a5a5a5a5a5a5a, 0x5a5a5a5a5a5a5a5a}, end = {
>         0x5a5a5a5a5a5a5a5a, 0x5a5a5a5a5a5a5a5a, 0x5a5a5a5a5a5a5a5a, 0x5a5a5a5a5a5a5a5a, 
>         0x5a5a5a5a5a5a5a5a, 0x5a5a5a5a5a5a5a5a, 0x5a5a5a5a5a5a5a5a}, stride = {
>         0x5a5a5a5a5a5a5a5a, 0x5a5a5a5a5a5a5a5a, 0x5a5a5a5a5a5a5a5a, 0x5a5a5a5a5a5a5a5a, 
>         0x5a5a5a5a5a5a5a5a, 0x5a5a5a5a5a5a5a5a, 0x5a5a5a5a5a5a5a5a}, delta = {
>         0x5a5a5a5a5a5a5a5a, 0x5a5a5a5a5a5a5a5a, 0x5a5a5a5a5a5a5a5a, 0x5a5a5a5a5a5a5a5a, 
>         0x5a5a5a5a5a5a5a5a, 0x5a5a5a5a5a5a5a5a, 0x5a5a5a5a5a5a5a5a}, dim = {1515870810, 
>         1515870810, 1515870810, 1515870810, 1515870810, 1515870810, 1515870810}}}, 
>   loop_chain = 0x5a5a5a5a5a5a5a5a, next = 0x5a5a5a5a5a5a5a5a, useflags = 2}

The guilt line is actually

(gdb) print *rss
$8 = {type = GFC_SS_SECTION, expr = 0x201611c80, shape = 0x0, string_length = 0x0, 
  data = {scalar = {expr = 0x1}, temp = {dimen = 1, type = 0x2016150c0}, info = {
      dimen = 1, ref = 0x2016150c0, descriptor = 0x0, data = 0x0, offset = 0x0, 
      saved_offset = 0x0, stride0 = 0x0, subscript = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 
      start = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, end = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
        0x0}, stride = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, delta = {0x0, 0x0, 0x0, 0x0, 
        0x0, 0x0, 0x0}, dim = {0, 0, 0, 0, 0, 0, 0}}}, loop_chain = 0x0, 
  next = 0x2016194e0, useflags = 0}
(gdb) n
3498              lse.direct_byref = 1;
(gdb) n
3499              gfc_conv_expr_descriptor (&lse, expr2, rss);

3449, which after calling gfc_conv_expr_descriptor fills rss with junk.

-- 
Steve



More information about the Fortran mailing list