[binutils-gdb] libctf, dump: correctly dump non-root-visible types

Nick Alcock nix@sourceware.org
Wed Jul 31 20:44:22 GMT 2024


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=2b35088f30d95cd45bb572765a7b01260a1d8ee2

commit 2b35088f30d95cd45bb572765a7b01260a1d8ee2
Author: Nick Alcock <nick.alcock@oracle.com>
Date:   Mon Jul 15 19:39:48 2024 +0100

    libctf, dump: correctly dump non-root-visible types
    
    The flag test when dumping non-root-visible tyeps was doubly wrong: the
    flags word is a *bitfield* containing CTF_ADD_ROOT as one possible
    value, so needs | and & testing, not just ==, and CTF_ADD_NONROOT is 0,
    so cannot be tested for this way: one must check for the non-presence of
    CTF_ADD_ROOT.
    
    libctf/
            * ctf-dump.c (ctf_dump_format_type): Fix non-root flag test.

Diff:
---
 libctf/ctf-dump.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libctf/ctf-dump.c b/libctf/ctf-dump.c
index 80a3b265297..cd41996084d 100644
--- a/libctf/ctf-dump.c
+++ b/libctf/ctf-dump.c
@@ -106,7 +106,7 @@ ctf_dump_format_type (ctf_dict_t *fp, ctf_id_t id, int flag)
       const char *idstr = "";
 
       id = new_id;
-      if (flag == CTF_ADD_NONROOT)
+      if (!(flag & CTF_ADD_ROOT))
 	{
 	  nonroot_leader = "{";
 	  nonroot_trailer = "}";


More information about the Binutils-cvs mailing list