Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 27 Jan 2018 22:41:54 +0100
From:      Dimitry Andric <dim@FreeBSD.org>
To:        =?utf-8?Q?Fernando_Apestegu=C3=ADa?= <fernando.apesteguia@gmail.com>
Cc:        FreeBSD Hackers <freebsd-hackers@freebsd.org>
Subject:   Re: cad/stepccode fails on -CURRENT since clang-6.0.0 was imported
Message-ID:  <B365AAB9-BDD5-44BC-BA1B-66AC94FCFA94@FreeBSD.org>
In-Reply-To: <CAGwOe2ZFFTVDWqjM4frMmeYQFt75QCS6J48UvRju%2BLzJ-Ck6Vw@mail.gmail.com>
References:  <CAGwOe2ZFFTVDWqjM4frMmeYQFt75QCS6J48UvRju%2BLzJ-Ck6Vw@mail.gmail.com>

index | next in thread | previous in thread | raw e-mail

[-- Attachment #1 --]
On 27 Jan 2018, at 18:42, Fernando ApesteguĂ­a <fernando.apesteguia@gmail.com> wrote:
> 
> Since clang-6.0.0 was imported in -CURRENT
> (https://svnweb.freebsd.org/base/head/usr.bin/clang/llvm-cov/?view=log),
> cad/stepcode fails to build. It built fine in -CURRENT with
> clang-5.0.0 on both i386 and amd64.
...
> /wrkdirs/usr/ports/cad/stepcode/work/stepcode-0.8/src/base/judy/src/judyL2Array.h:169:28:
> error: assigning to 'const std::__1::vector<unsigned long long,
> std::__1::allocator<unsigned long long> > *' from incompatible type
> 'unsigned long long'
>                kv.value = ( JudyValue ) 0;
>                           ^~~~~~~~~~~~~~~

Like gcc 6 and higher, clang 6 now defaults to -std=gnu++14, and from
C++11 onwards, you must use 'nullptr' if you mean a null pointer, not
the integer 0.

You can either force the port to be compiled with -std=gnu++98 (by
adding USE_CXXSTD=gnu++98 to the port Makefile), or change the two
instances where these assignments are being done, e.g.:

--- src/base/judy/src/judyL2Array.h.orig        2014-12-26 20:12:05 UTC
+++ src/base/judy/src/judyL2Array.h
@@ -166,7 +166,7 @@ class judyL2Array {
                 kv.value = *_lastSlot;
                 _success = true;
             } else {
-                kv.value = ( JudyValue ) 0;
+                kv.value = nullptr;
                 _success = false;
             }
             kv.key = _buff[0];
--- src/base/judy/src/judyS2Array.h.orig        2014-12-26 20:12:05 UTC
+++ src/base/judy/src/judyS2Array.h
@@ -191,7 +191,7 @@ class judyS2Array {
                 kv.value = *_lastSlot;
                 _success = true;
             } else {
-                kv.value = ( JudyValue ) 0;
+                kv.value = nullptr;
                 _success = false;
             }
             kv.key = _buff;

-Dimitry


[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.2

iF0EARECAB0WIQR6tGLSzjX8bUI5T82wXqMKLiCWowUCWmzyIgAKCRCwXqMKLiCW
o9KIAKCL8nnZ9SjFMBPfL81i+jNcniqbQgCeMov2kYTgA64AFu/R3ik6q9w+Ga8=
=6I9S
-----END PGP SIGNATURE-----
help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?B365AAB9-BDD5-44BC-BA1B-66AC94FCFA94>