This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC 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]

[Bug tree-optimization/83126] [8 Regression] ICE in transform_to_exit_first_loop_alt, at tree-parloops.c:1713


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

Aldy Hernandez <aldyh at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2017-12-19
                 CC|                            |aldyh at gcc dot gnu.org
     Ever confirmed|0                           |1

--- Comment #1 from Aldy Hernandez <aldyh at gcc dot gnu.org> ---
This test has a write to *fd where fd is uninitialized.

Also, the set to fd looks weird:

fd = *fd;

fd is an int *, and you're trying to set the pointer to the value of a short?

I've fixed the uninitialized problem, while leaving the short to int * move,
and I still get an ICE, so... confirmed:

void
ew (unsigned short int c9, int stuff)
{
  int e1;

  for (;;)
    {
      unsigned int *by = &e1;
      int *fd = &stuff;

      *fd = c9;
      fd = *fd;
      if (*fd != 0)
        for (*by = 0; *by < 2; ++*by)
          c9 *= e1;
    }
}

We are failing the following assert in transform_to_exit_first_loop_alt:

      struct reduction_info *red = reduction_phi (reduction_list, phi);
      gcc_assert (virtual_operand_p (res_a)
                  || res_a == control
                  || red != NULL);

(gdb) call debug_generic_stmt(res_a)
e1_27

(gdb) call debug_generic_stmt(control)
ivtmp_8

FWIW, the defining PHI statement for ivtmp_8 looks weird:

  # ivtmp_8 = PHI <(17)>

As do other PHIs:
  # c9_29 = PHI <(8), (15)>
  # e1_30 = PHI <(8), (15)>

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