I am using g++ 4.0.2 on Suse-10
On Thu, 2006-02-23 at 15:50 +0530, Digvijoy Chatterjee wrote:
> #include<iostream>
>
> using namespace std;
> class Rational
> {
>
> int numerator;
> int denominator;
> public:
> int GetNum ()
> {
> return numerator;
> }
> int GetDen ()
> {
> return denominator;
> }
> void setNum (int numer)
> {
> numerator = numer;
> }
>
> void setDen (int den)
> {
> denominator = den;
> }
>
> int gcd (int i1, int i2)
> {
> if (i2 == 0)
> return i1;
> else
> return gcd (i2, i1 % i2);
> }
> public :
> Rational (float f)
> {
> int denom = 1;
> while (((int) f - f)!= 0)
> {
> f *= 10;
> denom *= 10;
> }
> int Gcd = gcd (int (f), denom);
> numerator = f / Gcd;
> cout <<numerator <<endl;
> denominator = denom / Gcd;
> cout<<"-----"<<endl;
> cout <<denominator <<endl;
> }
>
> };
>
> int
> main (int argc, char **argv)
> {
> Rational r1 = Rational (.4537f);
> }
>
>
> -----------------------------------------
> This runs successfully with:
> g++ without any optimization ,
> but with -O or -02 or -03 the executable just hangs forever
>
>
> On Thu, 2006-02-23 at 10:56 +0100, Jerome Robert wrote:
> > Here is the faulty program (this kind of code is generated by
> > http://www.swig.org):
> >
> > /////////// Start ///////////
> > #include <stdio.h>
> >
> > int main(void)
> > {
> > long long a = 0x77777777L;
> > long long b = 0;
> > void ** aa=(void **)(void *)&a;
> > void ** ab=(void **)(void *)&b;
> > *ab = *aa;
> > printf("in: %llX, out: %llX\n", a, b);
> > return 0;
> > }
> > /////////// End ///////////
> >
> > The output for the following version is:
> > (Debian 1:3.3.6-12) g++ in: 77777777, out: 77777777
> > (Debian 1:3.3.6-12) g++ -O1 in: 77777777, out: 77777777
> > (Debian 1:3.3.6-12) g++ -O2 in: 77777777, out: 77777777
> > (Debian 4.0.2-9) g++ in: 77777777, out: 77777777
> > (Debian 4.0.2-9) g++ -O1 in: 77777777, out: 77777777
> > (Debian 4.0.2-9) g++ -O2 in: 77777777, out: 0
> >
> > So there is something wrong with g++ -O2 (Debian 4.0.2-9). Is this program
> > wrong
> > or is this a bug ?
> >
> > Regards,
> >
> > Jerome
--
Thanks and Regards
Digvijoy Chatterjee
Please Visit http://indra/LiMS and start your Linux Journey
**************** CAUTION - Disclaimer *****************
This e-mail contains PRIVILEGED AND CONFIDENTIAL INFORMATION intended solely
for the use of the addressee(s). If you are not the intended recipient, please
notify the sender by e-mail and delete the original message. Further, you are
not to copy, disclose, or distribute this e-mail or its contents to any other
person and any such actions are unlawful. This e-mail may contain viruses.
Infosys has taken every reasonable precaution to minimize this risk, but is not
liable for any damage you may sustain as a result of any virus in this e-mail.
You should carry out your own virus checks before opening the e-mail or
attachment. Infosys reserves the right to monitor and review the content of all
messages sent to or from this e-mail address. Messages sent to or from this
e-mail address may be stored on the Infosys e-mail system.
***INFOSYS******** End of Disclaimer ********INFOSYS***