Bug 16686

Summary: optimized code produces false double result
Product: gcc Reporter: Ulrich Bernert <bernert>
Component: c++Assignee: Not yet assigned to anyone <unassigned>
Status: RESOLVED DUPLICATE    
Severity: critical CC: gcc-bugs
Priority: P1    
Version: 3.4.1   
Target Milestone: ---   
Host: i486-suse-linux Target: i486-suse-linux
Build: i486-suse-linux Known to work:
Known to fail: Last reconfirmed:

Description Ulrich Bernert 2004-07-23 09:14:02 UTC
compiled with: g++ -O0 -o cpp_test cpp_test.cpp
cpp_test prints out: 
fnc: a=9007199254740992.000000 c=9007199254740992.000000 (a==c)=1 (c-a)=0.000000

compiled with: g++ -O2 -o cpp_test cpp_test.cpp or (... -O1 ...)
cpp_test prints out: 
fnc: a=9007199254740992.000000 c=9007199254740992.000000 (a==c)=0 (c-a)=1.000000

-> Optimization causes different numerical behaviour!!!

cpp_test.cpp:
+++ code begin +++
#include <stdlib.h>
#include <stdio.h>

double fnc(double *d1, double *d2) {
  return *d1 + *d2;
}

int main() {
  double a, b, c;
  a = 9007199254740992.0;
  b = 1.0;
  c = a;
  c = fnc(&c, &b);
  printf("fnc: a=%f c=%f (a==c)=%d (c-a)=%f\n", a, c, a == c, c - a);
  return EXIT_SUCCESS;
}
+++ code end +++

This is an code example analogue to code in lapack where I found the problem.
There the intention was to find the minimum summand that changes the large
double number (9007199254740992.0).

Additional Info: The same behaviour I could reproduce using gcc3.3.3 and
gcc2.9.5.3. Compilation as pure C is affected too.

output from gcc -v -save-temps ...
+++begin output +++
Lese Spezifikationen von /usr/lib/gcc/i486-suse-linux/3.4.1/specs
Konfiguriert mit: ../gcc-3.4.1-fixed-16401/configure --enable-threads=posix
--prefix=/usr --with-local-prefix=/usr/local --infodir=/usr/share/info
--mandir=/usr/share/man --libdir=/usr/lib
--enable-languages=c,c++,f77,objc,java,ada --disable-checking --enable-libgcj
--with-gxx-include-dir=/usr/include/g++ --with-slibdir=/lib --with-system-zlib
--enable-shared --enable-__cxa_atexit i486-suse-linux
Thread-Modell: posix
gcc-Version 3.4.1
 /usr/libexec/gcc/i486-suse-linux/3.4.1/cc1plus -E -quiet -v -D_GNU_SOURCE
cpp_test.cpp -mtune=i486 -O0 -o cpp_test.ii
#include "..." - Suche beginnt hier:
#include <...> - Suche beginnt hier:
 /usr/include/g++
 /usr/include/g++/i486-suse-linux
 /usr/include/g++/backward
 /usr/local/include
 /usr/lib/gcc/i486-suse-linux/3.4.1/include
 /usr/lib/gcc/i486-suse-linux/3.4.1/../../../../i486-suse-linux/include
 /usr/include
Ende der Suchliste.
 /usr/libexec/gcc/i486-suse-linux/3.4.1/cc1plus -fpreprocessed cpp_test.ii
-quiet -dumpbase cpp_test.cpp -mtune=i486 -auxbase cpp_test -O0 -version -o
cpp_test.s
GNU C++ version 3.4.1 (i486-suse-linux)
	compiled by GNU C version 3.4.1.
GGC-Heuristik: --param ggc-min-expand=64 --param ggc-min-heapsize=64367
 /usr/lib/gcc/i486-suse-linux/3.4.1/../../../../i486-suse-linux/bin/as -V -Qy -o
cpp_test.o cpp_test.s
GNU assembler version 2.13.90.0.18 (i486-suse-linux) using BFD version
2.13.90.0.18 20030121 (SuSE Linux)
 /usr/libexec/gcc/i486-suse-linux/3.4.1/collect2 --eh-frame-hdr -m elf_i386
-dynamic-linker /lib/ld-linux.so.2 -o cpp_test
/usr/lib/gcc/i486-suse-linux/3.4.1/../../../crt1.o
/usr/lib/gcc/i486-suse-linux/3.4.1/../../../crti.o
/usr/lib/gcc/i486-suse-linux/3.4.1/crtbegin.o
-L/usr/lib/gcc/i486-suse-linux/3.4.1 -L/usr/lib/gcc/i486-suse-linux/3.4.1
-L/usr/lib/gcc/i486-suse-linux/3.4.1/../../../../i486-suse-linux/lib
-L/usr/lib/gcc/i486-suse-linux/3.4.1/../../.. cpp_test.o -lgcc -lgcc_eh -lc
-lgcc -lgcc_eh /usr/lib/gcc/i486-suse-linux/3.4.1/crtend.o
/usr/lib/gcc/i486-suse-linux/3.4.1/../../../crtn.o
+++ end output +++

+++ begin preprocessed file +++
begin 644 cpp_test.ii.gz
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
??#)'E&%32/0E^C\.O@DBC(4R?XZ8_C]W)47*+9X`````
`
end
+++ end preprocessed file +++
Comment 1 Andrew Pinski 2004-07-23 09:20:59 UTC
This is a dup of bug 323.  This is not a GCC bug but rather a hardware deficiency.  Read the whole bug 
and some of its dups to find out more on why this is not a GCC bug.

*** This bug has been marked as a duplicate of 323 ***