[Development] Two source incompatibilities in Qt 5.5 with Clang

Thiago Macieira thiago.macieira at intel.com
Fri Mar 13 01:36:29 CET 2015

On Thursday 12 March 2015 23:22:17 Stephen Kelly wrote:
> Thiago Macieira wrote:
> > This was intentional and the minor SIC was expected. It only happens if
> > you're calling a static function that only exists for Q_ASSERT -- not many
> > people do that.
> Oops, nobody told Allen:
>  https://github.com/KDAB/GammaRay/commit/44ac33d970e
> I think this affects far more code than you seem to think it affects.
> What *should* Allen do now? 

Option 1: remove the #ifdef and live with warnings from the compiler that some 
functions are unused

Option 2: option 1 + Q_DECL_UNUSED on the function

Option 3: option 1 + "force" the using with Q_UNUSED or similar.

> What macro works for multiple versions of Qt?
> Why should everyone define such a macro themselves in their code? How about
> contributing it back to qglobal.h? What would it be called? And to bring
> this full circle, how about swapping the semantic of the old and new macros?
> I'm sure you considered not making the SIC change and creating a new macro
> instead. Why did you decide for the SIC?

Two main reasons:

1) it improves existing code, since we can get rid of some #ifdefs

2) it allows us avoid CI integration errors because no one compiled in release 
mode before submitting

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

More information about the Development mailing list