[PATCH wayland 5/6] tests: Overly elaborate compiler warning workaround

Daniel Stone daniel at fooishbar.org
Thu Aug 30 12:53:53 UTC 2018


Hi Emil,

On Wed, 29 Aug 2018 at 17:33, Emil Velikov <emil.l.velikov at gmail.com> wrote:
> On 29 August 2018 at 07:17, Daniel Stone <daniels at collabora.com> wrote:
> > -static const struct sockaddr_un example_sockaddr_un;
> > +static struct sockaddr_un example_sockaddr_un;
> >
> >  #define TOO_LONG (1 + sizeof example_sockaddr_un.sun_path)
> >
> > @@ -69,6 +69,11 @@ TEST(socket_path_overflow_client_connect)
> >         d = wl_display_connect(path);
> >         assert(d == NULL);
> >         assert(errno == ENAMETOOLONG);
> > +
> > +       /* This is useless, but prevents a warning about example_sockaddr_un
> > +        * being discarded from the compilation unit. */
> > +       strcpy(example_sockaddr_un.sun_path, "happy now clang?");
> > +       assert(example_sockaddr_un.sun_path[0] != '\0');
>
> Why don't you add _attrubute__((used)) instead of doing the blame
> game? We already use it in the repo.

This was already merged, but sure, a follow-up patch to do this would be fine.

> Side note: the manpage says "sun_path[108]" and also points out that
> "some implementations have sun_path as short as 92 bytes"
> The check in wl_socket_init_for_display_name uses sizeof, yet prints a
> "exceeds 108 bytes" message.
>
> I guess the message should be fixed?

Yes, it looks like a follow-up patch to use sizeof would be correct as well.

Cheers,
Daniel


More information about the wayland-devel mailing list