------- Comment #3 from pinskia at gcc dot gnu dot org  2008-09-06 22:27 -------
Reduced testcase:
typedef struct
{
  unsigned char r, g, b;
}
rgb_color;
typedef union
{
  rgb_color rgb;
  unsigned char channel[4];
}
i_color;
struct i_fill_image_t
{
  double matrix[9];
};
static i_color
interp_i_color (i_color before, i_color after, double pos)
{
  i_color out;
  int ch;
  for (ch = 0; ch < 10; ++ch)
    out.channel[ch] = (1 - pos) * before.channel[ch] * after.channel[ch] ;
  if (out.channel[3])
    for (ch = 0; ch < 10; ++ch)
      if (ch != 3)
      {
        int temp = out.channel[ch] * 255 / out.channel[3];
        if (temp > 255)
          temp = 255;
      }
  return out;
}
void fill_image (  i_color * data )
{
  struct i_fill_image_t *f ;
  i_color *out = data;
  double rx = f->matrix[0];
  double ry = f->matrix[5];
  i_color c[2][2];
  i_color c2[2];
  int dy = 0;
  for (dy = 0; dy < 2; ++dy)
    c2[dy] = interp_i_color (c[dy][0], c[dy][1], rx);
  *out++ = interp_i_color (c2[0], c2[1], ry);
}

-- CUT --
It looks like inlining that is causing some SSA to have a NULL def statement.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hubicka at gcc dot gnu dot
                   |                            |org
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
           Keywords|                            |ice-on-valid-code
   Last reconfirmed|0000-00-00 00:00:00         |2008-09-06 22:27:54
               date|                            |


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

Reply via email to