OSDN Git Service

2010-07-22 Sandra Loosemore <sandra@codesourcery.com>
authorsandra <sandra@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 23 Jul 2010 02:18:07 +0000 (02:18 +0000)
committersandra <sandra@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 23 Jul 2010 02:18:07 +0000 (02:18 +0000)
PR tree-optimization/39839

gcc/testsuite/
* gcc.target/arm/pr39839.c: New test case.

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

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/arm/pr39839.c [new file with mode: 0644]

index ecb1efb..dfcd727 100644 (file)
@@ -1,3 +1,8 @@
+2010-07-22  Sandra Loosemore  <sandra@codesourcery.com>
+
+       PR tree-optimization/39839
+       * gcc.target/arm/pr39839.c: New test case.
+
 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
 
        * gnat.dg/unchecked_convert5b.adb: New test.
diff --git a/gcc/testsuite/gcc.target/arm/pr39839.c b/gcc/testsuite/gcc.target/arm/pr39839.c
new file mode 100644 (file)
index 0000000..31e865a
--- /dev/null
@@ -0,0 +1,24 @@
+/* { dg-options "-mthumb -Os -march=armv5te -mthumb-interwork -fpic" }  */
+/* { dg-require-effective-target arm_thumb1_ok } */
+/* { dg-final { scan-assembler-not "str\[\\t \]*r.,\[\\t \]*.sp," } } */
+
+struct S
+{
+  int count;
+  char *addr;
+};
+
+void func(const char*, const char*, int, const char*);
+
+/* This function should not need to spill to the stack. */
+void test(struct S *p)
+{
+  int off = p->count;
+  while (p->count >= 0)
+    {
+      const char *s = "xyz";
+      if (*p->addr) s = "pqr";
+      func("abcde", p->addr + off, off, s);
+      p->count--;
+    }
+}