[Bug 207359] projects/clang380-import for TARGET_ARCH=powerpc64 via powerpc64-gcc : c++ exceptions unbounded loop in _Unwind_RaiseException (9 line program)

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Sun Feb 28 04:46:35 UTC 2016


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=207359

--- Comment #9 from Mark Millard <markmi at dsl-only.net> ---
A find over /usr/src/ with egrep use suggests that the later files listed are
files that use the cfa fields. They match the pattern:

[.>]cfa_(offset|reg|exp|how)


/usr/src/contrib/gcc/config/mips/linux-unwind.h
/usr/src/contrib/gcc/config/rs6000/linux-unwind.h
/usr/src/contrib/gcc/config/rs6000/darwin-fallback.c
/usr/src/contrib/gcc/config/i386/linux-unwind.h
/usr/src/contrib/gcc/config/sparc/linux-unwind.h
/usr/src/contrib/gcc/config/s390/tpf-unwind.h
/usr/src/contrib/gcc/config/s390/linux-unwind.h
/usr/src/contrib/gcc/unwind-dw2.c
/usr/src/contrib/gcc/dwarf2out.c
/usr/src/contrib/gdb/gdb/dwarf2-frame.c
/usr/src/contrib/binutils/gas/dw2gencfi.c
/usr/src/contrib/binutils/binutils/dwarf.c

And _Unwind_FrameState is mentioned in each of:

/usr/src/contrib/gcc/config/mips/linux-unwind.h
/usr/src/contrib/gcc/config/rs6000/linux-unwind.h
/usr/src/contrib/gcc/config/rs6000/darwin-fallback.c
/usr/src/contrib/gcc/config/rs6000/darwin-unwind.h
/usr/src/contrib/gcc/config/i386/linux-unwind.h
/usr/src/contrib/gcc/config/sparc/linux-unwind.h
/usr/src/contrib/gcc/config/s390/tpf-unwind.h
/usr/src/contrib/gcc/config/s390/linux-unwind.h
/usr/src/contrib/gcc/config/ia64/unwind-ia64.c
/usr/src/contrib/gcc/config/ia64/linux-unwind.h
/usr/src/contrib/gcc/doc/tm.texi
/usr/src/contrib/gcc/unwind-sjlj.c
/usr/src/contrib/gcc/ChangeLog-2006
/usr/src/contrib/gcc/ChangeLog-2001
/usr/src/contrib/gcc/unwind.inc
/usr/src/contrib/gcc/unwind-dw2.h
/usr/src/contrib/gcc/unwind-dw2.c
/usr/src/contrib/gcc/ChangeLog-2004
/usr/src/contrib/gcc/ChangeLog-2003


That in turn suggests that they are most(?) of the files that would be tied to
any attempt to have DW_CFA_remember_state/DW_CFA_restore_state save and restore
the cfa information.

One possibility is moving the fields into the saved/restored area (regs, along
with the contained fields prev and reg). Access notation would then be based
on:

->regs.cfa_offset and .regs.cfa_offset
->regs.cfa_reg and .regs.cfa_reg
->regs.cfa_exp and .regs.cfa_exp
->regs.cfa_how and .regs.cfa_how

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list