Author: Muhammad Omair Javaid
Date: 2019-11-12T19:02:17+05:00
New Revision: a6c40f56aed1556a80867209b6846f7eedc4dc78

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

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

This reverts commit 3f594ed1686b44138bee245c708773e526643aaf.

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

Differential Revision: https://reviews.llvm.org/D63540

Added: 
    

Modified: 
    lldb/source/Symbol/Symtab.cpp

Removed: 
    lldb/test/Shell/SymbolFile/Inputs/sizeless-symbol.s
    lldb/test/Shell/SymbolFile/sizeless-symbol.test


################################################################################
diff  --git a/lldb/source/Symbol/Symtab.cpp b/lldb/source/Symbol/Symtab.cpp
index 8a45cc05e491..9a2b5cddd73b 100644
--- a/lldb/source/Symbol/Symtab.cpp
+++ b/lldb/source/Symbol/Symtab.cpp
@@ -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);
 

diff  --git a/lldb/test/Shell/SymbolFile/Inputs/sizeless-symbol.s 
b/lldb/test/Shell/SymbolFile/Inputs/sizeless-symbol.s
deleted file mode 100644
index ac08dddb0e2c..000000000000
--- a/lldb/test/Shell/SymbolFile/Inputs/sizeless-symbol.s
+++ /dev/null
@@ -1,8 +0,0 @@
-        .text
-        .byte   0
-sizeless:
-sizeful:
-        .byte   0
-        .byte   0
-sizeend:
-        .size   sizeful, sizeend - sizeful

diff  --git a/lldb/test/Shell/SymbolFile/sizeless-symbol.test 
b/lldb/test/Shell/SymbolFile/sizeless-symbol.test
deleted file mode 100644
index 1459d6ada8de..000000000000
--- a/lldb/test/Shell/SymbolFile/sizeless-symbol.test
+++ /dev/null
@@ -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


        
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to