/* 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; | |
} |