.. title:: clang-tidy - readability-avoid-return-with-void-value
readability-avoid-return-with-void-value
========================================
Finds return statements with ``void`` values used within functions with
``void`` result types.
A function with a ``void`` return type is intended to perform a task without
producing a return value. Return statements with expressions could lead
to confusion and may miscommunicate the function's intended behavior.
Example:
.. code-block::
void g();
void f() {
// ...
return g();
}
In a long function body, the ``return`` statement suggests that the function
returns a value. However, ``return g();`` is a combination of two statements
that should be written as
.. code-block::
g();
return;
to make clear that ``g()`` is called and immediately afterwards the function
returns (nothing).
In C, the same issue is detected by the compiler if the ``-Wpedantic`` mode
is enabled.
Options
-------
.. option:: IgnoreMacros
The value `false` specifies that return statements expanded
from macros are not checked. The default value is `true`.
.. option:: StrictMode
The value `false` specifies that a direct return statement shall
be excluded from the analysis if it is the only statement not
contained in a block, like ``if (cond) return g();``. The default
value is `true`.