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.