aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.c-torture/compile/pr35492.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.c-torture/compile/pr35492.c')
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.c-torture/compile/pr35492.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.c-torture/compile/pr35492.c b/gcc-4.9/gcc/testsuite/gcc.c-torture/compile/pr35492.c
new file mode 100644
index 000000000..a1681f0a0
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.c-torture/compile/pr35492.c
@@ -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);
+}