From 5d597e20dfdb8eea4c11375f1ae5940e151246c4 Mon Sep 17 00:00:00 2001 From: Xing GUO Date: Tue, 4 Aug 2020 16:37:20 +0800 Subject: [PATCH] [DebugInfo][unittest] Use YAML to generate the .debug_loclists section. DWARFYAML supports generating the .debug_loclists section. We can use it to simplify tests. Reviewed By: jhenderson, grimar Differential Revision: https://reviews.llvm.org/D85179 --- llvm/unittests/DebugInfo/DWARF/DWARFDieTest.cpp | 47 +++++++++---------------- 1 file changed, 16 insertions(+), 31 deletions(-) diff --git a/llvm/unittests/DebugInfo/DWARF/DWARFDieTest.cpp b/llvm/unittests/DebugInfo/DWARF/DWARFDieTest.cpp index 9fb6a48..1d468a9 100644 --- a/llvm/unittests/DebugInfo/DWARF/DWARFDieTest.cpp +++ b/llvm/unittests/DebugInfo/DWARF/DWARFDieTest.cpp @@ -46,42 +46,27 @@ TEST(DWARFDie, getLocations) { BlockData: [ 0x47 ] - Value: 20 - Value: 25 + debug_loclists: + - AddressSize: 4 + OffsetEntryCount: 0 + Lists: + - Entries: + - Operator: DW_LLE_start_length + Values: [ 0x01, 0x02 ] + - Operator: DW_LLE_end_of_list + - Entries: + - Operator: DW_LLE_startx_length + Values: [ 0x01, 0x02 ] + - Operator: DW_LLE_end_of_list + - Entries: + - Operator: DW_LLE_start_length + Values: [ 0x01, 0x02 ] + ## end_of_list intentionally missing. )"; Expected>> Sections = DWARFYAML::emitDebugSections(StringRef(yamldata), /*IsLittleEndian=*/true); ASSERT_THAT_EXPECTED(Sections, Succeeded()); - std::vector Loclists{ - // Header - 0, 0, 0, 0, // Length - 5, 0, // Version - 4, // Address size - 0, // Segment selector size - 0, 0, 0, 0, // Offset entry count - // First location list. - DW_LLE_start_length, // First entry - 1, 0, 0, 0, // Start offset - 2, // Length - 0, // Expression length - DW_LLE_end_of_list, - // Second location list. - DW_LLE_startx_length, // First entry - 1, // Start index - 2, // Length - 0, // Expression length - DW_LLE_end_of_list, - // Third location list. - DW_LLE_start_length, // First entry - 1, 0, 0, 0, // Start offset - 2, // Length - 0, // Expression length - // end_of_list intentionally missing - }; - Loclists[0] = Loclists.size() - 4; - Sections->try_emplace( - "debug_loclists", - MemoryBuffer::getMemBuffer(toStringRef(Loclists), "debug_loclists", - /*RequiresNullTerminator=*/false)); std::unique_ptr Ctx = DWARFContext::create(*Sections, 4, /*isLittleEndian=*/true); DWARFCompileUnit *CU = Ctx->getCompileUnitForOffset(0); -- 2.7.4