http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47324
--- Comment #11 from Jack Howarth <howarth at nitro dot med.uc.edu> 2011-02-08
02:18:30 UTC ---
(In reply to comment #9)
> Did this ever work? :-(
This appears to work for Apple gcc 4.2.1 in SL...
g++ eh-alloca-1.C -nostdinc++ -O3 -multiply_defined suppressed -lm -m32 -o
./eh-alloca-1.exe
which creates a non-crashing executable with or without -g.
[MacPro:g++.dg/torture/stackalign] howarth% dwarfdump --eh-frame
eh-alloca-1.exe.withg | grep -A9 __Z3fooi
start_addr: 0x00001c90 __Z3fooi
range_size: 0x000000c8 (end_addr = 0x00001d58)
LSDA address: 0x00001e50
Instructions: 0x00001c90: CFA=esp+4 eip=[esp]
DW_CFA_advance_loc4 (1)
DW_CFA_def_cfa_offset (8)
DW_CFA_offset (ebp, -8)
0x00001c91: CFA=esp+8 ebp=[esp] eip=[esp+4]
DW_CFA_advance_loc4 (2)
DW_CFA_def_cfa_register (ebp)
[MacPro:g++.dg/torture/stackalign] howarth% dwarfdump --eh-frame
eh-alloca-1.exe.withoutg | grep -A9 __Z3fooi
start_addr: 0x00001c90 __Z3fooi
range_size: 0x000000c8 (end_addr = 0x00001d58)
LSDA address: 0x00001e50
Instructions: 0x00001c90: CFA=esp+4 eip=[esp]
DW_CFA_advance_loc4 (1)
DW_CFA_def_cfa_offset (8)
DW_CFA_offset (ebp, -8)
0x00001c91: CFA=esp+8 ebp=[esp] eip=[esp+4]
DW_CFA_advance_loc4 (2)
DW_CFA_def_cfa_register (ebp)