代码拉取完成,页面将自动刷新
同步操作将从 src-anolis-os/binutils 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
--- binutils.orig/bfd/dwarf2.c 2019-12-03 15:50:43.324118062 +0000
+++ binutils-2.30/bfd/dwarf2.c 2019-12-03 15:54:32.545489215 +0000
@@ -2803,8 +2803,8 @@ lookup_symbol_in_variable_table (struct
static bfd_boolean
find_abstract_instance_name (struct comp_unit *unit,
- bfd_byte *orig_info_ptr,
struct attribute *attr_ptr,
+ unsigned int recur_count,
const char **pname,
bfd_boolean *is_linkage)
{
@@ -2817,6 +2817,14 @@ find_abstract_instance_name (struct comp
struct attribute attr;
const char *name = NULL;
+ if (recur_count == 100)
+ {
+ _bfd_error_handler
+ (_("DWARF error: abstract instance recursion detected"));
+ bfd_set_error (bfd_error_bad_value);
+ return FALSE;
+ }
+
/* DW_FORM_ref_addr can reference an entry in a different CU. It
is an offset from the .debug_info section, not the current CU. */
if (attr_ptr->form == DW_FORM_ref_addr)
@@ -2934,15 +2942,7 @@ find_abstract_instance_name (struct comp
info_ptr, info_ptr_end);
if (info_ptr == NULL)
break;
- /* It doesn't ever make sense for DW_AT_specification to
- refer to the same DIE. Stop simple recursion. */
- if (info_ptr == orig_info_ptr)
- {
- _bfd_error_handler
- (_("Dwarf Error: Abstract instance recursion detected."));
- bfd_set_error (bfd_error_bad_value);
- return FALSE;
- }
+
switch (attr.name)
{
case DW_AT_name:
@@ -2956,7 +2956,7 @@ find_abstract_instance_name (struct comp
}
break;
case DW_AT_specification:
- if (!find_abstract_instance_name (unit, info_ptr, &attr,
+ if (!find_abstract_instance_name (unit, &attr, recur_count + 1,
pname, is_linkage))
return FALSE;
break;
@@ -3162,7 +3162,7 @@ scan_unit_for_symbols (struct comp_unit
case DW_AT_abstract_origin:
case DW_AT_specification:
- if (!find_abstract_instance_name (unit, info_ptr, &attr,
+ if (!find_abstract_instance_name (unit, &attr, 0,
&func->name,
&func->is_linkage))
goto fail;
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。