待辦事項 #39715

Two possible C type double division bugs when compiling with gcc -Ofast

啟用日期: 2019-11-02 23:49 最後更新: 2019-11-02 23:49

回報者:
負責人:
(無)
類型:
狀態:
開啟
元件:
(無)
里程碑:
(無)
優先權:
5 - 中
嚴重程度:
5 - 中
處理結果:
檔案:
1
Vote
Score: 0
No votes
0.0% (0/0)
0.0% (0/0)

細節

Using: MinGW GCC compiler: gcc (MinGW.org GCC-8.2.0-5) 8.2.0; Microsoft Windows 7 Professional 64 bit operating system; Lenovo Thinkpad T420 laptop 64 bit computer.

Also tried on: GNU GCC compiler: gcc (Ubuntu 7.2.0-8ubuntu3.2) 7.2.0; Lubuntu 32 bit operating system; Samsung N220 netbook 32 bit computer.

Compiling with gcc: -O0, -O1, -O2, O3, -Os, -Og; the attached code works as intended.

But compiling with gcc -Ofast, it sometimes calculates the wrong "a" or "x". This behaviour seems consistent and reproducible on both the above setups, although the wrong behaviour is slightly different on each setup.

I know essentially nothing about what the "-Ofast" option does, and don't know whether using the "-Ofast" option might be expected to change the way type double division sometimes works, or whether this is something that merits further investigation.

I hope the attached comments and code are reasonably clear, but I am happy to answer questions.

Colin Bartlett

P.S. I intend to attach a file with the C program code, examples of the wrong output, and more information. If I can't manage to attach that file then please let me know of another way of sending it. The file has just under 300 lines, of which 60 lines are the actual code and C preprocessor directives.

Ticket History (2/2 Histories)

2019-11-02 23:49 Updated by: colin13on
  • New Ticket "Two possible C type double division bugs when compiling with gcc -Ofast" created

Attachment File List

  • qdoublebug.c(12KB)
    • Comments on and explanation of the possible two bugs, with the code producing the possible bugs.

編輯

Please login to add comment to this ticket » 登入