From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17192 invoked by alias); 25 Jul 2009 07:45:25 -0000 Received: (qmail 16983 invoked by uid 48); 25 Jul 2009 07:45:08 -0000 Date: Sat, 25 Jul 2009 07:45:00 -0000 Message-ID: <20090725074508.16981.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug middle-end/39832] [4.4/4.5 Regression] program built by x86_64-pc-mingw32-g++ run crash, maybe for _Unwind_SjLj_Unregister or __dyn_tls_dtor In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "drangon dot mail at gmail dot com" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2009-07/txt/msg02046.txt.bz2 ------- Comment #6 from drangon dot mail at gmail dot com 2009-07-25 07:45 ------- I try the newest gcc svn trunk code, the problem still exist. program built by x86_64-w64-mingw32-gcc runs ok, but program built by x86_64-w64-mingw32-g++ runs failed, change libgcc_s_sjlj-1.dll to version 2009-06-20, the same program runs ok ( need not recompile ). I use gdb or windbg to run the program, it show the following result: Program received signal SIGSEGV, Segmentation fault. 0x0000000000408059 in __dyn_tls_dtor (hDllHandle=0x400000, dwReason=0, lpreserved=0x0) at /compile/mingw-w64-dgn/source/mingw-w64/trunk/mingw-w64-crt/crt/tlssup.c: 120 120 /compile/mingw-w64-dgn/source/mingw-w64/trunk/mingw-w64-crt/crt/tlssup.c : No such file or directory. in /compile/mingw-w64-dgn/source/mingw-w64/trunk/mingw-w64-crt/crt/tlssu p.c (gdb) bt #0 0x0000000000408059 in __dyn_tls_dtor (hDllHandle=0x400000, dwReason=0, lpreserved=0x0) at /compile/mingw-w64-dgn/source/mingw-w64/trunk/mingw-w64-crt/crt/tlssup.c: 120 #1 0x0000000077f1cc41 in ?? () warning: (Internal error: pc 0x3fffff in read in psymtab, but not in symtab.) #2 0x0000000000400000 in ?? (warning: (Internal error: pc 0x3fffff in read in p symtab, but not in symtab.) ) warning: (Internal error: pc 0x3fffff in read in psymtab, but not in symtab.) #3 0x0000000000000000 in ?? () (gdb) info register rax 0xfeeefeeefeeefeee -76843841185972498 rbx 0x49e050 4841552 rcx 0x0 0 rdx 0x0 0 rsi 0x400000 4194304 rdi 0x408024 4227108 rbp 0x22fb10 0x22fb10 rsp 0x22fad0 0x22fad0 r8 0x0 0 r9 0x9f000 651264 r10 0x400080 4194432 r11 0x22fb50 2292560 r12 0x0 0 r13 0x7fffffd8000 8796092858368 r14 0x77fa8f50 2012909392 r15 0x0 0 rip 0x408059 0x408059 <__dyn_tls_dtor+53> eflags 0x10202 [ IF RF ] cs 0x33 51 ss 0x202002b 33685547 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x2b0000 2818048 (gdb) 0000000000408024 <___dyn_tls_dtor>: static BOOL WINAPI __dyn_tls_dtor (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved) { 408024: 55 push %rbp 408025: 48 89 e5 mov %rsp,%rbp 408028: 48 83 ec 40 sub $0x40,%rsp 40802c: 48 89 4d 10 mov %rcx,0x10(%rbp) 408030: 89 55 18 mov %edx,0x18(%rbp) 408033: 4c 89 45 20 mov %r8,0x20(%rbp) TlsDtorNode *pnode, *pnext; int i; if (dwReason != DLL_THREAD_DETACH && dwReason != DLL_PROCESS_DETACH) 408037: 83 7d 18 03 cmpl $0x3,0x18(%rbp) 40803b: 74 10 je 40804d <___dyn_tls_dtor+0x29> 40803d: 83 7d 18 00 cmpl $0x0,0x18(%rbp) 408041: 74 0a je 40804d <___dyn_tls_dtor+0x29> return TRUE; 408043: b8 01 00 00 00 mov $0x1,%eax 408048: e9 ab 00 00 00 jmpq 4080f8 <___dyn_tls_dtor+0xd4> for (pnode = dtor_list; pnode != NULL; pnode = pnext) 40804d: 48 8d 0d 6c 3a 08 00 lea 0x83a6c(%rip),%rcx # 48bac0 <___emutls_v.dtor_list> 408054: e8 ef 0c 00 00 callq 408d48 <___emutls_get_address> 408059: 48 8b 00 mov (%rax),%rax 40805c: 48 89 45 f0 mov %rax,-0x10(%rbp) 408060: eb 6a jmp 4080cc <___dyn_tls_dtor+0xa8> { for (i = pnode->count - 1; i >= 0; --i) 408062: 48 8b 45 f0 mov -0x10(%rbp),%rax 408066: 8b 00 mov (%rax),%eax 408068: 83 e8 01 sub $0x1,%eax 40806b: 89 45 fc mov %eax,-0x4(%rbp) 40806e: eb 2f jmp 40809f <___dyn_tls_dtor+0x7b> -- drangon dot mail at gmail dot com changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|[4.5 Regression] program |[4.4/4.5 Regression] program |built by x86_64-pc-mingw32- |built by x86_64-pc-mingw32- |gcc run crash, maybe for |g++ run crash, maybe for |_Unwind_SjLj_Unregister, |_Unwind_SjLj_Unregister or | |__dyn_tls_dtor http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39832