[PATCH] D36993: [llvm-dwarfdump] Print type names in DW_AT_type DIEs

Jonas Devlieghere via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 1 07:49:23 PDT 2017


JDevlieghere added a comment.

In https://reviews.llvm.org/D36993#858121, @dblaikie wrote:

> In https://reviews.llvm.org/D36993#858093, @JDevlieghere wrote:
>
> > David, apologies for missing your e-mail. I really hate that it doesn't automatically show up in Phabricator! 🙁
> >
> > If the tag doesn't have a name attribute, everything will go through this function except: `DW_TAG_pointer_type`, `DW_TAG_ptr_to_member_type`, `DW_TAG_reference_type`, `DW_TAG_rvalue_reference_type`. The first part explains why `class` and `struct` don't show up. I prefer this approach because it's guaranteed to be robust. Every `DW_TAG_*_type` encountered without a name will have something meaningful printed.
> >
> > IIRC, the original switch had between 20 and 25 cases.
>
>
> I'm curious what those 20-25 cases were - do you have a copy/roughly describe their contents? Because while 'const' does print nicely, (& volatile would be similar) I'm not sure what the other 10 or so cases might be and whether that's a reasonable way to print them.


Here's the list of cases I had originally:

  case DW_TAG_array_type:
  case DW_TAG_base_type:
  case DW_TAG_class_type:
  case DW_TAG_const_type:
  case DW_TAG_enumeration_type:
  case DW_TAG_file_type:
  case DW_TAG_interface_type:
  case DW_TAG_packed_type:
  case DW_TAG_pointer_type:
  case DW_TAG_ptr_to_member_type:
  case DW_TAG_reference_type:
  case DW_TAG_restrict_type:
  case DW_TAG_set_type:
  case DW_TAG_shared_type:
  case DW_TAG_string_type
  case DW_TAG_structure_type:
  case DW_TAG_subrange_type:
  case DW_TAG_subroutine_type:
  case DW_TAG_thrown_type:
  case DW_TAG_union_type:
  case DW_TAG_unspecified_type:
  case DW_TAG_volatile_type:


Repository:
  rL LLVM

https://reviews.llvm.org/D36993





More information about the llvm-commits mailing list