[Interest] Suppressing Q_ASSERT on release builds

Thiago Macieira thiago.macieira at intel.com
Wed Jan 11 18:19:10 CET 2017


On quarta-feira, 11 de janeiro de 2017 10:52:44 PST Jani Tykka wrote:
> > Are you talking about 3rdparty components that are used inside Qt? Which
> > one is including qglobal.h?
> 
> Yes, in qtbase:
> 
> In file included from src/hb-blob.cc:32:
> In file included from src/hb-private.hh:33:
> In file included from ./config.h:25:
> In file included from ../../../include/QtCore/qatomic.h:1:
> In file included from
> ../../../include/QtCore/../../src/corelib/thread/qatomic.h:34:
> In file included from ../../../include/QtCore/qglobal.h:1:

Harfbuzz-NG, apparently. There's a reason for that, but it doesn't use 
Q_ASSERT. Therefore, no problem.

Where are Q_ASSERT used outside of a Qt module (with no qt.prf)?

> > The macro wouldn't get defined if the .pro file does CONFIG -= qt. Can you
> > point to which one(s) those are?
> 
> Actually I was confused about the above hb-blob compiled without
> QT_NO_DEBUG and started blaming that qtwebengine does the same, but
> then I found that there is a bit different story:
> 
> src/core/delegated_frame_node.cpp asserts in release builds since:

Sorry, I don't have qtwebengine checked out, so I can't verify your claims.

> #undef __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES
> #define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0
> #endif
> 
> Then see
> https://opensource.apple.com/source/CarbonHeaders/CarbonHeaders-18.1/Assert
> Macros.h

And I have no idea what Apple has to do with anything.

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




More information about the Interest mailing list