Mark qt_assert and qFatal as non-returning functions (excpt. MSVC)
authorThiago Macieira <thiago.macieira@intel.com>
Fri, 23 Mar 2012 22:05:17 +0000 (19:05 -0300)
committerQt by Nokia <qt-info@nokia.com>
Thu, 19 Apr 2012 20:15:16 +0000 (22:15 +0200)
commit5d0da01b54e5b4c94ca8bdcf87cb87b98c3a4fa4
tree8781e92a1bfafe4b72e279def4c0bef17bdbbb37
parent886aea1250e43866481a301a77e759ea499c7502
Mark qt_assert and qFatal as non-returning functions (excpt. MSVC)

This allows the compiler to optimise the code a bit better: since they
don't return, it can assume in the code after the Q_ASSERT that the
condition was true.

MSVC is the exception: with MSVC, we have the CrtDbgReport dialog,
which allows the developer to continue execution, inside the
debugger. Therefore, we can't mark any of those functions as
non-returning because they can, after all, return.

Unfortunately, the Q_ASSERT usually expands to no code in release
mode, so the improvement in code generation happens in debug mode
only...

Change-Id: I4d542d6853cd51c71ffab1d563ed64ef7c419115
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
src/corelib/global/qglobal.h
src/corelib/global/qlogging.cpp
src/corelib/global/qlogging.h