Revert "Fix lookup of symbols at the same address with no size vs. size"

This reverts commit 3f594ed168.

This change has cause LLDB expression evaluation to fail on Arm Linux.

Differential Revision: https://reviews.llvm.org/D63540
This commit is contained in:
Muhammad Omair Javaid 2019-11-12 18:48:32 +05:00
parent 6aa60b0514
commit a6c40f56ae
3 changed files with 2 additions and 30 deletions

View File

@ -895,14 +895,8 @@ void Symtab::InitAddressIndexes() {
for (size_t i = 0; i < num_entries; i++) {
FileRangeToIndexMap::Entry *entry =
m_file_addr_to_index.GetMutableEntryAtIndex(i);
if (entry->GetByteSize() > 0)
continue;
addr_t curr_base_addr = entry->GetRangeBase();
// Symbols with non-zero size will show after zero-sized symbols on the
// same address. So do not set size of a non-last zero-sized symbol.
if (i == num_entries - 1 ||
m_file_addr_to_index.GetMutableEntryAtIndex(i + 1)
->GetRangeBase() != curr_base_addr) {
if (entry->GetByteSize() == 0) {
addr_t curr_base_addr = entry->GetRangeBase();
const RangeVector<addr_t, addr_t>::Entry *containing_section =
section_ranges.FindEntryThatContains(curr_base_addr);

View File

@ -1,8 +0,0 @@
.text
.byte 0
sizeless:
sizeful:
.byte 0
.byte 0
sizeend:
.size sizeful, sizeend - sizeful

View File

@ -1,14 +0,0 @@
# Some targets do not have the .size directive.
# RUN: %clang -target x86_64-unknown-unknown-elf %S/Inputs/sizeless-symbol.s -c -o %t.o
# RUN: %lldb %t.o -s %s -o quit | FileCheck %s
image lookup --address 1
# CHECK: Summary: sizeless-symbol.test.tmp.o`sizeful
image lookup --address 2
# CHECK: Summary: sizeless-symbol.test.tmp.o`sizeful + 1
image dump symtab
# CHECK: Index UserID DSX Type File Address/Value Load Address Size Flags Name
# CHECK-NEXT:------- ------ --- --------------- ------------------ ------------------ ------------------ ---------- ----------------------------------
# CHECK-NEXT:[ 0] 1 Code 0x0000000000000003 0x0000000000000000 0x00000000 sizeend
# CHECK-NEXT:[ 1] 2 Code 0x0000000000000001 0x0000000000000002 0x00000000 sizeful
# CHECK-NEXT:[ 2] 3 Code 0x0000000000000001 0x0000000000000000 0x00000000 sizeless