]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
openmp: Handle OMP_MASKED in potential_constant_expression_1 [PR103349]
authorJakub Jelinek <jakub@redhat.com>
Mon, 22 Nov 2021 09:13:24 +0000 (10:13 +0100)
committerJakub Jelinek <jakub@redhat.com>
Mon, 22 Nov 2021 09:13:24 +0000 (10:13 +0100)
WHen adding OMP_MASKED, I apparently forgot to handle it in
potential_constant_expression_1, which means we can ICE on it.

2021-11-22  Jakub Jelinek  <jakub@redhat.com>

PR c++/103349
* constexpr.c (potential_constant_expression_1): Punt on OMP_MASKED.

* g++.dg/gomp/masked-1.C: New test.

gcc/cp/constexpr.c
gcc/testsuite/g++.dg/gomp/masked-1.C [new file with mode: 0644]

index c8f9d5fa13352c1d27aac60bb05dcd495984175e..d66a56583aef7e4a4f7f71d68e3fb5e34089984d 100644 (file)
@@ -8686,6 +8686,7 @@ potential_constant_expression_1 (tree t, bool want_rval, bool strict, bool now,
     case OMP_SINGLE:
     case OMP_SECTION:
     case OMP_MASTER:
+    case OMP_MASKED:
     case OMP_TASKGROUP:
     case OMP_TARGET_UPDATE:
     case OMP_TARGET_ENTER_DATA:
diff --git a/gcc/testsuite/g++.dg/gomp/masked-1.C b/gcc/testsuite/g++.dg/gomp/masked-1.C
new file mode 100644 (file)
index 0000000..1ea4a13
--- /dev/null
@@ -0,0 +1,14 @@
+// PR c++/103349
+// { dg-do compile { target c++11 } }
+
+int v;
+
+void
+foo (int x, int y)
+{
+  [=] ()
+  {
+#pragma omp masked
+    v = x + y;
+  } ();
+}