summaryrefslogtreecommitdiffstats
path: root/llvm/unittests/DebugInfo
diff options
context:
space:
mode:
authorPavel Labath <pavel@labath.sk>2019-11-20 15:13:34 +0100
committerPavel Labath <pavel@labath.sk>2019-11-20 15:15:22 +0100
commit72d2929c52a9b691a2ed10c28a0a27fec8282519 (patch)
tree2d61b0011ba2af2fe6dbc629d23e9b3ccb57c675 /llvm/unittests/DebugInfo
parente7cc833ddafdca10be4ef1322ab96ffee774045b (diff)
downloadbcm5719-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.txt1
-rw-r--r--llvm/unittests/DebugInfo/DWARF/DWARFDieTest.cpp118
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
OpenPOWER on IntegriCloud