aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-cfg.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2015-12-23 16:45:15 -0800
committerRichard Henderson <rth@gcc.gnu.org>2015-12-23 16:45:15 -0800
commit6549bdc6beb08b4d5737415b1ed97081e7a900d3 (patch)
tree11dc2b46418a9fc7ebd9b4829c3cd840e66d8368 /gcc/tree-cfg.c
parentf89fc5c40bbc5e4a292cacd8b2b8b14f6116fdd5 (diff)
downloadgcc-6549bdc6beb08b4d5737415b1ed97081e7a900d3.zip
gcc-6549bdc6beb08b4d5737415b1ed97081e7a900d3.tar.gz
gcc-6549bdc6beb08b4d5737415b1ed97081e7a900d3.tar.bz2
re PR ipa/67811 ([TM] ICE with try-block in transaction)
PR ipa/67811 * tree-cfg.c (make_edges_bb): Add abort edge for outer transactions. From-SVN: r231943
Diffstat (limited to 'gcc/tree-cfg.c')
-rw-r--r--gcc/tree-cfg.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index 436ea14..3b2fab5 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -839,7 +839,8 @@ make_edges_bb (basic_block bb, struct omp_region **pcur_region, int *pomp_index)
EDGE_TM_UNINSTRUMENTED | (label1 ? 0 : EDGE_FALLTHRU));
tree label3 = gimple_transaction_label_over (txn);
- if (gimple_transaction_subcode (txn) & GTMA_HAVE_ABORT)
+ if (gimple_transaction_subcode (txn)
+ & (GTMA_HAVE_ABORT | GTMA_IS_OUTER))
make_edge (bb, label_to_block (label3), EDGE_TM_ABORT);
fallthru = false;