[committed] Handle OMP_SIMD in potential_constant_expression_1 (PR c++/84430)

Message ID 20180219191407.GT5867@tucnak
State New
Headers show
Series
  • [committed] Handle OMP_SIMD in potential_constant_expression_1 (PR c++/84430)
Related show

Commit Message

Jakub Jelinek Feb. 19, 2018, 7:14 p.m.
Hi!

At least for now, unless OpenMP 5.0 will say something different,
#pragma omp simd is not usable in constexpr, but was forgotten in this spot.

Fixed thusly, bootstrapped/regtested on x86_64-linux and i686-linux,
committed to trunk. 

2018-02-19  Jakub Jelinek  <jakub@redhat.com>

	PR c++/84430
	* constexpr.c (potential_constant_expression_1): Handle OMP_SIMD.

	* g++.dg/gomp/pr84430.C: New test.


	Jakub

Patch

--- gcc/cp/constexpr.c.jj	2018-02-16 23:38:05.138373372 +0100
+++ gcc/cp/constexpr.c	2018-02-19 15:28:41.907846544 +0100
@@ -5604,6 +5604,7 @@  potential_constant_expression_1 (tree t,
     case OMP_PARALLEL:
     case OMP_TASK:
     case OMP_FOR:
+    case OMP_SIMD:
     case OMP_DISTRIBUTE:
     case OMP_TASKLOOP:
     case OMP_TEAMS:
--- gcc/testsuite/g++.dg/gomp/pr84430.C.jj	2018-02-19 15:34:52.397001027 +0100
+++ gcc/testsuite/g++.dg/gomp/pr84430.C	2018-02-19 15:36:25.037039654 +0100
@@ -0,0 +1,12 @@ 
+// PR c++/84430
+// { dg-do compile { target c++11 } }
+
+void
+foo ()
+{
+  auto a = [] {
+    #pragma omp simd
+    for (int i = 0; i < 10; ++i)
+      ;
+  };
+}