Author: Zequan Wu
Date: 2022-04-27T10:56:03-07:00
New Revision: afd639071bb32baae4ca390b3f0f5ab700d83222

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

LOG: [LLDB][NativePDB] Minor fix ParseInlinesite.

- Don't reset cur_line_offset to llvm::None when we don't have 
next_line_offset, because we may need to reuse it in new range after a code end.
- Don't use CombineConsecutiveEntriesWithEqualData for inline_site_sp->ranges, 
because that will combine consecutive entries with same data in the vector 
regardless of the entry's range. Originally, I thought that it only combine 
consecutive entries if adjacent entries' ranges are adjoining or intersecting 
with each other.

Added: 
    

Modified: 
    lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp

Removed: 
    


################################################################################
diff  --git a/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp 
b/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp
index fcbf667798644..22d8977e117b0 100644
--- a/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp
+++ b/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp
@@ -1311,8 +1311,8 @@ void 
SymbolFileNativePDB::ParseInlineSite(PdbCompilandSymId id,
   int32_t line_offset = 0;
   llvm::Optional<uint32_t> code_offset_base;
   llvm::Optional<uint32_t> code_offset_end;
-  llvm::Optional<uint32_t> cur_line_offset;
-  llvm::Optional<uint32_t> next_line_offset;
+  llvm::Optional<int32_t> cur_line_offset;
+  llvm::Optional<int32_t> next_line_offset;
   llvm::Optional<uint32_t> next_file_offset;
 
   bool is_terminal_entry = false;
@@ -1384,9 +1384,12 @@ void 
SymbolFileNativePDB::ParseInlineSite(PdbCompilandSymId id,
       // Set base, end, file offset and line offset for next range.
       if (next_file_offset)
         file_offset = *next_file_offset;
-      cur_line_offset = next_line_offset ? next_line_offset : llvm::None;
+      if (next_line_offset) {
+        cur_line_offset = next_line_offset;
+        next_line_offset = llvm::None;
+      }
       code_offset_base = is_terminal_entry ? llvm::None : code_offset_end;
-      code_offset_end = next_line_offset = next_file_offset = llvm::None;
+      code_offset_end = next_file_offset = llvm::None;
     }
     if (code_offset_base && cur_line_offset) {
       if (is_terminal_entry) {
@@ -1410,7 +1413,6 @@ void 
SymbolFileNativePDB::ParseInlineSite(PdbCompilandSymId id,
   }
 
   inline_site_sp->ranges.Sort();
-  inline_site_sp->ranges.CombineConsecutiveEntriesWithEqualData();
 
   // Get the inlined function callsite info.
   std::unique_ptr<Declaration> callsite_up;


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

Reply via email to