[PATCH] Fix warning on gdb/compile/compile.c (C++-ify "triplet_rx")

Simon Marchi simon.marchi@polymtl.ca
Wed Jan 17 23:42:00 GMT 2018


On 2018-01-17 18:07, Sergio Durigan Junior wrote:
> On Wednesday, January 17 2018, Simon Marchi wrote:
> 
>> On 2018-01-16 14:46, Sergio Durigan Junior wrote:
>>> This fixes a GCC warning that happens when compiling
>>> gdb/compile/compile.c on some GCC versions (e.g., "gcc (GCC) 7.2.1
>>> 20180104 (Red Hat 7.2.1-6)").
>>> 
>>> It's a simple patch that converts "triplet_rx" from "char *" to
>>> "std::string", thus guaranteeing that it will be always initialized.
>>> 
>>> I've regtested this patch and did not find any regressions.  OK to
>>> apply on both master and 8.1 (after creating a bug for it)?
>>> 
>>> gdb/ChangeLog:
>>> 2018-01-16  Sergio Durigan Junior  <sergiodj@redhat.com>
>>> 
>>> 	* compile/compile.c (compile_to_object): Convert "triplet_rx"
>>> 	to "std::string".
>>> ---
>>>  gdb/compile/compile.c | 15 ++++++++-------
>>>  1 file changed, 8 insertions(+), 7 deletions(-)
>>> 
>>> diff --git a/gdb/compile/compile.c b/gdb/compile/compile.c
>>> index 2ee75930ac..47646169c8 100644
>>> --- a/gdb/compile/compile.c
>>> +++ b/gdb/compile/compile.c
>>> @@ -463,7 +463,7 @@ compile_to_object (struct command_line *cmd, 
>>> const
>>> char *cmd_string,
>>>    char **argv;
>>>    int ok;
>>>    struct gdbarch *gdbarch = get_current_arch ();
>>> -  char *triplet_rx;
>>> +  std::string triplet_rx;
>>>    char *error_message;
>>> 
>>>    if (!target_has_execution)
>>> @@ -527,15 +527,15 @@ compile_to_object (struct command_line *cmd,
>>> const char *cmd_string,
>>>      }
>>>    else
>>>      {
>>> -      const char *os_rx = osabi_triplet_regexp (gdbarch_osabi
>>> (gdbarch));
>>> -      const char *arch_rx = gdbarch_gnu_triplet_regexp (gdbarch);
>>> +      std::string os_rx = osabi_triplet_regexp (gdbarch_osabi
>>> (gdbarch));
>>> +      std::string arch_rx = gdbarch_gnu_triplet_regexp (gdbarch);
>> 
>> Making these std::string makes unnecessary copies.
>> 
>> You can write the line below like this:
>> 
>>   triplet_rx = std::string (arch_rx) + "(-[^-]*)?-" + os_rx;
>> 
>> Otherwise, LGTM.
> 
> Thanks, Simon.
> 
> Pushed to master:
> 
> 7d937cad0acdccd0ff485435fbe16f005e994c66
> 
> Is it OK to push this to the 8.1 branch as well?  If so, I'm not sure I
> should create a bug for this, or just go ahead and push it.

Yes, it is fine to go to the 8.1 branch.  A PR is not necessary right 
now.  They are only necessary after there was an initial release on the 
branch, to track what fixes were made on top of that initial version.

Simon



More information about the Gdb-patches mailing list