OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gcc-4.2.2/] [gcc/] [testsuite/] [gcc.c-torture/] [compile/] [pr23946.c] - Diff between revs 154 and 816

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 154 Rev 816
 
 
extern int foo (void);
extern int foo (void);
 
 
int
int
avi_parse_comments (int fd, char *buf, int space_left)
avi_parse_comments (int fd, char *buf, int space_left)
{
{
  int len = 0, readlen = 0, k;
  int len = 0, readlen = 0, k;
  char *data, *c, *d;
  char *data, *c, *d;
 
 
  if (fd <= 0 || !buf || space_left <= 0)
  if (fd <= 0 || !buf || space_left <= 0)
    return -1;
    return -1;
 
 
  memset (buf, 0, space_left);
  memset (buf, 0, space_left);
 
 
  readlen = foo ();
  readlen = foo ();
  if (!(data = malloc (readlen * sizeof (char) + 1)))
  if (!(data = malloc (readlen * sizeof (char) + 1)))
    return -1;
    return -1;
 
 
  c = data;
  c = data;
  space_left--;
  space_left--;
 
 
  while (len < space_left)
  while (len < space_left)
    {
    {
      if (!c || *c == '\0')
      if (!c || *c == '\0')
        break;
        break;
      else if (*c == 'I')
      else if (*c == 'I')
        {
        {
          d = c + 4;
          d = c + 4;
 
 
          k = 0;
          k = 0;
          while (d[k] != '\r' && d[k] != '\n' && d[k] != '\0')
          while (d[k] != '\r' && d[k] != '\n' && d[k] != '\0')
            ++k;
            ++k;
          if (k >= space_left)
          if (k >= space_left)
            return len;
            return len;
 
 
 
 
          memcpy (buf + len, c, 4);
          memcpy (buf + len, c, 4);
          len += 4;
          len += 4;
 
 
 
 
          long2str (buf + len, k + 1);
          long2str (buf + len, k + 1);
          len += 4;
          len += 4;
 
 
 
 
          memcpy (buf + len, d, k);
          memcpy (buf + len, d, k);
 
 
          *(buf + len + k + 1) = '\0';
          *(buf + len + k + 1) = '\0';
 
 
 
 
          if ((k + 1) & 1)
          if ((k + 1) & 1)
            {
            {
              k++;
              k++;
              *(buf + len + k + 1) = '\0';
              *(buf + len + k + 1) = '\0';
            }
            }
          len += k + 1;
          len += k + 1;
 
 
 
 
          while (*c != '\n' && *c != '\0')
          while (*c != '\n' && *c != '\0')
            ++c;
            ++c;
          if (*c != '\0')
          if (*c != '\0')
            ++c;
            ++c;
          else
          else
            break;
            break;
 
 
        }
        }
    }
    }
  free (data);
  free (data);
 
 
  return len;
  return len;
}
}
 
 
 
 
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.