[PATCH wayland 5/6] tests: Overly elaborate compiler warning workaround
Emil Velikov
emil.l.velikov at gmail.com
Wed Aug 29 16:33:29 UTC 2018
Hi Dan,
On 29 August 2018 at 07:17, Daniel Stone <daniels at collabora.com> wrote:
> Clang will rightly point out that example_sockaddr_un in socket-test
> will get discarded from the compilation unit as it is completely unused.
> Put in a couple of lines which of no value other than stopping Clang
> from complaining.
>
> Signed-off-by: Daniel Stone <daniels at collabora.com>
> ---
> tests/socket-test.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/tests/socket-test.c b/tests/socket-test.c
> index e9705628..8d39edce 100644
> --- a/tests/socket-test.c
> +++ b/tests/socket-test.c
> @@ -42,7 +42,7 @@
> * See `man 7 unix`.
> */
>
> -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.
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?
HTH
Emil
More information about the wayland-devel
mailing list