server/mpm/event/fdqueue.c:466: error: INTEGER_OVERFLOW_L2
  ([0, `queue->nelts`] - 1):unsigned32.

server/mpm/event/fdqueue.c:424:1: <LHS trace>
422.  * 'sd'.
423.  */
424. apr_status_t ap_queue_pop_something(fd_queue_t * queue, apr_socket_t ** sd,
     ^
425.                                     event_conn_state_t ** ecs, apr_pool_t ** p,
426.                                     timer_event_t ** te_out)

server/mpm/event/fdqueue.c:424:1: Parameter `queue->nelts`
422.  * 'sd'.
423.  */
424. apr_status_t ap_queue_pop_something(fd_queue_t * queue, apr_socket_t ** sd,
     ^
425.                                     event_conn_state_t ** ecs, apr_pool_t ** p,
426.                                     timer_event_t ** te_out)

server/mpm/event/fdqueue.c:466:9: Binary operation: ([0, queue->nelts] - 1):unsigned32
464.         if (queue->out >= queue->bounds)
465.             queue->out -= queue->bounds;
466.         queue->nelts--;
             ^
467.         *sd = elem->sd;
468.         *ecs = elem->ecs;

apr_status_t ap_queue_pop_something(fd_queue_t * queue, apr_socket_t ** sd,
                                    event_conn_state_t ** ecs, apr_pool_t ** p,
                                    timer_event_t ** te_out)
{
    fd_queue_elem_t *elem;
    apr_status_t rv;
    if ((rv = apr_thread_mutex_lock(queue->one_big_mutex)) != APR_SUCCESS) {
        return rv;
    }
    if (ap_queue_empty(queue)) {
        if (!queue->terminated) {
            apr_thread_cond_wait(queue->not_empty, queue->one_big_mutex);
        }
        if (ap_queue_empty(queue)) {
            rv = apr_thread_mutex_unlock(queue->one_big_mutex);
            if (rv != APR_SUCCESS) {
                return rv;
            }
            if (queue->terminated) {
                return APR_EOF;
            }
            else {
                return APR_EINTR;
            }
        }
    }
    *te_out = NULL;
    if (!APR_RING_EMPTY(&queue->timers, timer_event_t, link)) {
        *te_out = APR_RING_FIRST(&queue->timers);
        APR_RING_REMOVE(*te_out, link);
    }
    else {
        elem = &queue->data[queue->out];
        queue->out++;
        if (queue->out >= queue->bounds)
            queue->out -= queue->bounds;
        queue->nelts--;
        *sd = elem->sd;
        *ecs = elem->ecs;
        *p = elem->p;
#ifdef AP_DEBUG
        elem->sd = NULL;
        elem->p = NULL;
#endif
    }
    rv = apr_thread_mutex_unlock(queue->one_big_mutex);
    return rv;
}
['apr_status_t ap_queue_pop_something(fd_queue_t * queue, apr_socket_t ** sd,\n                                    event_conn_state_t ** ecs, apr_pool_t ** p,\n                                    timer_event_t ** te_out)\n{\n    fd_queue_elem_t *elem;\n    apr_status_t rv;\n    if ((rv = apr_thread_mutex_lock(queue->one_big_mutex)) != APR_SUCCESS) {\n        return rv;\n    }\n    if (ap_queue_empty(queue)) {\n        if (!queue->terminated) {\n            apr_thread_cond_wait(queue->not_empty, queue->one_big_mutex);\n        }\n        if (ap_queue_empty(queue)) {\n            rv = apr_thread_mutex_unlock(queue->one_big_mutex);\n            if (rv != APR_SUCCESS) {\n                return rv;\n            }\n            if (queue->terminated) {\n                return APR_EOF;\n            }\n            else {\n                return APR_EINTR;\n            }\n        }\n    }\n    *te_out = NULL;\n    if (!APR_RING_EMPTY(&queue->timers, timer_event_t, link)) {\n        *te_out = APR_RING_FIRST(&queue->timers);\n        APR_RING_REMOVE(*te_out, link);\n    }\n    else {\n        elem = &queue->data[queue->out];\n        queue->out++;\n        if (queue->out >= queue->bounds)\n            queue->out -= queue->bounds;\n        queue->nelts--;\n        *sd = elem->sd;\n        *ecs = elem->ecs;\n        *p = elem->p;\n#ifdef AP_DEBUG\n        elem->sd = NULL;\n        elem->p = NULL;\n#endif\n    }\n    rv = apr_thread_mutex_unlock(queue->one_big_mutex);\n    return rv;\n}']