summaryrefslogtreecommitdiff
path: root/patches/gcc/3.3.1/pr10412-1-test.patch
diff options
context:
space:
mode:
authorYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2007-02-24 11:00:05 (GMT)
committerYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2007-02-24 11:00:05 (GMT)
commit1906cf93f86d8d66f45f90380a8d3da25c087ee5 (patch)
tree90916c99abe1f1ec26709ee420e6c349eda4670a /patches/gcc/3.3.1/pr10412-1-test.patch
parent2609573aede4ce198b3462976725b25eb1637d2e (diff)
Add the full crosstool-NG sources to the new repository of its own.
You might just say: 'Yeah! crosstool-NG's got its own repo!". Unfortunately, that's because the previous repo got damaged beyond repair and I had no backup. That means I'm putting backups in place in the afternoon. That also means we've lost history... :-(
Diffstat (limited to 'patches/gcc/3.3.1/pr10412-1-test.patch')
-rw-r--r--patches/gcc/3.3.1/pr10412-1-test.patch46
1 files changed, 46 insertions, 0 deletions
diff --git a/patches/gcc/3.3.1/pr10412-1-test.patch b/patches/gcc/3.3.1/pr10412-1-test.patch
new file mode 100644
index 0000000..6ca0525
--- /dev/null
+++ b/patches/gcc/3.3.1/pr10412-1-test.patch
@@ -0,0 +1,46 @@
+--- /dev/null Sat Dec 14 13:56:51 2002
++++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr10412-1.c Sun Sep 14 16:15:21 2003
+@@ -0,0 +1,43 @@
++/* PR target/10412
++ * Reporter: shrinivasa@kpitcummins.com
++ * Summary: Renesas SH - Incorrect code generation
++ * Description:
++ * When following code is compiled with
++ * sh-elf-gcc -S -mhitachi -m2 -O2 bug1.c
++ * generates an incorrect code.
++ *
++ * Testcase tweaked by dank@kegel.com
++ * Problem only happens with -mhitachi -m2. Not sure if I can give those
++ * options for all sh targets. They work on sh4, though.
++ * Not marked as xfail as it's a regression relative to hardhat 2.0 gcc-2.97.
++*/
++/* { dg-do run } */
++/* { dg-options "-O2" } */
++int global_val;
++
++int func0(int x)
++{
++ global_val += x;
++ return (x != 99);
++}
++
++int func1(unsigned long addr)
++{
++ int err;
++
++ err = func0(addr);
++ if (err)
++ return (err);
++
++ err = func0(addr * 7); /* address of func0 is lost during multiplication -> probable SIGSEGV */
++ return (err);
++}
++
++int main(int argc, char **argv)
++{
++ global_val = 0;
++ global_val += func1(99);
++ if (global_val != 99 * 8 + 1)
++ abort();
++ return 0;
++}