5*1.2 = 5 or 5*1.2 = 6 ?
Jocelyn Fournier
joc@presence-pc.com
Tue Jul 16 04:32:00 GMT 2002
Hi,
Thank you for your answer.
What kind of optimisations are done in the case where the -O switch is used
?
Regards,
Jocelyn
----- Original Message -----
From: "Momchil Velikov" <velco@fadata.bg>
To: "Jocelyn Fournier" <joc@presence-pc.com>
Cc: <gcc-help@gcc.gnu.org>
Sent: Tuesday, July 16, 2002 1:28 PM
Subject: Re: 5*1.2 = 5 or 5*1.2 = 6 ?
> >>>>> "Jocelyn" == Jocelyn Fournier <joc@presence-pc.com> writes:
> Jocelyn> #include <stdio.h>
>
> Jocelyn> main()
> Jocelyn> {
> Jocelyn> int x = 5;
> Jocelyn> x *= 1.2;
> Jocelyn> printf("5 x 1.2 = %d\n", x);
> Jocelyn> }
>
> Jocelyn> I've compiled it with gcc 3.1
>
> Jocelyn> First try :
>
> Jocelyn> gcc -o code1 code1.c
>
> Jocelyn> [root@forum] /home/joce> ./code1
> Jocelyn> 5 x 1.2 = 5
>
> Jocelyn> Second try :
>
> Jocelyn> gcc -O -o code1 code1.c
> Jocelyn> [root@forum] /home/joce> ./code1
> Jocelyn> 5 x 1.2 = 6
>
> Jocelyn> Why does the compiler return a different result if the -O is used
?
>
> Differend rounding performed by the program (with no optimizations)
> and the compiler (with optimizations).
>
> ~velco
>
>
>
More information about the Gcc-help
mailing list