Here are three further tentative fixes for x11/kde4/libs. There are additional problems still, but I'm going to take a break now.
Some comments: * dnssd/servicemodel.h: The value of ServicePtrRole appears to be random number that would be unlikely to collide with the values already used in Qt::ItemDataRole. It needs to fit into an int, so I dropped the top bit. Maybe a cast in servicemodel.cpp would be better, dunno. * kdeui/windowmanagement/netwm.cpp: None is normally defined to 0L by the X11 headers, but kdeui/util/fixx11h.h performs some special magic to turn it into a const integral variable with value 0, which is too far off from a null pointer for clang6. Since the intend is to compare against a null pointer, just use NULL. * khtml/misc/AtomicString.cpp: String length is unsigned, but AtomicString::add() takes an int parameter. In principle, it would be better to change the parameter to unsigned, but I'm afraid this will just push the problem to any callers. Index: patches/patch-dnssd_servicemodel_h =================================================================== RCS file: patches/patch-dnssd_servicemodel_h diff -N patches/patch-dnssd_servicemodel_h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-dnssd_servicemodel_h 17 Apr 2018 16:39:05 -0000 @@ -0,0 +1,14 @@ +$OpenBSD$ + +Index: dnssd/servicemodel.h +--- dnssd/servicemodel.h.orig ++++ dnssd/servicemodel.h +@@ -71,7 +71,7 @@ class KDNSSD_EXPORT ServiceModel : public QAbstractIte + + /** The additional data roles provided by this model */ + enum AdditionalRoles { +- ServicePtrRole = 0xA06519DE ///< gets a RemoteService::Ptr for the service ++ ServicePtrRole = 0x206519DE ///< gets a RemoteService::Ptr for the service + }; + + /** Index: patches/patch-kdeui_windowmanagement_netwm_cpp =================================================================== RCS file: patches/patch-kdeui_windowmanagement_netwm_cpp diff -N patches/patch-kdeui_windowmanagement_netwm_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-kdeui_windowmanagement_netwm_cpp 17 Apr 2018 16:39:05 -0000 @@ -0,0 +1,14 @@ +$OpenBSD$ + +Index: kdeui/windowmanagement/netwm.cpp +--- kdeui/windowmanagement/netwm.cpp.orig ++++ kdeui/windowmanagement/netwm.cpp +@@ -4368,7 +4368,7 @@ void NETWinInfo::update(const unsigned long dirty_prop + if (XGetWindowProperty(p->display, p->window, kde_net_wm_block_compositing, 0l, + 1, False, XA_STRING, &type_ret, + &format_ret, &nitems_ret, &unused, &data_ret) == Success) { +- p->blockCompositing = (data_ret != None); ++ p->blockCompositing = (data_ret != NULL); + if (data_ret) // stupid question to everyone - since the result is "Success", is this check required? + XFree(data_ret); + } Index: patches/patch-khtml_misc_AtomicString_cpp =================================================================== RCS file: patches/patch-khtml_misc_AtomicString_cpp diff -N patches/patch-khtml_misc_AtomicString_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-khtml_misc_AtomicString_cpp 17 Apr 2018 16:39:05 -0000 @@ -0,0 +1,23 @@ +$OpenBSD$ + +Index: khtml/misc/AtomicString.cpp +--- khtml/misc/AtomicString.cpp.orig ++++ khtml/misc/AtomicString.cpp +@@ -160,7 +160,7 @@ DOMStringImpl* AtomicString::add(const QChar* s, int l + return DOMStringImpl::empty(); + + init(); +- UCharBuffer buf = { s, length }; ++ UCharBuffer buf = { s, static_cast<unsigned int>(length) }; + std::pair<HashSet<DOMStringImpl*>::iterator, bool> addResult = stringTable->add<UCharBuffer, UCharBufferTranslator>(buf); + if (!addResult.second) + return *addResult.first; +@@ -172,7 +172,7 @@ DOMStringImpl* AtomicString::add(const QChar* s) + if (!s) + return 0; + +- int length = 0; ++ unsigned length = 0; + while (s[length] != QChar(0)) + length++; + -- Christian "naddy" Weisgerber na...@mips.inka.de