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>