I made a few PRs to allow compilation and ctest with clang64. Only tiny changes were necessary to get this done, very nice, and the tests pass except for the known problem with Unicode code points above 0xffff.
clang produces a few warnings, I’ll check them in the next days.
First warning: I guess q[1] < 0x80 can be removed indeed.
C:/msys64/home/Matthias/swipl-devel/src/os/windows/uxnt.c:269:28: warning: result of comparison of constant 128 with expression of type 'const char' is always true [-Wtautological-constant-out-of-range-compare]
if ( q[0] == '/' && q[1] < 0x80 && isalpha(q[1]) && q[2] == ':' &&
Second: Appears in BUILD_TYPE=Release. I guess clang does not notice that the whole function skiplist_check is only invoked for debugging purposes. Unsure how to handle this properly.
[814/956] Building C object packages/semweb/CMakeFiles/plugin_rdf_db.dir/skiplist.c.obj
C:/msys64/home/Matthias/swipl-devel/packages/semweb/skiplist.c:370:16: warning: unused variable 'next0' [-Wunused-variable]
{ skipcell *next0 = subPointer(sc->next[i-1],
^
C:/msys64/home/Matthias/swipl-devel/packages/semweb/skiplist.c:372:16: warning: unused variable 'next1' [-Wunused-variable]
skipcell *next1 = subPointer(sc->next[i],
^
C:/msys64/home/Matthias/swipl-devel/packages/semweb/skiplist.c:385:15: warning: variable 'pl1' set but not used [-Wunused-but-set-variable]
{ void *pl1, *pl2;
^
C:/msys64/home/Matthias/swipl-devel/packages/semweb/skiplist.c:385:21: warning: variable 'pl2' set but not used [-Wunused-but-set-variable]
{ void *pl1, *pl2;
^
Next one: This might be a mistake (consider flags & SIO_CLOSING != 0 instead of flags && SIO_CLOSING), occurs three times in total (ll. 261 and 265).
C:/msys64/home/Matthias/swipl-devel/src/pl-ntmain.c:257:31: warning: use of logical '&&' with constant operand [-Wconstant-logical-operand]
((IOSTREAM *)v)->flags && SIO_CLOSING )
^ ~~~~~~~~~~~
C:/msys64/home/Matthias/swipl-devel/src/pl-ntmain.c:257:31: note: use '&' for a bitwise operation
((IOSTREAM *)v)->flags && SIO_CLOSING )
^~
&
C:/msys64/home/Matthias/swipl-devel/src/pl-ntmain.c:257:31: note: remove constant to silence this warning
((IOSTREAM *)v)->flags && SIO_CLOSING )
~^~~~~~~~~~~~~~