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/] [libgomp/] [testsuite/] [libgomp.c/] [pr35130.c] - Diff between revs 273 and 338

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

Rev 273 Rev 338
/* PR middle-end/35130 */
/* PR middle-end/35130 */
 
 
extern void abort (void);
extern void abort (void);
 
 
void
void
f1 (void)
f1 (void)
{
{
  int a[4], k;
  int a[4], k;
  void nested (int x)
  void nested (int x)
  {
  {
    a[x] = 42;
    a[x] = 42;
  }
  }
 
 
  for (k = 0; k < 4; k++)
  for (k = 0; k < 4; k++)
    a[k] = 0;
    a[k] = 0;
#pragma omp parallel for
#pragma omp parallel for
  for (k = 0; k < 4; k++)
  for (k = 0; k < 4; k++)
    nested (k);
    nested (k);
 
 
  if (a[0] != 42 || a[1] != 42 || a[2] != 42 || a[3] != 42)
  if (a[0] != 42 || a[1] != 42 || a[2] != 42 || a[3] != 42)
    abort ();
    abort ();
}
}
 
 
void
void
f2 (void)
f2 (void)
{
{
  int a[4], k;
  int a[4], k;
  void nested (void)
  void nested (void)
  {
  {
    int l;
    int l;
    void nested2 (int x)
    void nested2 (int x)
    {
    {
      a[x] = 42;
      a[x] = 42;
    }
    }
#pragma omp parallel for
#pragma omp parallel for
    for (l = 0; l < 4; l++)
    for (l = 0; l < 4; l++)
      nested2 (l);
      nested2 (l);
  }
  }
 
 
  for (k = 0; k < 4; k++)
  for (k = 0; k < 4; k++)
    a[k] = 0;
    a[k] = 0;
 
 
  nested ();
  nested ();
 
 
  if (a[0] != 42 || a[1] != 42 || a[2] != 42 || a[3] != 42)
  if (a[0] != 42 || a[1] != 42 || a[2] != 42 || a[3] != 42)
    abort ();
    abort ();
}
}
 
 
void
void
f3 (void)
f3 (void)
{
{
  int a[4], b[4], c[4], k;
  int a[4], b[4], c[4], k;
  void nested (int x)
  void nested (int x)
  {
  {
    a[x] = b[x] = c[x] = 42;
    a[x] = b[x] = c[x] = 42;
  }
  }
 
 
  for (k = 0; k < 4; k++)
  for (k = 0; k < 4; k++)
    a[k] = b[k] = c[k] = 0;
    a[k] = b[k] = c[k] = 0;
  nested (0);
  nested (0);
 
 
#pragma omp parallel
#pragma omp parallel
  {
  {
  #pragma omp single
  #pragma omp single
    {
    {
      a[1] = 43;
      a[1] = 43;
      b[1] = 43;
      b[1] = 43;
    }
    }
  #pragma omp parallel
  #pragma omp parallel
    {
    {
    #pragma omp single
    #pragma omp single
      {
      {
        b[2] = 44;
        b[2] = 44;
        c[2] = 44;
        c[2] = 44;
      }
      }
    }
    }
  }
  }
 
 
  if (a[0] != 42 || a[1] != 43 || a[2] != 0 || a[3] != 0)
  if (a[0] != 42 || a[1] != 43 || a[2] != 0 || a[3] != 0)
    abort ();
    abort ();
  if (b[0] != 42 || b[1] != 43 || b[2] != 44 || b[3] != 0)
  if (b[0] != 42 || b[1] != 43 || b[2] != 44 || b[3] != 0)
    abort ();
    abort ();
  if (c[0] != 42 || c[1] != 0 || c[2] != 44 || c[3] != 0)
  if (c[0] != 42 || c[1] != 0 || c[2] != 44 || c[3] != 0)
    abort ();
    abort ();
}
}
 
 
void
void
f4 (void)
f4 (void)
{
{
  int a[4], b[4], c[4], k;
  int a[4], b[4], c[4], k;
  void nested ()
  void nested ()
  {
  {
  #pragma omp parallel
  #pragma omp parallel
    {
    {
    #pragma omp single
    #pragma omp single
      {
      {
        a[1] = 43;
        a[1] = 43;
        b[1] = 43;
        b[1] = 43;
      }
      }
    #pragma omp parallel
    #pragma omp parallel
      {
      {
      #pragma omp single
      #pragma omp single
        {
        {
          b[2] = 44;
          b[2] = 44;
          c[2] = 44;
          c[2] = 44;
        }
        }
      }
      }
    }
    }
  }
  }
 
 
  for (k = 0; k < 4; k++)
  for (k = 0; k < 4; k++)
    a[k] = b[k] = c[k] = k == 0 ? 42 : 0;
    a[k] = b[k] = c[k] = k == 0 ? 42 : 0;
  nested ();
  nested ();
 
 
  if (a[0] != 42 || a[1] != 43 || a[2] != 0 || a[3] != 0)
  if (a[0] != 42 || a[1] != 43 || a[2] != 0 || a[3] != 0)
    abort ();
    abort ();
  if (b[0] != 42 || b[1] != 43 || b[2] != 44 || b[3] != 0)
  if (b[0] != 42 || b[1] != 43 || b[2] != 44 || b[3] != 0)
    abort ();
    abort ();
  if (c[0] != 42 || c[1] != 0 || c[2] != 44 || c[3] != 0)
  if (c[0] != 42 || c[1] != 0 || c[2] != 44 || c[3] != 0)
    abort ();
    abort ();
}
}
 
 
int
int
main (void)
main (void)
{
{
  f1 ();
  f1 ();
  f2 ();
  f2 ();
  f3 ();
  f3 ();
  f4 ();
  f4 ();
  return 0;
  return 0;
}
}
 
 

powered by: WebSVN 2.1.0

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