Fix remote-sim.c compilation
authorTom Tromey <tromey@adacore.com>
Mon, 4 Oct 2021 15:14:26 +0000 (09:14 -0600)
committerTom Tromey <tromey@adacore.com>
Mon, 4 Oct 2021 15:14:26 +0000 (09:14 -0600)
The change "make string-like set show commands use std::string
variable" caused remote-sim.c to fail to build.  The issue is that the
code does:

  const std::string &sysroot = gdb_sysroot;
  if (is_target_filename (sysroot))
    sysroot += strlen (TARGET_SYSROOT_PREFIX);

... which isn't valid.

This patch changes this code to use a 'const char *' again, fixing the
build.

gdb/remote-sim.c

index 5bfce2a9a318e99762466512187746bf0901d424..3143b4213a61d93f53210d1253c8e5cdf6c756bc 100644 (file)
@@ -682,7 +682,7 @@ gdbsim_target_open (const char *args, int from_tty)
   struct sim_inferior_data *sim_data;
   SIM_DESC gdbsim_desc;
 
-  const std::string &sysroot = gdb_sysroot;
+  const char *sysroot = gdb_sysroot.c_str ();
   if (is_target_filename (sysroot))
     sysroot += strlen (TARGET_SYSROOT_PREFIX);
 
@@ -703,7 +703,7 @@ gdbsim_target_open (const char *args, int from_tty)
   len = (7 + 1                 /* gdbsim */
         + strlen (" -E little")
         + strlen (" --architecture=xxxxxxxxxx")
-        + strlen (" --sysroot=") + sysroot.length () +
+        + strlen (" --sysroot=") + strlen (sysroot) +
         + (args ? strlen (args) : 0)
         + 50) /* slack */ ;
   arg_buf = (char *) alloca (len);
@@ -730,7 +730,7 @@ gdbsim_target_open (const char *args, int from_tty)
     }
   /* Pass along gdb's concept of the sysroot.  */
   strcat (arg_buf, " --sysroot=");
-  strcat (arg_buf, sysroot.c_str ());
+  strcat (arg_buf, sysroot);
   /* finally, any explicit args */
   if (args)
     {