[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Infinite loop with GCC 4.3
From: |
Han-Wen Nienhuys |
Subject: |
Re: Infinite loop with GCC 4.3 |
Date: |
Mon, 26 May 2008 10:49:27 -0300 |
2008/5/26 Joe Neeman <address@hidden>:
> On Mon, 2008-05-26 at 07:53 +0200, John Mandereau wrote:
>> On 2008/05/26, Joe Neeman wrote:
>> > Attached is the smallest example that I could find that reproduces the
>> > problem. With g++ 4.3.0 on Fedora 9, I get an infinite loop with -O1 but
>> > immediate termination with -O0. With g++ 4.2.3 on Debian, I get
>> > termination regardless of the optimisation setting.
>> >
>> > I think it is also easy to argue that the program should terminate,
>> > regardless of rounding (the value of 'i' should be the same every time
>> > the loop executes. So on the second time through, 'x' should be at least
>> > as large as 'i').
>>
>> I agree.
>
> Well, it seems that I should have started by reading the gcc bug
> tracker. This is a very popular bug:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=323
>
> The summary is that you cannot expect sane behaviour with the double
> data type using gcc (and apparently most other C compilers) on x86. In
> particular, doubles may be truncated from 80 bits to 64 bits at any
> time. Therefore, you can compare two (80-bit) doubles and find that they
> are not equal only for them to become equal on the very next line.
>
> The position of the gcc folks is that this is Intel's fault and so they
> will not fix it. This leaves us with a few options:
> 1) Change Real to be a long double instead of a double (on x86 only?)
> 2) Compile with -msse on x86
> 3) Find some way of forcing a truncation (as suggested in comment #88 of
> the above link)
> 4) Anything else?
comment #60 sounds promising too. We'd have to have a small bit of
system dependent code, but it is localized, so I can live with it.
--
Han-Wen Nienhuys - address@hidden - http://www.xs4all.nl/~hanwen
- Infinite loop with GCC 4.3, John Mandereau, 2008/05/18
- Re: Infinite loop with GCC 4.3, Joe Neeman, 2008/05/25
- Re: Infinite loop with GCC 4.3, John Mandereau, 2008/05/25
- Re: Infinite loop with GCC 4.3, Joe Neeman, 2008/05/26
- Re: Infinite loop with GCC 4.3, John Mandereau, 2008/05/26
- Re: Infinite loop with GCC 4.3, Joe Neeman, 2008/05/26
- Re: Infinite loop with GCC 4.3, Werner LEMBERG, 2008/05/26
- Re: Infinite loop with GCC 4.3, Joe Neeman, 2008/05/26
- Re: Infinite loop with GCC 4.3,
Han-Wen Nienhuys <=
- Re: Infinite loop with GCC 4.3, John Mandereau, 2008/05/26
- Re: Infinite loop with GCC 4.3, John Mandereau, 2008/05/28
- Re: Infinite loop with GCC 4.3, Han-Wen Nienhuys, 2008/05/28
- Re: Infinite loop with GCC 4.3, Joe Neeman, 2008/05/28
- Re: Infinite loop with GCC 4.3, Patrick McCarty, 2008/05/31
- Re: Infinite loop with GCC 4.3, Joe Neeman, 2008/05/31
- Re: Infinite loop with GCC 4.3, Karl Hammar, 2008/05/26
- Re: Infinite loop with GCC 4.3, Han-Wen Nienhuys, 2008/05/26
- Re: Infinite loop with GCC 4.3, David Kastrup, 2008/05/27
- Re: Infinite loop with GCC 4.3, Karl Hammar, 2008/05/27