[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 00:46:22 UTC 2016


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

--- Comment #8 from Mark Millard <markmi at dsl-only.net> ---
A warning relative to clang 3.8.0 and c++ exception handling and being able to
test fixes to c++ exception handling in an overall manor for clang:

clang 3.8.0 for powerpc and powerpc64 messes up what __builtin_dwarf_cfa()
returns and the c++ exception handling infrastructure depends on that.

So until both clang 3.8.0's __builtin_dwarf_cfa() and the FreeBSD's libgcc_s's
DW_CFA_remember_state/DW_CFA_restore_state handling are fixed c++ exceptions
are going to be broken to some degree. (The clang problem is always involved.)

powerpc64's use of a stack "red zone" and late stack pointer decrementing/early
incrementing may make it more likely to use
DW_CFA_remember_state/DW_CFA_restore_state in the .eh_frame information,
especially with inlining and the llike.

Currently clang 3.8.0's ABI violation for powerpc code generation puts it in
the same category with powerpc64 for this since it is also using a "red zone".


g++49 and g++5 do not have clang's __builtin_dwarf_cfa() problem for powerpc64
or for powerpc. So for now they are better for having a more overall testing of
library code involved in C++ exception handling.

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


More information about the freebsd-bugs mailing list