aboutsummaryrefslogtreecommitdiff
path: root/libgomp/testsuite
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2017-06-21 12:58:00 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2017-06-21 12:58:00 +0200
commitd54d1fc3bcd2d3dda563f9bd95b60299bc892041 (patch)
treea1bba68984c40a32b45cc159beb1301d2f80d6f7 /libgomp/testsuite
parent9fe9816bcd72e5ae5fe374d7483e4b5b0c618b22 (diff)
downloadgcc-d54d1fc3bcd2d3dda563f9bd95b60299bc892041.zip
gcc-d54d1fc3bcd2d3dda563f9bd95b60299bc892041.tar.gz
gcc-d54d1fc3bcd2d3dda563f9bd95b60299bc892041.tar.bz2
re PR c++/81130 (ICE OpenMP shared clause in gimplify_var_or_parm_decl, at gimplify.c:2584)
PR c++/81130 * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types with ctors/dtors if GOVD_SHARED is set. * testsuite/libgomp.c++/pr81130.C: New test. From-SVN: r249445
Diffstat (limited to 'libgomp/testsuite')
-rw-r--r--libgomp/testsuite/libgomp.c++/pr81130.C41
1 files changed, 41 insertions, 0 deletions
diff --git a/libgomp/testsuite/libgomp.c++/pr81130.C b/libgomp/testsuite/libgomp.c++/pr81130.C
new file mode 100644
index 0000000..f2cb571
--- /dev/null
+++ b/libgomp/testsuite/libgomp.c++/pr81130.C
@@ -0,0 +1,41 @@
+// PR c++/81130
+// { dg-do run }
+
+struct A
+{
+ A ();
+ ~A ();
+ int a;
+};
+
+A::A ()
+{
+ a = 0;
+}
+
+A::~A ()
+{
+}
+
+struct B
+{
+ A b;
+ int c;
+ B () : c (1)
+ {
+#pragma omp parallel shared (b, c) num_threads (2)
+#pragma omp master
+ {
+ b.a++;
+ c += 2;
+ }
+ }
+};
+
+int
+main ()
+{
+ B v;
+ if (v.b.a != 1 || v.c != 3)
+ __builtin_abort ();
+}