clayborg requested changes to this revision.
clayborg added a comment.
This revision now requires changes to proceed.
see inlined comments.
================
Comment at: source/Symbol/LineTable.cpp:107-117
@@ -106,3 +106,13 @@
if (!entries.empty() && entries.back().file_addr == file_addr)
+ {
+ // GCC don't use the is_prologue_end flag to mark the first
instruction after the prologue.
+ // Instead of it it is issueing a line table entry for the first
instruction of the prologue
+ // and one for the first instruction after the prologue. If the size
of the prologue is 0
+ // instruction then the 2 line entry will have the same file address.
Removing it will remove
+ // our ability to properly detect the location of the end of prologe
so we set the prologue_end
+ // flag to preserve this information (setting the prologue_end flag
for an entry what is after
+ // the prologue end don't have any effect)
+ entry.is_prologue_end = true;
entries.back() = entry;
+ }
else
----------------
I am not sure I like this solution. Now if we ever have two line entries with
the same address we will automatically mark the item as the prologue end? This
seems like a hack and it will mark all sorts of line entries as being
"is_prologue_end = true" all throughout the line table.
http://reviews.llvm.org/D12757
_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits