VC 6.0 bug (

3 отговора 0 прегледа
#1

VC 6.0 bug (

snoshti mi kazaha neshto takowa...
kolko pyti shte se zavyrti cikyla :
void main()
{
volatile unsigned int j = 13;
for ( unsigned int i = j; i+1 > 0; i-- )
printf("%ld\n", i );
}
i kolko pyti
void main()
{
unsigned int j = 13;
for ( unsigned int i = j; i+1 > 0; i-- )
printf("%ld\n", i );
}




Отговор
в отговор на popitko #2

zabrawh da kaja - w Release build-a...



Отговор
в отговор на popitko #3

Re: VC 6.0 bug

tazi greshshka w optimizaciata na VC-to si e ot versia 5 nasam. :)
/Og flagyt e winowen. t.e. ako se kompilira s
cl /O2 /Og- test.c
wsichko e ok. :)
vc-to obyrkwa signed, unsigned srawneniata( ja wmesto jg ), wseki moje da pogledne asm source-to.


edin po-eleganten primer (zabelejete che tialoto na cikyla e prazno):
void main( void )
{
unsigned long i;
for( i=0x12345678; i>0x10000000;i+=0x87654321);
printf( "%x\n", i );
}

>cl /nologo hm.c
>hm.exe
12345678

>cl /nologo O2 hm.c
>hm.exe
99999999

pri release i debug build dawa razlichni kraini rezultati i chowek si misli che greshkata e ot "mnogo" optimizacii :))) wsyshnost Visual C-to se opitwa da smetne oshte po wreme na kompilacia krainata stoinost na i, bez da generira nikakyw kod za cikyla. dobro kato ideia, no... :)
zatowa - Intel C/C++ compiler! :))


Отговор
в отговор на _ #4

Re: VC 6.0 bug

da... kazaha mi che e opraweno w SP4, a moje bi i w niakloi po ranen...

Отговор