Re: [PATCH] Make dwarf_expr_piece::pieces an std::vector

Pedro Alves
2017-09-14T10:24:40Z

On 09/14/2017 10:26 AM, Simon Marchi wrote:
> On 2017-09-14 11:21, Pedro Alves wrote:

>> I wonder if there's ever a case for 'const T &&' parameters,
>> and if GCC could warn about them. At least in non-template
>> functions.
>

FYI, I filed https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82213 now.

> Oops, I started with a const reference, before changing it to rvalue
> reference (and forgot to remove the const). Does the patch look good to
> you otherwise?
>

Sure, with tiny nit below.

> /* Expand the memory allocated stack to contain at least
> @@ -285,14 +282,9 @@ dwarf_expr_context::stack_empty_p () const
> void
> dwarf_expr_context::add_piece (ULONGEST size, ULONGEST offset)
> {
> - struct dwarf_expr_piece *p;
> + this->pieces.emplace_back ();
> + dwarf_expr_piece *p = &(this->pieces.back ());
>

The extra parens look odd to me:

- dwarf_expr_piece *p = &(this->pieces.back ());
+ dwarf_expr_piece *p = &this->pieces.back ();

('p' could be a reference instead, since it's always
non-null, but I guess even better would be to move most
of the code below to a dwarf_expr_piece ctor. But you don't
really have to do that. I definitely understand not wanting
to change too much at a time. And I wouldn't have said a thing
if it weren't for the parens making me pause. :-))

Thanks,
Pedro Alves