| .. 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; |
| }); |
| }); |