diff options
author | Patrick Marlier <patrick.marlier@gmail.com> | 2012-08-20 16:22:17 +0000 |
---|---|---|
committer | Patrick Marlier <pmarlier@gcc.gnu.org> | 2012-08-20 16:22:17 +0000 |
commit | d88513eaf77e9dd8bcc5a662518d18bd350e383c (patch) | |
tree | c3def85f160a15023eb8a51963d1624163e36c6f /gcc | |
parent | e3b350575018370e7564d9686ede0f804b99637f (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/omp-low.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/gomp/pr53992.c | 21 |
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); +} |