[PATCH 1/1] RISC-V: Improve handling of mapping symbols with dot suffix

Tsukasa OI research_trasio@irq.a4lg.com
Sun Oct 15 05:21:08 GMT 2023


On 2023/10/15 11:38, Nelson Chu wrote:
> Okay, use size_t looks good.  But I don't suggest changing other
> developers' variant naming.  This is usually not a real matter,
> especially the naming is already clear enough to understand.
> 
> Thanks
> Nelson

Well, normally I wouldn't touch that much (if there's only 1. as listed
below) but because I found two possible improvements to the existing
code (2. and 3. as below), I felt that keeping the variable names less
important.

By other changes, "suffix_index" no longer fits the context.
"name_substr" is still valid because this is still a substring of
"name". But since this patch separates *only* the ISA string, just
renaming it "arch" felt clearer.

Thanks,
Tsukasa

> 
> On Sat, Oct 14, 2023 at 4:37 PM Tsukasa OI <research_trasio@irq.a4lg.com
> <mailto:research_trasio@irq.a4lg.com>> wrote:
> 
>     From: Tsukasa OI <research_trasio@irq.a4lg.com
>     <mailto:research_trasio@irq.a4lg.com>>
> 
>     This commit makes minor improvements to mapping symbols (executable)
>     handling with a dot suffix.
> 
>     1.  Use size_t instead of int
>     2.  Allocate minimum size for the architectural string buffer.
>     3.  memcpy instead of strncpy because we know the exact size to copy.
>     4.  Minor variable naming changes.
> 
>     opcodes/ChangeLog:
> 
>             * riscv-dis.c (riscv_get_map_state): Minor improvements to
>             handling of executable mapping symbols with dot suffix.
>     ---
>      opcodes/riscv-dis.c | 12 ++++++------
>      1 file changed, 6 insertions(+), 6 deletions(-)
> 
>     diff --git a/opcodes/riscv-dis.c b/opcodes/riscv-dis.c
>     index 216916e9426d..18547d81c20d 100644
>     --- a/opcodes/riscv-dis.c
>     +++ b/opcodes/riscv-dis.c
>     @@ -875,12 +875,12 @@ riscv_get_map_state (int n,
>            char *suffix = strchr (name, '.');
>            if (suffix)
>             {
>     -         int suffix_index = (int)(suffix - name);
>     -         char *name_substr = xmalloc (suffix_index + 1);
>     -         strncpy (name_substr, name, suffix_index);
>     -         name_substr[suffix_index] = '\0';
>     -         riscv_parse_subset (&riscv_rps_dis, name_substr + 2);
>     -         free (name_substr);
>     +         size_t arch_len = (size_t) (suffix - name) - 2;
>     +         char *arch = xmalloc (arch_len + 1);
>     +         memcpy (arch, name + 2, arch_len);
>     +         arch[arch_len] = '\0';
>     +         riscv_parse_subset (&riscv_rps_dis, arch);
>     +         free (arch);
>             }
>            else
>             riscv_parse_subset (&riscv_rps_dis, name + 2);
>     -- 
>     2.42.0
> 


More information about the Binutils mailing list