]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: re PR tree-optimization/90208 (error: EH landing pad label)
authorJakub Jelinek <jakub@redhat.com>
Fri, 30 Aug 2019 12:39:09 +0000 (14:39 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 30 Aug 2019 12:39:09 +0000 (14:39 +0200)
Backported from mainline
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.

* gcc.dg/tsan/pr90208-2.c: New test.

From-SVN: r275151

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/tsan/pr90208-2.c [new file with mode: 0644]
gcc/tree-cfg.c

index e02a1d1033b65d74b62158bc441dd46f0df233c6..7b21d88fdecb68537be2d4315d9ecdd3100cd94c 100644 (file)
@@ -1,6 +1,12 @@
 2019-08-30  Jakub Jelinek  <jakub@redhat.com>
 
        Backported from mainline
+       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.
+
        2019-04-16  Jakub Jelinek  <jakub@redhat.com>
 
        PR rtl-optimization/90082
index 9b51773a0d31ab45e8d60b4ec4ff2358f906f2cd..4bbe0235378022f0389636e5c061f2651678806a 100644 (file)
@@ -1,6 +1,11 @@
 2019-08-30  Jakub Jelinek  <jakub@redhat.com>
 
        Backported from mainline
+       2019-04-24  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/90208
+       * gcc.dg/tsan/pr90208-2.c: New test.
+
        2019-04-19  Jakub Jelinek  <jakub@redhat.com>
 
        PR c++/90108
diff --git a/gcc/testsuite/gcc.dg/tsan/pr90208-2.c b/gcc/testsuite/gcc.dg/tsan/pr90208-2.c
new file mode 100644 (file)
index 0000000..c3823d0
--- /dev/null
@@ -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);
+}
index c223ee45be2377511f5a9e01ae3ce5ede7e5e225..b98d6aeb44c94abf9a53f6e829cc924c89149580 100644 (file)
@@ -2170,7 +2170,7 @@ remove_bb (basic_block bb)
                }
 
              new_bb = bb->prev_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);
            }