Attached is a testcase which shows that some registers are clobbered
over throwing/catching an exception:

bash>c++ unwind_test.cpp                
bash>./a.out                            
Checksum not OK ( 42895 != 58377 ).     
Register corruption in stack unwinding.

In the debugger you can see, that the fixed integer registers r4-r7 are 
not reset correctly during stack unwinding. The value of the            
callee-saved registers r4-r7 differ before and after the call to test() 
from main().

This error was reported against gcc-3.3.3 but still happens with gcc 4.1.


-- 
           Summary: broken unwind information for many life variables
                    resulting in register corruption
           Product: gcc
           Version: 4.1.2
            Status: UNCONFIRMED
          Keywords: EH
          Severity: normal
          Priority: P3
         Component: middle-end
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: matz at gcc dot gnu dot org
  GCC host triplet: ia64-linux


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

Reply via email to