* gcc.dg/20010912-1.c: New test.
authorJakub Jelinek <jakub@redhat.com>
Wed, 12 Sep 2001 20:58:29 +0000 (22:58 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Wed, 12 Sep 2001 20:58:29 +0000 (22:58 +0200)
From-SVN: r45571

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/20010912-1.c [new file with mode: 0644]

index 67aa0ba..7a0026b 100644 (file)
@@ -1,3 +1,7 @@
+2001-09-12  Jakub Jelinek  <jakub@redhat.com>
+
+       * gcc.dg/20010912-1.c: New test.
+
 2001-09-11  Janis Johnson  <janis187@us.ibm.com>
 
        * gcc.misc-tests/gcov.exp: Move almost everything to a new,
diff --git a/gcc/testsuite/gcc.dg/20010912-1.c b/gcc/testsuite/gcc.dg/20010912-1.c
new file mode 100644 (file)
index 0000000..b33b729
--- /dev/null
@@ -0,0 +1,48 @@
+/* { dg-do run } */
+/* { dg-options "-O2 -fpic" } */
+
+extern void abort (void);
+extern void exit (int);
+
+int bar (int x, char **y)
+{
+  if (x != 56)
+    abort ();
+  if (**y != 'a')
+    abort ();
+  *y = "def";
+  return 1;
+}
+
+int baz (int x, char **y)
+{
+  if (x != 56)
+    abort ();
+  if (**y != 'a')
+    abort ();
+  return 26;
+}
+
+int foo (int x, char *y)
+{
+  int a;
+  char *b = y;
+  a = bar (x, &y);
+  if (a)
+    {
+      y = b;
+      a = baz (x, &y);
+    }
+  if (a)
+    return a;
+
+  baz (x, &y);
+  return 0;
+}
+
+int main ()
+{
+  if (foo (56, "abc") != 26)
+    abort ();
+  exit (0);
+}