[gdb/build] Fix build with gcc 4.8.5
authorTom de Vries <tdevries@suse.de>
Sun, 7 Aug 2022 14:03:00 +0000 (16:03 +0200)
committerTom de Vries <tdevries@suse.de>
Sun, 7 Aug 2022 14:03:00 +0000 (16:03 +0200)
When building with gcc 4.8.5, I run into:
...
user-regs.c:85:1: error: could not convert \
  ‘{0l, (& builtin_user_regs.gdb_user_regs::first)}’ from \
  ‘<brace-enclosed initializer list>’ to ‘gdb_user_regs’
 };
 ^
...

Fix this by removing the initialization and handling regs.last == nullptr in
append_user_reg.

Tested on x86_64-linux.

gdb/user-regs.c

index 4bc4685387f99803d37d5ad9698b4e0a91c68707..05bb04ef2ed6f1ef0e3e73de88c92ad59685d6a6 100644 (file)
@@ -74,15 +74,15 @@ append_user_reg (struct gdb_user_regs *regs, const char *name,
   reg->xread = xread;
   reg->baton = baton;
   reg->next = NULL;
+  if (regs->last == nullptr)
+    regs->last = &regs->first;
   (*regs->last) = reg;
   regs->last = &(*regs->last)->next;
 }
 
 /* An array of the builtin user registers.  */
 
-static struct gdb_user_regs builtin_user_regs = {
-  NULL, &builtin_user_regs.first
-};
+static struct gdb_user_regs builtin_user_regs;
 
 void
 user_reg_add_builtin (const char *name, user_reg_read_ftype *xread,