aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Faust <david.faust@oracle.com>2023-05-30 09:16:36 -0700
committerDavid Faust <david.faust@oracle.com>2023-05-31 08:32:25 -0700
commit008878653989da899c9756df0896a722d25e5498 (patch)
treea01eeebb09690b398ff1bddca8e2b551d43c0644
parent3f4853a5f00fabdc7b9ce01fbbdd6f4be11506c5 (diff)
downloadgcc-008878653989da899c9756df0896a722d25e5498.zip
gcc-008878653989da899c9756df0896a722d25e5498.tar.gz
gcc-008878653989da899c9756df0896a722d25e5498.tar.bz2
btf: be clear when record size/type is not used
All BTF type records have a 4-byte field used to encode a size or link to another type, depending on the type kind. But BTF_KIND_ARRAY and BTF_KIND_FWD do not use this field at all, and should write zero. GCC already correctly writes zero in this field for these type kinds, but the process is not straightforward and results in the -dA comment claiming the field is a reference to another type. This patch makes the behavior explicit and updates the assembler comment to state clearly that the field is unused. gcc/ * btfout.cc (btf_asm_type): Add dedicated cases for BTF_KIND_ARRAY and BTF_KIND_FWD which do not use the size/type field at all.
-rw-r--r--gcc/btfout.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/btfout.cc b/gcc/btfout.cc
index 497c1ca..ae98557 100644
--- a/gcc/btfout.cc
+++ b/gcc/btfout.cc
@@ -705,6 +705,12 @@ btf_asm_type (ctf_container_ref ctfc, ctf_dtdef_ref dtd)
dw2_asm_output_data (4, dtd->dtd_data.ctti_size, "btt_size: %uB",
dtd->dtd_data.ctti_size);
return;
+ case BTF_KIND_ARRAY:
+ case BTF_KIND_FWD:
+ /* These types do not encode any information in the size/type field
+ and should write 0. */
+ dw2_asm_output_data (4, 0, "(unused)");
+ return;
default:
break;
}