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

           Summary: [4.7 Regression] C++ is broken
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: hjl.to...@gmail.com


On Fedora 15/x86-64, revision 174953 failed most of C++ testcase
for 32bit:

http://gcc.gnu.org/ml/gcc-testresults/2011-06/msg01336.html

(gdb) r
The program being debugged has been started already.
Start it from the beginning? (y or n) y

Starting program: /export/home/hjl/tmp/bad 

Program received signal SIGSEGV, Segmentation fault.
0x0018d7b8 in (anonymous
namespace)::future_error_category::~future_error_category (this=0x18d7a0,
__in_chrg=<optimized out>)
    at /export/gnu/import/git/gcc/libstdc++-v3/src/future.cc:29
29      struct future_error_category : public std::error_category
(gdb) bt
#0  0x0018d7b8 in (anonymous
namespace)::future_error_category::~future_error_category (this=0x18d7a0,
__in_chrg=<optimized out>)
    at /export/gnu/import/git/gcc/libstdc++-v3/src/future.cc:29
#1  0x00295ec7 in __cxa_finalize () from /lib/libc.so.6
#2  0x001767c4 in __do_global_dtors_aux () from /tmp/libstdc++.so.6
#3  0x001ea860 in _fini () from /tmp/libstdc++.so.6
#4  0x0011f2fd in _dl_fini () from /lib/ld-linux.so.2
#5  0x00295b31 in __run_exit_handlers () from /lib/libc.so.6
#6  0x00295bbd in exit () from /lib/libc.so.6
#7  0x0027d41b in __libc_start_main () from /lib/libc.so.6
#8  0x08048ce1 in _start ()
(gdb) disass
Dump of assembler code for function (anonymous
namespace)::future_error_category::~future_error_category():
   0x0018d7a0 <+0>:    push   %ebx
   0x0018d7a1 <+1>:    call   0x176847 <__i686.get_pc_thunk.bx>
   0x0018d7a6 <+6>:    add    $0x8784e,%ebx
   0x0018d7ac <+12>:    sub    $0x18,%esp
   0x0018d7af <+15>:    mov    %eax,(%esp)
   0x0018d7b2 <+18>:    lea    -0x2bcc(%ebx),%edx
=> 0x0018d7b8 <+24>:    mov    %edx,(%eax)
   0x0018d7ba <+26>:    call   0x173b4c <_ZNSt14error_categoryD2Ev@plt>
   0x0018d7bf <+31>:    add    $0x18,%esp
   0x0018d7c2 <+34>:    pop    %ebx
   0x0018d7c3 <+35>:    ret    
End of assembler dump.
(gdb) 

EAX is never initialized.

Reply via email to