re PR target/35492 (ICE building kernel sk_stream_wait_connect output_operand: invali...
authorHans-Peter Nilsson <hp@axis.com>
Mon, 14 Jul 2008 00:24:35 +0000 (00:24 +0000)
committerHans-Peter Nilsson <hp@gcc.gnu.org>
Mon, 14 Jul 2008 00:24:35 +0000 (00:24 +0000)
PR target/35492
* gcc.c-torture/compile/pr35492.c: New test.

From-SVN: r137766

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/compile/pr35492.c [new file with mode: 0644]

index 0b1bc9777183c803df6fda8f792b3ef5db39285d..2f20e5b9295419e647e829284f3c76ab935ddacc 100644 (file)
@@ -1,3 +1,8 @@
+2008-07-14  Hans-Peter Nilsson  <hp@axis.com>
+
+       PR target/35492
+       * gcc.c-torture/compile/pr35492.c: New test.
+
 2008-06-22  Daniel Kraft  <d@domob.eu>
 
        * gfortran.dg/used_types_21.f90:  New test.
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr35492.c b/gcc/testsuite/gcc.c-torture/compile/pr35492.c
new file mode 100644 (file)
index 0000000..a1681f0
--- /dev/null
@@ -0,0 +1,26 @@
+void prepare_to_wait (void *, void *, int);
+void finish_wait (void *, void *);
+extern signed long schedule_timeout (signed long);
+struct sock
+{
+  unsigned char skc_state;
+  void *sk_sleep;
+  int sk_err;
+};
+
+void
+sk_stream_wait_connect (struct sock *sk, long *timeo_p)
+{
+  int done;
+  int wait;
+  do
+    {
+      if ((1 << sk->skc_state) & ~12)
+        return;
+      prepare_to_wait (sk->sk_sleep, &wait, 1);
+      *(timeo_p) = schedule_timeout (0);
+      done = !sk->sk_err;
+      finish_wait (sk->sk_sleep, &wait);
+    }
+  while (!done);
+}