Debugging sets and subranges


Just wondering if there might be support for debugging set types in the future.
There are a few languages that have an inbuilt set type eg pascal and it would be
good to support them. At the moment I’m kludging it with arrays of bits but its less than optimal.
Also, the DISubrange type is restricted to index types for arrays but it would be good
if it could be extended to be a type in its own right to support languages that have
subranges as builtin types.

Regards Peter

Hi Peter,

There are a variety of DWARF types that LLVM doesn’t currently support. You’ve noted a couple from Pascal, sets and subranges as first-class types. Offhand I know that fixed-point types aren’t supported; nor any of the modern FORTRAN types like the fancy array-slicing stuff; nor the more COBOL-specific things like numeric strings and condition-names.

The most active developers on debug-info in LLVM are primarily focused on the languages supported by Clang (C/C++, Objective-C/C++) and Swift. People developing out-of-tree front ends who want new DWARF or metadata features are pretty much expected to drive the development of those features. If you do that, and can provide adequate tests (either as IR, or as executable unittests calling the APIs directly–not written in your out-of-tree language), you’ll find the reviewers are generally receptive.

Questions on llvm-dev are always appropriate, too, if you run into roadblocks trying to get something to work.

Looking forward to it!