puntero "el valor calculado no se utiliza" en la función c

Escribí una función que acorta una cadena (oración de palabras) en la longitud solicitada. No quiero que el corte de la oración esté en el medio de una sola palabra. Así que salto hacia atrás n caracteres hasta llegar a un espacio y cortar la cadena de la oración allí. Mi problema no es realmente un problema, compilar mi función emite una advertencia que dice "advertencia: el valor calculado no se usa", vea la línea comentada en el código. Sin embargo, la función funciona como se esperaba. Entonces, o soy ciego o estoy sentado demasiado tiempo en mi proyecto, en realidad no entiendo esa advertencia. ¿Alguien podría señalarme la falla en la función?


char *
str_cut(char *s, size_t len) {
    char *p = NULL;
    int n = 3;

    p = s + len;
    if (p < (s + strlen (s))) {
        /*
         * do not cut string in middle of a word.
         * if cut-point is no space, reducue string until space reached ...
         */
        if (*p != ' ')
            while (*p != ' ')
                *p--;   // TODO: triggers warning: warning: value computed is not used

        /* add space for dots and extra space, terminate string */
        p += n + 1;
        *p = '\0';

        /* append dots */
        while (n-- && (--p > s))
            *p = '.';
    }
    return s;
}

Mi compilador en la máquina de desarrollo es "gcc versión 4.2.4 (Ubuntu 4.2.4-1ubuntu4)"

Respuestas a la pregunta(3)

Su respuesta a la pregunta