summaryrefslogtreecommitdiffstats
path: root/src/corelib/global/qglobal.cpp
diff options
context:
space:
mode:
authorSona Kurazyan <sona.kurazyan@qt.io>2022-08-01 19:57:42 +0200
committerSona Kurazyan <sona.kurazyan@qt.io>2022-08-05 15:54:06 +0200
commit29049d23f0d983fd90b8eb870e6afd248276af23 (patch)
treed002cffa515a344a7e14e20211c53cc38825f156 /src/corelib/global/qglobal.cpp
parent1d3fb690cc9262db2c10900b3716512bf13b651f (diff)
Move Q_ASSUME and Q_UNREACHABLE to qassert.h
As a drive-by, add a link back to Q_ASSUME() in Q_LIKELY() docs. Change-Id: I4a46e281d0fbf55c11001f15667fcc4faa3b0c5b Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Diffstat (limited to 'src/corelib/global/qglobal.cpp')
-rw-r--r--src/corelib/global/qglobal.cpp63
1 files changed, 1 insertions, 62 deletions
diff --git a/src/corelib/global/qglobal.cpp b/src/corelib/global/qglobal.cpp
index 6b8dcdc846..2852beaaab 100644
--- a/src/corelib/global/qglobal.cpp
+++ b/src/corelib/global/qglobal.cpp
@@ -2961,67 +2961,6 @@ QByteArray QSysInfo::bootUniqueId()
};
/*!
- \macro void Q_ASSUME(bool expr)
- \relates <QtGlobal>
- \since 5.0
-
- Causes the compiler to assume that \a expr is \c true. This macro is useful
- for improving code generation, by providing the compiler with hints about
- conditions that it would not otherwise know about. However, there is no
- guarantee that the compiler will actually use those hints.
-
- This macro could be considered a "lighter" version of \l{Q_ASSERT()}. While
- Q_ASSERT will abort the program's execution if the condition is \c false,
- Q_ASSUME will tell the compiler not to generate code for those conditions.
- Therefore, it is important that the assumptions always hold, otherwise
- undefined behaviour may occur.
-
- If \a expr is a constantly \c false condition, Q_ASSUME will tell the compiler
- that the current code execution cannot be reached. That is, Q_ASSUME(false)
- is equivalent to Q_UNREACHABLE().
-
- In debug builds the condition is enforced by an assert to facilitate debugging.
-
- \note Q_LIKELY() tells the compiler that the expression is likely, but not
- the only possibility. Q_ASSUME tells the compiler that it is the only
- possibility.
-
- \sa Q_ASSERT(), Q_UNREACHABLE(), Q_LIKELY()
-*/
-
-/*!
- \macro void Q_UNREACHABLE()
- \relates <QtGlobal>
- \since 5.0
-
- Tells the compiler that the current point cannot be reached by any
- execution, so it may optimize any code paths leading here as dead code, as
- well as code continuing from here.
-
- This macro is useful to mark impossible conditions. For example, given the
- following enum:
-
- \snippet code/src_corelib_global_qglobal.cpp qunreachable-enum
-
- One can write a switch table like so:
-
- \snippet code/src_corelib_global_qglobal.cpp qunreachable-switch
-
- The advantage of inserting Q_UNREACHABLE() at that point is that the
- compiler is told not to generate code for a shape variable containing that
- value. If the macro is missing, the compiler will still generate the
- necessary comparisons for that value. If the case label were removed, some
- compilers could produce a warning that some enum values were not checked.
-
- By using this macro in impossible conditions, code coverage may be improved
- as dead code paths may be eliminated.
-
- In debug builds the condition is enforced by an assert to facilitate debugging.
-
- \sa Q_ASSERT(), Q_ASSUME(), qFatal()
-*/
-
-/*!
\macro void Q_FALLTHROUGH()
\relates <QtGlobal>
\since 5.8
@@ -3315,7 +3254,7 @@ void qAbort()
\snippet code/src_corelib_global_qglobal.cpp qlikely
- \sa Q_UNLIKELY()
+ \sa Q_UNLIKELY(), Q_ASSUME()
*/
/*!