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

--- Comment #13 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
unsigned char a = 193;
unsigned char *b = &a;

void
foo (void)
{
  unsigned char c[] = { 0, 2, 1, 1, 2, 1, 2, 2, 6, 2, 1, 1, 1, 1, 2, 2, 0,
                        2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2,
                        1, 1, 2, 1, 2, 2, 1, 1, 2, 4, 8, 8, 3, 3, 1, 1, 5,
                        4, 1, 1, 1, 0, 5, 5, 9, 4, 8, 8, 7, 0, 1, 1 };
}

int
main ()
{
  unsigned char c[] = { 193, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 5, 2, 3, 1, 0,
                        1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 4,
                        2, 2, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1,
                        1, 1, 0, 5, 3, 3, 1, 0, 1, 0, 0, 1, 0, 1, 0 };
  if (b[0] != c[0])
    __builtin_abort ();
}

I think the bug is during WPA stage, it streams in 2 RAW_DATA_CSTs (one for
each CONSTRUCTOR), but streams out just one.

Reply via email to