[Spice-devel] [PATCH spice-common 2/2] log: remove spice_static_assert macro

Christophe Fergeau cfergeau at redhat.com
Mon Jun 12 12:13:10 UTC 2017


On Mon, Jun 12, 2017 at 07:46:07AM -0400, Marc-André Lureau wrote:
> Hi
> 
> ----- Original Message -----
> > On Mon, Jun 12, 2017 at 06:26:58AM -0400, Frediano Ziglio wrote:
> > > > > 
> > > > > > I think we should replace SPICE_VERIFY / verify with G_STATIC*
> > > > > > equivalents.
> > > > > >  
> > > > > 
> > > > > We actually can't for compatibility reason. Some version of GLib have
> > > > > broken macros and we still claim RHEL 6 support
> > > > > 
> > > > 
> > > > Ah, I vaguely recall some discussion, do you have a pointer? I can't find
> > > > changes in glib git log.
> > > > 
> > > 
> > > I think Christophe F pointed out the problem. Don't remember exactly, I
> > > think they were using array sizes but this do not work with C99.
> > > Looking at current GLib master code is still using that broken
> > > trick.
> > 
> > This is https://bugzilla.gnome.org/show_bug.cgi?id=758844
> > Test case from the bug is
> > 
> > int main (int argc, char **argv)
> > {
> >     G_STATIC_ASSERT(argc == 4);
> > 
> >     return 0;
> > }
> > 
> > which succeeds while the macro cannot know the value of argc.
> > 
> 
> Thanks, too bad they didn't manage to introduce a verify-like solution.
> 
> (I wouldn't claim the glib macro to be broken though)

Misleading and potentially dangerous if you prefer ;)

int main (int argc, char **argv)
{
     G_STATIC_ASSERT(argc >= 4);

     /* All is well, argv is big enough */

     return argv[10];
}

I don't think it's going to cause a lot of problems for real (even
though I'd be tempted to use it as "hmm, not fully sure this value is
known at compile-time, but G_STATIC_ASSERT will let me know anyway if
what I'm attempting is bogus"), but since we have the choice between
G_STATIC_ASSERT() and verify(), and verify() behaves better than
G_STATIC_ASSERT(), we can as well use verify()

Christophe
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20170612/6e32f939/attachment.sig>


More information about the Spice-devel mailing list