[RFA] Fix recent compilation errors in alpha-nat.c on alpha-osf

Joel Brobecker brobecker@ACT-Europe.FR
Mon Apr 22 06:42:00 GMT 2002


I tested the following change on Tru64 5.1. I made the small change
possible to allow this code to compile again, there is probably a better
way to write this code, but I'm not very familiar with this part of the
code...

Ideas for a better fix are welcome.

2002-04-22  J. Brobecker  <brobecker@gnat.com>
        * alpha-nat.c (fetch_osf_core_registers): Fix compilation errors
        due to NUM_REGS and MAX_REGISTER_RAW_SIZE not being constants
        anymore after a recent multi-arching effort.
        (supply_gregset): Ditto

-- 
Joel
-------------- next part --------------
Index: alpha-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/alpha-nat.c,v
retrieving revision 1.9
diff -c -3 -p -r1.9 alpha-nat.c
*** alpha-nat.c	21 Apr 2002 16:52:39 -0000	1.9
--- alpha-nat.c	22 Apr 2002 13:32:32 -0000
*************** fetch_osf_core_registers (char *core_reg
*** 101,107 ****
       OSF/1.2 core files.  OSF5 uses different names for the register
       enum list, need to handle two cases.  The actual values are the
       same.  */
!   static int core_reg_mapping[NUM_REGS] =
    {
  #ifdef NCF_REGS
  #define EFL NCF_REGS
--- 101,107 ----
       OSF/1.2 core files.  OSF5 uses different names for the register
       enum list, need to handle two cases.  The actual values are the
       same.  */
!   static int core_reg_mapping[] =
    {
  #ifdef NCF_REGS
  #define EFL NCF_REGS
*************** fetch_osf_core_registers (char *core_reg
*** 127,134 ****
      EF_PC, -1
  #endif
    };
!   static char zerobuf[MAX_REGISTER_RAW_SIZE] =
!   {0};
  
    for (regno = 0; regno < NUM_REGS; regno++)
      {
--- 127,139 ----
      EF_PC, -1
  #endif
    };
!   char *zerobuf = alloca (MAX_REGISTER_RAW_SIZE * sizeof (char));
! 
!   if (sizeof (core_reg_mapping) != NUM_REGS)
!     internal_error (__FILE__, __LINE__,
!                     "Invalid number of elements in register mapping array.");
! 
!   memset (zerobuf, 0, MAX_REGISTER_RAW_SIZE * sizeof (char));
  
    for (regno = 0; regno < NUM_REGS; regno++)
      {
*************** supply_gregset (gdb_gregset_t *gregsetp)
*** 222,229 ****
  {
    register int regi;
    register long *regp = ALPHA_REGSET_BASE (gregsetp);
!   static char zerobuf[MAX_REGISTER_RAW_SIZE] =
!   {0};
  
    for (regi = 0; regi < 31; regi++)
      supply_register (regi, (char *) (regp + regi));
--- 227,235 ----
  {
    register int regi;
    register long *regp = ALPHA_REGSET_BASE (gregsetp);
!   char *zerobuf = alloca (MAX_REGISTER_RAW_SIZE * sizeof (char));
! 
!   memset (zerobuf, 0, MAX_REGISTER_RAW_SIZE * sizeof (char));
  
    for (regi = 0; regi < 31; regi++)
      supply_register (regi, (char *) (regp + regi));


More information about the Gdb-patches mailing list