string_test: we should always use 'unsigned int' for b
As recently shown in fb0ac2 (s/int/unsigned/ since GCC 4.3.2 produces
code which doesn't stop)
comparing (signed) int variable to 0x80000000 is not idea for x86_64.
This is not a good idea for x86_32 either, because GCC 4.3.2 (the one in
Debian Lenny) rightly assumes that a signed int could be never
0x80000000, and thus removes the check from
while (b != 0x80000000) {
...
completely.
If we want this check, we need b to be always 'unsigned'
Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
This commit is contained in:
@ -312,11 +312,7 @@ test\14\
|
|||||||
|
|
||||||
void string_test()
|
void string_test()
|
||||||
{
|
{
|
||||||
#if defined(__x86_64__) && defined(__GNUC__)
|
|
||||||
unsigned int b;
|
unsigned int b;
|
||||||
#else
|
|
||||||
int b;
|
|
||||||
#endif
|
|
||||||
printf("string:\n");
|
printf("string:\n");
|
||||||
printf("\141\1423\143\n");/* dezdez test */
|
printf("\141\1423\143\n");/* dezdez test */
|
||||||
printf("\x41\x42\x43\x3a\n");
|
printf("\x41\x42\x43\x3a\n");
|
||||||
|
|||||||
Reference in New Issue
Block a user