diff options
author | Nick Alcock <nick.alcock@oracle.com> | 2025-03-24 13:01:13 +0000 |
---|---|---|
committer | Nick Alcock <nick.alcock@oracle.com> | 2025-03-24 13:01:13 +0000 |
commit | 1ac1a6be774c8a52446d4c0cc2b021a37ac829c9 (patch) | |
tree | 0700cf47fc1e8cf61d55ef2a441efead3d49fafb /libctf/ctf-dedup.c | |
parent | 362ee0e2e3421d9d29c225832a06c82b1702dd85 (diff) | |
download | binutils-1ac1a6be774c8a52446d4c0cc2b021a37ac829c9.zip binutils-1ac1a6be774c8a52446d4c0cc2b021a37ac829c9.tar.gz binutils-1ac1a6be774c8a52446d4c0cc2b021a37ac829c9.tar.bz2 |
libctf: dedup: comment improvements
Diffstat (limited to 'libctf/ctf-dedup.c')
-rw-r--r-- | libctf/ctf-dedup.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/libctf/ctf-dedup.c b/libctf/ctf-dedup.c index fcf2fc4..6ae5101 100644 --- a/libctf/ctf-dedup.c +++ b/libctf/ctf-dedup.c @@ -164,10 +164,11 @@ same type if they have the same name; so decl tags to one conflicting structure in several different inputs can be considered unconflicting even though they are citing a specific member in an input struct, as long as that - member has the same number in both! So we pay a small efficiency cost and - generate a citers graph from decl tags to struct/union members specifically - so that when structs or unions are marked conflicted, we chase down all - the decl tags that cite any of their members and mark them confliocted too. + member has the same component index in both! So we pay a small efficiency + cost and generate a citers graph from decl tags to struct/union members + specifically, so that when structs or unions are marked conflicted, we chase + down all the decl tags that cite any of their members and mark them conflicted + too. 2) COLLISIONAL MARKING. @@ -190,14 +191,14 @@ Datasecs are again ignored, and so are tags: their names are always nonconflicting. - [ctf_dedup_propagate_conflictedness] The process of marking types conflicted is itself recursive: we recursively traverse the cd_citers graph populated in the hashing pass above and mark everything that we encounter conflicted (without wasting time re-marking anything that is already marked). This naturally terminates just where we want it to (at types that are cited by no other types, and at structures and unions) and suffices to ensure that types that cite conflicted types are - always marked conflicted. + always marked conflicted. We also do a single-step nonrecursive marking + of decl tags that refer to conflicted structures, as noted above. [ctf_dedup_conflictify_unshared, ctf_dedup_multiple_input_dicts] When linking in CTF_LINK_SHARE_DUPLICATED mode, we would like all types that |