clayborg added a comment.

I

In http://reviews.llvm.org/D18381#381457, @zturner wrote:

> I guess my point was just that it seems a little weird to treat DWARF 
> specially.  It's just another debug info format (albeit one that most 
> compilers support), so by baking into the supposedly generic interface the 
> requirement that "every type system must be able to support DWARF" seems a 
> little strange.


We can change the TypeSystem version of this function to not be pure virtual, 
and have a default implementation that returns nullptr. I do think it is valid 
to have a function that says "if you want to support parsing DWARF with this 
type system, please return a DWARFASTParser subclass that can convert DWARF 
into your types". I see no problem with this.

> I agree it solves the problem and everything will work, it just seems more 
> correct from a design standpoint to have an enum for debug info type and 
> expose one method called `GetDebugInfoParser` that takes the enum.


I don't agree. DWARFASTParser has very specific DWARF parsing functions on it 
that make no sense to anyone else. Making a enum doesn't help with this, nor 
does making a common base class that can't do anything for anyone. So I firmly 
believe this is valid. Mostly because DWARF supports so many languages and each 
language might have its own type system. A single DWARF file could have Java, 
C, C++, and Go all in the same DWARF file. Each type system can provide its own 
DWARFASTParser. Take a look at the DWARFASTParser, most of it is very DWARF 
specific.


http://reviews.llvm.org/D18381



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

Reply via email to