mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-23 05:29:23 +00:00
Add support for DW_FORM_dataN and DW_FORM_udata to the DIE hashing
algorithm. Update the split dwarf hashing testcase accordingly - this should be the last time that the hash of an empty file changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189427 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
1997734e37
commit
7ced4fa257
@ -119,6 +119,9 @@ void DIEHash::collectAttributes(DIE *Die, DIEAttrs &Attrs) {
|
|||||||
case dwarf::DW_AT_name:
|
case dwarf::DW_AT_name:
|
||||||
COLLECT_ATTR(DW_AT_name);
|
COLLECT_ATTR(DW_AT_name);
|
||||||
break;
|
break;
|
||||||
|
case dwarf::DW_AT_language:
|
||||||
|
COLLECT_ATTR(DW_AT_language);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -145,6 +148,13 @@ void DIEHash::hashAttribute(AttrEntry Attr) {
|
|||||||
case dwarf::DW_FORM_strp:
|
case dwarf::DW_FORM_strp:
|
||||||
addString(cast<DIEString>(Value)->getString());
|
addString(cast<DIEString>(Value)->getString());
|
||||||
break;
|
break;
|
||||||
|
case dwarf::DW_FORM_data1:
|
||||||
|
case dwarf::DW_FORM_data2:
|
||||||
|
case dwarf::DW_FORM_data4:
|
||||||
|
case dwarf::DW_FORM_data8:
|
||||||
|
case dwarf::DW_FORM_udata:
|
||||||
|
addULEB128(cast<DIEInteger>(Value)->getValue());
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -159,6 +169,7 @@ void DIEHash::hashAttributes(const DIEAttrs &Attrs) {
|
|||||||
|
|
||||||
// FIXME: Add the rest.
|
// FIXME: Add the rest.
|
||||||
ADD_ATTR(Attrs.DW_AT_name);
|
ADD_ATTR(Attrs.DW_AT_name);
|
||||||
|
ADD_ATTR(Attrs.DW_AT_language);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add all of the attributes for \param Die to the hash.
|
// Add all of the attributes for \param Die to the hash.
|
||||||
|
@ -29,6 +29,7 @@ class DIEHash {
|
|||||||
// Collection of all attributes used in hashing a particular DIE.
|
// Collection of all attributes used in hashing a particular DIE.
|
||||||
struct DIEAttrs {
|
struct DIEAttrs {
|
||||||
AttrEntry DW_AT_name;
|
AttrEntry DW_AT_name;
|
||||||
|
AttrEntry DW_AT_language;
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -3,8 +3,8 @@
|
|||||||
|
|
||||||
; The source is an empty file.
|
; The source is an empty file.
|
||||||
|
|
||||||
; CHECK: DW_AT_GNU_dwo_id [DW_FORM_data8] (0xa188c11a9264c05d)
|
; CHECK: DW_AT_GNU_dwo_id [DW_FORM_data8] (0xc357bdf055b6393d)
|
||||||
; CHECK: DW_AT_GNU_dwo_id [DW_FORM_data8] (0xa188c11a9264c05d)
|
; CHECK: DW_AT_GNU_dwo_id [DW_FORM_data8] (0xc357bdf055b6393d)
|
||||||
|
|
||||||
!llvm.dbg.cu = !{!0}
|
!llvm.dbg.cu = !{!0}
|
||||||
!llvm.module.flags = !{!3}
|
!llvm.module.flags = !{!3}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user