* gimple.h (gimple_has_substatements): GIMPLE_OMP_CRITICAL has
substatements.
* tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_CRITICAL.
* g++.dg/gomp/pr37436.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@139937
138bc75d-0d04-0410-961f-
82ee72b054a4
+2008-09-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/37436
+ * gimple.h (gimple_has_substatements): GIMPLE_OMP_CRITICAL has
+ substatements.
+ * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_CRITICAL.
+
2008-09-03 Bernd Schmidt <bernd.schmidt@analog.com>
From Michael Frysinger <michael.frysinger@analog.com>
case GIMPLE_OMP_TASK:
case GIMPLE_OMP_SECTIONS:
case GIMPLE_OMP_SINGLE:
+ case GIMPLE_OMP_CRITICAL:
case GIMPLE_WITH_CLEANUP_EXPR:
return true;
+2008-09-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/37436
+ * g++.dg/gomp/pr37436.C: New test.
+
2008-09-03 Bernd Schmidt <bernd.schmidt@analog.com>
From Mike Frysinger <michael.frysinger@analog.com>
--- /dev/null
+// PR c++/37436
+// { dg-do compile }
+// { dg-options "-fopenmp" }
+
+struct A
+{
+ A ();
+ int i;
+};
+
+A::A ()
+{
+#pragma omp critical
+ i++;
+}
(s1, gimple_omp_single_clauses (stmt));
break;
+ case GIMPLE_OMP_CRITICAL:
+ s1 = remap_gimple_seq (gimple_omp_body (stmt), id);
+ copy
+ = gimple_build_omp_critical (s1, gimple_omp_critical_name (stmt));
+ break;
+
default:
gcc_unreachable ();
}