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
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits