[llvm] 5d597e2 - [DebugInfo][unittest] Use YAML to generate the .debug_loclists section.

Xing GUO via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 4 01:38:24 PDT 2020


Author: Xing GUO
Date: 2020-08-04T16:37:51+08:00
New Revision: 5d597e20dfdb8eea4c11375f1ae5940e151246c4

URL: https://github.com/llvm/llvm-project/commit/5d597e20dfdb8eea4c11375f1ae5940e151246c4
DIFF: https://github.com/llvm/llvm-project/commit/5d597e20dfdb8eea4c11375f1ae5940e151246c4.diff

LOG: [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

Added: 
    

Modified: 
    llvm/unittests/DebugInfo/DWARF/DWARFDieTest.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/unittests/DebugInfo/DWARF/DWARFDieTest.cpp b/llvm/unittests/DebugInfo/DWARF/DWARFDieTest.cpp
index 9fb6a48157cf..1d468a956e2b 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<StringMap<std::unique_ptr<MemoryBuffer>>> Sections =
       DWARFYAML::emitDebugSections(StringRef(yamldata),
                                    /*IsLittleEndian=*/true);
   ASSERT_THAT_EXPECTED(Sections, Succeeded());
-  std::vector<uint8_t> 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<DWARFContext> Ctx =
       DWARFContext::create(*Sections, 4, /*isLittleEndian=*/true);
   DWARFCompileUnit *CU = Ctx->getCompileUnitForOffset(0);


        


More information about the llvm-commits mailing list