[OpenACC] Implement 'collapse' for combined constructs.
[llvm-project.git] / clang-tools-extra / docs / clang-tidy / checks / modernize / use-nullptr.rst
blob25e17fee0a3d6106cc83e86297ea8541990802c0
1 .. title:: clang-tidy - modernize-use-nullptr
3 modernize-use-nullptr
4 =====================
6 The check converts the usage of null pointer constants (e.g. ``NULL``, ``0``)
7 to use the new C++11 and C23 ``nullptr`` keyword.
9 Example
10 -------
12 .. code-block:: c++
14   void assignment() {
15     char *a = NULL;
16     char *b = 0;
17     char c = 0;
18   }
20   int *ret_ptr() {
21     return 0;
22   }
25 transforms to:
27 .. code-block:: c++
29   void assignment() {
30     char *a = nullptr;
31     char *b = nullptr;
32     char c = 0;
33   }
35   int *ret_ptr() {
36     return nullptr;
37   }
39 Options
40 -------
42 .. option:: IgnoredTypes
44   Semicolon-separated list of regular expressions to match pointer types for
45   which implicit casts will be ignored. Default value:
46   `std::_CmpUnspecifiedParam::;^std::__cmp_cat::__unspec`.
48 .. option:: NullMacros
50    Comma-separated list of macro names that will be transformed along with
51    ``NULL``. By default this check will only replace the ``NULL`` macro and will
52    skip any similar user-defined macros.
54 Example
55 ^^^^^^^
57 .. code-block:: c++
59   #define MY_NULL (void*)0
60   void assignment() {
61     void *p = MY_NULL;
62   }
64 transforms to:
66 .. code-block:: c++
68   #define MY_NULL NULL
69   void assignment() {
70     int *p = nullptr;
71   }
73 if the :option:`NullMacros` option is set to ``MY_NULL``.