diff options
author | David Blaikie <dblaikie@gmail.com> | 2013-10-16 20:29:06 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2013-10-16 20:29:06 +0000 |
commit | 75ee00021d5e753be09baa4121a090afc8d7c236 (patch) | |
tree | 8bdb5b02fef567012d98dda285fcd62811c37be5 | |
parent | e6b1095e31677720708181f1bc998924340e5d46 (diff) | |
download | external_llvm-75ee00021d5e753be09baa4121a090afc8d7c236.zip external_llvm-75ee00021d5e753be09baa4121a090afc8d7c236.tar.gz external_llvm-75ee00021d5e753be09baa4121a090afc8d7c236.tar.bz2 |
DIEHash: Include the trailing zero byte after the children of a DIE
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192836 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/CodeGen/AsmPrinter/DIEHash.cpp | 3 | ||||
-rw-r--r-- | unittests/CodeGen/DIEHashTest.cpp | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/lib/CodeGen/AsmPrinter/DIEHash.cpp b/lib/CodeGen/AsmPrinter/DIEHash.cpp index c56d2e6..abc504c 100644 --- a/lib/CodeGen/AsmPrinter/DIEHash.cpp +++ b/lib/CodeGen/AsmPrinter/DIEHash.cpp @@ -383,6 +383,9 @@ void DIEHash::computeHash(DIE *Die) { E = Die->getChildren().end(); I != E; ++I) computeHash(*I); + + // Following the last (or if there are no children), append a zero byte. + Hash.update((uint8_t)0); } /// This is based on the type signature computation given in section 7.27 of the diff --git a/unittests/CodeGen/DIEHashTest.cpp b/unittests/CodeGen/DIEHashTest.cpp index 6b9a4db..86358d5 100644 --- a/unittests/CodeGen/DIEHashTest.cpp +++ b/unittests/CodeGen/DIEHashTest.cpp @@ -23,6 +23,6 @@ TEST(DIEHashData1Test, DIEHash) { DIEInteger Size(4); Die.addValue(dwarf::DW_AT_byte_size, dwarf::DW_FORM_data1, &Size); uint64_t MD5Res = Hash.computeTypeSignature(&Die); - ASSERT_EQ(MD5Res, 0x540e9ff30ade3e4aULL); + ASSERT_EQ(MD5Res, 0x4F68EF1039F8D2BULL); } } |