dfaust added a comment.

> Type tag for CVR modifier type
>
> C:
>
>   volatile int __attribute__((btf_type_tag("__b"))) b;
>
> DWARF:
>
>   0x31:   DW_TAG_variable
>             DW_AT_name      ("b")
>             DW_AT_type      (0x3c "volatile int")
>   
>   0x3c:   DW_TAG_volatile_type
>             DW_AT_type      (0x45 "int")
>   
>   0x41:     DW_TAG_LLVM_annotation
>               DW_AT_name    ("btf:type_tag")
>               DW_AT_const_value     ("__b")

I am not sure about this case. Do we want the tag on the CVR qualifier or on 
the type being qualified?

Current patches for GCC place the annotation DIE as child of the 'int':

  0x0000001e:   DW_TAG_variable
                  DW_AT_name    ("b")
                  DW_AT_type    (0x00000047 "volatile int")
  
  0x00000032:   DW_TAG_base_type
                  DW_AT_byte_size       (0x04)
                  DW_AT_name    ("int")
  
  0x0000003d:     DW_TAG_LLVM_annotation
                    DW_AT_name  ("btf:type_tag")
                    DW_AT_const_value   ("__b")
  
  0x00000047:   DW_TAG_volatile_type
                  DW_AT_type    (0x00000032 "int")

The way I see it both 'volatile' and the type tag are modifying 'int' type 
here, so the annotation DIE more properly fits as a child of 'int' rather than 
the 'volatile'.

I don't think we discussed this particular case, and I'm not sure whether there 
is any precedent here.

WDYT @eddyz87, @jemarch ?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D143967

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

Reply via email to