[Bug 216054] graphics/openshadinglanguage: fails to build with libc++ 4.0

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Sun Jan 22 19:26:26 UTC 2017


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=216054

--- Comment #3 from Dimitry Andric <dim at FreeBSD.org> ---
(In reply to Jan Beich (mail not working) from comment #1)
> libc++ 4.0 is just broken with old compilers. One workaround would be to
> build against devel/libc++ which tracks old version.
> 
> $ cat a.cc
> #include <string>
> 
> int main() { return 0; }
> 
> $ clang++34 a.cc
> In file included from a.cc:1:
> In file included from /usr/include/c++/v1/string:470:
> In file included from /usr/include/c++/v1/string_view:171:
> In file included from /usr/include/c++/v1/__string:56:
> In file included from /usr/include/c++/v1/algorithm:637:
> /usr/include/c++/v1/type_traits:2075:14: error: expected class name
>     : public decltype((_VSTD::__is_assignable_test<_Tp, _Arg>(0))) {};
>              ^
> /usr/include/c++/v1/__config:747:25: note: expanded from macro 'decltype'
> #  define decltype(__x) __typeof__(__x)
>                         ^
> 1 error generated.

Hm, yes that is pretty unfortunate.  Not that you can guarantee forwards
compatibility forever, of course, but in this case it falls over a C++11
construct, while in C++98 (or GNU++98) mode.

It looks like before libc++ r276599, there was a fallback mode for
_LIBCPP_HAS_NO_RVALUE_REFERENCES, but that disappeared.  Eric, how tricky would
it be to put that back?

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-ports-bugs mailing list