From 9c3cc99930a08934e16b630e92a0d285a434f228 Mon Sep 17 00:00:00 2001 From: Stafford Horne Date: Wed, 16 Aug 2017 06:12:45 +0900 Subject: [PATCH] xtensa: Properly strdup string when building reggroup I noticed this while looking at the reggroup intializations. It seems for xtensa the "cpN" reggroup->name is getting assigned to the same text pointer for each iteration of XTENSA_MAX_COPROCESSOR. Note, internally reggroup_new() does not do any xstrdup(). gdb/ChangeLog: 2017-08-15 Stafford Horne * xtensa-tdep.c (xtensa_init_reggroups): Use xstrdup for cpname. --- gdb/ChangeLog | 4 ++++ gdb/xtensa-tdep.c | 6 +----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 94155f51d0..51743e14e9 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2017-08-15 Stafford Horne + + * xtensa-tdep.c (xtensa_init_reggroups): Use xstrdup for cpname. + 2017-08-15 Sergio Durigan Junior PR gdb/21954 diff --git a/gdb/xtensa-tdep.c b/gdb/xtensa-tdep.c index f875f20d32..bfb9ac6fa4 100644 --- a/gdb/xtensa-tdep.c +++ b/gdb/xtensa-tdep.c @@ -740,17 +740,13 @@ static void xtensa_init_reggroups (void) { int i; - char cpname[] = "cp0"; xtensa_ar_reggroup = reggroup_new ("ar", USER_REGGROUP); xtensa_user_reggroup = reggroup_new ("user", USER_REGGROUP); xtensa_vectra_reggroup = reggroup_new ("vectra", USER_REGGROUP); for (i = 0; i < XTENSA_MAX_COPROCESSOR; i++) - { - cpname[2] = '0' + i; - xtensa_cp[i] = reggroup_new (cpname, USER_REGGROUP); - } + xtensa_cp[i] = reggroup_new (xstrprintf ("cp%d", i), USER_REGGROUP); } static void -- 2.34.1