PR target/35264
authormatz <matz@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 21 Feb 2008 12:38:35 +0000 (12:38 +0000)
committermatz <matz@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 21 Feb 2008 12:38:35 +0000 (12:38 +0000)
        * config/i386/i386.c (ix86_expand_branch): Add missing breaks.

        * gcc.dg/pr35264.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@132521 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/i386/i386.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr35264.c [new file with mode: 0644]

index b7ab324..c3dfc8a 100644 (file)
@@ -1,3 +1,8 @@
+2008-02-21  Michael Matz  <matz@suse.de>
+
+       PR target/35264
+       * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
+
 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
 
        * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
index 5dad2fc..5a4456d 100644 (file)
@@ -12148,6 +12148,7 @@ ix86_expand_branch (enum rtx_code code, rtx label)
                  ix86_expand_branch (code, label);
                  return;
                }
+             break;
            case LE: case LEU: case GT: case GTU:
              if (lo[1] == constm1_rtx)
                {
@@ -12156,6 +12157,7 @@ ix86_expand_branch (enum rtx_code code, rtx label)
                  ix86_expand_branch (code, label);
                  return;
                }
+             break;
            default:
              break;
            }
index 780efe8..259bfbe 100644 (file)
@@ -1,3 +1,8 @@
+2008-02-21  Michael Matz  <matz@suse.de>
+
+       PR target/35264
+       * gcc.dg/pr35264.c: New testcase.
+
 2008-02-21  Richard Guenther  <rguenther@suse.de>
 
        * gfortran.dg/reassoc_1.f90: New testcase.
diff --git a/gcc/testsuite/gcc.dg/pr35264.c b/gcc/testsuite/gcc.dg/pr35264.c
new file mode 100644 (file)
index 0000000..a332efc
--- /dev/null
@@ -0,0 +1,24 @@
+/* { dg-do run } */
+/* { dg-options "-O1" } */
+extern void abort(void);
+long long __attribute__((noinline)) get(void)
+{
+  return -2;
+}
+long long __attribute__((noinline)) get(void);
+int __attribute__((noinline)) check(void)
+{
+ long long lcn;
+
+ lcn = get();
+ if (lcn >= 0 || lcn == -1)
+  return 0;
+
+ return -1;
+}
+int main()
+{
+  if (check() == 0)
+    abort();
+  return 0;
+}