Is it a Bug in g++ compiler`s -O flag??

Newbie Member
17Oct2006,01:06   #1
nikhil_dokania's Avatar
The output is different for the following two codes when compiled as : "g++ -O foo.cpp"
1st COde :
Code:
#include<iostream.h>
#include<math.h>
int main(){
	double d=log(8)/log(2);
	cout<<"d="<<d<<"\t floor(d)="<<floor(d);        //<<"\t"<<floor(10.0)<<"\n";
	return 0;
}
------------------------------------------------------------------------------------------------------------------
2nd COde :
Code:
#include<iostream.h>
#include<math.h>
int main(){
	double d=log(8)/log(2);
	cout<<"d="<<d<<"\t floor(d)="<<floor(d)<<"\t"<<floor(10.0)<<"\n";
	return 0;
}
---------------------------------------------------------------------------------------------------------------

Expected output : d=3 floor(d)=3 10
But The First code give : d=3 floor(d)=2 10
while the second gives the right output.
Could nyone plz explain whats going wrong!!

Nikhil

Last edited by shabbir; 17Oct2006 at 10:26.. Reason: Code formating.
Go4Expert Founder
17Oct2006,10:23   #2
shabbir's Avatar
Duplicate of Is it a Bug in g++ compiler`s -O flag?? . Thread closed.