/* PR 6534 */
/* GCSE unified the two i<0 tests, but if-conversion to ui=abs(i)
   insertted the code at the wrong place corrupting the i<0 test.  */

void abort(void);
static char *
inttostr(long i, char buf[128]) {
    unsigned long ui = i;
    char *p = buf + 127;
    *p = '\0';
    if (i < 0)
        ui = -ui;
    do
        *--p = '0' + ui % 10;
    while ((ui /= 10) != 0);
    if (i < 0)
        *--p = '-';
    return p;
}

int main() {
    char buf[128], *p;

    p = inttostr(-1, buf);
    if (*p != '-')
        abort();
    return 0;
}
