aboutsummaryrefslogtreecommitdiff
path: root/libctf/ctf-dedup.c
diff options
context:
space:
mode:
authorNick Alcock <nick.alcock@oracle.com>2025-03-24 13:01:13 +0000
committerNick Alcock <nick.alcock@oracle.com>2025-03-24 13:01:13 +0000
commit1ac1a6be774c8a52446d4c0cc2b021a37ac829c9 (patch)
tree0700cf47fc1e8cf61d55ef2a441efead3d49fafb /libctf/ctf-dedup.c
parent362ee0e2e3421d9d29c225832a06c82b1702dd85 (diff)
downloadbinutils-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.c13
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