cad/stepccode fails on -CURRENT since clang-6.0.0 was imported
Fernando Apesteguía
fernando.apesteguia at gmail.com
Sat Jan 27 22:45:14 UTC 2018
El 27 ene. 2018 22:41, "Dimitry Andric" <dim at freebsd.org> escribió:
On 27 Jan 2018, at 18:42, Fernando Apesteguía <fernando.apesteguia at 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
I will try the later and send the patch upstream.
Thanks!
More information about the freebsd-hackers
mailing list