[Development] Two source incompatibilities in Qt 5.5 with Clang

Oswald Buddenhagen oswald.buddenhagen at theqtcompany.com
Fri Mar 13 18:22:38 CET 2015


On Fri, Mar 13, 2015 at 06:02:51PM +0100, Olivier Goffart wrote:
> On Friday 13 March 2015 09:08:35 Thiago Macieira wrote:
> > It's a minor SIC and I still call it justified. Anyone who was using #ifndef
> > was making assumptions about Q_ASSERT's internals and how it is declared.
> > We should all agree that making assumptions is a bad idea.
> 
> It was documented:
> 
> http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT
> "It does nothing if QT_NO_DEBUG was defined during compilation."
> 
"doing nothing" doesn't necessarily imply "ignoring its arguments".

> > As for adding a new macro... I don't want to replace every one of them in
> > Qt.
> > 
> > $ git submodule --quiet foreach "git grep Q_ASSERT -- '*.cpp' '*.mm' '*.h'
> > || true" | wc -l
> > 9390
> 
> Which can still be done in one line.
>
it's still insane. lots of integrations, history noise, and uglier code.

> But we don't even need to do it. We can leave the old one as it, and use 
> Q_ASSERT_UNUSED for the new asserts
> 
still ugly.

i suggest to introduce a #define which forces the old behavior.




More information about the Development mailing list