VC 6.0 bug (
3 отговора
0 прегледа
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 );
}
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 );
}
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! :))
/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! :))
Re: VC 6.0 bug
da... kazaha mi che e opraweno w SP4, a moje bi i w niakloi po ranen...