[Bug c++/37922] code generation error

rwgk at yahoo dot com gcc-bugzilla@gcc.gnu.org
Sun Dec 7 07:46:00 GMT 2008



------- Comment #4 from rwgk at yahoo dot com  2008-12-07 07:44 -------
Testing with:
  g++ (GCC) 4.4.0 20081206 (experimental)
  svn revision 142514

pr37922repro1.cpp should always exit with status 0.
However, it fails this test when compiling with -O3 and -O2:

g++ -Wall -fPIC -O3 pr37922repro1.cpp
./a.out ; echo $status
2
g++ -Wall -fPIC -O2 pr37922repro1.cpp
./a.out ; echo $status
2
g++ -Wall -fPIC -O1 pr37922repro1.cpp
./a.out ; echo $status
0
g++ -Wall -fPIC -O0 pr37922repro1.cpp
./a.out ; echo $status
0


The -fPIC is critical.

The problem region in the reproducer is marked with comments:

    // THE PROBLEM IS AROUND HERE
    if (proper_order < 0) {
      proper_order *= -1;
      proper_r = -proper_r; // THIS FAILS ...
    }
    if (proper_order > 1) {
      rot_mx rmi = proper_r.minus_unit_mx(); // ... THEREFORE WRONG HERE


Sorry it is still 556 lines long, but I already spent 2 1/2 hours
reducing it this far. At least, it is completely self-contained and
compiles in fractions of a second.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37922



More information about the Gcc-bugs mailing list