The Clang 6 upgrade in FreeBSD head has broken shells/fish. It fails with errors like this:
src/builtin_test.cpp:281:20: error: call to 'make_unique' is ambiguous
return make_unique<unary_operator>(tok, range_t(start, subject->range.end),
/usr/include/c++/v1/memory:3076:1: note: candidate function [with _Tp = test_expressions::unary_operator, _Args = <test_expressions::token_t &, test_expressions::range_t, std::__1::unique_ptr<test_expressions::expression, std::__1::default_delete<test_expressions::expression> >>]
The problem is that Clang isn't defining the feature test macro __cpp_lib_make_unique. I can fix the build by simply replacing references to that macro with 1, but I'm not sure that's the best thing to do.
Fix in code review at https://reviews.freebsd.org/D14058
A commit references this bug:
Date: Sat Jan 27 18:06:19 UTC 2018
New revision: 460135
shells/fish: fix the build with Clang-6.0
Clang-6.0 on FreeBSD 12 doesn't define __cpp_lib_make_unique. Patch fish to
key off of the value of __cplusplus instead.
Reported by: pkg-fallout
Reviewed by: jbeich, dim
Differential Revision: https://reviews.freebsd.org/D14058