[Interest] Problems with Clang 3.9 and Qt 5.8 preBeta

Thiago Macieira thiago.macieira at intel.com
Sun Oct 2 22:51:59 CEST 2016

On domingo, 2 de outubro de 2016 18:03:56 MDT Oliver Niebuhr wrote:
> Hello.
> I heard a lot of good things about Clang and decided to try it out.
> This are my very first steps but yes, I read a lot on the interwebs
> already
> My Problems are:
> 1.) I am not 100percent sure how to setup MSVC/Clang correctly. There
> are many outdated posts, so i hopefully got a lot closer with my current
> configure parameters. And the ones I found in the Qt Forum are mostly
> saying "...you should ask on the Mailing List..."

The current answer for you is "don't". Clang-cl is not stable enough for you 
to try it, unless you're either a Clang developer who can fix the compiler to 
make it stop crashing, or a Qt developer who can modify the source code to see 
what was the reason Clang crashed, then create a bug report for Clang 
developers to fix their compiler.

Since this email was sent to the Qt interest mailing list, you're probably 
neither. At this time, I advise you to wait a little more (maybe a year or 

> 2.) As Qt 5.8 has of course a lot of Bugs left, I am not sure if the
> Clang Error is related to a) my configure parameters b) Clang 3.9 or c)
> a Bug in the Qt Framework.

If you're using clang-cl, there's a better-than-90% chance it's Clang's fault. 
I fixed the remaining issues that were Qt's fault two months ago or so, then 
stopped when I ran into internal compiler errors.

> In file included from ..\include\QtCore\5.8.0\QtCore\private/qvariant_p.h:1:
> ..\include\QtCore\5.8.0\QtCore\private/../../../../../../../qt5srcgit/qt5/q
> tbase/src/corelib/kernel/qvariant_p.h(433,27): error: use of overloaded
> operator '<<' is ambiguous (with operand types 'QDebug' and 'nullptr_t')
> dbg.nospace() << *v_cast<T>(d);
> ~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~

This one could be a compiler bug, a Qt bug, or a mistake in setting up your 
MSVC / Clang environment. Since there are no instructions for the latter, if 
you try it, you're on your own. It looks, somehow, that commit 
b5153d5bfab63da811b7a4615238d9e50198b412 is the cause (which is exactly the 
one of the two or three commits I made to make Clang-cl 3.8 work a couple of 
months ago), which means Microsoft headers did not define _HAS_NULLPTR_T. You 
get to investigate further.

Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center

More information about the Interest mailing list