From c754abbfbf21999688720e4c52a4814b0c47fd76 Mon Sep 17 00:00:00 2001 From: Michael Matz Date: Thu, 21 Feb 2008 12:38:35 +0000 Subject: [PATCH] re PR target/35264 (ntfs-3g miscompiled) PR target/35264 * config/i386/i386.c (ix86_expand_branch): Add missing breaks. * gcc.dg/pr35264.c: New testcase. From-SVN: r132521 --- gcc/ChangeLog | 5 +++++ gcc/config/i386/i386.c | 2 ++ gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/pr35264.c | 24 ++++++++++++++++++++++++ 4 files changed, 36 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/pr35264.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b7ab324ae9f..c3dfc8acee5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2008-02-21 Michael Matz + + PR target/35264 + * config/i386/i386.c (ix86_expand_branch): Add missing breaks. + 2008-02-21 Uros Bizjak * config/i386/i386.md (movcc): Macroize expander from movsfcc, diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 5dad2fcf515..5a4456d912b 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -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; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 780efe8dfb1..259bfbe1236 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2008-02-21 Michael Matz + + PR target/35264 + * gcc.dg/pr35264.c: New testcase. + 2008-02-21 Richard Guenther * 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 index 00000000000..a332efc42ef --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr35264.c @@ -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; +} -- 2.30.2