_XAddPixel is miscompiled by VRP.  Reduced testcase:

extern void abort(void);

int __attribute__((noinline))
foo(int bits_per_pixel, int depth)
{
  if ((bits_per_pixel | depth) == 1)
    return 0;
  else if (bits_per_pixel == 2)
    return 1;
  return 2;
}

int main()
{
  if (foo(2, 0) != 1)
    abort ();
  return 0;
}

where we before the bits_per_pixel == 2 assert that bits_per_pixel == 0,
derived from !(bits_per_pixel | depth == 1).


-- 
           Summary: [4.3 Regression] VRP miscompiles libX11
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Keywords: wrong-code
          Severity: normal
          Priority: P3
         Component: tree-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: rguenth at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35231

Reply via email to