forked from OSchip/llvm-project
[dwarfdump] Remove bogus verifier error
The standard doesn't require a DW_TAG_variable, DW_TAG_formal_parameter or DW_TAG_constant to A DW_AT_type attribute describing the type of the variable. It only specifies that it *can* have one. llvm-svn: 357628
This commit is contained in:
parent
a960f89962
commit
2156797cf0
|
@ -178,21 +178,11 @@ unsigned DWARFVerifier::verifyUnitContents(DWARFUnit &Unit) {
|
|||
if (Die.getTag() == DW_TAG_null)
|
||||
continue;
|
||||
|
||||
bool HasTypeAttr = false;
|
||||
for (auto AttrValue : Die.attributes()) {
|
||||
NumUnitErrors += verifyDebugInfoAttribute(Die, AttrValue);
|
||||
NumUnitErrors += verifyDebugInfoForm(Die, AttrValue);
|
||||
HasTypeAttr |= (AttrValue.Attr == DW_AT_type);
|
||||
}
|
||||
|
||||
if (!HasTypeAttr && (Die.getTag() == DW_TAG_formal_parameter ||
|
||||
Die.getTag() == DW_TAG_variable ||
|
||||
Die.getTag() == DW_TAG_array_type)) {
|
||||
error() << "DIE with tag " << TagString(Die.getTag())
|
||||
<< " is missing type attribute:\n";
|
||||
dump(Die) << '\n';
|
||||
NumUnitErrors++;
|
||||
}
|
||||
NumUnitErrors += verifyDebugInfoCallSite(Die);
|
||||
}
|
||||
|
||||
|
|
|
@ -22,13 +22,6 @@
|
|||
# CHECK-NEXT: DW_AT_prototyped [DW_FORM_flag_present] (true)
|
||||
# CHECK-NEXT: DW_AT_type [DW_FORM_ref4] (cu + 0x0052 => {0x00000052} "")
|
||||
# CHECK-NEXT: DW_AT_external [DW_FORM_flag_present] (true){{[[:space:]]}}
|
||||
# CHECK-NEXT: error: DIE with tag DW_TAG_variable is missing type attribute:{{[[:space:]]}}
|
||||
# CHECK-NEXT: 0x00000044: DW_TAG_variable [3]
|
||||
# CHECK-NEXT: DW_AT_location [DW_FORM_exprloc] (DW_OP_fbreg -8)
|
||||
# CHECK-NEXT: DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000006a] = "a")
|
||||
# CHECK-NEXT: DW_AT_decl_file [DW_FORM_data1] (0x01)
|
||||
# CHECK-NEXT: DW_AT_decl_line [DW_FORM_data1] (2)
|
||||
# CHECK-NEXT: DW_AT_use_location [DW_FORM_ref4] (cu + 0x0053 => {0x00000053}){{[[:space:]]}}
|
||||
# CHECK-NEXT: error: Compilation unit root DIE is not a unit DIE: DW_TAG_null.
|
||||
# CHECK-NEXT: error: Compilation unit type (DW_UT_compile) and root DIE (DW_TAG_null) do not match.
|
||||
# CHECK-NEXT: error: Units[2] - start offset: 0x00000068
|
||||
|
|
Loading…
Reference in New Issue