mirror of
https://github.com/yuzu-emu/breakpad.git
synced 2024-12-23 05:45:31 +00:00
Remove warning about unknown abstract origin
Dwarf generated by Clang -g1 will not have DW_AT_inline attribute for some DW_TAG_subprograms even if they are inlined. This warning recently increased a lot (~ 3 million) due to DW_TAG_inlined_subroutine also complains about unknown abstract origin. It caused infra failure in building bots. Bug: 1241579 Change-Id: I9b5135925b71aa915760c140bcf73fc603bb77d3 Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3111782 Reviewed-by: Joshua Peraza <jperaza@chromium.org>
This commit is contained in:
parent
4959def222
commit
7933ec0a69
|
@ -504,8 +504,6 @@ void DwarfCUToModule::GenericDIEHandler::ProcessAttributeReference(
|
||||||
abstract_origin_ = &(origin->second);
|
abstract_origin_ = &(origin->second);
|
||||||
} else if (data > offset_) {
|
} else if (data > offset_) {
|
||||||
forward_ref_die_offset_ = data;
|
forward_ref_die_offset_ = data;
|
||||||
} else {
|
|
||||||
cu_context_->reporter->UnknownAbstractOrigin(offset_, data);
|
|
||||||
}
|
}
|
||||||
specification_offset_ = data;
|
specification_offset_ = data;
|
||||||
break;
|
break;
|
||||||
|
@ -750,14 +748,6 @@ void DwarfCUToModule::InlineHandler::Finish() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Malformed DWARF may omit the name, but all Module::Functions must
|
|
||||||
// have names.
|
|
||||||
// If we have a forward reference to a DW_AT_specification or
|
|
||||||
// DW_AT_abstract_origin, then don't warn, the name will be fixed up
|
|
||||||
// later
|
|
||||||
if (name_.empty() && forward_ref_die_offset_ == 0)
|
|
||||||
cu_context_->reporter->UnnamedFunction(offset_);
|
|
||||||
|
|
||||||
// Every DW_TAG_inlined_subroutine should have a DW_AT_abstract_origin.
|
// Every DW_TAG_inlined_subroutine should have a DW_AT_abstract_origin.
|
||||||
assert(specification_offset_ != 0);
|
assert(specification_offset_ != 0);
|
||||||
|
|
||||||
|
@ -929,11 +919,6 @@ void DwarfCUToModule::FuncHandler::Finish() {
|
||||||
if (!name_.empty()) {
|
if (!name_.empty()) {
|
||||||
name = name_;
|
name = name_;
|
||||||
} else {
|
} else {
|
||||||
// If we have a forward reference to a DW_AT_specification or
|
|
||||||
// DW_AT_abstract_origin, then don't warn, the name will be fixed up
|
|
||||||
// later
|
|
||||||
if (forward_ref_die_offset_ == 0)
|
|
||||||
cu_context_->reporter->UnnamedFunction(offset_);
|
|
||||||
name = "<name omitted>";
|
name = "<name omitted>";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue