ADodds created this revision.
ADodds added a reviewer: clayborg.
ADodds added a subscriber: lldb-commits.
ADodds set the repository for this revision to rL LLVM.

This patch fixes a bug in SymbolFileDWARF::FindFunctions(), where functions may 
not be correctly found when appending to a list already containing some symbols.
Upon entering this function, original_size is set to the size of sc_list, 
however the target code should be executed not when the list is empty but when 
this list has not grown during this function invocation.  This patch corrects 
this problem.

Running the lldb test suite shows no regressions caused by this change, and 
fixes Bug 25433.
https://llvm.org/bugs/show_bug.cgi?id=25433


Repository:
  rL LLVM

http://reviews.llvm.org/D14538

Files:
  source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp

Index: source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
===================================================================
--- source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
+++ source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
@@ -2711,7 +2711,7 @@
             // TODO: The arch in the object file isn't correct for MSVC
             // binaries on windows, we should find a way to make it
             // correct and handle those symbols as well.
-            if (sc_list.GetSize() == 0)
+            if (sc_list.GetSize() == original_size)
             {
                 ArchSpec arch;
                 if (!parent_decl_ctx &&


Index: source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
===================================================================
--- source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
+++ source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
@@ -2711,7 +2711,7 @@
             // TODO: The arch in the object file isn't correct for MSVC
             // binaries on windows, we should find a way to make it
             // correct and handle those symbols as well.
-            if (sc_list.GetSize() == 0)
+            if (sc_list.GetSize() == original_size)
             {
                 ArchSpec arch;
                 if (!parent_decl_ctx &&
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to