r279514: buildworld failure: /usr/src/lib/libnv/tests/dnv_tests.cc:453:2: error: use of overloaded operator '<<' is ambiguous

Dimitry Andric dim at FreeBSD.org
Wed Mar 4 20:19:59 UTC 2015

On 04 Mar 2015, at 18:18, O. Hartmann <ohartman at zedat.fu-berlin.de> wrote:
> Am Wed, 4 Mar 2015 14:10:00 +0100
> Dimitry Andric <dimitry at andric.com> schrieb:
>> On 04 Mar 2015, at 12:31, O. Hartmann <ohartman at zedat.fu-berlin.de> wrote:
>>> On Mon, 2 Mar 2015 08:58:05 -0500
>>> Ryan Stone <rysto32 at gmail.com> wrote:
>>>> Can you post the contents of your make.conf and src.conf?  I didn't
>>>> see this in any of my "make tinderbox" runs
>>>> _______________________________________________
>>>> freebsd-current at freebsd.org mailing list
>>>> http://lists.freebsd.org/mailman/listinfo/freebsd-current
>>>> To unsubscribe, send any mail to "freebsd-current-unsubscribe at freebsd.org"
>>> The culprit is the option
>>> CXXFLAGS+=             -std=c++11
>>> in /etc/src.conf
>> Right, it would be nice to have libnv compiling for C++11 though.  I'll have a look
>> later today.

It is caused by the following test in lib/libnv/tests/dnv_tests.cc:

	ATF_REQUIRE_EQ(actual_val, NULL);

In C++ mode, ATF_REQUIRE_EQ will attempt to output the value of NULL
onto a std::ostringstream, but this has become ambiguous in C++11. [1]

The fix is to cast the NULL value to the specific pointer type ATF is
testing against, 'nvlist_t *' in this case.  See the attached diff.


[1] Before C++11, NULL is defined as 0, e.g. plain zero, and it will
therefore be printed as an integer "0".  In C++11 and later, NULL is
defined as the keyword nullptr, e.g. the null pointer literal.  Since
the null pointer can be converted to any other pointer type, and there
are many different operators defined in C++ to output those operators,
the call is ambiguous, and must be resolved by the developer.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: libnv-fix-tests-cxx11-1.diff
Type: application/octet-stream
Size: 447 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-current/attachments/20150304/d5c5b7fb/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 194 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.freebsd.org/pipermail/freebsd-current/attachments/20150304/d5c5b7fb/attachment.sig>

More information about the freebsd-current mailing list