mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-11-29 02:22:43 +00:00
Fix C++ exception handling. GCC was using the older BSD DBX register numbers
rather than the ELF ABI/SVR4 ones in its DWARF unwinding. Submitted by: Alexander Kabaev <ak03@gte.com>
This commit is contained in:
parent
d08a3fc2bc
commit
83728effa9
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=99884
@ -387,6 +387,14 @@ Boston, MA 02111-1307, USA. */
|
||||
? svr4_dbx_register_map[(n)] \
|
||||
: dbx_register_map[(n)])
|
||||
|
||||
/* The same functions are used to creating the DWARF2 debug info and C++
|
||||
unwind info (except.c). Regardless of the debug format requested, the
|
||||
register numbers used in exception unwinding sections still have to be
|
||||
DWARF compatible. IMO the GCC folks may be abusing the DBX_REGISTER_NUMBER
|
||||
macro to mean too much. */
|
||||
#define DWARF_FRAME_REGNUM(n) (TARGET_64BIT ? dbx64_register_map[n] \
|
||||
: svr4_dbx_register_map[(n)])
|
||||
|
||||
/* tag end of file in elf mode */
|
||||
#undef DBX_OUTPUT_MAIN_SOURCE_FILE_END
|
||||
#define DBX_OUTPUT_MAIN_SOURCE_FILE_END(FILE, FILENAME) \
|
||||
|
Loading…
Reference in New Issue
Block a user