------- Comment #4 from drangon dot mail at gmail dot com  2009-07-21 07:46 
-------
The bug seems to occur again. It is ok in svn 2009-06-20, but today's svn code
is has problem.

C program is fine, but C++ program crashed. The error message is :

The instruction at "0x0040a7e0 referenced memory at "0x00000046". The memory
could not be "read".

If I change the libgcc_s_sjlj-1.dll to version 2009-06-20, the program works
fine.

the code at "0x0040a7e0" is :

000000000040a7c0 <__ZL15eh_globals_dtorPv>:

#if __GTHREADS

static void
eh_globals_dtor(void* ptr)
{
  40a7c0:   56                      push   %rsi
  40a7c1:   48 89 ce                mov    %rcx,%rsi
  40a7c4:   53                      push   %rbx
  40a7c5:   48 83 ec 28             sub    $0x28,%rsp
  if (ptr)
  40a7c9:   48 85 c9                test   %rcx,%rcx
  40a7cc:   74 35                   je     40a803
<__ZL15eh_globals_dtorPv+0x43>
    {
      __cxa_eh_globals* g = reinterpret_cast<__cxa_eh_globals*>(ptr);
      __cxa_exception* exn = g->caughtExceptions;
  40a7ce:   48 8b 09                mov    (%rcx),%rcx
      __cxa_exception* next;
      while (exn)
  40a7d1:   48 85 c9                test   %rcx,%rcx
  40a7d4:   74 1f                   je     40a7f5
<__ZL15eh_globals_dtorPv+0x35>
  40a7d6:   66 2e 0f 1f 84 00 00    nopw   %cs:0x0(%rax,%rax,1)
  40a7dd:   00 00 00
    {
      next = exn->nextException;
  40a7e0:   48 8b 59 20             mov    0x20(%rcx),%rbx
      _Unwind_DeleteException(&exn->unwindHeader);
  40a7e4:   48 83 c1 50             add    $0x50,%rcx
  40a7e8:   e8 63 ca ff ff          callq  407250 <__Unwind_DeleteException>
  if (ptr)
    {
      __cxa_eh_globals* g = reinterpret_cast<__cxa_eh_globals*>(ptr);
      __cxa_exception* exn = g->caughtExceptions;
      __cxa_exception* next;
      while (exn)
  40a7ed:   48 85 db                test   %rbx,%rbx
    {
      next = exn->nextException;
      _Unwind_DeleteException(&exn->unwindHeader);
  40a7f0:   48 89 d9                mov    %rbx,%rcx
  if (ptr)
    {
      __cxa_eh_globals* g = reinterpret_cast<__cxa_eh_globals*>(ptr);
      __cxa_exception* exn = g->caughtExceptions;
      __cxa_exception* next;
      while (exn)
  40a7f3:   75 eb                   jne    40a7e0
<__ZL15eh_globals_dtorPv+0x20>
      _Unwind_DeleteException(&exn->unwindHeader);
      exn = next;
    }
      free(ptr);
    }
}
  40a7f5:   48 83 c4 28             add    $0x28,%rsp
    {
      next = exn->nextException;
      _Unwind_DeleteException(&exn->unwindHeader);
      exn = next;
    }
      free(ptr);
  40a7f9:   48 89 f1                mov    %rsi,%rcx
    }
}
  40a7fc:   5b                      pop    %rbx
  40a7fd:   5e                      pop    %rsi
    {
      next = exn->nextException;
      _Unwind_DeleteException(&exn->unwindHeader);
      exn = next;
    }
      free(ptr);
  40a7fe:   e9 fd f6 ff ff          jmpq   409f00 <_free>
    }
}
  40a803:   48 83 c4 28             add    $0x28,%rsp
  40a807:   5b                      pop    %rbx
  40a808:   5e                      pop    %rsi
  40a809:   c3                      retq
  40a80a:   90                      nop
  40a80b:   90                      nop
  40a80c:   90                      nop
  40a80d:   90                      nop
  40a80e:   90                      nop
  40a80f:   90                      nop

000000000040a810 <__ZL15get_ttype_entryP16lsda_header_infoy>:


-- 

drangon dot mail at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |UNCONFIRMED
         Resolution|FIXED                       |


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

Reply via email to