Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Tue, 21 Apr 2015 02:56:27 +0300 (MSK)
From: Alexander Monakov <amonakov@...ras.ru>
To: musl@...ts.openwall.com
Subject: Re: x86_64 and x32 fail to build

> When building without --enable-warnings, there are many false positives from
> -Wpointer-to-int-cast about x32 __scc(); at least from 4.5 onwards GCC enables
> this warning by default, so perhaps if musl really wants to silence it, it
> should test the corresponding -Wno-... flag outside of x$warnings == xyes
> test?

Could it be possible that implementation of __scc() can be adjusted to avoid
triggering the warning?  I hoped the following would achieve that:

// Cast X to signed integral type of corresponding size
#define __scc1(X) (__typeof__((X)-(__typeof__(1?(X):0))0)) (X)
#define __scc(X) sizeof(1?(X):0ULL) < 8 ? (unsigned long) __scc1(X) : (long long) __scc1(X)

... but unfortunately it doesn't work with -Werror=pointer-arith when type of
X is 'void *'.

Alexander

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.