[Bug c++/85156] [8 Regression] ICE with -O1 -g: gimplification failed

2018-04-03 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85156

--- Comment #3 from Jakub Jelinek  ---
It is not just ICE, but also a wrong-code starting with GCC 4.3:
int x, y;

__attribute__((noipa)) int
foo (int z)
{
  if (__builtin_expect (x ? y != 0 : 0, z++))
return 7;
  return z;
}

int
main ()
{
  x = 1;
  asm volatile ("" : "+m" (x), "+m" (y));
  if (foo (10) != 11)
__builtin_abort ();
  return 0;
}

The side-effects of the second __builtin_expect argument are evaluated multiple
times.

[Bug c++/85156] [8 Regression] ICE with -O1 -g: gimplification failed

2018-04-03 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85156

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek  ---
Looks similar to PR84704, the STATEMENT_LIST is gimplified twice and as
gimplification is destructive, that can't really work well.

[Bug c++/85156] [8 Regression] ICE with -O1 -g: gimplification failed

2018-04-03 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85156

Martin Liška  changed:

   What|Removed |Added

   Priority|P3  |P1
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2018-04-03
 CC||aoliva at gcc dot gnu.org,
   ||marxin at gcc dot gnu.org
  Known to work||7.3.0
   Target Milestone|--- |8.0
Summary|-O1 -g internal compiler|[8 Regression] ICE with -O1
   |error: gimplification   |-g: gimplification failed
   |failed  |
 Ever confirmed|0   |1
  Known to fail||8.0

--- Comment #1 from Martin Liška  ---
Confirmed, started with r255569.