diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tsan/pr90208-1.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tsan/pr90208-2.c | 20 | ||||
-rw-r--r-- | gcc/tree-cfg.c | 2 |
5 files changed, 34 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d4af0fd..e098504 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2019-04-24 Jakub Jelinek <jakub@redhat.com> + PR tree-optimization/90208 + * tree-cfg.c (remove_bb): Move forced labels from removed bbs + after labels of new_bb, not before them. + PR tree-optimization/90211 * tree-parloops.c (try_create_reduction_list): Ignore phi arguments which are not SSA_NAMEs. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b301146..73b34e0 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,9 @@ 2019-04-24 Jakub Jelinek <jakub@redhat.com> + PR tree-optimization/90208 + * gcc.dg/tsan/pr90208-1.c: New test. + * gcc.dg/tsan/pr90208-2.c: New test. + PR tree-optimization/90211 * gcc.dg/autopar/pr90211.c: New test. diff --git a/gcc/testsuite/gcc.dg/tsan/pr90208-1.c b/gcc/testsuite/gcc.dg/tsan/pr90208-1.c new file mode 100644 index 0000000..528c3b0 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tsan/pr90208-1.c @@ -0,0 +1,5 @@ +/* PR tree-optimization/90208 */ +/* { dg-do compile } */ +/* { dg-options "-O3 -fexceptions -fsanitize=thread" } */ + +#include "../../gcc.c-torture/compile/pr89280.c" diff --git a/gcc/testsuite/gcc.dg/tsan/pr90208-2.c b/gcc/testsuite/gcc.dg/tsan/pr90208-2.c new file mode 100644 index 0000000..c3823d0 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tsan/pr90208-2.c @@ -0,0 +1,20 @@ +/* PR tree-optimization/90208 */ +/* { dg-do compile } */ +/* { dg-options "-O2 -fexceptions -fsanitize=thread" } */ + +void *b[5]; +void foo (void); + +void +bar (int d) +{ + while (d) + foo (); +} + +void +baz (void) +{ + bar (2); + __builtin_setjmp (b); +} diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index 0dc94ea..5874081 100644 --- a/gcc/tree-cfg.c +++ b/gcc/tree-cfg.c @@ -2265,7 +2265,7 @@ remove_bb (basic_block bb) new_bb = single_succ (new_bb); gcc_assert (new_bb != bb); } - new_gsi = gsi_start_bb (new_bb); + new_gsi = gsi_after_labels (new_bb); gsi_remove (&i, false); gsi_insert_before (&new_gsi, stmt, GSI_NEW_STMT); } |