server/mpm/event/event.c:1708: error: UNINITIALIZED_VALUE
  The value read from last was never initialized.

server/mpm/event/event.c:1708:9: 
1706. 
1707.         APR_RING_UNSPLICE(first, last, timeout_list);
1708.         APR_RING_SPLICE_TAIL(&trash, first, last, event_conn_state_t,
              ^
1709.                              timeout_list);
1710.         qp->count -= count;

static void process_timeout_queue(struct timeout_queue *q,
                                  apr_time_t timeout_time,
                                  int (*func)(event_conn_state_t *))
{
    int total = 0, count;
    event_conn_state_t *first, *cs, *last;
    struct timeout_head_t trash;
    struct timeout_queue *qp;
    apr_status_t rv;
    if (!*q->total) {
        return;
    }
    APR_RING_INIT(&trash, event_conn_state_t, timeout_list);
    for (qp = q; qp; qp = qp->next) {
        count = 0;
        cs = first = APR_RING_FIRST(&qp->head);
        while (cs != APR_RING_SENTINEL(&qp->head, event_conn_state_t,
                                       timeout_list)
               && (!timeout_time
                   || cs->queue_timestamp + qp->timeout < timeout_time
                   || cs->queue_timestamp > timeout_time + qp->timeout)) {
            last = cs;
            rv = apr_pollset_remove(event_pollset, &cs->pfd);
            if (rv != APR_SUCCESS && !APR_STATUS_IS_NOTFOUND(rv)) {
                ap_log_cerror(APLOG_MARK, APLOG_ERR, rv, cs->c, APLOGNO(00473)
                              "apr_pollset_remove failed");
            }
            cs = APR_RING_NEXT(cs, timeout_list);
            count++;
        }
        if (!count)
            continue;
        APR_RING_UNSPLICE(first, last, timeout_list);
        APR_RING_SPLICE_TAIL(&trash, first, last, event_conn_state_t,
                             timeout_list);
        qp->count -= count;
        total += count;
    }
    if (!total)
        return;
    AP_DEBUG_ASSERT(*q->total >= total);
    *q->total -= total;
    apr_thread_mutex_unlock(timeout_mutex);
    first = APR_RING_FIRST(&trash);
    do {
        cs = APR_RING_NEXT(first, timeout_list);
        TO_QUEUE_ELEM_INIT(first);
        func(first);
        first = cs;
    } while (--total);
    apr_thread_mutex_lock(timeout_mutex);
}
['static void process_timeout_queue(struct timeout_queue *q,\n                                  apr_time_t timeout_time,\n                                  int (*func)(event_conn_state_t *))\n{\n    int total = 0, count;\n    event_conn_state_t *first, *cs, *last;\n    struct timeout_head_t trash;\n    struct timeout_queue *qp;\n    apr_status_t rv;\n    if (!*q->total) {\n        return;\n    }\n    APR_RING_INIT(&trash, event_conn_state_t, timeout_list);\n    for (qp = q; qp; qp = qp->next) {\n        count = 0;\n        cs = first = APR_RING_FIRST(&qp->head);\n        while (cs != APR_RING_SENTINEL(&qp->head, event_conn_state_t,\n                                       timeout_list)\n               && (!timeout_time\n                   || cs->queue_timestamp + qp->timeout < timeout_time\n                   || cs->queue_timestamp > timeout_time + qp->timeout)) {\n            last = cs;\n            rv = apr_pollset_remove(event_pollset, &cs->pfd);\n            if (rv != APR_SUCCESS && !APR_STATUS_IS_NOTFOUND(rv)) {\n                ap_log_cerror(APLOG_MARK, APLOG_ERR, rv, cs->c, APLOGNO(00473)\n                              "apr_pollset_remove failed");\n            }\n            cs = APR_RING_NEXT(cs, timeout_list);\n            count++;\n        }\n        if (!count)\n            continue;\n        APR_RING_UNSPLICE(first, last, timeout_list);\n        APR_RING_SPLICE_TAIL(&trash, first, last, event_conn_state_t,\n                             timeout_list);\n        qp->count -= count;\n        total += count;\n    }\n    if (!total)\n        return;\n    AP_DEBUG_ASSERT(*q->total >= total);\n    *q->total -= total;\n    apr_thread_mutex_unlock(timeout_mutex);\n    first = APR_RING_FIRST(&trash);\n    do {\n        cs = APR_RING_NEXT(first, timeout_list);\n        TO_QUEUE_ELEM_INIT(first);\n        func(first);\n        first = cs;\n    } while (--total);\n    apr_thread_mutex_lock(timeout_mutex);\n}']