aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/gcc/gcc-3.3.3/pr11736-1-test.patch
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
committerDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
commit709c4d66e0b107ca606941b988bad717c0b45d9b (patch)
tree37ee08b1eb308f3b2b6426d5793545c38396b838 /recipes/gcc/gcc-3.3.3/pr11736-1-test.patch
parentfa6cd5a3b993f16c27de4ff82b42684516d433ba (diff)
downloadopenembedded-709c4d66e0b107ca606941b988bad717c0b45d9b.tar.gz
rename packages/ to recipes/ per earlier agreement
See links below for more details: http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326 http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816 Signed-off-by: Denys Dmytriyenko <denis@denix.org> Acked-by: Mike Westerhof <mwester@dls.net> Acked-by: Philip Balister <philip@balister.org> Acked-by: Khem Raj <raj.khem@gmail.com> Acked-by: Marcin Juszkiewicz <hrw@openembedded.org> Acked-by: Koen Kooi <koen@openembedded.org> Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'recipes/gcc/gcc-3.3.3/pr11736-1-test.patch')
-rw-r--r--recipes/gcc/gcc-3.3.3/pr11736-1-test.patch48
1 files changed, 48 insertions, 0 deletions
diff --git a/recipes/gcc/gcc-3.3.3/pr11736-1-test.patch b/recipes/gcc/gcc-3.3.3/pr11736-1-test.patch
new file mode 100644
index 0000000000..ea544b1275
--- /dev/null
+++ b/recipes/gcc/gcc-3.3.3/pr11736-1-test.patch
@@ -0,0 +1,48 @@
+--- /dev/null Sat Dec 14 13:56:51 2002
++++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr11736-1.c Sun Sep 14 14:26:33 2003
+@@ -0,0 +1,45 @@
++/* PR optimization/11736
++ * Reporter: marcus@mc.pp.se
++ * Summary: Stackpointer messed up on SuperH
++ * Keywords: wrong-code
++ * Description:
++ * When a function with 5 arguments is called in both branches of a
++ * conditional, and only the last argument differs, the code to push that
++ * last argument on the stack gets confused.
++ * Space for the fifth argument is reserved on the stack by the
++ * instruction I have marked as "A". However, if the else-branch is
++ * taken the stackpointer is decremented _again_ at "B". This
++ * decrementation is never restored, and it is only due to the
++ * restoration of r15 from r14 that the function works at all. With
++ * -fomit-frame-pointer it will crash.
++ *
++ * Testcase tweaked by dank@kegel.com
++ * Not marked as xfail since it's a regression from hardhat 2.0 gcc-2.97
++ * and dodes gcc-3.0.2
++ */
++
++/* { dg-do run } */
++/* { dg-options "-O1 -fomit-frame-pointer" } */
++
++int expected_e;
++
++void bar(int a, int b, int c, int d, int e)
++{
++ if (e != expected_e)
++ abort();
++}
++
++void foo(int a)
++{
++ if (a)
++ bar(0, 0, 0, 0, 1);
++ else
++ bar(0, 0, 0, 0, 0); /* stack pointer decremented extra time here, causing segfault */
++}
++
++int main(int argc, char **argv)
++{
++ for (expected_e = 0; expected_e < 2; expected_e++)
++ foo(expected_e);
++ return 0;
++}