From 538155bd6a8027551dd9281a8d636c2e6d2a12a5 Mon Sep 17 00:00:00 2001 From: David Taylor Date: Mon, 7 Aug 2000 14:27:36 +0000 Subject: [PATCH] parse.c (build_parse): don't write off the end of the std_regs array. --- gdb/ChangeLog | 5 +++++ gdb/parse.c | 36 ++++++++++++++++++++++++------------ 2 files changed, 29 insertions(+), 12 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index aad8daad8b9..6c687cb83d4 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +Mon Aug 7 10:24:30 2000 David Taylor + + * parse.c (build_parse): don't write off the end of the std_regs + array. + 2000-05-21 Mark Kettenis * solib.c (bfd_lookup_symbol): Fall back on the dynamic symbol diff --git a/gdb/parse.c b/gdb/parse.c index 166446a4016..5ea053459ca 100644 --- a/gdb/parse.c +++ b/gdb/parse.c @@ -1331,24 +1331,36 @@ build_parse (void) i = 0; /* fill it in */ #ifdef PC_REGNUM - std_regs[i].name = "pc"; - std_regs[i].regnum = PC_REGNUM; - i++; + if (PC_REGNUM >= 0) + { + std_regs[i].name = "pc"; + std_regs[i].regnum = PC_REGNUM; + i++; + } #endif #ifdef FP_REGNUM - std_regs[i].name = "fp"; - std_regs[i].regnum = FP_REGNUM; - i++; + if (FP_REGNUM >= 0) + { + std_regs[i].name = "fp"; + std_regs[i].regnum = FP_REGNUM; + i++; + } #endif #ifdef SP_REGNUM - std_regs[i].name = "sp"; - std_regs[i].regnum = SP_REGNUM; - i++; + if (SP_REGNUM >= 0) + { + std_regs[i].name = "sp"; + std_regs[i].regnum = SP_REGNUM; + i++; + } #endif #ifdef PS_REGNUM - std_regs[i].name = "ps"; - std_regs[i].regnum = PS_REGNUM; - i++; + if (PS_REGNUM >= 0) + { + std_regs[i].name = "ps"; + std_regs[i].regnum = PS_REGNUM; + i++; + } #endif memset (&std_regs[i], 0, sizeof (std_regs[i])); } -- 2.30.2