.. title:: clang-tidy - bugprone-no-escape
bugprone-no-escape
==================
Finds pointers with the ``noescape`` attribute that are captured by an
asynchronously-executed block. The block arguments in ``dispatch_async()`` and
``dispatch_after()`` are guaranteed to escape, so it is an error if a pointer with the
``noescape`` attribute is captured by one of these blocks.
The following is an example of an invalid use of the ``noescape`` attribute.
.. code-block:: objc
void foo(__attribute__((noescape)) int *p) {
dispatch_async(queue, ^{
*p = 123;
});
});