mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-24 12:35:55 +08:00
0e28ade476
Some type kinds in CTF (functions, arrays, pointers, slices, and cvr-quals) are intrinsically nameless: the ctt_name field in the CTF is always zero, and the libctf API provides no way to set a name. But the compiler can and does sometimes set names for some of these kinds: in particular, the name it sets on CTF_K_FUNCTION types is the means it uses to force the name of the function into the string table so that it can point at it from the function info section. So null out the name at hashing time so that the deduplicator can correctly detect that e.g. function types identical but for name should be considered truly identical, since they will not have a name when the deduplicator re-emits them into the output. ld/ChangeLog 2020-11-20 Nick Alcock <nick.alcock@oracle.com> * testsuite/ld-ctf/data-func-conflicted.d: Shrink the expected size of the type section now that function types are being deduplicated properly. libctf/ChangeLog 2020-11-20 Nick Alcock <nick.alcock@oracle.com> * ctf-dedup.c (ctf_dedup_rhash_type): Null out the names of nameless type kinds, just in case the input has named them. |
||
---|---|---|
.. | ||
A-2.c | ||
A.c | ||
array-char.c | ||
array-int.c | ||
array.d | ||
B-2.c | ||
B.c | ||
C-2.c | ||
C.c | ||
child-float.c | ||
child-int.c | ||
conflicting-cycle-1.B-1.d | ||
conflicting-cycle-1.B-2.d | ||
conflicting-cycle-1.parent.d | ||
conflicting-cycle-2.A-1.d | ||
conflicting-cycle-2.A-2.d | ||
conflicting-cycle-2.parent.d | ||
conflicting-cycle-3.C-1.d | ||
conflicting-cycle-3.C-2.d | ||
conflicting-cycle-3.parent.d | ||
conflicting-enums.d | ||
conflicting-typedefs.d | ||
cross-tu-1.c | ||
cross-tu-2.c | ||
cross-tu-conflicting-2.c | ||
cross-tu-cyclic-1.c | ||
cross-tu-cyclic-2.c | ||
cross-tu-cyclic-3.c | ||
cross-tu-cyclic-4.c | ||
cross-tu-cyclic-conflicting.d | ||
cross-tu-cyclic-nonconflicting.d | ||
cross-tu-into-cycle.d | ||
cross-tu-noncyclic.d | ||
ctf.exp | ||
cycle-1.c | ||
cycle-1.d | ||
cycle-2.A.d | ||
cycle-2.B.d | ||
cycle-2.C.d | ||
data-func-1.c | ||
data-func-2.c | ||
data-func-conflicted.d | ||
diag-ctf-version-0.d | ||
diag-ctf-version-0.s | ||
diag-ctf-version-2-unsupported-feature.d | ||
diag-ctf-version-2-unsupported-feature.s | ||
diag-ctf-version-f.d | ||
diag-ctf-version-f.s | ||
diag-cttname-invalid.d | ||
diag-cttname-invalid.s | ||
diag-cttname-null.d | ||
diag-cttname-null.s | ||
diag-cuname.d | ||
diag-cuname.s | ||
diag-decompression-failure.d | ||
diag-decompression-failure.s | ||
diag-parlabel.d | ||
diag-parlabel.s | ||
diag-parname.d | ||
diag-parname.s | ||
diag-unsupported-flag.d | ||
diag-unsupported-flag.s | ||
diag-wrong-magic-number-mixed.d | ||
diag-wrong-magic-number.d | ||
diag-wrong-magic-number.s | ||
enum-2.c | ||
enum.c | ||
function.c | ||
function.d | ||
slice.c | ||
slice.d | ||
super-sub-cycles.c | ||
super-sub-cycles.d | ||
typedef-int.c | ||
typedef-long.c | ||
union-1.c |