http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47324
--- Comment #29 from Jack Howarth <howarth at nitro dot med.uc.edu> 2011-02-10 02:18:36 UTC --- (In reply to comment #28) > Then let's find out why that is. > > The patch in comment #23 looks clearly incorrect to me. Okay. The problem with the patch in Comment 27 is that it only partially fixes the output for DW_CFA_expression. With the partial patch the failing test cases still fail but now produce... terminate called after throwing an instance of 'A' The output now shows... [MacPro:~/work] howarth% dwarfdump --eh-frame eh-alloca-1.exe | grep -A8 __Z3fooi start_addr: 0x00001d20 __Z3fooi range_size: 0x000000b5 (end_addr = 0x00001dd5) LSDA address: 0x00002094 Instructions: 0x00001d20: CFA=esp+4 eip=[esp] DW_CFA_advance_loc4 (4) DW_CFA_def_cfa (ecx, 0) 0x00001d24: CFA=ecx eip=[ecx-4] DW_CFA_advance_loc4 (7) DW_CFA_expression (ebp, expr(esp0)) with -O3 -g. Before the partial patch we had.... DW_CFA_expression (esp, expr(esp0)) but we want DW_CFA_expression (ebp, expr(ebp0))