qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC 15/15] [test only] Use 'Error *err[static 1]' inst


From: Peter Maydell
Subject: Re: [Qemu-devel] [RFC 15/15] [test only] Use 'Error *err[static 1]' instead of 'Error **errp' to catch NULL errp arguments
Date: Mon, 19 Jun 2017 10:43:51 +0100

On 19 June 2017 at 09:48, Dr. David Alan Gilbert <address@hidden> wrote:
> * Eduardo Habkost (address@hidden) wrote:
>> On Thu, Jun 15, 2017 at 01:14:15PM +0100, Dr. David Alan Gilbert wrote:
>> > * Eduardo Habkost (address@hidden) wrote:
>> > >  void visit_start_struct(Visitor *v, const char *name, void **obj,
>> > > -                        size_t size, Error **errp);
>> > > +                        size_t size, Error *errp[static 1]);
>> > >
>> >
>> > Is it possible to typedef that to something that hides the magic syntax?
>> > Then we could get that down to QError errp   or something like that?
>>
>> Unfortunately it is not possible to hide it in a typedef: the
>> "static" keyword inside the square brackets is a feature of
>> function parameter declarations only.  Using it on a typedef
>> results in:
>>
>> a.c:3:16: error: static or type qualifiers in non-parameter array declarator
>>  typedef Error *ErrorPtr[static 1];
>
> That's a shame; it's rather odd looking; still I think it's
> worth it if it simplifies the error code.

Is gcc's __attribute__((nonnull)) any better? It seems to apply
to the whole function prototype rather than an individual argument
though so probably not :-(

thanks
-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]