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

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [gcc.c-torture/] [execute/] [memset-3.c] - Diff between revs 297 and 338

Only display areas with differences | Details | Blame | View Log

Rev 297 Rev 338
/* Copyright (C) 2002  Free Software Foundation.
/* Copyright (C) 2002  Free Software Foundation.
 
 
   Test memset with various combinations of constant pointer alignments and
   Test memset with various combinations of constant pointer alignments and
   lengths to make sure any optimizations in the compiler are correct.
   lengths to make sure any optimizations in the compiler are correct.
 
 
   Written by Roger Sayle, July 22, 2002.  */
   Written by Roger Sayle, July 22, 2002.  */
 
 
#ifndef MAX_OFFSET
#ifndef MAX_OFFSET
#define MAX_OFFSET (sizeof (long long))
#define MAX_OFFSET (sizeof (long long))
#endif
#endif
 
 
#ifndef MAX_COPY
#ifndef MAX_COPY
#define MAX_COPY 15
#define MAX_COPY 15
#endif
#endif
 
 
#ifndef MAX_EXTRA
#ifndef MAX_EXTRA
#define MAX_EXTRA (sizeof (long long))
#define MAX_EXTRA (sizeof (long long))
#endif
#endif
 
 
#define MAX_LENGTH (MAX_OFFSET + MAX_COPY + MAX_EXTRA)
#define MAX_LENGTH (MAX_OFFSET + MAX_COPY + MAX_EXTRA)
 
 
static union {
static union {
  char buf[MAX_LENGTH];
  char buf[MAX_LENGTH];
  long long align_int;
  long long align_int;
  long double align_fp;
  long double align_fp;
} u;
} u;
 
 
char A = 'A';
char A = 'A';
 
 
void reset ()
void reset ()
{
{
  int i;
  int i;
 
 
  for (i = 0; i < MAX_LENGTH; i++)
  for (i = 0; i < MAX_LENGTH; i++)
    u.buf[i] = 'a';
    u.buf[i] = 'a';
}
}
 
 
void check (int off, int len, int ch)
void check (int off, int len, int ch)
{
{
  char *q;
  char *q;
  int i;
  int i;
 
 
  q = u.buf;
  q = u.buf;
  for (i = 0; i < off; i++, q++)
  for (i = 0; i < off; i++, q++)
    if (*q != 'a')
    if (*q != 'a')
      abort ();
      abort ();
 
 
  for (i = 0; i < len; i++, q++)
  for (i = 0; i < len; i++, q++)
    if (*q != ch)
    if (*q != ch)
      abort ();
      abort ();
 
 
  for (i = 0; i < MAX_EXTRA; i++, q++)
  for (i = 0; i < MAX_EXTRA; i++, q++)
    if (*q != 'a')
    if (*q != 'a')
      abort ();
      abort ();
}
}
 
 
int main ()
int main ()
{
{
  int len;
  int len;
  char *p;
  char *p;
 
 
  /* off == 0 */
  /* off == 0 */
  for (len = 0; len < MAX_COPY; len++)
  for (len = 0; len < MAX_COPY; len++)
    {
    {
      reset ();
      reset ();
 
 
      p = memset (u.buf, '\0', len);
      p = memset (u.buf, '\0', len);
      if (p != u.buf) abort ();
      if (p != u.buf) abort ();
      check (0, len, '\0');
      check (0, len, '\0');
 
 
      p = memset (u.buf, A, len);
      p = memset (u.buf, A, len);
      if (p != u.buf) abort ();
      if (p != u.buf) abort ();
      check (0, len, 'A');
      check (0, len, 'A');
 
 
      p = memset (u.buf, 'B', len);
      p = memset (u.buf, 'B', len);
      if (p != u.buf) abort ();
      if (p != u.buf) abort ();
      check (0, len, 'B');
      check (0, len, 'B');
    }
    }
 
 
  /* off == 1 */
  /* off == 1 */
  for (len = 0; len < MAX_COPY; len++)
  for (len = 0; len < MAX_COPY; len++)
    {
    {
      reset ();
      reset ();
 
 
      p = memset (u.buf+1, '\0', len);
      p = memset (u.buf+1, '\0', len);
      if (p != u.buf+1) abort ();
      if (p != u.buf+1) abort ();
      check (1, len, '\0');
      check (1, len, '\0');
 
 
      p = memset (u.buf+1, A, len);
      p = memset (u.buf+1, A, len);
      if (p != u.buf+1) abort ();
      if (p != u.buf+1) abort ();
      check (1, len, 'A');
      check (1, len, 'A');
 
 
      p = memset (u.buf+1, 'B', len);
      p = memset (u.buf+1, 'B', len);
      if (p != u.buf+1) abort ();
      if (p != u.buf+1) abort ();
      check (1, len, 'B');
      check (1, len, 'B');
    }
    }
 
 
  /* off == 2 */
  /* off == 2 */
  for (len = 0; len < MAX_COPY; len++)
  for (len = 0; len < MAX_COPY; len++)
    {
    {
      reset ();
      reset ();
 
 
      p = memset (u.buf+2, '\0', len);
      p = memset (u.buf+2, '\0', len);
      if (p != u.buf+2) abort ();
      if (p != u.buf+2) abort ();
      check (2, len, '\0');
      check (2, len, '\0');
 
 
      p = memset (u.buf+2, A, len);
      p = memset (u.buf+2, A, len);
      if (p != u.buf+2) abort ();
      if (p != u.buf+2) abort ();
      check (2, len, 'A');
      check (2, len, 'A');
 
 
      p = memset (u.buf+2, 'B', len);
      p = memset (u.buf+2, 'B', len);
      if (p != u.buf+2) abort ();
      if (p != u.buf+2) abort ();
      check (2, len, 'B');
      check (2, len, 'B');
    }
    }
 
 
  /* off == 3 */
  /* off == 3 */
  for (len = 0; len < MAX_COPY; len++)
  for (len = 0; len < MAX_COPY; len++)
    {
    {
      reset ();
      reset ();
 
 
      p = memset (u.buf+3, '\0', len);
      p = memset (u.buf+3, '\0', len);
      if (p != u.buf+3) abort ();
      if (p != u.buf+3) abort ();
      check (3, len, '\0');
      check (3, len, '\0');
 
 
      p = memset (u.buf+3, A, len);
      p = memset (u.buf+3, A, len);
      if (p != u.buf+3) abort ();
      if (p != u.buf+3) abort ();
      check (3, len, 'A');
      check (3, len, 'A');
 
 
      p = memset (u.buf+3, 'B', len);
      p = memset (u.buf+3, 'B', len);
      if (p != u.buf+3) abort ();
      if (p != u.buf+3) abort ();
      check (3, len, 'B');
      check (3, len, 'B');
    }
    }
 
 
  /* off == 4 */
  /* off == 4 */
  for (len = 0; len < MAX_COPY; len++)
  for (len = 0; len < MAX_COPY; len++)
    {
    {
      reset ();
      reset ();
 
 
      p = memset (u.buf+4, '\0', len);
      p = memset (u.buf+4, '\0', len);
      if (p != u.buf+4) abort ();
      if (p != u.buf+4) abort ();
      check (4, len, '\0');
      check (4, len, '\0');
 
 
      p = memset (u.buf+4, A, len);
      p = memset (u.buf+4, A, len);
      if (p != u.buf+4) abort ();
      if (p != u.buf+4) abort ();
      check (4, len, 'A');
      check (4, len, 'A');
 
 
      p = memset (u.buf+4, 'B', len);
      p = memset (u.buf+4, 'B', len);
      if (p != u.buf+4) abort ();
      if (p != u.buf+4) abort ();
      check (4, len, 'B');
      check (4, len, 'B');
    }
    }
 
 
  /* off == 5 */
  /* off == 5 */
  for (len = 0; len < MAX_COPY; len++)
  for (len = 0; len < MAX_COPY; len++)
    {
    {
      reset ();
      reset ();
 
 
      p = memset (u.buf+5, '\0', len);
      p = memset (u.buf+5, '\0', len);
      if (p != u.buf+5) abort ();
      if (p != u.buf+5) abort ();
      check (5, len, '\0');
      check (5, len, '\0');
 
 
      p = memset (u.buf+5, A, len);
      p = memset (u.buf+5, A, len);
      if (p != u.buf+5) abort ();
      if (p != u.buf+5) abort ();
      check (5, len, 'A');
      check (5, len, 'A');
 
 
      p = memset (u.buf+5, 'B', len);
      p = memset (u.buf+5, 'B', len);
      if (p != u.buf+5) abort ();
      if (p != u.buf+5) abort ();
      check (5, len, 'B');
      check (5, len, 'B');
    }
    }
 
 
  /* off == 6 */
  /* off == 6 */
  for (len = 0; len < MAX_COPY; len++)
  for (len = 0; len < MAX_COPY; len++)
    {
    {
      reset ();
      reset ();
 
 
      p = memset (u.buf+6, '\0', len);
      p = memset (u.buf+6, '\0', len);
      if (p != u.buf+6) abort ();
      if (p != u.buf+6) abort ();
      check (6, len, '\0');
      check (6, len, '\0');
 
 
      p = memset (u.buf+6, A, len);
      p = memset (u.buf+6, A, len);
      if (p != u.buf+6) abort ();
      if (p != u.buf+6) abort ();
      check (6, len, 'A');
      check (6, len, 'A');
 
 
      p = memset (u.buf+6, 'B', len);
      p = memset (u.buf+6, 'B', len);
      if (p != u.buf+6) abort ();
      if (p != u.buf+6) abort ();
      check (6, len, 'B');
      check (6, len, 'B');
    }
    }
 
 
  /* off == 7 */
  /* off == 7 */
  for (len = 0; len < MAX_COPY; len++)
  for (len = 0; len < MAX_COPY; len++)
    {
    {
      reset ();
      reset ();
 
 
      p = memset (u.buf+7, '\0', len);
      p = memset (u.buf+7, '\0', len);
      if (p != u.buf+7) abort ();
      if (p != u.buf+7) abort ();
      check (7, len, '\0');
      check (7, len, '\0');
 
 
      p = memset (u.buf+7, A, len);
      p = memset (u.buf+7, A, len);
      if (p != u.buf+7) abort ();
      if (p != u.buf+7) abort ();
      check (7, len, 'A');
      check (7, len, 'A');
 
 
      p = memset (u.buf+7, 'B', len);
      p = memset (u.buf+7, 'B', len);
      if (p != u.buf+7) abort ();
      if (p != u.buf+7) abort ();
      check (7, len, 'B');
      check (7, len, 'B');
    }
    }
 
 
  exit (0);
  exit (0);
}
}
 
 
 
 

powered by: WebSVN 2.1.0

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