Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [PATCH] [sim] Fix build failure in d10v sim
@ 2021-05-10 19:14 Luis Machado via Gdb-patches
  2021-05-10 22:30 ` Mike Frysinger via Gdb-patches
  2021-05-11 13:07 ` [PATCH,v2] " Luis Machado via Gdb-patches
  0 siblings, 2 replies; 7+ messages in thread
From: Luis Machado via Gdb-patches @ 2021-05-10 19:14 UTC (permalink / raw)
  To: gdb-patches

While building all targets on Ubuntu 20.04/aarch64, I ran into the following
build error:

In file included from /usr/include/string.h:495,
                 from ../../bfd/bfd.h:48,
                 from ../../../../repos/binutils-gdb/sim/d10v/interp.c:4:
In function 'memset',
    inlined from 'sim_create_inferior' at ../../../../repos/binutils-gdb/sim/d10v/interp.c:1146:3:
/usr/include/aarch64-linux-gnu/bits/string_fortified.h:71:10: error: ‘__builtin_memset’ offset [33, 616] from the object at ‘State’ is out of the bounds of referenced subobject ‘regs’ with type ‘reg_t[16]’ {aka ‘short unsigned int[16]’} at offset 0 [-Werror=array-bounds]
   71 |   return __builtin___memset_chk (__dest, __ch, __len, __bos0 (__dest));
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
make[3]: *** [Makefile:558: interp.o] Error 1

I looked at a different sim (cr16), and it zeroes out the entire State, not
just the registers.  It is unclear why we have the casts to uintptr.

The following patch fixes this for me.

OK?

sim/ChangeLog:

YYYY-MM-DD  Luis Machado  <luis.machado@linaro.org>

	d10v/interp.c (sim_create_inferior): Fix memset call.
---
 sim/d10v/interp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sim/d10v/interp.c b/sim/d10v/interp.c
index 86e566a79fb..a59779810eb 100644
--- a/sim/d10v/interp.c
+++ b/sim/d10v/interp.c
@@ -1143,7 +1143,7 @@ sim_create_inferior (SIM_DESC sd, struct bfd *abfd,
   bfd_vma start_address;
 
   /* reset all state information */
-  memset (&State.regs, 0, (uintptr_t)&State.mem - (uintptr_t)&State.regs);
+  memset (&State, 0, sizeof (State));
 
   /* There was a hack here to copy the values of argc and argv into r0
      and r1.  The values were also saved into some high memory that
-- 
2.25.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2021-05-12  3:59 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-10 19:14 [PATCH] [sim] Fix build failure in d10v sim Luis Machado via Gdb-patches
2021-05-10 22:30 ` Mike Frysinger via Gdb-patches
2021-05-11  2:01   ` Luis Machado via Gdb-patches
2021-05-11 20:48     ` Mike Frysinger via Gdb-patches
2021-05-11 13:07 ` [PATCH,v2] " Luis Machado via Gdb-patches
2021-05-11 21:54   ` Mike Frysinger via Gdb-patches
2021-05-12  3:59     ` Luis Machado via Gdb-patches

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox