re PR middle-end/89002 (ICE in scan_omp_1_op, at omp-low.c:3166)
authorJakub Jelinek <jakub@gcc.gnu.org>
Mon, 28 Jan 2019 22:34:32 +0000 (23:34 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 28 Jan 2019 22:34:32 +0000 (23:34 +0100)
PR middle-end/89002
* gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
for lastprivate/linear IV, push gimplify context around gimplify_assign
and, if it needed any temporaries, pop it into a gimple bind around the
sequence.

* testsuite/libgomp.c/pr89002.c: New test.

From-SVN: r268346

libgomp/testsuite/libgomp.c/pr89002.c

index b66fada836fa696a315505e15fe61d338708c994..6d1b16405f2233b7e468ca8cd44e97ba43f66dad 100644 (file)
@@ -41,46 +41,3 @@ main ()
     abort ();
   return 0;
 }
-/* PR middle-end/89002 */
-
-extern void abort (void);
-
-int
-foo (int x)
-{
-  int a;
-  int *p = &a;
-
-#pragma omp taskloop lastprivate (a)
-  for (a = 0; a < x; ++a)
-    ;
-  return *p;
-}
-
-int
-bar (int x)
-{
-  int a;
-  int *p = &a;
-
-#pragma omp parallel
-#pragma omp single
-#pragma omp taskloop lastprivate (a)
-  for (a = 0; a < x; ++a)
-    ;
-  return *p;
-}
-
-int
-main ()
-{
-#pragma omp parallel
-#pragma omp single
-  {
-    if (foo (4) != 4)
-      abort ();
-  }
-  if (bar (6) != 6)
-    abort ();
-  return 0;
-}