This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH c++ 12/12] ada-lang.h: Add cast in GROW_VECT
- From: Pedro Alves <palves at redhat dot com>
- To: Simon Marchi <simon dot marchi at polymtl dot ca>, gdb-patches at sourceware dot org
- Date: Tue, 27 Oct 2015 12:13:15 +0000
- Subject: Re: [PATCH c++ 12/12] ada-lang.h: Add cast in GROW_VECT
- Authentication-results: sourceware.org; auth=none
- References: <1445831362-18789-1-git-send-email-simon dot marchi at polymtl dot ca> <1445831362-18789-2-git-send-email-simon dot marchi at polymtl dot ca> <562E59DF dot 9040407 at redhat dot com> <562EE2CD dot 6050104 at polymtl dot ca>
On 10/27/2015 02:34 AM, Simon Marchi wrote:
> On 26/10/15 12:50 PM, Pedro Alves wrote:
>> typeof in C is a GCC extension. Probably not all compilers support it.
>>
>> In my branch I just have:
>>
>> #define GROW_VECT(v, s, m) \
>> - if ((s) < (m)) (v) = grow_vect (v, &(s), m, sizeof *(v));
>> + if ((s) < (m)) (v) = (char *) grow_vect (v, &(s), m, sizeof *(v));
>>
>> Because that works for all current uses of GROW_VECT.
>>
>> If we wanted to make this work for random types, then we could add
>> a type parameter to the GROW_VECT macro, like:
>>
>> - #define GROW_VECT(v, s, m) \
>> - if ((s) < (m)) (v) = grow_vect (v, &(s), m, sizeof *(v));
>> + #define GROW_VECT(t, v, s, m) \
>> + if ((s) < (m)) (v) = (t *) grow_vect (v, &(s), m, sizeof *(v));
>>
>> Not sure it's worth it though. It then raises the question of
>> "why not replace this home grown GROW_VECT stuff with a VEC instead".
> I thought about changing it for a proper VEC, but it's not really in the scope of
> the C++ changes. If I side-track on things like this, it will take an eternity!
> And I feel that at this moment, it would be a risk of introducing bugs without
> added value.
>
> Is it ok if I simply push your version that adds the (char *) in the macro? It
> seems like the most efficient fix given the situation.
It's certainly fine with me.
Thanks,
Pedro Alves