From 24c877f9b19dc38f9c40e25116175481c8bb78f2 Mon Sep 17 00:00:00 2001 From: Nick Alcock Date: Thu, 25 Mar 2021 16:32:46 +0000 Subject: [PATCH] include: always do unsigned left-shift in CTF_SET_STID This turns into a signed left shift by 31 bits, otherwise. This is an offset and is always treated as unsigned in any case, so add an appropriate cast. include/ChangeLog 2021-03-25 Nick Alcock PR libctf/27628 * ctf-api.h: Fix some indentation. (CTF_SET_STID): Always do an unsigned shift, even if STID is signed. --- include/ChangeLog | 7 +++++++ include/ctf.h | 16 ++++++++-------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/include/ChangeLog b/include/ChangeLog index db23305dbf7..5fa6b09ac84 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,10 @@ +2021-03-25 Nick Alcock + + PR libctf/27628 + * ctf-api.h: Fix some indentation. + (CTF_SET_STID): Always do an unsigned shift, even if STID is + signed. + 2021-03-19 H.J. Lu * elf/common.h (EM_INTEL205): Renamed to ... diff --git a/include/ctf.h b/include/ctf.h index 50605743ab6..90631fccbd6 100644 --- a/include/ctf.h +++ b/include/ctf.h @@ -358,9 +358,9 @@ union c.ctt_info = CTF_TYPE_INFO(kind, vlen); c.ctt_name = CTF_TYPE_NAME(stid, offset); */ -# define CTF_V1_INFO_KIND(info) (((info) & 0xf800) >> 11) -# define CTF_V1_INFO_ISROOT(info) (((info) & 0x0400) >> 10) -# define CTF_V1_INFO_VLEN(info) (((info) & CTF_MAX_VLEN_V1)) +#define CTF_V1_INFO_KIND(info) (((info) & 0xf800) >> 11) +#define CTF_V1_INFO_ISROOT(info) (((info) & 0x0400) >> 10) +#define CTF_V1_INFO_VLEN(info) (((info) & CTF_MAX_VLEN_V1)) #define CTF_V2_INFO_KIND(info) (((info) & 0xfc000000) >> 26) #define CTF_V2_INFO_ISROOT(info) (((info) & 0x2000000) >> 25) @@ -368,7 +368,7 @@ union #define CTF_NAME_STID(name) ((name) >> 31) #define CTF_NAME_OFFSET(name) ((name) & CTF_MAX_NAME) -#define CTF_SET_STID(name, stid) ((name) | (stid) << 31) +#define CTF_SET_STID(name, stid) ((name) | ((unsigned int) stid) << 31) /* V2 only. */ #define CTF_TYPE_INFO(kind, isroot, vlen) \ @@ -387,10 +387,10 @@ union #define CTF_V2_TYPE_TO_INDEX(id) ((id) & CTF_MAX_PTYPE) #define CTF_V2_INDEX_TO_TYPE(id, child) ((child) ? ((id) | (CTF_MAX_PTYPE+1)) : (id)) -# define CTF_V1_TYPE_ISPARENT(fp, id) ((id) <= CTF_MAX_PTYPE_V1) -# define CTF_V1_TYPE_ISCHILD(fp, id) ((id) > CTF_MAX_PTYPE_V1) -# define CTF_V1_TYPE_TO_INDEX(id) ((id) & CTF_MAX_PTYPE_V1) -# define CTF_V1_INDEX_TO_TYPE(id, child) ((child) ? ((id) | (CTF_MAX_PTYPE_V1+1)) : (id)) +#define CTF_V1_TYPE_ISPARENT(fp, id) ((id) <= CTF_MAX_PTYPE_V1) +#define CTF_V1_TYPE_ISCHILD(fp, id) ((id) > CTF_MAX_PTYPE_V1) +#define CTF_V1_TYPE_TO_INDEX(id) ((id) & CTF_MAX_PTYPE_V1) +#define CTF_V1_INDEX_TO_TYPE(id, child) ((child) ? ((id) | (CTF_MAX_PTYPE_V1+1)) : (id)) /* Valid for both V1 and V2. */ #define CTF_TYPE_LSIZE(cttp) \ -- 2.30.2