[Bug target/47324] r157762 caused g++.dg/torture/stackalign failures with -O3 -g at -m32 on darwin

howarth at nitro dot med.uc.edu gcc-bugzilla@gcc.gnu.org
Thu Feb 10 03:03:00 GMT 2011


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))



More information about the Gcc-bugs mailing list