+2021-01-23  Tom Tromey  <tom@tromey.com>
+
+       * compile/compile-internal.h (class compile_instance)
+       <set_arguments>: Change return type.
+       * compile/compile.c (compile_to_object): Remove call to reset.
+       (compile_instance::set_arguments): Change return type.
+
 2021-01-23  Simon Marchi  <simon.marchi@polymtl.ca>
 
        * gdbtypes.c (copy_type_recursive): Use get_type_arch.
 
 
   /* Set compilation arguments.  REGEXP is only used for protocol
      version GCC_FE_VERSION_0.  */
-  char *set_arguments (int argc, char **argv, const char *regexp = NULL);
+  gdb::unique_xmalloc_ptr<char> set_arguments (int argc, char **argv,
+                                              const char *regexp = NULL);
 
   /* Set the filename of the program to compile.  Nop for GCC_FE_VERSION_0.  */
   void set_source_file (const char *filename);
 
   int argc = argv_holder.count ();
   char **argv = argv_holder.get ();
 
-  gdb::unique_xmalloc_ptr<char> error_message;
-  error_message.reset (compiler->set_arguments (argc, argv,
-                                               triplet_rx.c_str ()));
+  gdb::unique_xmalloc_ptr<char> error_message
+    = compiler->set_arguments (argc, argv, triplet_rx.c_str ());
 
   if (error_message != NULL)
     error ("%s", error_message.get ());
 
 /* See compile-internal.h.  */
 
-char *
+gdb::unique_xmalloc_ptr<char>
 compile_instance::set_arguments (int argc, char **argv, const char *regexp)
 {
   if (version () >= GCC_FE_VERSION_1)
-    return FORWARD (set_arguments, argc, argv);
+    return gdb::unique_xmalloc_ptr<char> (FORWARD (set_arguments, argc, argv));
   else
-    return FORWARD (set_arguments_v0, regexp, argc, argv);
+    return gdb::unique_xmalloc_ptr<char> (FORWARD (set_arguments_v0, regexp,
+                                                  argc, argv));
 }
 
 /* See compile-internal.h.  */