From b5a4a01af4ef4f5edefacf45dc173f559d09c4b5 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Sat, 9 Jan 2021 00:54:57 -0500 Subject: sim: hw: rework code to avoid gcc warnings Newer gcc thinks we might return a pointer to a stack buffer, but we don't -- we strdup it before returning. Rework the code to just malloc the buffer from the start and avoid the stack+strdup. --- sim/common/ChangeLog | 5 +++++ sim/common/hw-base.c | 10 +++------- 2 files changed, 8 insertions(+), 7 deletions(-) (limited to 'sim') diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog index 52a2003..28284ff 100644 --- a/sim/common/ChangeLog +++ b/sim/common/ChangeLog @@ -1,5 +1,10 @@ 2021-01-09 Mike Frysinger + * hw-base.c (full_name_of_hw): Delete full_name. Replace + hw_strdup call with hw_malloc. + +2021-01-09 Mike Frysinger + * cgen-par.c: Include stdlib.h. * cgen-trace.c, hw-events.c, sim-abort.c: Likewise. diff --git a/sim/common/hw-base.c b/sim/common/hw-base.c index d4b5198..87ca729 100644 --- a/sim/common/hw-base.c +++ b/sim/common/hw-base.c @@ -281,11 +281,10 @@ full_name_of_hw (struct hw *leaf, unsigned sizeof_buf) { /* get a buffer */ - char full_name[1024]; - if (buf == (char*)0) + if (buf == NULL) { - buf = full_name; - sizeof_buf = sizeof (full_name); + sizeof_buf = 1024; + buf = hw_malloc (leaf, sizeof_buf); } /* use head recursion to construct the path */ @@ -318,9 +317,6 @@ full_name_of_hw (struct hw *leaf, strcat (buf, unit); } - /* return it usefully */ - if (buf == full_name) - buf = hw_strdup (leaf, full_name); return buf; } -- cgit v1.1