> On 1/5/23 10:30 AM, Jose E. Marchesi wrote: >> We agreed in the meeting to implement Solution 2 below in both GCC >> and >> clang. >> The DW_TAG_LLVM_annotation DIE number will be changed in order to >> make >> it possible for pahole to handle the current tags. The number of the >> new tag will be shared by both GCC and clang. > > w.r.t c2x attribute syntax discussion in 01/19 office hour discussion. > > I have checked clang c2x syntax w.r.t. > btf_type_tag and btf_decl_tag. They are both supported > with clang 15 and 16. > > See: > https://clang.llvm.org/docs/AttributeReference.html > > The c2x btf_decl_tag attr syntax is [[clang::btf_decl_tag("")]]. > The c2x btf_type_tag attr syntax is [[clang::btf_type_tag("")]]. > > $ cat t.c > int [[clang::btf_type_tag("aa")]] * [[clang::btf_type_tag("bb")]] *f; > [[clang::btf_decl_tag("cc")]] int foo() { return 5; } > int bar() { return foo(); } > $ clang -std=c2x -g -O2 -c t.c > $ llvm-dwarfdump t.o | grep btf | grep tag > DW_AT_name ("btf_type_tag") > DW_AT_name ("btf_type_tag") > DW_AT_name ("btf_decl_tag") > > I double checked and the c2x syntax above generates the *same* > type IR and dwarf compared to __attribute__ style attributes. > > [...] Thanks for checking. That matches our impression that C2X type attributes actually order the same way than sparse type annotations, at least in the cases we are interested on.