diff gcc/testsuite/c-c++-common/gomp/Wparentheses-4.c @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gcc/testsuite/c-c++-common/gomp/Wparentheses-4.c	Fri Oct 27 22:46:09 2017 +0900
@@ -0,0 +1,452 @@
+/* PR c/70436 */
+/* { dg-additional-options "-Wparentheses -fno-openmp" } */
+
+int a, b, c;
+void bar (void);
+void baz (void);
+void f1 (void);
+#pragma omp declare target to (bar, baz, f1, a, b, c)
+
+void
+f1 (void)
+{
+  int i, j;
+
+  if (a) /* { dg-warning "ambiguous" } */
+    #pragma omp distribute
+    for (i = 0; i < 10; i++)
+      if (b)
+	bar ();
+      else
+	baz ();
+
+  if (a) /* { dg-warning "ambiguous" } */
+    for (i = 0; i < 10; i++)
+      #pragma omp distribute simd
+      for (j = 0; j < 10; j++)
+	if (b)
+	  bar ();
+  else
+    baz ();
+
+  if (a)
+    #pragma omp distribute parallel for
+    for (i = 0; i < 10; i++)
+      if (b) /* { dg-warning "ambiguous" } */
+	#pragma omp parallel for
+	for (j = 0; j < 10; j++)
+	  if (c)
+	    bar ();
+      else
+	baz ();
+
+  if (a) /* { dg-warning "ambiguous" } */
+    #pragma omp distribute parallel for simd collapse(2)
+    for (i = 0; i < 10; i++)
+      for (j = 0; j < 10; j++)
+	if (b)
+	  bar ();
+	else
+	  baz ();
+
+  if (a)
+    #pragma omp distribute
+    for (i = 0; i < 10; i++)
+      {
+	if (b)
+	  bar ();
+	else
+	  baz ();
+      }
+
+  if (a)
+    {
+      #pragma omp distribute simd
+      for (i = 0; i < 10; ++i)
+	if (b)
+	  bar ();
+    }
+  else baz ();
+
+  if (a)
+    #pragma omp distribute parallel for collapse(2)
+    for (i = 0; i < 10; i++)
+      {
+	for (j = 0; j < 10; j++)
+	  if (b)
+	    bar ();
+	  else
+	    baz ();
+      }
+
+  if (a)
+    for (i = 0; i < 10; i++)
+      #pragma omp distribute parallel for simd
+      for (j = 0; j < 10; j++)
+	{
+	  if (b)
+	    bar ();
+	}
+  else
+    baz ();
+}
+
+void
+f2 (void)
+{
+  int i, j;
+
+  if (a) /* { dg-warning "ambiguous" } */
+    #pragma omp target teams distribute
+    for (i = 0; i < 10; i++)
+      if (b)
+	bar ();
+      else
+	baz ();
+
+  if (a) /* { dg-warning "ambiguous" } */
+    for (i = 0; i < 10; i++)
+      #pragma omp target teams distribute simd
+      for (j = 0; j < 10; j++)
+	if (b)
+	  bar ();
+  else
+    baz ();
+
+  if (a)
+    #pragma omp target teams distribute parallel for
+    for (i = 0; i < 10; i++)
+      if (b) /* { dg-warning "ambiguous" } */
+	#pragma omp parallel for
+	for (j = 0; j < 10; j++)
+	  if (c)
+	    bar ();
+      else
+	baz ();
+
+  if (a) /* { dg-warning "ambiguous" } */
+    #pragma omp target teams distribute parallel for simd collapse(2)
+    for (i = 0; i < 10; i++)
+      for (j = 0; j < 10; j++)
+	if (b)
+	  bar ();
+	else
+	  baz ();
+
+  if (a) /* { dg-warning "ambiguous" } */
+    #pragma omp target teams
+      if (b)
+	bar ();
+      else
+	baz ();
+
+  if (a) /* { dg-warning "ambiguous" } */
+    #pragma omp target
+    #pragma omp parallel
+      if (b)
+	bar ();
+      else
+	baz ();
+
+  if (a) /* { dg-warning "ambiguous" } */
+    #pragma omp target
+      if (b)
+	bar ();
+      else
+	baz ();
+
+  if (a) /* { dg-warning "ambiguous" } */
+    #pragma omp target parallel
+      if (b)
+	bar ();
+      else
+	baz ();
+
+  if (a) /* { dg-warning "ambiguous" } */
+    #pragma omp target simd
+      for (i = 0; i < 10; i++)
+	if (b)
+	  bar ();
+	else
+	  baz ();
+
+  if (a) /* { dg-warning "ambiguous" } */
+    #pragma omp target simd collapse(2)
+      for (i = 0; i < 10; i++)
+	for (j = 0; j < 10; j++)
+	  if (b)
+	    bar ();
+	  else
+	    baz ();
+
+  if (a)
+    #pragma omp target teams distribute
+    for (i = 0; i < 10; i++)
+      {
+	if (b)
+	  bar ();
+	else
+	  baz ();
+      }
+
+  if (a)
+    {
+      #pragma omp target teams distribute simd
+      for (i = 0; i < 10; ++i)
+	if (b)
+	  bar ();
+    }
+  else baz ();
+
+  if (a)
+    #pragma omp target teams distribute parallel for collapse(2)
+    for (i = 0; i < 10; i++)
+      {
+	for (j = 0; j < 10; j++)
+	  if (b)
+	    bar ();
+	  else
+	    baz ();
+      }
+
+  if (a)
+    for (i = 0; i < 10; i++)
+      #pragma omp target teams distribute parallel for simd
+      for (j = 0; j < 10; j++)
+	{
+	  if (b)
+	    bar ();
+	}
+  else
+    baz ();
+
+  if (a)
+    #pragma omp target teams
+      {
+	if (b)
+	  bar ();
+      }
+  else
+    baz ();
+
+  if (a)
+    #pragma omp target
+    #pragma omp parallel
+      {
+	if (b)
+	  bar ();
+	else
+	  baz ();
+      }
+
+  if (a)
+    #pragma omp target
+      {
+	if (b)
+	  bar ();
+      }
+  else
+    baz ();
+
+  if (a)
+    #pragma omp target parallel
+      {
+	if (b)
+	  bar ();
+      }
+  else
+    baz ();
+
+  if (a)
+    #pragma omp target simd
+      for (i = 0; i < 10; i++)
+	{
+	  if (b)
+	    bar ();
+	  else
+	    baz ();
+	}
+
+  if (a)
+    #pragma omp target simd
+      for (i = 0; i < 10; i++)
+	{
+	  if (b)
+	    bar ();
+	}
+  else
+    baz ();
+
+  if (a)
+    #pragma omp target simd collapse(2)
+      for (i = 0; i < 10; i++)
+	{ {
+	  for (j = 0; j < 10; j++)
+	    if (b)
+	      bar ();
+	    else
+	      baz ();
+	} }
+
+  if (a)
+    #pragma omp target simd collapse(2)
+      for (i = 0; i < 10; i++)
+	{ {
+	  for (j = 0; j < 10; j++)
+	    if (b)
+	      bar ();
+	  }
+	}
+  else
+    baz ();
+}
+
+void
+f3 (void)
+{
+  int i, j;
+
+  if (a) /* { dg-warning "ambiguous" } */
+    #pragma omp target
+    #pragma omp teams distribute
+    for (i = 0; i < 10; i++)
+      if (b)
+	bar ();
+      else
+	baz ();
+
+  if (a) /* { dg-warning "ambiguous" } */
+    for (i = 0; i < 10; i++)
+      #pragma omp target
+      #pragma omp teams distribute simd
+      for (j = 0; j < 10; j++)
+	if (b)
+	  bar ();
+  else
+    baz ();
+
+  if (a)
+    #pragma omp target
+    #pragma omp teams distribute parallel for
+    for (i = 0; i < 10; i++)
+      if (b) /* { dg-warning "ambiguous" } */
+	#pragma omp parallel for
+	for (j = 0; j < 10; j++)
+	  if (c)
+	    bar ();
+      else
+	baz ();
+
+  if (a) /* { dg-warning "ambiguous" } */
+    #pragma omp target
+    #pragma omp teams distribute parallel for simd collapse(2)
+    for (i = 0; i < 10; i++)
+      for (j = 0; j < 10; j++)
+	if (b)
+	  bar ();
+	else
+	  baz ();
+
+  if (a) /* { dg-warning "ambiguous" } */
+    #pragma omp target
+    #pragma omp teams
+      if (b)
+	bar ();
+      else
+	baz ();
+
+  if (a) /* { dg-warning "ambiguous" } */
+    #pragma omp target
+    #pragma omp teams
+    #pragma omp parallel
+      if (b)
+	bar ();
+      else
+	baz ();
+
+  if (a)
+    #pragma omp target
+    #pragma omp teams distribute
+    for (i = 0; i < 10; i++)
+      {
+	if (b)
+	  bar ();
+	else
+	  baz ();
+      }
+
+  if (a)
+    {
+      #pragma omp target
+      #pragma omp teams distribute simd
+      for (i = 0; i < 10; ++i)
+	if (b)
+	  bar ();
+    }
+  else baz ();
+
+  if (a)
+    #pragma omp target
+    #pragma omp teams distribute parallel for collapse(2)
+    for (i = 0; i < 10; i++)
+      {
+	for (j = 0; j < 10; j++)
+	  if (b)
+	    bar ();
+	  else
+	    baz ();
+      }
+
+  if (a)
+    for (i = 0; i < 10; i++)
+      #pragma omp target
+      #pragma omp teams distribute parallel for simd
+      for (j = 0; j < 10; j++)
+	{
+	  if (b)
+	    bar ();
+	}
+  else
+    baz ();
+
+  if (a)
+    #pragma omp target
+    #pragma omp teams
+      {
+	if (b)
+	  bar ();
+      }
+  else
+    baz ();
+
+  if (a)
+    #pragma omp target
+    #pragma omp teams
+    #pragma omp parallel
+      {
+	if (b)
+	  bar ();
+	else
+	  baz ();
+      }
+}
+
+void
+f4 (void)
+{
+  if (a) /* { dg-warning "ambiguous" } */
+    #pragma omp target data map (tofrom: b)
+      if (b)
+	bar ();
+      else
+	baz ();
+
+  if (a)
+    #pragma omp target data map (tofrom: b)
+      {
+	if (b)
+	  bar ();
+	else
+	  baz ();
+      }
+}