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

kargl at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |kargl at gcc dot gnu.org

--- Comment #2 from kargl at gcc dot gnu.org ---
(In reply to Richard Biener from comment #1)
> Confirmed.
> 
> f951: internal compiler error: Segmentation fault
> 0x17cf885 crash_signal
>         /space/rguenther/src/gcc/gcc/toplev.cc:316
> 0xe79b99 resolve_forall_iterators
>         /space/rguenther/src/gcc/gcc/fortran/resolve.cc:7620

No idea what ivdep is suppose to do, but it is certainly messing up gfortran.

(gdb) b resolve.cc:7620
Breakpoint 1 at 0x9e076d: file ../../gccx/gcc/fortran/resolve.cc, line 7620.
(gdb) run a.f90
Breakpoint 1, resolve_forall_iterators (it=0x203c6d360)
    at ../../gccx/gcc/fortran/resolve.cc:7620
7620          if (gfc_resolve_expr (iter->var)
(gdb) p *it
$5 = {var = 0x203c250a0, start = 0x203c25180, end = 0x203c25260, 
  stride = 0x203c25340, next = 0x10000}

it->next is set to an invalid address, so the for loop is not
exited.  If I remove the '!GCC ivdep' directive, then one see

(gdb) p *it->next
Cannot access memory at address 0x0

the expected result.  I think that this is not a Fortran bug, and the
component should be changed to middle-end.

Reply via email to