]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: [multiple changes]
authorAndrey Belevantsev <abel@ispras.ru>
Thu, 9 Feb 2012 10:17:55 +0000 (14:17 +0400)
committerAndrey Belevantsev <abel@gcc.gnu.org>
Thu, 9 Feb 2012 10:17:55 +0000 (14:17 +0400)
2012-02-09  Andrey Belevantsev  <abel@ispras.ru>

        Backport from mainline
        2012-01-20  Andrey Belevantsev  <abel@ispras.ru>

        PR target/51106
        * function.c (instantiate_virtual_regs_in_insn): Use
        delete_insn_and_edges when removing a wrong asm insn.

        Backport from mainline
        2012-01-20  Jakub Jelinek  <jakub@redhat.com>

        PR target/51106
        * gcc.dg/torture/pr51106-1.c: New test.
        * gcc.dg/torture/pr51106-2.c: New test.

From-SVN: r184040

gcc/ChangeLog
gcc/function.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/torture/pr51106-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/torture/pr51106-2.c [new file with mode: 0644]

index a08b2e8ec692d8142783b1716fe76bfa7440e991..c6e8d9fb03ea7c8ba4eb7aea8b9c2af2cb76a5ec 100644 (file)
@@ -1,3 +1,12 @@
+2012-02-09  Andrey Belevantsev  <abel@ispras.ru>
+
+       Backport from mainline 
+       2012-01-20  Andrey Belevantsev  <abel@ispras.ru>
+
+       PR target/51106
+       * function.c (instantiate_virtual_regs_in_insn): Use
+       delete_insn_and_edges when removing a wrong asm insn.
+
 2012-02-07  Quentin Neill  <quentin.neill@amd.com>
 
        Backport from mainline:
index 09007fdc988cf56108eecdd9840489d5f547dad0..cb34e26170acb8053f4122e4e824da6f3368bf10 100644 (file)
@@ -1,7 +1,7 @@
 /* Expands front end tree to back end RTL for GCC.
    Copyright (C) 1987, 1988, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-   2010  Free Software Foundation, Inc.
+   2010, 2012  Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -1643,7 +1643,7 @@ instantiate_virtual_regs_in_insn (rtx insn)
       if (!check_asm_operands (PATTERN (insn)))
        {
          error_for_asm (insn, "impossible constraint in %<asm%>");
-         delete_insn (insn);
+         delete_insn_and_edges (insn);
        }
     }
   else
index 69488199167bc9a702a949cedd3b0fb2bd80f9e9..b3fea1f8050fa44399ad2cdcaecffa236675204b 100644 (file)
@@ -1,3 +1,12 @@
+2012-02-09  Andrey Belevantsev  <abel@ispras.ru>
+
+       Backport from mainline
+       2012-01-20  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/51106
+       * gcc.dg/torture/pr51106-1.c: New test.
+       * gcc.dg/torture/pr51106-2.c: New test.
+
 2012-01-28  Tobias Burnus  <burnus@net-b.de>
 
        PR fortran/52022
diff --git a/gcc/testsuite/gcc.dg/torture/pr51106-1.c b/gcc/testsuite/gcc.dg/torture/pr51106-1.c
new file mode 100644 (file)
index 0000000..10b3b68
--- /dev/null
@@ -0,0 +1,14 @@
+/* PR target/51106 */
+/* { dg-do "compile" } */
+/* { dg-skip-if "RTL error" { "*-*-*" } { "-fno-fat-lto-objects" } { "" } } */
+
+int
+foo (int x)
+{
+  asm goto ("" : : "i" (x) : : lab); /* { dg-error "impossible constraint" } */
+  return 1;
+lab:
+  return 0;
+}
+
+/* { dg-warning "probably doesn.t match constraints" "" { target *-*-* } 8 } */
diff --git a/gcc/testsuite/gcc.dg/torture/pr51106-2.c b/gcc/testsuite/gcc.dg/torture/pr51106-2.c
new file mode 100644 (file)
index 0000000..e69bf1b
--- /dev/null
@@ -0,0 +1,14 @@
+/* PR target/51106 */
+/* { dg-do "compile" } */
+/* { dg-skip-if "RTL error" { "*-*-*" } { "-fno-fat-lto-objects" } { "" } } */
+
+int
+bar (int x)
+{
+  asm goto ("" : : "i" (x) : : lab); /* { dg-error "impossible constraint" } */
+  __builtin_unreachable ();
+lab:
+  return 0;
+}
+
+/* { dg-warning "probably doesn.t match constraints" "" { target *-*-* } 8 } */