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> >>] make_unique(_Args&&... __args) 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: Author: asomers Date: Sat Jan 27 18:06:19 UTC 2018 New revision: 460135 URL: https://svnweb.freebsd.org/changeset/ports/460135 Log: 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. PR: 225456 Reported by: pkg-fallout Reviewed by: jbeich, dim Differential Revision: https://reviews.freebsd.org/D14058 Changes: head/shells/fish/files/patch-src_common.h