Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 07 Jan 2018 13:22:01 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-ports-bugs@FreeBSD.org
Subject:   [Bug 224669] [exp-run] Against projects/clang600-import branch
Message-ID:  <bug-224669-13-HvWsJWZOhd@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-224669-13@https.bugs.freebsd.org/bugzilla/>
References:  <bug-224669-13@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D224669

--- Comment #22 from Dimitry Andric <dim@FreeBSD.org> ---
(In reply to Jan Beich from comment #21)
> (In reply to Tobias C. Berner from comment #20)
> - warnings/errors in headers of dependencies are often cannot be easily
> fixed thus have to be hidden by either -isystem or #pragma GCC system_hea=
der;
>   lang/gcc* aren't affected due to implicit -isystem/usr/local/include but
> clang from either base or devel/llvm* needs USES=3Dlocalbase;
>   -isystem/usr/local/include isn't enabled by default due to FreeBSD
> historically treating ports/packages as second class citizens, see
> https://wiki.freebsd.org/WarnerLosh/UsrLocal

It's not so much second class citizens, but to prevent accidental inclusion=
s of
headers which have the same name as base headers.  If /usr/local/include wo=
uld
ever be put into the default include path, it should be put *after* the sys=
tem
include directories, not before.

But the bikeshedding about this subject has been going on forever, it is ve=
ry
hard to please everybody now, so keeping the status quo is the safest solut=
ion.
:)


>   $ cat a.cc
>   #include <X11/Xlibint.h>
>   int main() { return 0; }
>   $ c++ a.cc -isystem/usr/local/include
>   $ c++ a.cc -I/usr/local/include
>   In file included from a.cc:1:
>   /usr/local/include/X11/Xlibint.h:675:7: warning: 'register' storage cla=
ss
> specifier is deprecated and
> 	incompatible with C++17 [-Wdeprecated-register]
> 	       register _Xconst long *data,
> 	       ^~~~~~~~~
>   [...]
>=20
> - Clang 6+ defaults to C++14, so -Wdeprecated-register isn't an error yet=
 but
>   Qt5 passes -std=3Dc++1z

Yeah, I have not found out why Qt seems to insist on very high -std=3Dc++
versions.  It probably attempts to auto-detect the highest level supported =
by
the compiler, and always enables that.


> - GCC 7 + -std=3Dgnu++17 doesn't treat -Wregister as an error by default

It should, because register is finally going away with C++17.  The easiest
workaround is adding a -Dregister flag, obviously.


> - libX11 is a C library, and register storage hasn't been deprecated by a=
 C
> standard

Indeed, but register is totally useless post-1990, so it should be deleted
wherever you see it. :)

--=20
You are receiving this mail because:
You are on the CC list for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-224669-13-HvWsJWZOhd>