jhenderson added a comment.

In D83116#2130019 <https://reviews.llvm.org/D83116#2130019>, @labath wrote:

> What would you say if, instead of `AbbrevTableIndex`, we had a field like 
> `AbbrevTableID`. The main difference would be that this "ID" field can be 
> explicitly specified on the Abbrev table, and it does not have to be a 
> sequentially increasing number (though it could of course be that by default).
>
> The thing I'm trying to achieve is to make the yaml more robust against 
> modifications/simplifications. E.g., it would be nice if deleting an abbrev 
> table does not make all compile units suddenly refer to different tables.  If 
> the ids were present explicitly, compile units would be unaffected by this, 
> and one would get an explicit error message if there was a compile unit left 
> which still referred to the deleted abbrev table.
>
> (This is one of the aspects where an assembler is better than yaml, as 
> symbolic labels in asm have these properties.)


+1 to this idea. By default it could of course be an incremental index, when 
emitting, but in yaml2obj, I see no reason for it to be tied in that way 
necessarily.



================
Comment at: lldb/unittests/Symbol/Inputs/inlined-functions.yaml:348
+      Version:          4
+      AbbrevTableIndex: 1
+      AbbrOffset:       0
----------------
`AbbrevTableIndex` should be an optional value. I think by default it should 
pick the first table (or possibly should pick the Nth table, where N is the 
.debug_info table index). Thus in this and pretty much every other case, you 
should be able to omit the new value.


================
Comment at: llvm/test/tools/yaml2obj/ELF/DWARF/debug-info.yaml:658
+
+# NOTABLE: yaml2obj: error: abbrev table index must be less than or equal to 
the number of abbrev tables
+
----------------
Perhaps worth including the index and table count values in this error message 
to make it easier for people to identify the problem.


================
Comment at: llvm/tools/obj2yaml/dwarf2yaml.cpp:19
 #include <algorithm>
+#include <utility>
 
----------------
I'm slightly surprised you needed to add this. Did this not compile without it?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D83116/new/

https://reviews.llvm.org/D83116



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

Reply via email to