aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPatrick Marlier <patrick.marlier@gmail.com>2012-08-20 16:22:17 +0000
committerPatrick Marlier <pmarlier@gcc.gnu.org>2012-08-20 16:22:17 +0000
commitd88513eaf77e9dd8bcc5a662518d18bd350e383c (patch)
treec3def85f160a15023eb8a51963d1624163e36c6f /gcc
parente3b350575018370e7564d9686ede0f804b99637f (diff)
downloadgcc-d88513eaf77e9dd8bcc5a662518d18bd350e383c.zip
gcc-d88513eaf77e9dd8bcc5a662518d18bd350e383c.tar.gz
gcc-d88513eaf77e9dd8bcc5a662518d18bd350e383c.tar.bz2
re PR middle-end/53992 (Combining -fopenmp and -fgnu-tm results in segfault or misbehaving binaries)
gcc/ 2012-08-20 Patrick Marlier <patrick.marlier@gmail.com> PR middle-end/53992 * omp-low.c (lower_omp_1): Handle GIMPLE_TRANSACTION. testsuite/ 2012-08-20 Patrick Marlier <patrick.marlier@gmail.com> PR middle-end/53992 * gcc.dg/gomp/pr53992.c: New test. From-SVN: r190536
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/omp-low.c3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/gomp/pr53992.c21
4 files changed, 34 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index cfb3189..a80dafe 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2012-08-20 Patrick Marlier <patrick.marlier@gmail.com>
+
+ PR middle-end/53992
+ * omp-low.c (lower_omp_1): Handle GIMPLE_TRANSACTION.
+
2012-08-20 Richard Earnshaw <rearnsha@arm.com>
PR tree-ssa/54295
diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index 846840e..adbd034 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -6827,6 +6827,9 @@ lower_omp_1 (gimple_stmt_iterator *gsi_p, omp_context *ctx)
lower_omp (gimple_try_eval_ptr (stmt), ctx);
lower_omp (gimple_try_cleanup_ptr (stmt), ctx);
break;
+ case GIMPLE_TRANSACTION:
+ lower_omp (gimple_transaction_body_ptr (stmt), ctx);
+ break;
case GIMPLE_BIND:
lower_omp (gimple_bind_body_ptr (stmt), ctx);
break;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index f33149a..3ff68d8 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2012-08-20 Patrick Marlier <patrick.marlier@gmail.com>
+
+ PR middle-end/53992
+ * gcc.dg/gomp/pr53992.c: New test.
+
2012-08-20 Richard Earnshaw <rearnsha@arm.com>
PR tree-ssa/54295
diff --git a/gcc/testsuite/gcc.dg/gomp/pr53992.c b/gcc/testsuite/gcc.dg/gomp/pr53992.c
new file mode 100644
index 0000000..4d5af3c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/gomp/pr53992.c
@@ -0,0 +1,21 @@
+/* PR middle-end/53992 */
+/* { dg-do compile } */
+/* { dg-options "-fgnu-tm -fopenmp" } */
+/* { dg-require-effective-target fgnu_tm } */
+
+int main() {
+ long data[10000];
+ long i, min=10000;
+ for (i=0; i<10000; i++) data[i] = -i;
+
+#pragma omp parallel for
+ for (i=0; i<10000; i++) {
+ __transaction_atomic
+ {
+ if (data[i] < min)
+ min = data[i];
+ }
+ }
+
+ return !(min == -9999);
+}