This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH obv] Darwin: Fix gdb compilation.
- From: Pedro Alves <palves at redhat dot com>
- To: Bernhard Heckel <bernhard dot heckel at intel dot com>, gdb-patches at sourceware dot org
- Date: Fri, 16 Dec 2016 11:32:41 +0000
- Subject: Re: [PATCH obv] Darwin: Fix gdb compilation.
- Authentication-results: sourceware.org; auth=none
- References: <1481883230-17279-1-git-send-email-bernhard.heckel@intel.com>
On 12/16/2016 10:13 AM, Bernhard Heckel wrote:
> Due to changes introduced by
> commit 4d01a485d29732b19743e8b138897f3509e071b0
> ('struct expression *' -> gdb::unique_xmalloc_ptr<expression>)
> compilation is broken on Darwin.
>
> ../gdb/darwin-nat-info.c:733:8: error: assigning to 'struct expression *'
> from incompatible type
> 'expression_up' (aka 'std::__1::unique_ptr<expression, gdb::xfree_deleter<expression> >')
> expr = parse_expression (exp);
>
> 2016-12-16 Bernhard Heckel <bernhard.heckel@intel.com>
>
> gdb/Changelog:
> * darwin-nat-info.c (info_mach_region_command): Use expression_up.
OK, please push if you haven't yet.
> static void
> info_mach_region_command (char *exp, int from_tty)
> {
> - struct expression *expr;
> struct value *val;
> mach_vm_address_t address;
> struct inferior *inf;
>
> - expr = parse_expression (exp);
> - val = evaluate_expression (expr);
> + expression_up expr = parse_expression (exp);
> + val = evaluate_expression (expr.get ());
> if (TYPE_CODE (value_type (val)) == TYPE_CODE_REF)
> {
> val = value_ind (val);
>
Note this fixes a leak as well -- nothing was deleting exp before.
Thanks,
Pedro Alves