Message ID | 20231009164104.369749-15-alex.bennee@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | October maintainer omnibus pre-PR (tests, gdbstub, plugins) | expand |
On Tue, Oct 10, 2023 at 2:44 AM Alex Bennée <alex.bennee@linaro.org> wrote: > > From: Akihiko Odaki <akihiko.odaki@daynix.com> > > All implementations of gdb_arch_name() returns dynamic duplicates of > static strings. It's also unlikely that there will be an implementation > of gdb_arch_name() that returns a truly dynamic value due to the nature > of the function returning a well-known identifiers. Qualify the value > gdb_arch_name() with const and make all of its implementations return > static strings. > > Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> > Reviewed-by: Alex Bennée <alex.bennee@linaro.org> > Message-Id: <20230912224107.29669-8-akihiko.odaki@daynix.com> > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Alistair > --- > include/hw/core/cpu.h | 2 +- > target/ppc/internal.h | 2 +- > gdbstub/gdbstub.c | 3 +-- > target/arm/cpu.c | 6 +++--- > target/arm/cpu64.c | 4 ++-- > target/i386/cpu.c | 6 +++--- > target/loongarch/cpu.c | 8 ++++---- > target/ppc/gdbstub.c | 6 +++--- > target/riscv/cpu.c | 6 +++--- > target/s390x/cpu.c | 4 ++-- > target/tricore/cpu.c | 4 ++-- > 11 files changed, 25 insertions(+), 26 deletions(-) > > diff --git a/include/hw/core/cpu.h b/include/hw/core/cpu.h > index e02bc5980f..7b8347ed5a 100644 > --- a/include/hw/core/cpu.h > +++ b/include/hw/core/cpu.h > @@ -165,7 +165,7 @@ struct CPUClass { > vaddr (*gdb_adjust_breakpoint)(CPUState *cpu, vaddr addr); > > const char *gdb_core_xml_file; > - gchar * (*gdb_arch_name)(CPUState *cpu); > + const gchar * (*gdb_arch_name)(CPUState *cpu); > const char * (*gdb_get_dynamic_xml)(CPUState *cpu, const char *xmlname); > > void (*disas_set_info)(CPUState *cpu, disassemble_info *info); > diff --git a/target/ppc/internal.h b/target/ppc/internal.h > index 15803bc313..c881c67a8b 100644 > --- a/target/ppc/internal.h > +++ b/target/ppc/internal.h > @@ -221,7 +221,7 @@ void destroy_ppc_opcodes(PowerPCCPU *cpu); > > /* gdbstub.c */ > void ppc_gdb_init(CPUState *cs, PowerPCCPUClass *ppc); > -gchar *ppc_gdb_arch_name(CPUState *cs); > +const gchar *ppc_gdb_arch_name(CPUState *cs); > > /** > * prot_for_access_type: > diff --git a/gdbstub/gdbstub.c b/gdbstub/gdbstub.c > index bba2640293..a20169c27b 100644 > --- a/gdbstub/gdbstub.c > +++ b/gdbstub/gdbstub.c > @@ -380,10 +380,9 @@ static const char *get_feature_xml(const char *p, const char **newp, > "<target>"); > > if (cc->gdb_arch_name) { > - g_autofree gchar *arch = cc->gdb_arch_name(cpu); > g_string_append_printf(xml, > "<architecture>%s</architecture>", > - arch); > + cc->gdb_arch_name(cpu)); > } > g_string_append(xml, "<xi:include href=\""); > g_string_append(xml, cc->gdb_core_xml_file); > diff --git a/target/arm/cpu.c b/target/arm/cpu.c > index b65e8cfea3..6c6c551573 100644 > --- a/target/arm/cpu.c > +++ b/target/arm/cpu.c > @@ -2319,15 +2319,15 @@ static Property arm_cpu_properties[] = { > DEFINE_PROP_END_OF_LIST() > }; > > -static gchar *arm_gdb_arch_name(CPUState *cs) > +static const gchar *arm_gdb_arch_name(CPUState *cs) > { > ARMCPU *cpu = ARM_CPU(cs); > CPUARMState *env = &cpu->env; > > if (arm_feature(env, ARM_FEATURE_IWMMXT)) { > - return g_strdup("iwmmxt"); > + return "iwmmxt"; > } > - return g_strdup("arm"); > + return "arm"; > } > > #ifndef CONFIG_USER_ONLY > diff --git a/target/arm/cpu64.c b/target/arm/cpu64.c > index 811f3b38c2..1cb9d5b81a 100644 > --- a/target/arm/cpu64.c > +++ b/target/arm/cpu64.c > @@ -781,9 +781,9 @@ static void aarch64_cpu_finalizefn(Object *obj) > { > } > > -static gchar *aarch64_gdb_arch_name(CPUState *cs) > +static const gchar *aarch64_gdb_arch_name(CPUState *cs) > { > - return g_strdup("aarch64"); > + return "aarch64"; > } > > static void aarch64_cpu_class_init(ObjectClass *oc, void *data) > diff --git a/target/i386/cpu.c b/target/i386/cpu.c > index 9fad31b8db..c09bab4281 100644 > --- a/target/i386/cpu.c > +++ b/target/i386/cpu.c > @@ -5915,12 +5915,12 @@ static void x86_cpu_load_model(X86CPU *cpu, X86CPUModel *model) > memset(&env->user_features, 0, sizeof(env->user_features)); > } > > -static gchar *x86_gdb_arch_name(CPUState *cs) > +static const gchar *x86_gdb_arch_name(CPUState *cs) > { > #ifdef TARGET_X86_64 > - return g_strdup("i386:x86-64"); > + return "i386:x86-64"; > #else > - return g_strdup("i386"); > + return "i386"; > #endif > } > > diff --git a/target/loongarch/cpu.c b/target/loongarch/cpu.c > index 2bea7ca5d5..ef1bf89dac 100644 > --- a/target/loongarch/cpu.c > +++ b/target/loongarch/cpu.c > @@ -766,9 +766,9 @@ static void loongarch_cpu_class_init(ObjectClass *c, void *data) > #endif > } > > -static gchar *loongarch32_gdb_arch_name(CPUState *cs) > +static const gchar *loongarch32_gdb_arch_name(CPUState *cs) > { > - return g_strdup("loongarch32"); > + return "loongarch32"; > } > > static void loongarch32_cpu_class_init(ObjectClass *c, void *data) > @@ -780,9 +780,9 @@ static void loongarch32_cpu_class_init(ObjectClass *c, void *data) > cc->gdb_arch_name = loongarch32_gdb_arch_name; > } > > -static gchar *loongarch64_gdb_arch_name(CPUState *cs) > +static const gchar *loongarch64_gdb_arch_name(CPUState *cs) > { > - return g_strdup("loongarch64"); > + return "loongarch64"; > } > > static void loongarch64_cpu_class_init(ObjectClass *c, void *data) > diff --git a/target/ppc/gdbstub.c b/target/ppc/gdbstub.c > index 2ad11510bf..778ef73bd7 100644 > --- a/target/ppc/gdbstub.c > +++ b/target/ppc/gdbstub.c > @@ -589,12 +589,12 @@ static int gdb_set_vsx_reg(CPUPPCState *env, uint8_t *mem_buf, int n) > return 0; > } > > -gchar *ppc_gdb_arch_name(CPUState *cs) > +const gchar *ppc_gdb_arch_name(CPUState *cs) > { > #if defined(TARGET_PPC64) > - return g_strdup("powerpc:common64"); > + return "powerpc:common64"; > #else > - return g_strdup("powerpc:common"); > + return "powerpc:common"; > #endif > } > > diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c > index ac2b94b6a6..f5572704de 100644 > --- a/target/riscv/cpu.c > +++ b/target/riscv/cpu.c > @@ -2004,17 +2004,17 @@ static Property riscv_cpu_properties[] = { > DEFINE_PROP_END_OF_LIST(), > }; > > -static gchar *riscv_gdb_arch_name(CPUState *cs) > +static const gchar *riscv_gdb_arch_name(CPUState *cs) > { > RISCVCPU *cpu = RISCV_CPU(cs); > CPURISCVState *env = &cpu->env; > > switch (riscv_cpu_mxl(env)) { > case MXL_RV32: > - return g_strdup("riscv:rv32"); > + return "riscv:rv32"; > case MXL_RV64: > case MXL_RV128: > - return g_strdup("riscv:rv64"); > + return "riscv:rv64"; > default: > g_assert_not_reached(); > } > diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c > index 4f7599d72c..6093ab0a12 100644 > --- a/target/s390x/cpu.c > +++ b/target/s390x/cpu.c > @@ -282,9 +282,9 @@ static void s390_cpu_initfn(Object *obj) > #endif > } > > -static gchar *s390_gdb_arch_name(CPUState *cs) > +static const gchar *s390_gdb_arch_name(CPUState *cs) > { > - return g_strdup("s390:64-bit"); > + return "s390:64-bit"; > } > > static Property s390x_cpu_properties[] = { > diff --git a/target/tricore/cpu.c b/target/tricore/cpu.c > index d1477622e6..5ca666ee12 100644 > --- a/target/tricore/cpu.c > +++ b/target/tricore/cpu.c > @@ -29,9 +29,9 @@ static inline void set_feature(CPUTriCoreState *env, int feature) > env->features |= 1ULL << feature; > } > > -static gchar *tricore_gdb_arch_name(CPUState *cs) > +static const gchar *tricore_gdb_arch_name(CPUState *cs) > { > - return g_strdup("tricore"); > + return "tricore"; > } > > static void tricore_cpu_set_pc(CPUState *cs, vaddr value) > -- > 2.39.2 > >
diff --git a/include/hw/core/cpu.h b/include/hw/core/cpu.h index e02bc5980f..7b8347ed5a 100644 --- a/include/hw/core/cpu.h +++ b/include/hw/core/cpu.h @@ -165,7 +165,7 @@ struct CPUClass { vaddr (*gdb_adjust_breakpoint)(CPUState *cpu, vaddr addr); const char *gdb_core_xml_file; - gchar * (*gdb_arch_name)(CPUState *cpu); + const gchar * (*gdb_arch_name)(CPUState *cpu); const char * (*gdb_get_dynamic_xml)(CPUState *cpu, const char *xmlname); void (*disas_set_info)(CPUState *cpu, disassemble_info *info); diff --git a/target/ppc/internal.h b/target/ppc/internal.h index 15803bc313..c881c67a8b 100644 --- a/target/ppc/internal.h +++ b/target/ppc/internal.h @@ -221,7 +221,7 @@ void destroy_ppc_opcodes(PowerPCCPU *cpu); /* gdbstub.c */ void ppc_gdb_init(CPUState *cs, PowerPCCPUClass *ppc); -gchar *ppc_gdb_arch_name(CPUState *cs); +const gchar *ppc_gdb_arch_name(CPUState *cs); /** * prot_for_access_type: diff --git a/gdbstub/gdbstub.c b/gdbstub/gdbstub.c index bba2640293..a20169c27b 100644 --- a/gdbstub/gdbstub.c +++ b/gdbstub/gdbstub.c @@ -380,10 +380,9 @@ static const char *get_feature_xml(const char *p, const char **newp, "<target>"); if (cc->gdb_arch_name) { - g_autofree gchar *arch = cc->gdb_arch_name(cpu); g_string_append_printf(xml, "<architecture>%s</architecture>", - arch); + cc->gdb_arch_name(cpu)); } g_string_append(xml, "<xi:include href=\""); g_string_append(xml, cc->gdb_core_xml_file); diff --git a/target/arm/cpu.c b/target/arm/cpu.c index b65e8cfea3..6c6c551573 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -2319,15 +2319,15 @@ static Property arm_cpu_properties[] = { DEFINE_PROP_END_OF_LIST() }; -static gchar *arm_gdb_arch_name(CPUState *cs) +static const gchar *arm_gdb_arch_name(CPUState *cs) { ARMCPU *cpu = ARM_CPU(cs); CPUARMState *env = &cpu->env; if (arm_feature(env, ARM_FEATURE_IWMMXT)) { - return g_strdup("iwmmxt"); + return "iwmmxt"; } - return g_strdup("arm"); + return "arm"; } #ifndef CONFIG_USER_ONLY diff --git a/target/arm/cpu64.c b/target/arm/cpu64.c index 811f3b38c2..1cb9d5b81a 100644 --- a/target/arm/cpu64.c +++ b/target/arm/cpu64.c @@ -781,9 +781,9 @@ static void aarch64_cpu_finalizefn(Object *obj) { } -static gchar *aarch64_gdb_arch_name(CPUState *cs) +static const gchar *aarch64_gdb_arch_name(CPUState *cs) { - return g_strdup("aarch64"); + return "aarch64"; } static void aarch64_cpu_class_init(ObjectClass *oc, void *data) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 9fad31b8db..c09bab4281 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -5915,12 +5915,12 @@ static void x86_cpu_load_model(X86CPU *cpu, X86CPUModel *model) memset(&env->user_features, 0, sizeof(env->user_features)); } -static gchar *x86_gdb_arch_name(CPUState *cs) +static const gchar *x86_gdb_arch_name(CPUState *cs) { #ifdef TARGET_X86_64 - return g_strdup("i386:x86-64"); + return "i386:x86-64"; #else - return g_strdup("i386"); + return "i386"; #endif } diff --git a/target/loongarch/cpu.c b/target/loongarch/cpu.c index 2bea7ca5d5..ef1bf89dac 100644 --- a/target/loongarch/cpu.c +++ b/target/loongarch/cpu.c @@ -766,9 +766,9 @@ static void loongarch_cpu_class_init(ObjectClass *c, void *data) #endif } -static gchar *loongarch32_gdb_arch_name(CPUState *cs) +static const gchar *loongarch32_gdb_arch_name(CPUState *cs) { - return g_strdup("loongarch32"); + return "loongarch32"; } static void loongarch32_cpu_class_init(ObjectClass *c, void *data) @@ -780,9 +780,9 @@ static void loongarch32_cpu_class_init(ObjectClass *c, void *data) cc->gdb_arch_name = loongarch32_gdb_arch_name; } -static gchar *loongarch64_gdb_arch_name(CPUState *cs) +static const gchar *loongarch64_gdb_arch_name(CPUState *cs) { - return g_strdup("loongarch64"); + return "loongarch64"; } static void loongarch64_cpu_class_init(ObjectClass *c, void *data) diff --git a/target/ppc/gdbstub.c b/target/ppc/gdbstub.c index 2ad11510bf..778ef73bd7 100644 --- a/target/ppc/gdbstub.c +++ b/target/ppc/gdbstub.c @@ -589,12 +589,12 @@ static int gdb_set_vsx_reg(CPUPPCState *env, uint8_t *mem_buf, int n) return 0; } -gchar *ppc_gdb_arch_name(CPUState *cs) +const gchar *ppc_gdb_arch_name(CPUState *cs) { #if defined(TARGET_PPC64) - return g_strdup("powerpc:common64"); + return "powerpc:common64"; #else - return g_strdup("powerpc:common"); + return "powerpc:common"; #endif } diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index ac2b94b6a6..f5572704de 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -2004,17 +2004,17 @@ static Property riscv_cpu_properties[] = { DEFINE_PROP_END_OF_LIST(), }; -static gchar *riscv_gdb_arch_name(CPUState *cs) +static const gchar *riscv_gdb_arch_name(CPUState *cs) { RISCVCPU *cpu = RISCV_CPU(cs); CPURISCVState *env = &cpu->env; switch (riscv_cpu_mxl(env)) { case MXL_RV32: - return g_strdup("riscv:rv32"); + return "riscv:rv32"; case MXL_RV64: case MXL_RV128: - return g_strdup("riscv:rv64"); + return "riscv:rv64"; default: g_assert_not_reached(); } diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c index 4f7599d72c..6093ab0a12 100644 --- a/target/s390x/cpu.c +++ b/target/s390x/cpu.c @@ -282,9 +282,9 @@ static void s390_cpu_initfn(Object *obj) #endif } -static gchar *s390_gdb_arch_name(CPUState *cs) +static const gchar *s390_gdb_arch_name(CPUState *cs) { - return g_strdup("s390:64-bit"); + return "s390:64-bit"; } static Property s390x_cpu_properties[] = { diff --git a/target/tricore/cpu.c b/target/tricore/cpu.c index d1477622e6..5ca666ee12 100644 --- a/target/tricore/cpu.c +++ b/target/tricore/cpu.c @@ -29,9 +29,9 @@ static inline void set_feature(CPUTriCoreState *env, int feature) env->features |= 1ULL << feature; } -static gchar *tricore_gdb_arch_name(CPUState *cs) +static const gchar *tricore_gdb_arch_name(CPUState *cs) { - return g_strdup("tricore"); + return "tricore"; } static void tricore_cpu_set_pc(CPUState *cs, vaddr value)