diff options
| author | Pavel Labath <pavel@labath.sk> | 2019-11-20 15:13:34 +0100 |
|---|---|---|
| committer | Pavel Labath <pavel@labath.sk> | 2019-11-20 15:15:22 +0100 |
| commit | 72d2929c52a9b691a2ed10c28a0a27fec8282519 (patch) | |
| tree | 2d61b0011ba2af2fe6dbc629d23e9b3ccb57c675 /llvm/unittests/DebugInfo | |
| parent | e7cc833ddafdca10be4ef1322ab96ffee774045b (diff) | |
| download | bcm5719-llvm-72d2929c52a9b691a2ed10c28a0a27fec8282519.tar.gz bcm5719-llvm-72d2929c52a9b691a2ed10c28a0a27fec8282519.zip | |
Revert "[DWARF] Add an api to get "interpreted" location lists"
The test fails on big endian machines.
This reverts commit 089c0f581492cd6e2a3d2927be3fbf60ea2d7e62 and the
subsequent attempt to fix in 82dc32e2d456c75d08bc9ffe97def409ee5a03cd.
Diffstat (limited to 'llvm/unittests/DebugInfo')
| -rw-r--r-- | llvm/unittests/DebugInfo/DWARF/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | llvm/unittests/DebugInfo/DWARF/DWARFDieTest.cpp | 118 |
2 files changed, 0 insertions, 119 deletions
diff --git a/llvm/unittests/DebugInfo/DWARF/CMakeLists.txt b/llvm/unittests/DebugInfo/DWARF/CMakeLists.txt index 4fb79b2a96e..2181e0543d0 100644 --- a/llvm/unittests/DebugInfo/DWARF/CMakeLists.txt +++ b/llvm/unittests/DebugInfo/DWARF/CMakeLists.txt @@ -13,7 +13,6 @@ add_llvm_unittest(DebugInfoDWARFTests DwarfUtils.cpp DWARFDebugInfoTest.cpp DWARFDebugLineTest.cpp - DWARFDieTest.cpp DWARFFormValueTest.cpp DWARFLocationExpressionTest.cpp ) diff --git a/llvm/unittests/DebugInfo/DWARF/DWARFDieTest.cpp b/llvm/unittests/DebugInfo/DWARF/DWARFDieTest.cpp deleted file mode 100644 index 6296f872433..00000000000 --- a/llvm/unittests/DebugInfo/DWARF/DWARFDieTest.cpp +++ /dev/null @@ -1,118 +0,0 @@ -//===- llvm/unittest/DebugInfo/DWARFDieTest.cpp ---------------------------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -#include "llvm/BinaryFormat/Dwarf.h" -#include "llvm/DebugInfo/DWARF/DWARFContext.h" -#include "llvm/ObjectYAML/DWARFEmitter.h" -#include "llvm/Testing/Support/Error.h" -#include "gtest/gtest.h" - -using namespace llvm; -using namespace llvm::dwarf; -using object::SectionedAddress; - -namespace { - -TEST(DWARFLocationTable, getLocations) { - const char *yamldata = R"( - debug_abbrev: - - Code: 0x00000001 - Tag: DW_TAG_compile_unit - Children: DW_CHILDREN_no - Attributes: - - Attribute: DW_AT_location - Form: DW_FORM_sec_offset - - Attribute: DW_AT_data_member_location - Form: DW_FORM_exprloc - - Attribute: DW_AT_vtable_elem_location - Form: DW_FORM_sec_offset - - Attribute: DW_AT_call_data_location - Form: DW_FORM_sec_offset - debug_info: - - Length: - TotalLength: 0 - Version: 5 - UnitType: DW_UT_compile - AbbrOffset: 0 - AddrSize: 4 - Entries: - - AbbrCode: 0x00000001 - Values: - - Value: 12 - - Value: 0x0000000000000001 - BlockData: [ 0x47 ] - - Value: 20 - - Value: 25 - )"; - 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); - ASSERT_NE(nullptr, CU); - DWARFDie Die = CU->getUnitDIE(); - ASSERT_TRUE(Die.isValid()); - - EXPECT_THAT_EXPECTED(Die.getLocations(DW_AT_location), - HasValue(testing::ElementsAre(DWARFLocationExpression{ - DWARFAddressRange{1, 3}, {}}))); - - EXPECT_THAT_EXPECTED( - Die.getLocations(DW_AT_data_member_location), - HasValue(testing::ElementsAre(DWARFLocationExpression{None, {0x47}}))); - - EXPECT_THAT_EXPECTED( - Die.getLocations(DW_AT_vtable_elem_location), - Failed<ErrorInfoBase>(testing::Property( - &ErrorInfoBase::message, - "Unable to resolve indirect address 1 for: DW_LLE_startx_length"))); - - EXPECT_THAT_EXPECTED(Die.getLocations(DW_AT_call_data_location), - Failed<ErrorInfoBase>(testing::Property( - &ErrorInfoBase::message, "unexpected end of data"))); - - EXPECT_THAT_EXPECTED( - Die.getLocations(DW_AT_call_data_value), - Failed<ErrorInfoBase>(testing::Property(&ErrorInfoBase::message, - "No DW_AT_call_data_value"))); -} - -} // end anonymous namespace |

