diff options
Diffstat (limited to 'recipes/gcc/gcc-3.3.3/pr11864-1-test.patch')
-rw-r--r-- | recipes/gcc/gcc-3.3.3/pr11864-1-test.patch | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/recipes/gcc/gcc-3.3.3/pr11864-1-test.patch b/recipes/gcc/gcc-3.3.3/pr11864-1-test.patch new file mode 100644 index 0000000000..f5b0d175f4 --- /dev/null +++ b/recipes/gcc/gcc-3.3.3/pr11864-1-test.patch @@ -0,0 +1,45 @@ +--- /dev/null Sat Dec 14 13:56:51 2002 ++++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr11864-1.c Sun Sep 14 14:32:24 2003 +@@ -0,0 +1,42 @@ ++/* PR optimization/11864 ++ * Reporter: Kazumoto Kojima <kkojima@gcc.gnu.org> ++ * Summary: [3.3/3.4 regression] miscompiles zero extension and test ++ * Description: ++ * gcc-3.3/3.4 -O2 for sh target may miscompile the combination of zero extension ++ * and test if it's zero. ++ * ++ * Testcase tweaked by dank@kegel.com. Not marked as xfail because it's a regression. ++ */ ++/* { dg-do run } */ ++/* { dg-options "-O2" } */ ++ ++extern void abort(void); ++ ++int val = 0xff00; ++ ++int f(void) ++{ ++ return val; ++} ++ ++unsigned char a[1]; ++ ++void foo(void) ++{ ++ a[0] = f() & 255; ++ ++ if (!a[0]) ++ a[0] = f() & 255; ++ ++ if (!a[0]) ++ a[0] = 1 + (f() & 127); ++} ++ ++int main(int argc, char **argv) ++{ ++ foo(); ++ if (!a[0]) ++ abort(); ++ ++ return 0; ++} |